OOAD 1 介绍
OOD的原则和模式:为软件对象分配职责
-
分析(analysis) 强调的是对问题和需求的调查研究,而不是解决方案。
- an investigation of the problem rather than how a solution is defined
-
设计(design) 强调的是满足需求的概念上的解决方案(在软件和硬件方面),而不是其实现。
- a logical solution, how the system fulfills the requirements
OOA
-
面向对象分析(OOA)强调的是在问题领域内发现和描述对象(或概念)。
-
面向对象分析关注从对象的角度创建领域描述。面向对象分析需要鉴别重要的概念、属性和关联。
OOA identifies
Concepts in the problem domain
Relationships among those concepts
Attributes(属性) of those concept
OOD
面向对象设计的过程中,强调的是定义软件对象以及他们如何协作以实现需求。
示例(use case)
-
需求分析可能包括人们如何使用应用的情节或场景,这些情节或场景可以被编写用例(use case)。
-
面向对象分析的结果可以表示为领域模型(domain model),在领域模型中展示重要的领域概念或对象。领域模型并不是对软件对象的描述,他是真实世界领域中的概念和对象的可视化,因此也被称为概念对象模型 (conceptual object model) 。
-
定义交互图(interaction diagram)
通信图(communication diagram) 说明了对象可能如何在它们之间传递消息
顺序图(sequence diagram,UML的一种交互图) 是描述协作的常见表示法,它展示出软件对象之间的消息流,和由消息引起的方法调用。 -
定义设计类图(design class diagram)
1.除了在交互图中显示对象协作的动态视图外,还可。以用设计类图来有效表示类定义的静态视图。这样可以描述类的属性和方法。
2.领域模型表示的是真实世界的类,设计类图表示的是软件类
3.要注意的是,尽管设计类图不同于领域模型,但是其中的某些类名和内容还是相似的。从这一方面讲,OO设计和语言能够缩小软件构建和我们所设想的领域模型之间的差距,即实现低表示差距(lower representational gap)