《UML面向对象建模与设计》第12章——领域分析

        虽然写这个博客主要目的是为了给我自己做一个思路记忆录,但是如果你恰好点了进来,那么先对你说一声欢迎。我并不是什么大触,只是一个菜菜的学生,如果您发现了什么错误或者您对于某些地方有更好的意见,非常欢迎您的斧正!

目录

12.1分析概述

12.2领域类模型

12.3领域状态模型

12.4领域交互模型

12.5将分析迭代


领域分析(domain analysis):关心如何设计出一套准确简洁的、可以理解的和正确的现实世界的模型

目的:阐明需求,为利益相关人和开发者之间的约定提供依据,而且要把模型当成设计和实现的出发点。

12.1分析概述

√分为两个阶段:

领域分析:专注于理解问题的真实本质。

应用分析:构建于领域模型之上——合并了用户可见的主要的应用程序制品,用户必须核准这些制品的使用权。

12.2领域类模型

√在分析过程中,类模型的优先级要高于状态和交互模型,这是因为静态结构易于被更好定义,而且会较少依赖于应用程序的细节,并且随着解决方案的逐渐完善也会越来越稳定

 

√步骤

寻找准备数据词典寻找关联寻找对象和链接的属性使用继承组织和简化验证可能用于查询的访问途径迭代并细化模型重新考虑抽象的层次把类分组打包

 

12.2.1寻找类

√类包括物理实体(如房屋、树),也包括概念(如座位分配、付款计划)。

√例如,你正在为图书馆创建目录和检出系统,那就要确定不同种类的资料,例如图书、报刊、唱片、录像等。

√图:ATM示例。查看第11章关于ATM的问题陈述(不看也没事),就可以确定以下的暂定类。

12.2.2保留正确的类 

①冗余类:相同概念的类,保留最具描述里的那个。

②不相关的类:与问题关系不大或干脆无关。

③含混的类:边界定义比较模糊或过于宽泛。

④属性:着重描述独立对象的名称应该被重新声明成属性。

⑤操作:可以应用于对象但不可以被独立使用。

⑥角色:类的名称应该反映其本质特征,而不是反映它所扮演的角色。比如类Doctor、Teacher,都应该归为Person。

⑦实现制品:与真实世界无关的制品。

⑧派生类:忽略从其它类派生而来的类。

12.2.3准备数据词典

√准确描述每一个类的,包含关联、属性、操作和枚举值的一段话。

 

12.2.4寻找关联

关联常常与静态动词或动词短语相对应。

大部分直接选自问题陈述中的短语动词,有一些隐含在语句当中,有一些依赖于对真是世界的了解或假设。

 

12.2.5保留正确的关联

√被删除类之间的关联:删除或用其它类来描述。

√无关关联或实现关联:删除位于问题领域之外或处理实现制品的任何关系。

√动作:重新措辞。

√三元关联:拆分成二元关联。

√派生关联:忽略根据其它关联而定义的关联。

√命名不当的连接:谨慎。

√关联终端名:合适的地方添加。

√限定关联:限定符可以区分在关联中“多”放上的对象。

√多重性

√遗漏关联:增加任何被发现遗漏的关联。

√聚合

 

12.2.6寻找属性

√独立对象的数据特性。

 

12.2.7保留正确的属性

对象

限定符

名称

标志符

关联上的属性

内部取值

细节

不整合的属性

布尔属性

 

12.2.8使用继承来细化

自下而上的泛化

自上而下的转化

泛化对枚举

多重继承

相似的关联

调整继承的层次

 

12.2.9测试访问路径

12.2.10迭代类模型

12.2.11变换抽象的层次

12.2.12把类组织成包

 

12.3领域状态模型

确定具有状态的领域类 → 寻找状态 → 寻找事件 → 构造状态图 → 评价状态图

 

12.4领域交互模型

12.5将分析迭代

细化分析模型 → 重述需求 → 分析和设计

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值