第1页:建立对象模型对象模型描述类及相互关系
- 建立对象模型对象模型描述类及相互关系,表达目标系统静态结构。建立对象模型步骤:
- 确定分析类;
- 确定类的关联;
- 划分主题;
- 确定属性;
- 识别继承;
- 反复修改。
第2页:建立对象模型确定分析类分析模型中
- 建立对象模型-确定分析类分析模型中,分析类是概念层次上内容,类直接与应用逻辑相关,不关注技术实现。
- 找出候选分析类
- 边界类;
- 控制类;
- 实体类。
第3页:建立对象模型确定分析类确定边界类通常
建立对象模型-确定分析类确定边界类通常,一参与者与一用例间交互或通信关联对应一边界类
第4页:ATM系统用例图
ATM系统用例图:本页为图示内容,展示执行者、用例及其相互关系。
第5页:建立对象模型确定分析类边界类说明
建立对象模型-确定分析类边界类说明SetupForm开新账户的操作界面DepositForm存款的操作界面ATMWithdrawForm ATM用户取款的操作界面ATMBalanceForm ATM查询余额的操作界面ATMPasswordForm ATM改变密码的操作界面TellerWithdrawForm Teller用户取款的操作界面TellerBalanceForm Teller查询余额的操作界面TellerPasswordForm Teller改变密码的操作界面
第6页:建立对象模型确定分析类识别控制类控制类
建立对象模型-确定分析类识别控制类控制类负责协调边界类和实体类,通常在现实世界没有对应的事物。一般来说,一个用例对应一个控制类。
第7页:建立对象模型确定分析类边界类说明(续)
建立对象模型-确定分析类边界类说明SetupControl负责执行开新账户DepositControl负责执行存款WithdrawControl负责执行取款BalanceControl负责执行查询余额PasswordControl负责执行改变密码
第8页:建立对象模型确定分析类识别实体类实体类
建立对象模型-确定分析类识别实体类实体类通常是用例中的参与对象,对应着现实世界中“事物”
第9页:建立对象模型确定分析类非正式分析法
建立对象模型-确定分析类非正式分析法:需求陈述中名词。例:用非正式分析法提取ATM系统中的实体类。银行,自动取款机(ATM),系统,中央计算机,分行计算机,柜员终端,网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,账单,访问ATM系统分析员根据领域知识或常识提取出隐含的类。通信链路、事务日志
第10页:建立对象模型确定分析类筛选出正确的类
- 建立对象模型-确定分析类
- 筛选出正确的类
- 冗余储户与用户,现金兑换卡与磁卡及副本应去掉“用户”、“磁卡”、“副本”,保留“储户”和“现金兑换卡”。
- 无关与本问题密切相关类放进目标系统,去掉“成本”、“市”“街道”、“营业厅”、“储蓄所”。
- 笼统银行(总行和分行)、系统、软件、信息、访问(事务)。
第11页:建立对象模型确定分析类属性现金支票取款额
- 建立对象模型-确定分析类
- 属性现金、支票、取款额、账单、余额、分行代码、卡号、密码和类型。
- 操作需求陈述中既作名词又作动词的词,慎重考虑是作类合适,还是作类中操作合适。
- 实现事务日志、通信链路。
第12页:确定分析类ATM系统筛选后的类
建立对象模型-确定分析类ATM系统筛选后的类:银行,自动取款机(ATM),系统,中央计算机,分行计算机,柜员终端,网络,总行,分行,软件,成本,市街道,营业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码,卡号用户,副本,信息,密码,类型,取款额,账单,访问
第13页:ATM系统的实体分析类
ATM系统的实体分析类:本页为图示内容,展示实体、属性与实体之间联系的表达方式。
第14页:建立对象模型确定关联初步确定关联动词
- 建立对象模型-确定关联
- 初步确定关联动词或动词词组;隐含关联;与用户及领域专家讨论补充。
第15页:建立对象模型确定关联直接提取动词短语·
- 建立对象模型-确定关联
- 直接提取动词短语·ATM、中央计算机、分行计算机及柜员终端组成网络·总行拥有多台ATM。·ATM设在主要街道上。·分行提供分行计算机和柜员终端。·柜员终端设在分行营业厅及储蓄所内。·分行分摊软件开发成本。·储户拥有账户。·分行计算机处理针对账户的事务。
第16页:建立对象模型确定关联·分行计算机维护账户
建立对象模型-确定关联·分行计算机维护账户。·柜员终端与分行计算机通信。·柜员输入针对账户的事务。·ATM与中央计算机交换关于事务的信。·中央计算机确定事务与分行的对应关系。·ATM读现金兑换卡。·ATM与用户交互。·ATM吐出现金。·ATM打印账单。·系统处理并发的访问。
第17页:建立对象模型确定关联需求陈述中隐含的关联
- 建立对象模型-确定关联
- 需求陈述中隐含的关联·总行由各分行组成。·分行保管账户。·总行拥有中央计算机。·系统维护事务日志。·系统提供必要安全性。·储户拥有现金兑换卡。
第18页:建立对象模型确定关联根据问题域知识得出
- 建立对象模型-确定关联
- 根据问题域知识得出的关联·现金兑换卡访问账户。·分行雇用柜员。
第19页:建立对象模型确定关联筛选
- 建立对象模型-确定关联
- 筛选
- 已删去类之间关联删掉某候选类,与这个类有关的关联也删去,或重新表达。已删去“系统”、“网络”、“市”、“街道”、“成本”、“软件”、“事务日志”、“现金”、“营业厅”、“储蓄所”、“账单”候选类,关联也应删去
第20页:建立对象模型确定关联·ATM
建立对象模型-确定关联·ATM、中央计算机、分行计算机及柜员终端组成网络。·ATM设在主要街道上。·分行分摊软件开发成本。·系统提供必要安全性。·系统维护事务日志。·ATM吐出现金。·ATM打印账单。·柜员终端设在分行营业厅及储蓄所内。
第21页:建立对象模型确定关联与问题无关或与实现
- 建立对象模型-确定关联
- 与问题无关或与实现密切相关的关联删去。“系统处理并发的访问”
- 瞬时事件“ATM读现金兑换卡”“ATM与用户交互”“中央计算机确定事务与分行对应关系”隐含“中央计算机与分行通信”。
第22页:建立对象模型确定关联三元关联三个或三个
- 建立对象模型-确定关联
- 三元关联三个或三个以上对象关联,可分解为二元关联或限定关联。“柜员输入针对账户的事务”分解成“柜员输入事务”和“事务修改账户”。“ATM与中央计算机交换关于事务的信息”隐含“ATM与中央计算机通信”和“在ATM上输入事务”这两个二元关联。
第23页:建立对象模型确定关联进一步完善
- 建立对象模型-确定关联
- 进一步完善
- 正名"分行提供分行计算机和柜员终端"改为"分行拥有分行计算机"和"分行拥有柜员终端"。
- 分解把“事务”分解成“远程事务”和“柜员事务”。
- 补充需补充"柜员输入柜员事务"、"柜员事务输进柜员终端"、"在ATM上输入远程事务"和"远程事务由现金兑换卡授权"。
第24页:原始实体类图
原始实体类图:本页为图示内容,展示实体、属性与实体之间联系的表达方式。
第25页:划分主题后的实体类图
划分主题后的实体类图:本页为图示内容,展示实体、属性与实体之间联系的表达方式。
第26页:确定属性需求陈述误把类当属性独立存
- 建立对象模型-确定属性需求陈述中的名词
- 误把类当属性独立存在更重要,则应为类。
- 误把链属性作为属性属性要依赖某关联链存在,则为关联类的属性。
- 误把限定当属性属性值固定下来可减少重数,则应为限定。
第27页:建立对象模型确定属性误把内部状态当属性
- 建立对象模型-确定属性
- 误把内部状态当属性对象的非公开内部状态不作属性。
- 过于细化忽略对大多数操作都没有影响的属性。
- 存在不一致属性分解两个类。
第28页:加上属性的实体类图
加上属性的实体类图:本页为图示内容,展示实体、属性与实体之间联系的表达方式。
第29页:识别出继承关系的实体类图
识别出继承关系的实体类图:本页为图示内容,展示实体、属性与实体之间联系的表达方式。
第30页:建立对象模型反复修改分解现金兑换卡类现金
- 建立对象模型-反复修改
- 分解“现金兑换卡”类现金兑换卡有两独立功能:标志储户访问账号的权限;含有分行代码和卡号的数据载体。(卡权限和现金兑换卡)
- “事务”由“更新”组成更新包括取款、存款、查询。有自己属性(类型、金额),应独立存在。
- 合并“分行”和“分行计算机”同理合并总行和总行计算机。
第31页:修改后的实体类图
修改后的实体类图:本页为图示内容,展示实体、属性与实体之间联系的表达方式。