建立对象模型 - wolai 笔记
对象模型描述类及相互关系,表达目标系统静态结构。
建立对象模型步骤:
  1. 确定分析类
  2. 确定类的关联
  3. 划分主体
  4. 确定属性
  5. 识别继承
  6. 反复修改

1.确定分析类

分析模型中,分析类是概念层次上内容,类直接与应用逻辑相关,不关注技术实现。

1.1找出候选分析类

(1)边界类

通常,一参与者与一用例间交互或通信关联对应一边界类
ATM系统用例图
边界类说明
SetupForm开新账户的操作界面
DepositForm存款的操作界面
ATMWithdrawFormATM用户取款的操作界面
ATMBalanceFormATM查询余额的操作界面
ATMPasswordFormATM改变密码的操作界面
TellerWithdrawFormTeller用户取款的操作界面
TellerBalanceFormTeller查询余额的操作界面
TellerPasswordFormTeller改变密码的操作界面

(2)控制类

控制类负责协调边界类和实体类,通常在现实世界没有对应的事物。 一般来说,一个用例对应一个控制类。
控制类说明
SetupControl负责执行开新账户
DepositControl负责执行存款
WithdrawControl负责执行取款
BalanceControl负责执行查询余额
PasswordControl负责执行改变密码

(3)实体类

实体类通常是用例中的参与对象对应着现实世界中“事物”
提取实体类方法:非正式分析法:需求陈述中名词。
例:用非正式分析法提取ATM系统中的实体类。
银行,自动取款机(ATM),系统,中央计算机,分行计算机,柜员终端,网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,账单,访问
ATM系统分析员根据领域知识或常识提取出隐含的类通信链路、事务日志

1.2筛选出正确的类

(1)冗余

储户与用户,现金兑换卡与磁卡及副本应去掉“用户”、“磁卡”、“副本”,保留“储户”和“现金兑换卡”。

(2)无关

与本问题密切相关类放进目标系统,去掉“成本”、“市”“街道”、“营业厅”、“储蓄所”。

(3)笼统

银行(总行和分行)、系统、软件、信息、访问(事务)。

(4)属性

现金、支票、取款额、账单、余额、分行代码、卡号、密码和类型。

(5)操作

需求陈述中既作名词又作动词的词,慎重考虑是作类合适,还是作类中操作合适。

(6)实现

事务日志、通信链路。

1.3筛选出的候选类

银行,自动取款机(ATM),系统,中央计算机分行计算机柜员终端,网络,总行,分行,软件,成本,市街道,营业厅,储蓄所,柜员,储户,现金,支票,账 户事务,现金兑换卡,余额,磁卡,分行代码,卡号、用户,副本,信息,密码,类型,取款额,账单,访问

2.确定类的关联

2.1初步确定关联

(1)提取动词或动词词组

  • ATM、中央计算机、分行计算机及柜员终端组成网络
  • 总行拥有多台ATM。
  • ATM设在主要街道上。
  • 分行提供分行计算机和柜员终端。
  • 柜员终端设在分行营业厅及储蓄所内。
  • 分行分摊软件开发成本。
  • 储户拥有账户。
  • 分行计算机处理针对账户的事务。
  • 分行计算机维护账户。
  • 柜员终端与分行计算机通信。
  • 柜员输入针对账户的事务。
  • ATM与中央计算机交换关于事务的信。
  • 中央计算机确定事务与分行的对应关系。
  • ATM读现金兑换卡。
  • ATM与用户交互。
  • ATM吐出现金。
  • ATM打印账单。
  • 系统处理并发的访问。

(2)需求陈述中隐含的关联

  • 总行由各分行组成。
  • 分行保管账户。
  • 总行拥有中央计算机。
  • 系统维护事务日志。
  • 系统提供必要安全性。
  • 储户拥有现金兑换卡。

(3)根据问题领域知识得出的关联

  • 现金兑换卡访问账户。
  • 分行雇用柜员。

2.2筛选

(1)已删除类之间关联

(2)与问题无关或与实现密切相关的关联删去

  • 系统处理并发的访问

(3)瞬时事件

  • “ATM读现金兑换卡”
  • “ATM与用户交互”
  • “中央计算机确定事务与分行对应关系”隐含“中央计 算机与分行通信”。

(4)三元关联

三个或三个以上对象关联,可分解为二元关联或限定关联。
如:“柜员输入针对账户的事务”分解成“柜员输入事务”和“事务修改账户”。

2.3进一步完善

(1)正名

"分行提供分行计算机和柜员终端"改为"分行拥有分行计算机"和"分行拥有柜员终端"。

(2)分解

把“事务”分解成“远程事务”和“柜员事务”。

(3)补充

需补充"柜员输入柜员事务"、"柜员事务输进柜员终端"、"在ATM上输入远程事务"和"远程事务由现金兑换卡授权"。

2.4原始类图

3.划分主题

4.确定属性


4.1需求陈述中的名词

(1)误把类当属性

独立存在更重要,则应为类。

(2)误把链属性作为属性

属性要依赖某关联链存在,则为关联类的属性。

(3)误把限定当属性

属性值固定下来可减少重数,则应为限定。

(4)误把内部状态当属性

对象的非公开内部状态不作属性。

(5)过于细化

忽略对大多数操作都没有影响的属性.

(6)存在不一致属性

分解两个类

4.2加上属性的实体类图

5.识别继承

6.反复修改

6.1修改

(1)分解“现金兑换卡”类

现金兑换卡有两独立功能:标志储户访问账号的权限;含有 分行代码和卡号的数据载体。(卡权限和现金兑换卡)

(2)“事务”由“更新”组成

更新包括取款、存款、查询。有自己属性(类型、金额),应独立存在。

(3)合并“分行”和“分行计算机”

同理合并总行和总行计算机。

6.2修改后的实体类图



Comment
avatar
Dongnian
A salty fish swimming in the sea of deep learning!
Follow Me
Announcement
Welcome to My Personal Blog!
If Not, Please Visit Gitee Mirror.