Chapter 1 面向对象分析和设计
Chapter 1 面向对象分析和设计
目标 口比较分析和设计的区别 口定义面向对象的分析和设计(OOA/D)
目标 比较分析和设计的区别 定义面向对象的分析和设计 (OOA/D)
什么是分析和设计? 口分析强调的是对问题的理解,而不是如何解决问 题 作正确的事情( Do the right thing) 口设计强调的是给出一个有效的软件实现方案以实 现用户的需求 把事情作正确( Do the thing right 口为什么要先分析,然后设计? 今为什么软件开发人员经常会将设计和分析混在一起?
什么是分析和设计? 分析强调的是对问题的理解,而不是如何解决问 题。 ◼ 作正确的事情(Do the right thing) 设计强调的是给出一个有效的软件实现方案以实 现用户的需求。 ◼ 把事情作正确(Do the thing right) 为什么要先分析,然后设计? ➔为什么软件开发人员经常会将设计和分析混在一起?
什么是分析和设计(续) 口分析和设计之间的界限有时很模糊。 口分析和设计处于一个连续的过程中。 口有些人认为是分析的活动,在另外一些人看来却是 设计。 更接近于分析 更接近于设计 什么 如何 需求 逻辑方案 对问题领域的理解 对方案的理解和描述
什么是分析和设计(续) 分析和设计之间的界限有时很模糊。 分析和设计处于一个连续的过程中。 有些人认为是分析的活动,在另外一些人看来却是 设计。 更接近于分析 更接近于设计 -什么 -需求 -对问题领域的理解 -如何 -逻辑方案 -对方案的理解和描述
面向对象和面向功能(结构化)分析/设计 图书馆信息系统 O-O A&D 从对象和概念的角度来分解系统 Structured A&D 从功能和过程的角度来分解系统 系统 书目 管理员 书 图书馆 借还图书购置图书 报表
面向对象和面向功能(结构化)分析/设计 图书馆信息系统 O-O A&D 从对象和概念的角度来分解系统 Structured A&D 从功能和过程的角度来分解系统 书目 管理员 书 图书馆 系统 借还图书 购置图书 报表
什么是OOA/D? 口面向对象分析和设计的精髓在于:从对象(事物/ 概念)的视角来理解问题领域和解决方案。 口面向对象分析强调发现和描述问题领域中的对象 或概念。 口面向对象设计强调定义带有属性和方法的软件对 象
什么是 OOA/D? 面向对象分析和设计的精髓在于:从对象(事物/ 概念)的视角来理解问题领域和解决方案。 面向对象分析强调发现和描述问题领域中的对象 或概念。 面向对象设计强调定义带有属性和方法的软件对 象
面向对象分析 口面向对象分析需要目标领域的知识和OO分析的技 能 因此,在这个阶段需要一个领域专家和一个OO分析专 家 通常,领域专家在确定问题领域上具有决定权。 口OO分析的结果: 问题领域中的概念(不是类)。 概念之间的关系。 概念具有的属性
面向对象分析 面向对象分析需要目标领域的知识和OO分析的技 能 ◼ 因此,在这个阶段需要一个领域专家和一个OO分析专 家。 ◼ 通常,领域专家在确定问题领域上具有决定权。 OO分析的结果: ◼ 问题领域中的概念(不是类)。 ◼ 概念之间的关系。 ◼ 概念具有的属性
面向对象设计 口面向对象设计定义了针对问题领域的软件解决方 案 ■解决方案是基于O○分析阶段定义的概念,从这些概念 中设计用于软件系统的类 这些类可能包含方法 在设计阶段可能会引入新的概念,属性和关系,有些 将反馈到分析阶段
面向对象设计 面向对象设计定义了针对问题领域的软件解决方 案 ◼ 解决方案是基于OO分析阶段定义的概念,从这些概念 中设计用于软件系统的类。 ◼ 这些类可能包含方法。 ◼ 在设计阶段可能会引入新的概念,属性和关系,有些 将反馈到分析阶段
OOA/D与OOP 口面向对象分析/设计和程序开发是一个渐进的迭代 过程 口后面阶段的内容可能会影响前面阶段的成果
OOA/D与OOP 面向对象分析/设计和程序开发是一个渐进的迭代 过程。 后面阶段的内容可能会影响前面阶段的成果
个例子 Book domain concept visualization of title domain concept public class Book representation in a private String title object-oriented programming language public Chapter getchapter(int).]
第一个例子