第9章面向对象方法学 本章内容结构 本章引言 学习目标 ●教学内容 本章小结 ●思考和练习 课堂讨论 2021年1月27日 第9章面向对象方法学 第1页
2021年1月27日 第9章 面向对象方法学 第1页 第9章 面向对象方法学 本章内容结构 ⚫ 本章引言 ⚫ 学习目标 ⚫ 教学内容 ⚫ 本章小结 ⚫ 思考和练习 ⚫ 课堂讨论
本章引言 所谓方法学是指组织软件生产过程的一系列方法、技术和 规范,是软件开发者长年成功和失败经验的理论性总结。 研究方法学的目的是,使后人分享前人的成功,避开前人 的失败,把注意力集中在尚未开拓领域的创造性劳动上。 但没有放之四海而皆准的方法学,任何方法学都有其局限 性,软件开发人员大可不必拘泥于某种特定的方法学。 ●本章主要包括面向对象的基本概念、面向对象的方法学 面向对象软件工程、面向对象建模工具、统一建模语言 UML及统一软件开发过程RUP的介绍。 2021年1月27日 第9章面向对象方法学 第2页
第9章 面向对象方法学 本章引言 ⚫ 所谓方法学是指组织软件生产过程的一系列方法、技术和 规范,是软件开发者长年成功和失败经验的理论性总结。 研究方法学的目的是,使后人分享前人的成功,避开前人 的失败,把注意力集中在尚未开拓领域的创造性劳动上。 但没有放之四海而皆准的方法学,任何方法学都有其局限 性,软件开发人员大可不必拘泥于某种特定的方法学。 ⚫ 本章主要包括面向对象的基本概念、面向对象的方法学、 面向对象软件工程、面向对象建模工具、统一建模语言 UML 及统一软件开发过程RUP 的介绍。 2021年1月27日 第2页
学习目标 ●熟悉面向对象方法学的发展、特点和不足 理解面向对象软件工程的相关概念 ●理解和掌握统一建模语言UML的特点、发展及应用 ●理解和掌握统一软件开发过程RUP的特点和建模方 法 ●了解面向对象软件工程的思路、方法和工具 2021年1月27日 第9章面向对象方法学 第3页
2021年1月27日 第9章 面向对象方法学 第3页 学习目标 ⚫ 熟悉面向对象方法学的发展、特点和不足 ⚫ 理解面向对象软件工程的相关概念 ⚫ 理解和掌握统一建模语言UML的特点、发展及应用 ⚫ 理解和掌握统一软件开发过程RUP的特点和建模方 法 ⚫ 了解面向对象软件工程的思路、方法和工具
教学内容 91面向对象方法概述 92面向对象的软件工程 9.3统一建模语言UML 94统一软件开发过程RUP概述 95本章小结和习题 2021年1月27日 第9章面向对象方法学 第4页
2021年1月27日 第9章 面向对象方法学 第4页 教学内容 9.1 面向对象方法概述 9.2 面向对象的软件工程 9.3 统一建模语言UML 9.4 统一软件开发过程RUP 概述 9.5 本章小结和习题
9.1面向对象方法概述 面向对象( Object Oriented,Oo)方法学的出发点和 基本原则是尽可能模拟人类习惯的思维方式,使开发 软件的方法与过程尽可能接近人类解决问题的方法与 过程。 面向对象的方法学可以用下式来表述: 00=Objects Classes Inheritance Communication with messages 911面向对象方法学的发展 912面向对象方法学的优点和不足 2021年1月27日 第9章面向对象方法学 第5页
2021年1月27日 第9章 面向对象方法学 第5页 9.1 面向对象方法概述 面向对象(Object Oriented,OO)方法学的出发点和 基本原则是尽可能模拟人类习惯的思维方式,使开发 软件的方法与过程尽可能接近人类解决问题的方法与 过程。 面向对象的方法学可以用下式来表述: OO = Objects + Classes + Inheritance + Communication with messages 9.1.1 面向对象方法学的发展 9.1.2 面向对象方法学的优点和不足
9.1.1面向对象方法学的发展 在软件工程领域,面向对象的发展历史大致可以划分 为3个阶段: (1)初期阶段(20世纪60年代开始): 由挪威计算中心和奥斯陆大学共同研制Smua语言 (2)发展阶段(20世纪80年代中期到90年代): 以面向对象程序设计语言C++为代表; (3)成熟阶段(20世纪90年代以后):OoP >0OA>OOD→>面向对象方法( Booch, Coad/Yourdon, OMT, OOSE RDD )->UML 2021年1月27日 第9章面向对象方法学 第6页
2021年1月27日 第9章 面向对象方法学 第6页 9.1.1 面向对象方法学的发展 在软件工程领域,面向对象的发展历史大致可以划分 为3 个阶段: (1)初期阶段(20 世纪60 年代开始): 由挪威计算中心和奥斯陆大学共同研制Simula 语言 (2)发展阶段(20 世纪80 年代中期到90 年代): 以面向对象程序设计语言C++ 为代表; (3)成熟阶段(20 世纪90 年代以后):OOP- >OOA->OOD->面向对象方法( Booch, Coad/Yourdon, OMT ,OOSE, RDD)->UML;
9.12面向对象方法学的优点和不足 面向对象方法学的主要优点: (1)与人类习惯的思维方式一致; (2)软件稳定性好; (3)可重用性好; (4)较易 (5)可维护性好,易于测试开发大型软件产品; 2021年1月27日 第9章面向对象方法学 第7页
2021年1月27日 第9章 面向对象方法学 第7页 9.1.2 面向对象方法学的优点和不足 面向对象方法学的主要优点: (1)与人类习惯的思维方式一致; (2)软件稳定性好; (3)可重用性好; (4)较易 (5)可维护性好,易于测试开发大型软件产品;
9.12面向对象方法学的优点和不足 面向对象方法学的不足之处: (1)相对面向过程而言比较麻烦,需要写更多的代码。 (2)占用空间比较多,程序效率比较低,如多态等特性会降低 性能。 (3)创建对象实例的过程往往是非常耗时的工作,因此一些认 为“万事皆对象”的语言对于一些简单类型的操作性能比较 低 2021年1月27日 第9章面向对象方法学 第8页
2021年1月27日 第9章 面向对象方法学 第8页 9.1.2 面向对象方法学的优点和不足 面向对象方法学的不足之处: (1)相对面向过程而言比较麻烦,需要写更多的代码。 (2)占用空间比较多,程序效率比较低,如多态等特性会降低 性能。 (3)创建对象实例的过程往往是非常耗时的工作,因此一些认 为“万事皆对象”的语言对于一些简单类型的操作性能比较 低
9.12面向对象方法学的优点和不足 面向对象方法学的不足之处(续): (4)对系统动态特征表述不充分(主要是整体动态特征),且 反映系统整体功能特征的能力较差。如需要一定的软件支持 环境,只能在现有业务基础上进行分类整理,不能从科学管 理角度进行理顺和优化,初学者不易接受、难学。 (5)面向对象方法学4大特性(抽象、封装、继承和多态)在 一定程度上避免了不合理的操作,并能有效地阻止错误的扩 散,减轻了维护工作量,但是也加大了测试的难度,给软件 测试带来不便。 2021年1月27日 第9章面向对象方法学 第9页
2021年1月27日 第9章 面向对象方法学 第9页 9.1.2 面向对象方法学的优点和不足 面向对象方法学的不足之处(续): (4)对系统动态特征表述不充分(主要是整体动态特征),且 反映系统整体功能特征的能力较差。如需要一定的软件支持 环境,只能在现有业务基础上进行分类整理,不能从科学管 理角度进行理顺和优化,初学者不易接受、难学。 (5)面向对象方法学4 大特性(抽象、封装、继承和多态)在 一定程度上避免了不合理的操作,并能有效地阻止错误的扩 散,减轻了维护工作量,但是也加大了测试的难度,给软件 测试带来不便
92面向对象的软件工程 面向对象的软件工 过程 程是面向对象方 测试 法在软件工程领 分析设计实现 域的全面应用, 框架 从软件工程过程 设计模式 的角度讲,包括 技//分析|体系结 模式「构模式[测试和重构4唯 了管理、过程和 术 活动图 技术3个方面; UMI 面向对象概念 管理 图9.1面向对象软件工程的概念模型示意图 2021年1月27日 第9章面向对象方法学 第10页
2021年1月27日 第9章 面向对象方法学 第10页 9.2 面向对象的软件工程 面向对象的软件工 程是面向对象方 法在软件工程领 域的全面应用, 从软件工程过程 的角度讲,包括 了管理、过程和 技术3 个方面;