面向对象分析与设计之概念

在OO开发中,至关重要的能力就是熟练地为软件对象分配职责。

《UML和模式应用》这本书给我们了9中基本指导原则,并将他们称之为GRASP,这些原则都有各自的名称,如信息专家和创建者等。

首先我们需要明确一点,什么是分析和设计:

分析强调的是对问题和需求的调查研究,而不是解决方案。例如,如果需要一个新的在线交易系统,那么,应该如何使用它?它应该具有哪些功能。

设计强调的是满足需求的概念上的解决方案,而不是其实现。

那么什么是面向对象分析和设计呢?

面向对象分析过程中,强调的是 在问题领域内发现和描述对象(或概念)。例如,在航班信息系统里包含飞机、航班和飞行员等概念。

面向对象设计过程中,强调的是 定义软件对象以及它们如何协作以实现需求。例如,软件对象Plane可以有tailNumber属性和getFlightHistory方法。

最后在实现或面向对象程序设计过程中,会实现设计出来的对象,如java中的Plane类。

定义用例

用例不是面向对象制品,而是对情景的记录。 但用例是需求分析中的一种常用工具

定义领域模型

面向对象 分析关注从对象的角度创建领域描述。面向对象分析需要鉴别重要的概念、属性、和关联。

面向对象分析的 结果可以表示领域模型,在领域模型中展示重要的领域概念或对象。

需要注意的是,领域模型并不是软件对象的描述,它是真实世界领域中的概念和想象可视化。因此被称为 概念对象模型(conceptual object model)。

面向对象 设计关注软件对象的定义——它们的 职责和协作。顺序图是描述协作的常见表示法。它展示出软件对象之间的消息流,和由消息引起的方法调用。

定义设计类图

与领域模型表示的是真实世界的类,设计类图表示的是软件类。

要注意的是,尽管设计类图不同于领域模型,但是其中的某些类名和内容还是相似的。从这一方面讲,OO设计和语言能够缩小软件构件和我们所设想的领域模型之间的差距,即实现低表示差距。(这一点应该是我认为四色原型跟类图相似的原因吧)

最后列出3个概念名词:

概念类——现实世界中的概念或事物。在概念或本质透视图中使用。UP领域模型中包括概念类。

软件类——无论在过程还是方法中,都表示软件构件在规格说明或实现透视图中的类。

实现类——特定OO语言(java)中的类。

猜你喜欢

转载自mistbow.iteye.com/blog/1165519