本第15章面向对象软件工程的概念.ppt

上传人:hyn****60 文档编号:70741696 上传时间:2023-01-27 格式:PPT 页数:32 大小:122.50KB
返回 下载 相关 举报
本第15章面向对象软件工程的概念.ppt_第1页
第1页 / 共32页
本第15章面向对象软件工程的概念.ppt_第2页
第2页 / 共32页
点击查看更多>>
资源描述

《本第15章面向对象软件工程的概念.ppt》由会员分享,可在线阅读,更多相关《本第15章面向对象软件工程的概念.ppt(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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西安交通大学 刘海岩 初始阶段初始阶段:进行问题定义,确定目标,:进行问题定义,确定目标,评估其可行性,降低关键风险。评估其可行性,降低关键风险。

16、细化阶段细化阶段:制定项目计划、配置各类资:制定项目计划、配置各类资源、建立系统架构(包括各类视图)。源、建立系统架构(包括各类视图)。构造阶段构造阶段:开发整个产品,并确保产品:开发整个产品,并确保产品可移交给用户。可移交给用户。移交阶段移交阶段:产品发布、安装、用户培训。:产品发布、安装、用户培训。17西安交通大学 刘海岩 在每个阶段的每次迭代的最后,用例模在每个阶段的每次迭代的最后,用例模型、分析模型、设计模型、实现模型都会增型、分析模型、设计模型、实现模型都会增量,每个阶段结束的里程碑处,管理层做出量,每个阶段结束的里程碑处,管理层做出是否继续、进度、预算、是否给下一阶段提是否继续、进

17、度、预算、是否给下一阶段提供资助等决定。供资助等决定。不同阶段工作流的侧重点不同,前两阶不同阶段工作流的侧重点不同,前两阶段大部分工作集中在需求、分析和架构设计段大部分工作集中在需求、分析和架构设计上;在构造阶段,重点转移到详细设计、实上;在构造阶段,重点转移到详细设计、实现和测试上。现和测试上。18西安交通大学 刘海岩15.3 面向对象的概念面向对象的概念 面向对象(面向对象(Object Oriented,简称,简称OO)的的概念起源于概念起源于20世纪世纪60年代中期的年代中期的Simula 67。80年代初,年代初,Smalltalk语言及其程序设计环境的出语言及其程序设计环境的出现成

18、为面向对象技术发展的一个重要里程碑。现成为面向对象技术发展的一个重要里程碑。80年代中期硬件的发展使年代中期硬件的发展使C到到C+过过渡平渡平滑,推出了相滑,推出了相应应工具及面向工具及面向对对象集成象集成环环境,使境,使OOP模式模式进进入主流。入主流。80年代中后期,面向年代中后期,面向对对象象分析与分析与设计设计的研究开始的研究开始发发展。展。进进入入90年代,面年代,面向向对对象象软软件工程成了件工程成了许许多多软软件件产产品的建造笵型。品的建造笵型。19西安交通大学 刘海岩(1)对对象象(object)是是现实现实世界中个体或事物的抽象表示。封世界中个体或事物的抽象表示。封装了其属性

19、及相关的操作。属性表示装了其属性及相关的操作。属性表示对对象的性象的性质质,属性,属性值规值规定了定了对对象所有可能的状象所有可能的状态态。对对象象的操作指出了的操作指出了该对该对象具有的行象具有的行为为并提供了并提供了对对外外的服的服务务。(2)类类(class)是具有相同属性和相同操作的是具有相同属性和相同操作的对对象的抽象。象的抽象。通常用通常用类类名、名、类类的属性、的属性、类类的操作三方面的内的操作三方面的内容来定意一个容来定意一个类类。一个具体。一个具体对对象是象是类类的一个的一个实实例。例。20西安交通大学 刘海岩 (3)消息)消息(message)是一个是一个对对象象发发送送给

20、给另一个另一个对对象的操作象的操作请请求。消息一般由三部分求。消息一般由三部分组组成:成:对对象名、消息象名、消息名、参数。消息名、参数。消息传递传递是是对对象与外部世界相互象与外部世界相互通信的唯一途径。通信的唯一途径。(4)方法)方法(method)是是对对象操作的象操作的实现实现,描述了,描述了对对象中操作象中操作的算法和响的算法和响应应消息的方式。消息的方式。21西安交通大学 刘海岩 (5 5)继继承承(inheritance)(inheritance)是子是子类类自自动动的共享其父的共享其父类类中定中定义义的属性和操的属性和操作的机制,作的机制,该该机制构成了机制构成了类类的的层层次

21、次结结构。构。较较高高层层的父的父类类称称为为基基类类、超、超类类、一般、一般类类。子。子类类称称为为派生派生类类、特殊、特殊类类。子。子类类除了除了继继承父承父类类的特征,的特征,还还可有可有自己的特征。自己的特征。继继承有承有传递传递性,子性,子类类能能继继承上承上层层的的全部特征。全部特征。继继承性使得相似的承性使得相似的对对象可以共享程序代象可以共享程序代码码和和数据数据结结构,从而构,从而简简化了化了创创建建类类及及对对象的工作量,象的工作量,基基类类解决一般性解决一般性问题问题,派生,派生类类解决特殊解决特殊问题问题,提,提高了高了软软件的可重用性。件的可重用性。继继承性承性还还使

22、得使得软软件便于件便于维维护护,当需要,当需要扩扩充充软软件原有功能件原有功能时时,从要修改的,从要修改的类类中派生出一个子中派生出一个子类类,在,在该该子子类类中添加新的代中添加新的代码码。22西安交通大学 刘海岩 (6)多)多态态(polymorphism)指在指在类类的不同的不同层层次上可以使用相同的操作次上可以使用相同的操作名。同一操作名可有不同的名。同一操作名可有不同的实现实现方式,运行方式,运行时时可可动态动态地地选择选择哪一个算法。哪一个算法。多多态态性增加了性增加了软软件的灵活性,可件的灵活性,可扩扩充性,充性,通用功能的操作放在高通用功能的操作放在高层层,不同地,不同地实现这

23、实现这一功一功能的行能的行为为放在低放在低层层,以以实现实现不同的相不同的相应应。23西安交通大学 刘海岩15.4 几种面向对象方法几种面向对象方法 20世纪世纪80年代以来,出现了几十种面向对年代以来,出现了几十种面向对象软件开发方法。每一种都有自己的符号体系和象软件开发方法。每一种都有自己的符号体系和开发过程,都支持以下基本活动:开发过程,都支持以下基本活动:标识类标识类及及对对象象 描述描述类类及及对对象之象之间间的关系的关系 定定义类义类的属性和操作的属性和操作 1、Booch方法方法 Booch是面向是面向对对象方法最早的提出者之一,象方法最早的提出者之一,提出了面向提出了面向对对象

24、象软软件工程的概念。提出了件工程的概念。提出了“微开微开发过发过程程”和和“宏开宏开发过发过程程”的思想。的思想。24西安交通大学 刘海岩 微开微开发过发过程:定程:定义义一一组组分析任分析任务务,包括,包括标标识类识类和和对对象以及象以及类类和和对对象的象的语义语义、定、定义类义类和和对对象象间间的关系、描述的关系、描述类类和和对对象的象的动态动态行行为为。宏开发过程:将微过程反复应用,并包含宏开发过程:将微过程反复应用,并包含了体系结构设计的计划活动:了体系结构设计的计划活动:将相似的将相似的对对象聚集到独立的模象聚集到独立的模块块;描述描述对对象管理、内存管理、象管理、内存管理、错误处错

25、误处理等其理等其它功能的它功能的实实施;施;可使用原型可使用原型对对上述任上述任务进务进行精化;行精化;将同将同时执时执行的行的进进程分配到不同的程分配到不同的处处理机。理机。该该方法提出建立以下模型:方法提出建立以下模型:类图类图、对对象象图图、状、状态转态转移移图图、时时序序图图、模、模块图块图、进进程程图图。25西安交通大学 刘海岩2、Coad/Yourdon方法方法 著名的著名的OOA/OOD方法,也是最早的面向方法,也是最早的面向对象的分析与设计方法之一。简单、易学。对象的分析与设计方法之一。简单、易学。(1)OOA阶段的活动:阶段的活动:标识类标识类及及对对象象 定定义结义结构(一

26、般构(一般-特殊、整体特殊、整体-部分)部分)划分主划分主题题 定定义义属性及属性及对对象象间间的的实实例例连连接接 定定义义服服务务及及对对象象间间的消息的消息连连接接 上述任上述任务务迭代迭代进进行,行,产产生生 5个个层层次的次的问题问题域模型(主域模型(主题层题层、类类及及对对象象层层、结结构构层层、属性、属性层层、服、服务层务层)。26西安交通大学 刘海岩 (2)OOD阶段的活动阶段的活动 由由5个层次上的个层次上的 4个方面组成:个方面组成:问题问题域部分域部分 人机交互部分人机交互部分 任任务务管理部分管理部分 数据管理部分数据管理部分 27西安交通大学 刘海岩3、OMT方法方法

27、 Rumbaugh等人提出的等人提出的对对象建模技象建模技术术(Object Model Technology,OMT),该该方方法法强强调调建立建立 3 3种模型,并将种模型,并将软软件开件开发过发过程划分程划分为为以下以下 3 3个个阶阶段:段:(1)系)系统统分析分析 问题问题描述描述 建立建立对对象模型象模型 产产品:品:对对象模型象模型对对象象图图数据字典数据字典 建立建立动态动态模型模型 产产品:品:动态动态模型状模型状态图态图事件跟踪事件跟踪图图 建立功能模型建立功能模型 产品:功能模型数据流图约束产品:功能模型数据流图约束28西安交通大学 刘海岩 (2)系统设计)系统设计 将系

28、将系统统分解分解为为各个子系各个子系统统 确定确定问题问题中固有的并中固有的并发发性性 将各子系将各子系统统分配分配给处给处理器理器 数据存数据存储储管理管理 全局全局资资源管理源管理 选择软选择软件控制机制件控制机制 边界条件处理边界条件处理 29西安交通大学 刘海岩 (3)对象设计)对象设计 对分析模型细化:对分析模型细化:将三种模型将三种模型结结合起来以合起来以获获得得对对象象类类上的上的操作。如功能模型中的加工,操作。如功能模型中的加工,动态动态模型中模型中对应对应一个事件的活一个事件的活动动。设计实现设计实现操作的算法操作的算法 优优化数据化数据访问访问路径路径 实现实现系系统设计统

29、设计中的控制机制中的控制机制 为为提高提高继继承而承而调调整整类结类结构构 设计对设计对象之象之间间的关的关联联 将将类类和关和关联联集成到模集成到模块块中中 30西安交通大学 刘海岩 4、Jacobson方法方法 也称也称OOSE方法。最大特点是强调方法。最大特点是强调用例用例(Use-Case),每一个用例就是一个使用系统的方,每一个用例就是一个使用系统的方式,用例的执行将引发执行一系列与行为相关的式,用例的执行将引发执行一系列与行为相关的事务。事务。该方法将用例贯穿于整个开发阶段,并在用该方法将用例贯穿于整个开发阶段,并在用例描述中引入了例描述中引入了角色或参与者角色或参与者(Actor

30、)的概念。的概念。角色指使用系统的人以及与系统相互作用的软硬角色指使用系统的人以及与系统相互作用的软硬件环境。件环境。该方法还将对象区分为该方法还将对象区分为实体对象实体对象(业务对象)(业务对象)、接口对象接口对象(界面对象)和(界面对象)和控制对象控制对象。这些概念。这些概念都用到了都用到了RUP中。中。31西安交通大学 刘海岩 Jacobson方法的方法的分析活动分析活动:定义潜在的角色、识别问题域中的对象和定义潜在的角色、识别问题域中的对象和关系,基于需求规格说明和角色的需要描述用例。关系,基于需求规格说明和角色的需要描述用例。设计活动设计活动:从用例的描述中发现与设计有关的对象,从用例的描述中发现与设计有关的对象,并描述其属性、行为和关联。同时把所有用例的并描述其属性、行为和关联。同时把所有用例的行为分派给每个对象。行为分派给每个对象。32西安交通大学 刘海岩

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁