chapter 1
DESCRIPTION
Chapter 1. 面向对象分析和设计. 目标. 比较分析和设计的区别 定义面向对象的分析和设计 (OOA/D). 什么是分析和设计 ?. 分析强调的是对问题的理解,而不是如何解决问题。 作正确的事情 (Do the right thing) 设计强调的是给出一个有效的软件实现方案以实现用户的需求。 把事情作正确 (Do the thing right) 为什么要先分析,然后设计 ? 为什么软件开发人员经常会将设计和分析混在一起?. 什么是分析和设计 ( 续 ). 分析和设计之间的界限有时很模糊。 分析和设计处于一个连续的过程中。 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Chapter 1](https://reader036.vdocuments.pub/reader036/viewer/2022082422/56812a97550346895d8e4a88/html5/thumbnails/1.jpg)
Chapter 1
面向对象分析和设计
![Page 2: Chapter 1](https://reader036.vdocuments.pub/reader036/viewer/2022082422/56812a97550346895d8e4a88/html5/thumbnails/2.jpg)
目标 比较分析和设计的区别 定义面向对象的分析和设计 (OOA/D).
![Page 3: Chapter 1](https://reader036.vdocuments.pub/reader036/viewer/2022082422/56812a97550346895d8e4a88/html5/thumbnails/3.jpg)
什么是分析和设计 ? 分析强调的是对问题的理解,而不是如何解决问
题。 作正确的事情 (Do the right thing)
设计强调的是给出一个有效的软件实现方案以实现用户的需求。 把事情作正确 (Do the thing right)
为什么要先分析,然后设计 ? 为什么软件开发人员经常会将设计和分析混在一起?
![Page 4: Chapter 1](https://reader036.vdocuments.pub/reader036/viewer/2022082422/56812a97550346895d8e4a88/html5/thumbnails/4.jpg)
什么是分析和设计 ( 续 )
分析和设计之间的界限有时很模糊。 分析和设计处于一个连续的过程中。 有些人认为是分析的活动,在另外一些人看来却是
设计。
更接近于分析 更接近于设计
- 什么- 需求- 对问题领域的理解
- 如何- 逻辑方案- 对方案的理解和描述
![Page 5: Chapter 1](https://reader036.vdocuments.pub/reader036/viewer/2022082422/56812a97550346895d8e4a88/html5/thumbnails/5.jpg)
面向对象和面向功能 ( 结构化 ) 分析 / 设计
图书馆信息系统
O-O A&D从对象和概念的角度来分解系统 Structured A&D
从功能和过程的角度来分解系统
书目 管理员
书 图书馆
系统
借还图书 购置图书 报表
![Page 6: Chapter 1](https://reader036.vdocuments.pub/reader036/viewer/2022082422/56812a97550346895d8e4a88/html5/thumbnails/6.jpg)
什么是 OOA/D? 面向对象分析和设计的精髓在于:从对象 ( 事物 /
概念 ) 的视角来理解问题领域和解决方案。 面向对象分析强调发现和描述问题领域中的对象
或概念。 面向对象设计强调定义带有属性和方法的软件对
象。
![Page 7: Chapter 1](https://reader036.vdocuments.pub/reader036/viewer/2022082422/56812a97550346895d8e4a88/html5/thumbnails/7.jpg)
面向对象分析 面向对象分析需要目标领域的知识和 OO 分析的
技能 因此,在这个阶段需要一个领域专家和一个 OO 分析
专家。 通常,领域专家在确定问题领域上具有决定权。
OO 分析的结果: 问题领域中的概念 ( 不是类 ) 。 概念之间的关系。 概念具有的属性。
![Page 8: Chapter 1](https://reader036.vdocuments.pub/reader036/viewer/2022082422/56812a97550346895d8e4a88/html5/thumbnails/8.jpg)
面向对象设计 面向对象设计定义了针对问题领域的软件解决方
案 解决方案是基于 OO 分析阶段定义的概念,从这些概
念中设计用于软件系统的类。 这些类可能包含方法。 在设计阶段可能会引入新的概念,属性和关系,有些
将反馈到分析阶段。
![Page 9: Chapter 1](https://reader036.vdocuments.pub/reader036/viewer/2022082422/56812a97550346895d8e4a88/html5/thumbnails/9.jpg)
OOA/D 与 OOP 面向对象分析 / 设计和程序开发是一个渐进的迭
代过程。 后面阶段的内容可能会影响前面阶段的成果。
![Page 10: Chapter 1](https://reader036.vdocuments.pub/reader036/viewer/2022082422/56812a97550346895d8e4a88/html5/thumbnails/10.jpg)
第一个例子
![Page 11: Chapter 1](https://reader036.vdocuments.pub/reader036/viewer/2022082422/56812a97550346895d8e4a88/html5/thumbnails/11.jpg)
一个稍复杂些的例子 [ 定义用例 ]
Dice Game use case:
掷骰子游戏 : 游戏者掷骰子,两个骰子的点数加起来为 7 赢,否则输。
![Page 12: Chapter 1](https://reader036.vdocuments.pub/reader036/viewer/2022082422/56812a97550346895d8e4a88/html5/thumbnails/12.jpg)
一个稍复杂些的例子 [ 定义领域模型 ]
![Page 13: Chapter 1](https://reader036.vdocuments.pub/reader036/viewer/2022082422/56812a97550346895d8e4a88/html5/thumbnails/13.jpg)
一个稍复杂些的例子 [ 定义交互图 ]
![Page 14: Chapter 1](https://reader036.vdocuments.pub/reader036/viewer/2022082422/56812a97550346895d8e4a88/html5/thumbnails/14.jpg)
一个稍复杂些的例子 [ 定义设计类图 ]
![Page 15: Chapter 1](https://reader036.vdocuments.pub/reader036/viewer/2022082422/56812a97550346895d8e4a88/html5/thumbnails/15.jpg)
需要演化的系统