您的位置:首页 > 其它

第3周:面向对象方法与UML的历史与发展(邵维忠教授主讲)

2014-03-11 21:02 253 查看
面向对象技术高级课程

教材 :邵维忠、杨芙清《面向对象的分析与设计》,清华大学出版社  2013.01出版

一、不同的分析与设计方法

(一)、功能分解法(function decomposition):以系统需要提供的功能为中心来组织系统。
首先定义各种功能,然后把功能分解为子功能。
对较大的子功能进一步分解,截止到可给出明确的定义。
设计功能/子功能所需要的数据结构
定义功能./子功能之间的接口
作为一种早期的建模方法,没有明确地区分分析与设计



优缺点:
直接地反映用户的需求,工作容易开始。
不能直接地映射问题域,很难检验结果正确性。
对需求变化的适应能力差。
局部的错误和修改很容易产生全局性影响。

(二)、结构化方法
结构化分析(SA),又称数据流法,得到的分析模型是数据流图(DFD),主要模型元素是数据流、加工、文件及端点,外加处理说明和数据字典。
结构化设计(SD),与功能分解法基本相同,分为概要设设计和详细设计。
优缺点:
强调研究问题域,并有严格的法则。
间接映射问题域,不直接映射问题。
分析与设计的概念不一致,从分析到设计的过渡比较困难。
数据流和加工的数量太多,引起分析文档膨胀。

(三)、信息建模法
由实体-关系法(E-R方法)发展而来,核心是实体和关系,都可以带有属性。
后来把实体叫做对象,并使用了类型和子类型对实体进行抽象描述。



信息建模法已很接近面向对象方法,但有以下差别:
强调重点是信息建模和状态建模,而不是对象建模。
实体中只有属性没有操作。
只有属性的继承,不支持操作的继承。
没有采用消息通讯。

(四)、面向对象方法。
面向对象的分析(OOA)、面向对象的设计(OOD)。
运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统。
完整地刻画了问题域中事物。
如实地表达了问题域中事物之间的各种关系。
使系统的复杂性得到控制。

不同的建模方法体现于:
从不同的概念出发来认识问题域。
用不同的概念进行系统构造。
系统对现实世界的映射方式不同。







五、OOA与OOD及OO方法的优点
(一)、什么是OOA——面向对象分析
基本任务:运用面向对象的概念对问题域进行分析,将问题域中的系统责任有关的事物抽象为系统中的对象,定义这些对象的属性与操作,以及它们之间的各种关系。
最终目标:建立一个满足用户需求、直接映射问题域的OOA模型。

(二)、什么是OOD
定义:就是在OOA模型基础上运用面向对象方法进行系统设计,目标是产生一个符合具体实现条件的OOD模型。
早期(80年代末期)的OOD特点:
不基于OOA,大多数基于结构化分析
是OO编程方法的延伸,多与编程语言有关,受Ada影响大
不是纯OO,对某些概念(继承)缺少支持,有一些非OO概念(数据流、包、模块)
不只针对软件生存周期的设计阶段,D有时指Design,有时指Development,涉及一些分析问题,但不彻底。
早期OOD可看作今OOA&D方法的雏形
现今(90年代以后)OOD特点:
以面向对象的分析为基础,不依赖结构化分析
与OOA方法共同构成OOA&D方法体系,但属于软件生存周期的不同阶段。
较全面地体现面向对象方法的概念与原则
大多数方法独立于编程语言,其模型可以通过不同编程语言实现。

(三)、OO方法的优点
软件建模面临的挑战
问题域和系统责任复杂性日益增长,系统越来越庞大
交流问题,领域多样性使软件工程中的交流问题比其他工程更为突出,很容易隐藏下许多错误
需要的不断变化,用户因素、竞争因素、经费因素
软件复用的要求,复用级别提高——分析与设计结果复用。要求在多个系统中复用

面向对象方法的优势
对问题域和系统责任的复杂性具有较强的处理能力
提供了便于各类相关人员交流的共同语言
对需求变化具有较强的适应性
为实现分析与设计级别的软件复用提供了有力的支持
贯穿软件生存周期全过程的一致性:概念、词汇、原则及表示法。保持到设计、编程、测试等阶段,对软件周期的开发、维护及管理都具有重要意义。

六、不同流派的OO方法
方法的异同体现于:概念、表示法、系统模型、开发过程、可用性、技术支持等
(一)、Booch方法
6种模型图:

基本图:必不可少
类图、对象图——对于分析和设计
模块图、进程图——只用于设计
补充图:必要时使用
状态转移图、交互图

过程
宏过程——概念化、分析、设计、演化、维护
微过程——说明类和对象的接口和实现、识别类和对象、识别类和对象的语义、识别类和对象的关系。

特点:思想活跃,开拓与创新。可操作性不强,类图与对象图并存。

(二)、Coad/Yourdon方法
OOA模型分为5个层次
主题层
类及对象层
结构层
属性层
服务层

OOD模型的4个部分
人机交互(HIC)
问题域(PDC)——
任务管理(TMC)
数据管理(DMC)



特点:概念简练、过程清晰。强调概念的一致性,过程指导不够具体。

(三)、Jacobso方法(OOSE)
提出use case(用况)的概念来描述用户需求
三种对象:实体对象、界面对象、控制对象
三维分析模型、四维设计模型——信息、行为、表示+实现环境。
三大过程——分析过程、构造过程、测试过程(如图)



特点:
通过用况描述用户需求
用交互图描述对象之间的交互
用况驱动的观点言之有过

(四)、Rumbaugh方法(OMT)
三个模型:功能模型、对象模型、动态模型
过程:
分析(面向对象)
系统设计(传统方法)
对象设计(面向对象)
实现

特点:
概念严谨,阐述清楚
过程具体,可操作性强
包含了许多非OO的内容
提出若干扩充概念,偏于复杂
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面向对象 uml