新闻动态
问题域模型作用
http://sytm.net 发布日期:2014/1/11 11:56:23

问题域模型的主要作用就是补充或修改面向对象设计中所分析得出的问题。

1 完善用例图

随着对待开发系统问题域和系统责任的了解,软件工程师对用例的理解也变得更加清晰。因此,需要在设计阶段重新复审在需求分析阶段获取的用例,并对用例进行适当的修改、添加或归并。

例如在ATM系统中,由于无论是取钱、存钱、转账还是查询活动均属于ATM系统提供的一类交易,换句话说,取钱、存钱、转账和查询用例与交易用例之间存在着继承关系。因此,可以修改ATM用例图,如图8-2所示。




2 完善类细节

面向对象设计过程需要在面向对象分析过程的基础上细化和补充前一阶段的成果。在面向对香水阶段设计人员针对类图需要完成如下工作:

(1)针对问题域部分的每个类检查它是否具备了表达问题域所需的所有属性和服务。凡是缺少的都应当补充完备。

(2)针对类的每一个属性和服务,检查它对于设计阶段而言的定义是否完整。

(3)针对类之间的关联,进行审查是否表达了类之间的所有关系。

例如,由于对用例图进行了修改,因此就需要在原先分析模型中增加一个类,即交易类。因此,修改后得到的类图如图8-3所示。




3.修改或补充时序图、活动态、状态图

由于,增加了交易类,因此ATM系统的时序图、活动图和状态图均需要作出相应的修改,以反映设计的结果,修改后时序图如图8-4所示。

4.调整需求

有两种情况会导致修改通过面向对象分析所确定的系统需求:一是用户需求或外部环境发生了变化;而是分析员对问题域理解不透彻或缺乏领域专家帮助,以致面向对象分析模型不能完整、准确地反映用户的真是需求。无论出现上述哪种情况,通常都只需简单地修改面向对象分析结果,然后再把这些修改反映到问题域子系统中。




5.重用已有的类

代码重用从设计阶段开始,在研究面向对象分析结果时就应该寻找使用已有类的方法。若因为没有合适的类可以总用而确实需要创建新的类,则在设计这些新类时,必须考虑到将来的可重用性。

6.把问题域类组合在一起

在面向对象设计过程中,设计者往往通过引入一个根类而把问题域类组合在一起。事实上,这是在没有更先进的组合机制可用时才采用的一种组合方法。此外,这样的更累还可以用来建立协议。

7.增添一般化类以建立协议

在设计过程中常常发现,一些具体类需要有一个公共的协议,也就是说,它们都需要定义一组类似的服务(很可能还需要相应的属性)。在这种情况下可以引入一个附加类(例如根类),以便建立这个协议(即命名公共服务集合,这些服务在具体类中仔细定义)。

显然,如图8-5所示,在ATM系统中交易类与查询、转账、存钱和取钱类之间就可以建立一般-特殊的关系,即继承关系。




8.调整继承层次

如果面向对象分析模型中包含了多重继承关系,然而所使用的程序设计语言却并不提供多重继承机制,则必须修改面向对象分析的结果。即使使用支持多重继承的语言,有时也会处于实现考虑而对面向对象分析结果做一些调整。

9.对多态性的调整

当模型中采用多态性表示,而变成语言不支持多态性时,需要进行调整。

10.提高性能

对许多系统(特别是对实时系统)而言,性能时至关重要的指标。提醒的性能要求是用户需求的内容之一。


更多阅读
返回列表
© 2010 TianMei Technology All rights reserved. ICP:辽B-2-4-20100065辽公网安备 21010202000010号  网站地图