第10章面向对象分析object-orientedanalysis内容摘要:

1. 找出候选的类与对象 (Noun for Classobject candidate) (1) 可感知的物理实体,例如,飞机、汽车、书、房屋等等。 (2) 人或组织的角色,例如,医生、教师、雇主、雇员、计算机系、财务处等等。 (3) 应该记忆的事件,例如,飞行、演出、访问、交通事故等等。 (4) 两个或多个对象的相互作用,通常具有交易或接触的性质,例如,购买、纳税、结婚等等。 (5) 需要说明的概念,例如,政策、保险政策、版权法等等。 把陈述中的名词作为类与对象的候选者,用形容词作为确定属性的线索,把动词作为服务 (操作 )的候选者。 确定类与对象 (Finding Classobject) 找出下 列名词 ,作为类与对象的初步的候选者: 银行,自动取款机 (ATM),系统,中央计算机,分行计算机,柜员终端,网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,账单,访问。 根据领域知识或常识进一步把 隐含的 类与对象提取出来。 例如,在 ATM系统的需求陈述中虽然没写“ 通信链路 ” 和 “ 事务日志 ” ,但是,根据领域知识和常识可以知道,在 ATM系统中应该包含这两个实体。 2. 筛选出正确的类与对象 (Choose Proper Classobject) (1) 冗余 储户与用户,现金兑换卡与磁卡及副本分别描述了相同的两类信息,因此,应该去掉 “ 用户 ” 、“ 磁卡 ” 、 “ 副本 ” 等冗余的类,仅保留 “ 储户 ”和 “ 现金兑换卡 ” 这两个类。 (2) 无关 这个系统并不处理分摊软件开发成本的问题,而且 ATM和柜员终端放置的地点与本软件的关系也不大。 因此,应该去掉候选类 “ 成本 ” 、 “ 市 ” 、“ 街道 ” 、 “ 营业厅 ” 和 “ 储蓄所 ”。 (3) 笼统 “ 银行 ” 实际指总行或分行, “ 访问 ” 在这里实际指事务, “ 信息 ” 的具体内容在需求陈述中随后就指明了。 此外还有一些笼统含糊的名词。 总之,在本例中应该去掉 “ 银行 ” 、 “ 网络 ” 、 “ 系统 ” 、“ 软件 ” 、 “ 信息 ” 、 “ 访问 ” 等候选类。 (4) 属性 在需求陈述中有些名词实际上描述的是其他对象的属性,应该把这些名词从候选类与对象中去掉。 在 ATM系统的例子中, “ 现金 ” 、 “ 支票 ” 、“ 取款额 ” 、 “ 账单 ” 、 “ 余额 ” 、 “ 分行代码 ” 、“ 卡号 ” 、 “ 密码 ” 、 “ 类型 ” 等,实际上都应该作为属性对待。 (5) 操作 在需求陈述中有时可能使用一些既可作为名词,又可作为动词的词,应该慎重考虑它们在本问题中的含义,以便正确地决定把它们作为类还是作为类中定义的操作。 例如,谈到电话时通常把 “ 拨号 ” 当作动词,当构造电话模型时确实应该把它作为一个操作,而不是一个类。 但是,在开发电话的自动记账系统时,“ 拨号 ” 需要有自己的属性 (例如日期、时间、受话地点等 ),因此应该把它作为一个类。 总之,本身具有属性需独立存在的操作,应。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。