在OO开发中,至关重要的能力就是熟练地为软件对象分配职责。
《UML和模式应用》这本书给我们了9中基本指导原则,并将他们称之为GRASP,这些原则都有各自的名称,如信息专家和创建者等。
首先我们需要明确一点,什么是分析和设计:
分析强调的是对问题和需求的调查研究,而不是解决方案。例如,如果需要一个新的在线交易系统,那么,应该如何使用它?它应该具有哪些功能。
设计强调的是满足需求的概念上的解决方案,而不是其实现。
那么什么是面向对象分析和设计呢?
在
面向对象分析过程中,强调的是
在问题领域内发现和描述对象(或概念)。例如,在航班信息系统里包含飞机、航班和飞行员等概念。
在
面向对象设计过程中,强调的是
定义软件对象以及它们如何协作以实现需求。例如,软件对象Plane可以有tailNumber属性和getFlightHistory方法。
最后在实现或面向对象程序设计过程中,会实现设计出来的对象,如java中的Plane类。
定义用例
用例不是面向对象制品,而是对情景的记录。
但用例是需求分析中的一种常用工具。
定义领域模型
面向对象
分析关注从对象的角度创建领域描述。面向对象分析需要鉴别重要的概念、属性、和关联。
面向对象分析的
结果可以表示领域模型,在领域模型中展示重要的领域概念或对象。
需要注意的是,领域模型并不是软件对象的描述,它是真实世界领域中的概念和想象可视化。因此被称为
概念对象模型(conceptual object model)。
面向对象
设计关注软件对象的定义——它们的
职责和协作。顺序图是描述协作的常见表示法。它展示出软件对象之间的消息流,和由消息引起的方法调用。
定义设计类图
与领域模型表示的是真实世界的类,设计类图表示的是软件类。
要注意的是,尽管设计类图不同于领域模型,但是其中的某些类名和内容还是相似的。从这一方面讲,OO设计和语言能够缩小软件构件和我们所设想的领域模型之间的差距,即实现低表示差距。(这一点应该是我认为四色原型跟类图相似的原因吧)
最后列出3个概念名词:
概念类——现实世界中的概念或事物。在概念或本质透视图中使用。UP领域模型中包括概念类。
软件类——无论在过程还是方法中,都表示软件构件在规格说明或实现透视图中的类。
实现类——特定OO语言(java)中的类。
面向对象分析与设计之概念
猜你喜欢
转载自mistbow.iteye.com/blog/1165519
今日推荐
周排行