本第15章面向对象软件工程的概念.ppt
《本第15章面向对象软件工程的概念.ppt》由会员分享,可在线阅读,更多相关《本第15章面向对象软件工程的概念.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3部分部分 面向对象的软件工程面向对象的软件工程1第第15章章 面向对象软件工程的概念面向对象软件工程的概念l传统软件开发方法的局限性传统软件开发方法的局限性l统一软件开发过程(统一软件开发过程(RUP)l面向对象的概念面向对象的概念l几种面向对象方法几种面向对象方法2西安交通大学 刘海岩15.1传统软件开发方法的局限性传统软件开发方法的局限性 传统的软件工具、软件技术和抽象层次越传统的软件工具、软件技术和抽象层次越来越难以适应大规模复杂软件系统的开发特点。来越难以适应大规模复杂软件系统的开发特点。软件能力问题已经成为制约软件发展的因素。软件能力问题已经成为制约软件发展的因素。软件工程自软
2、件工程自70年代以来,有力的推动了软年代以来,有力的推动了软件能力的解决。自顶向下的分析与设计的方法、件能力的解决。自顶向下的分析与设计的方法、软件项目的工程化管理、软件工具和开发环境、软件项目的工程化管理、软件工具和开发环境、软件质量保证等都对软件的发展起了非常重要软件质量保证等都对软件的发展起了非常重要的作用。传统的软件开发方法在当时的软件工的作用。传统的软件开发方法在当时的软件工程中起了主导作用,随着系统复杂性、多变性程中起了主导作用,随着系统复杂性、多变性增强,传统方法的缺陷就显露了出来:增强,传统方法的缺陷就显露了出来:3西安交通大学 刘海岩 (1)面向过程为主。系统围绕着由计算机来
3、实)面向过程为主。系统围绕着由计算机来实现功能的复杂过程而建立,在分析和解决问题时现功能的复杂过程而建立,在分析和解决问题时与人们对现实世界的认识有一定差距。与人们对现实世界的认识有一定差距。(2)软件结构稳定性差。需求分析阶段重点是)软件结构稳定性差。需求分析阶段重点是功能模型,难以彻底明确全部需求。设计阶段的功能模型,难以彻底明确全部需求。设计阶段的软件体系结构是基于系统功能建立的。每个模块软件体系结构是基于系统功能建立的。每个模块完成一个基本功能,多个模块的组合完成一个整完成一个基本功能,多个模块的组合完成一个整体功能。一个模块的变动可能会影响到多个模块。体功能。一个模块的变动可能会影响
4、到多个模块。用户的需求大多针对功能,功能的变化会引起体用户的需求大多针对功能,功能的变化会引起体系结构的变化,不利于系统的维护。系结构的变化,不利于系统的维护。4西安交通大学 刘海岩 (3)软件开发的抽象力度小。解决问题的类)软件开发的抽象力度小。解决问题的类型一般用于型一般用于“输入输入-处理处理-输出输出”为核心的数据处为核心的数据处理系统,不适应于复杂的实时、交互、事件驱理系统,不适应于复杂的实时、交互、事件驱动、分布式等新型应用的系统开发。动、分布式等新型应用的系统开发。(4)软件重用未能得到很好的解决。传统的)软件重用未能得到很好的解决。传统的方法一般从方法一般从“零零”开始开发软件
5、,数据与操作开始开发软件,数据与操作作为相互分离的实体来考虑,使软件的可复用作为相互分离的实体来考虑,使软件的可复用性差。重用的实施仅仅是公用模块的调用。面性差。重用的实施仅仅是公用模块的调用。面向对象的封装性、继承性、多态性等特性支持向对象的封装性、继承性、多态性等特性支持软件重用且重用的粒度大。软件的重用导致更软件重用且重用的粒度大。软件的重用导致更快地、高质量地开发软件,为软件工业化生产快地、高质量地开发软件,为软件工业化生产奠定基础。奠定基础。5西安交通大学 刘海岩传统方法数据与过程是分离的传统方法数据与过程是分离的过程过程1 1输入输入输入输入输出输出输出输出过程过程2 2过程过程3
6、 3数据实体数据实体属于该对象属于该对象的数据的数据对象对象处理数据的方法处理数据的方法消息消息消息消息消息消息消息消息对象把数据和处理数据的方法封状成一个单元对象把数据和处理数据的方法封状成一个单元对象把数据和处理数据的方法封状成一个单元对象把数据和处理数据的方法封状成一个单元6西安交通大学 刘海岩传统方法与面向对象方法的比较传统方法与面向对象方法的比较面向对象方法面向对象方法面向对象方法面向对象方法面向对象方法面向对象方法系统是交互对象的集合系统是交互对象的集合系统是交互对象的集合系统是交互对象的集合系统是交互对象的集合系统是交互对象的集合对象与人或其它对象交互对象与人或其它对象交互对象与
7、人或其它对象交互对象与人或其它对象交互对象与人或其它对象交互对象与人或其它对象交互对象发送与响应消息对象发送与响应消息对象发送与响应消息对象发送与响应消息对象发送与响应消息对象发送与响应消息传统方法传统方法传统方法传统方法系统是过程的集合系统是过程的集合系统是过程的集合系统是过程的集合过程与数据实体交互过程与数据实体交互过程与数据实体交互过程与数据实体交互过程接受输入并产生输出过程接受输入并产生输出过程接受输入并产生输出过程接受输入并产生输出7西安交通大学 刘海岩15.2 统一软件开发过程统一软件开发过程 简称简称RUP(Rational Unified Process),),98年年6月推出
8、,该过程强调了开发方法的统一、月推出,该过程强调了开发方法的统一、建模语言的统一、研究成果的统一。该过程是建模语言的统一、研究成果的统一。该过程是基于构件的,即所构造的系统是由软件构件通基于构件的,即所构造的系统是由软件构件通过明确定义的接口相互连接所建造起来的。它过明确定义的接口相互连接所建造起来的。它使用使用UML来制定软件系统的所有蓝图。来制定软件系统的所有蓝图。1、RUP的主要特点:的主要特点:(1)用例驱动)用例驱动 用例作为系统分析、设计、实现和测试的基用例作为系统分析、设计、实现和测试的基本输入。本输入。8西安交通大学 刘海岩 即用例不只是一种确定系统需求的工具,即用例不只是一种
9、确定系统需求的工具,它还能驱动系统的设计、实现和测试的进行。它还能驱动系统的设计、实现和测试的进行。基于用例模型,开发人员可以创建一系列基于用例模型,开发人员可以创建一系列实现这些用例的设计模型和实现模型。开发人实现这些用例的设计模型和实现模型。开发人员可以审查每个后续建立的模型是否与用例模员可以审查每个后续建立的模型是否与用例模型一致。测试人员测试实现以确定实现模型的型一致。测试人员测试实现以确定实现模型的构件是否实现了用例。所以用例启动了开发过构件是否实现了用例。所以用例启动了开发过程,还使开发过程结合为一体。开发过程是沿程,还使开发过程结合为一体。开发过程是沿着一系列从用例得到的工作流前
10、进的。着一系列从用例得到的工作流前进的。9西安交通大学 刘海岩下图显示了用例模型与其他模型之间的相关性:下图显示了用例模型与其他模型之间的相关性:用例模型用例模型由由建立建立分析模型分析模型为系统描述为系统描述一系列类一系列类由由设计设计设计模型设计模型为系统定义为系统定义一系列子系一系列子系统和界面统和界面由由实现实现实现模型实现模型将类映射将类映射到构件到构件由由分配分配测试模型测试模型由由验证验证验证系统验证系统是否提供是否提供了用例模了用例模型中描述型中描述的功能的功能配置模型配置模型定义软件定义软件分布分布10西安交通大学 刘海岩 (2)以架构()以架构(Architecture)为
11、中心为中心 软件系统的架构从不同角度描述了即将构造软件系统的架构从不同角度描述了即将构造的系统,它刻画了系统的整体设计,去掉了细节的系统,它刻画了系统的整体设计,去掉了细节部分,突出了系统的重要特征,包含了系统中最部分,突出了系统的重要特征,包含了系统中最重要的静态结构和动态行为。重要的静态结构和动态行为。架构是根据应用领域的需要逐渐发展起来的,架构是根据应用领域的需要逐渐发展起来的,并在用例中得到反映。每种产品都具有并在用例中得到反映。每种产品都具有功能功能和和表表现形式现形式,功能与用例对应,表现形式与架构对应。功能与用例对应,表现形式与架构对应。用例与构架是相互影响的,用例在实现时必须符
12、用例与构架是相互影响的,用例在实现时必须符合于架构,架构必须预留空间以实现现在或将来合于架构,架构必须预留空间以实现现在或将来所有需要的用例。所有需要的用例。11西安交通大学 刘海岩(3)迭代与增量的过程)迭代与增量的过程 迭代指工作流中的步骤,增量指产品中增迭代指工作流中的步骤,增量指产品中增加的部分。加的部分。迭代过程要处理一组用例,这组用例合起迭代过程要处理一组用例,这组用例合起来能扩展所开发产品的可用性,后续的迭代过程来能扩展所开发产品的可用性,后续的迭代过程建立在前一次迭代过程末期所开发的产品上。建立在前一次迭代过程末期所开发的产品上。架构架构提供了一种结构来指导提供了一种结构来指导
13、迭代迭代过程中的过程中的工作,工作,用例用例则确定了目标并驱动每次迭代的工作。则确定了目标并驱动每次迭代的工作。三者的关系就像三条腿的凳子!三者的关系就像三条腿的凳子!12西安交通大学 刘海岩(4)基于构件)基于构件 统一过程所构造的软件系统,是由软件构统一过程所构造的软件系统,是由软件构件通过明确定义的接口相互连接所建造起来的。件通过明确定义的接口相互连接所建造起来的。(5)使用)使用UML 统一过程使用统一过程使用UML来制定软件系统的所来制定软件系统的所有蓝图,创建了有蓝图,创建了4类模型类模型用例模型、分析模型、用例模型、分析模型、设计模型和实现模型设计模型和实现模型。13西安交通大学
14、 刘海岩 (6)过程可剪裁)过程可剪裁 用统一过程开发软件时,各阶段应该有多用统一过程开发软件时,各阶段应该有多长时间的比例?各个阶段迭代多少次是合适的长时间的比例?各个阶段迭代多少次是合适的?候选架构可以在哪一点完全建立起来?这些?候选架构可以在哪一点完全建立起来?这些问题的答案取决于系统的规模、项目的性质、问题的答案取决于系统的规模、项目的性质、开发组织的领域经验,甚至包括相关人员有效开发组织的领域经验,甚至包括相关人员有效配合程度。总之,统一过程是一个框架,可以配合程度。总之,统一过程是一个框架,可以根据具体情况加以裁剪,以此来适应各种各样根据具体情况加以裁剪,以此来适应各种各样的开发过
15、程。的开发过程。14西安交通大学 刘海岩2、RUP模型模型 RUP重复一系列周期,每个周期由一个重复一系列周期,每个周期由一个交付给用户的产品结束。交付给用户的产品结束。每个周期划分为初始、细化、构造和移交每个周期划分为初始、细化、构造和移交四个阶段,每个阶段围绕着五个核心工作流四个阶段,每个阶段围绕着五个核心工作流(需求、分析、设计、实现、测试)分别迭代。(需求、分析、设计、实现、测试)分别迭代。模型见下图:模型见下图:15西安交通大学 刘海岩16西安交通大学 刘海岩 初始阶段初始阶段:进行问题定义,确定目标,:进行问题定义,确定目标,评估其可行性,降低关键风险。评估其可行性,降低关键风险。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 15 面向 对象 软件工程 概念
限制150内