软件工程概述面向对象的方法论及作用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
14
9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型 9.6 功能模型 9.7 3种模型之间的关系
15
面向对象的概念
对象
对象既可以是具体的物理实体的抽象,也可以是人为的概念,或 者是任何有明确边界和意义的东西。 例如,一名职工、一家公司、一个窗口、一座图书馆、一本图书 、贷款、借款等等,都可以作为一个对象。
表现(2): 瀑布模型要求:预先定义并“冻结”软件需求 实际情况:某些系统的需求是一个逐渐明确的过程,且预先定义 的需求到软件完成时可能已经过时
3
传统方法学的缺点 – cont.
本质上是功能分解,以实现功能的过程为中心,而用户的需 求变化主要是针对功能的 这就使基于过程的设计不易被理解;且功能变化往往引起结 构变化较大,稳定性不好
软件工程概述 面向对象的方法论
及作用
1
软件工程方法学的思考
软件工程给软件产业带来巨大进步! 部分的缓解了软件危机! 大量中、小规模的软件项目获得成功!
但是,人们发现一个现象...
传统方法学应用于大型项目时,很少成功!
2
传统方法学的缺点
瀑布模型的缺点:僵化
表现(1): 瀑布模型要求:生命周期各阶段间遵守严格的顺序 实际情况:软件开发往往在反复实践中完成
OOM:一个class所有的 instances 都可重用它的代码;由 inheritance 派生出的新的 class 可重用其父类的代码,并且可以 修改、扩充而不影响其父类的使用。
4. 可维护性好
传统方法:可维护性是最令人头痛的问题。
OOM:从以下几方面改善了可维护性 稳定性好:需求的变化不牵动全局,只需局部修改;
Class 独立性强(易修改):只要修改不涉及class的对外接口,则 内部修改完全不影响外部调用;
继承(Inheritance)和多态性(polymorphism)使其易被修改和扩充; 容易理解、容易测试、调试
13
面向对象方法学的优点 – 小结
OOM并不是减少了开发时间,而是通过提高可重用性、可维护 性,进行扩充和修改的容易程度等,从长远角度改进了软件的质 量。OOM与Prototyping结合使用效果好
面向对象方法:属性与行为统一 对象是行为的主体
9
OOM的4个要素:
①对象(object):世界由对象组成 ② 类 (class) :具有相同属性和操作的对象可划分为类;单个对 象可视为某一类的实例 (instance) ③继承(inheritance):类可分层下层子类与上层父类有相同特征, 称为继承 ④消息(message):对象间只能通过发送消息进行联系,外界不 能处理对象的内部数据,只能通过消息请求它进行处理(如果它 提供相应消息的话)
5
提纲
9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型 9.6 功能模型 9.7 3种模型之间的关系
6百度文库
9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型 9.6 功能模型 9.7 3种模型之间的关系
系统有明确的边界定义,且系统结构依赖于系统边界的定义 ,这样的系统不易扩充和修改
数据与操作分开处理,可能造成软构件对具体应用环境的依 赖,可重用性较差
4
面向对象方法学
20世纪60年代后期出现面向对象编程语言Simula-67,提出 类和对象的概念 20世纪80年代中期开始面向对象分析和设计研究,逐步形成 面向对象的方法学 20世纪90年代末面向对象方法学成为软件开发技术的首选范 型
面向对象方法把对象作为由数据及可以施加在这些数据上的操作 所构成的统一体
8
解空间与问题空间的“语义断层”
问题空间对象是行为是丰富多彩的 解空间对象的行为的非常呆板的 需要借助于复杂的算法才能够操纵解空间对象
客观世界实体:静态属性+动态行为
传统方法:属性与行为分离 解空间对象为描述实体属性的数据,在程序中从外部操纵它
Class:由特殊到一般的归纳(induction) Inheritance:由一般到特殊的演绎(deduction)
2. 稳定性好
传统方法:结构依赖于功能,不稳定。 OOM:以object模拟实体,需求变化不会引起结构的整体变化, 因为实体相对稳定,故系统也相应稳定。
12
3. 可重用性好
传统方法:通过建立标准函数库来重用软构件。但标准函数缺少 必要的“柔性”,难以适应不同场合的不同需要。
OOM = Object + Class + Inheritance + Communication with messages
10
OOM = 对象+类+继承机制+消息机制
基于对象(objects-based)方法 对象-消息
基于类(class-based)方法 类-对象-消息
面向对象(objects-oriented) 类-对象-消息-继承
7
面向对象方法学概述
面向对象方法学(Object - Oriented Methodology),简称 OOM
面向对象方法学的要点
(1) OOM的出发点和基本原则是 尽可能模拟人类习惯的思维方式,使描述问题的问题空间(问题域 )与实现解法的解空间(求解域)在结构上尽可能一致
(2) 面向对象方法是一种以数据和信息为主线,把数据和处理相结 合的方法
11
面向对象方法学的优点
1. 与人类习惯的思维方式一致
传统方法:面向过程设计,以计算为核心,数据与操作分离,不 易理解。 OOM:以object 为核心,强调对现实概念的模拟而不强调算法。 “面向对象方法学的基本原则,是按照人们习惯的思维方式建立 问题域的模型,开发出尽可能直观、自然地表现求解方法的软件 系统”。
gi(X,S)
输 出
S’
输 出
16
Object : = ID + Method + Attribute + Message
一个对象好像一个黑盒子,表示它内 部的数据和实现各个操作的代码及局 部数据,都被封装在这个黑盒子内部, 在外部是看不见的,更不能从外部去 访问或修改这些数据代码。
fi(X)
f1 f2 f3 …… fi
……
fn
9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型 9.6 功能模型 9.7 3种模型之间的关系
15
面向对象的概念
对象
对象既可以是具体的物理实体的抽象,也可以是人为的概念,或 者是任何有明确边界和意义的东西。 例如,一名职工、一家公司、一个窗口、一座图书馆、一本图书 、贷款、借款等等,都可以作为一个对象。
表现(2): 瀑布模型要求:预先定义并“冻结”软件需求 实际情况:某些系统的需求是一个逐渐明确的过程,且预先定义 的需求到软件完成时可能已经过时
3
传统方法学的缺点 – cont.
本质上是功能分解,以实现功能的过程为中心,而用户的需 求变化主要是针对功能的 这就使基于过程的设计不易被理解;且功能变化往往引起结 构变化较大,稳定性不好
软件工程概述 面向对象的方法论
及作用
1
软件工程方法学的思考
软件工程给软件产业带来巨大进步! 部分的缓解了软件危机! 大量中、小规模的软件项目获得成功!
但是,人们发现一个现象...
传统方法学应用于大型项目时,很少成功!
2
传统方法学的缺点
瀑布模型的缺点:僵化
表现(1): 瀑布模型要求:生命周期各阶段间遵守严格的顺序 实际情况:软件开发往往在反复实践中完成
OOM:一个class所有的 instances 都可重用它的代码;由 inheritance 派生出的新的 class 可重用其父类的代码,并且可以 修改、扩充而不影响其父类的使用。
4. 可维护性好
传统方法:可维护性是最令人头痛的问题。
OOM:从以下几方面改善了可维护性 稳定性好:需求的变化不牵动全局,只需局部修改;
Class 独立性强(易修改):只要修改不涉及class的对外接口,则 内部修改完全不影响外部调用;
继承(Inheritance)和多态性(polymorphism)使其易被修改和扩充; 容易理解、容易测试、调试
13
面向对象方法学的优点 – 小结
OOM并不是减少了开发时间,而是通过提高可重用性、可维护 性,进行扩充和修改的容易程度等,从长远角度改进了软件的质 量。OOM与Prototyping结合使用效果好
面向对象方法:属性与行为统一 对象是行为的主体
9
OOM的4个要素:
①对象(object):世界由对象组成 ② 类 (class) :具有相同属性和操作的对象可划分为类;单个对 象可视为某一类的实例 (instance) ③继承(inheritance):类可分层下层子类与上层父类有相同特征, 称为继承 ④消息(message):对象间只能通过发送消息进行联系,外界不 能处理对象的内部数据,只能通过消息请求它进行处理(如果它 提供相应消息的话)
5
提纲
9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型 9.6 功能模型 9.7 3种模型之间的关系
6百度文库
9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型 9.6 功能模型 9.7 3种模型之间的关系
系统有明确的边界定义,且系统结构依赖于系统边界的定义 ,这样的系统不易扩充和修改
数据与操作分开处理,可能造成软构件对具体应用环境的依 赖,可重用性较差
4
面向对象方法学
20世纪60年代后期出现面向对象编程语言Simula-67,提出 类和对象的概念 20世纪80年代中期开始面向对象分析和设计研究,逐步形成 面向对象的方法学 20世纪90年代末面向对象方法学成为软件开发技术的首选范 型
面向对象方法把对象作为由数据及可以施加在这些数据上的操作 所构成的统一体
8
解空间与问题空间的“语义断层”
问题空间对象是行为是丰富多彩的 解空间对象的行为的非常呆板的 需要借助于复杂的算法才能够操纵解空间对象
客观世界实体:静态属性+动态行为
传统方法:属性与行为分离 解空间对象为描述实体属性的数据,在程序中从外部操纵它
Class:由特殊到一般的归纳(induction) Inheritance:由一般到特殊的演绎(deduction)
2. 稳定性好
传统方法:结构依赖于功能,不稳定。 OOM:以object模拟实体,需求变化不会引起结构的整体变化, 因为实体相对稳定,故系统也相应稳定。
12
3. 可重用性好
传统方法:通过建立标准函数库来重用软构件。但标准函数缺少 必要的“柔性”,难以适应不同场合的不同需要。
OOM = Object + Class + Inheritance + Communication with messages
10
OOM = 对象+类+继承机制+消息机制
基于对象(objects-based)方法 对象-消息
基于类(class-based)方法 类-对象-消息
面向对象(objects-oriented) 类-对象-消息-继承
7
面向对象方法学概述
面向对象方法学(Object - Oriented Methodology),简称 OOM
面向对象方法学的要点
(1) OOM的出发点和基本原则是 尽可能模拟人类习惯的思维方式,使描述问题的问题空间(问题域 )与实现解法的解空间(求解域)在结构上尽可能一致
(2) 面向对象方法是一种以数据和信息为主线,把数据和处理相结 合的方法
11
面向对象方法学的优点
1. 与人类习惯的思维方式一致
传统方法:面向过程设计,以计算为核心,数据与操作分离,不 易理解。 OOM:以object 为核心,强调对现实概念的模拟而不强调算法。 “面向对象方法学的基本原则,是按照人们习惯的思维方式建立 问题域的模型,开发出尽可能直观、自然地表现求解方法的软件 系统”。
gi(X,S)
输 出
S’
输 出
16
Object : = ID + Method + Attribute + Message
一个对象好像一个黑盒子,表示它内 部的数据和实现各个操作的代码及局 部数据,都被封装在这个黑盒子内部, 在外部是看不见的,更不能从外部去 访问或修改这些数据代码。
fi(X)
f1 f2 f3 …… fi
……
fn