150 likes | 278 Views
Chapter 1. 面向对象分析和设计. 目标. 比较分析和设计的区别 定义面向对象的分析和设计 (OOA/D). 什么是分析和设计 ?. 分析强调的是对问题的理解,而不是如何解决问题。 作正确的事情 (Do the right thing) 设计强调的是给出一个有效的软件实现方案以实现用户的需求。 把事情作正确 (Do the thing right) 为什么要先分析,然后设计 ? 为什么软件开发人员经常会将设计和分析混在一起?. 什么是分析和设计 ( 续 ). 分析和设计之间的界限有时很模糊。 分析和设计处于一个连续的过程中。
E N D
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赢,否则输。