Chapter 1 - 面向对象分析和设计.ppt

Download Report

Transcript Chapter 1 - 面向对象分析和设计.ppt

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