管理信息系统第7章面向对象软件工程的概念

上传人:aa****6 文档编号:54907416 上传时间:2018-09-21 格式:PPT 页数:59 大小:423.01KB
返回 下载 相关 举报
管理信息系统第7章面向对象软件工程的概念_第1页
第1页 / 共59页
管理信息系统第7章面向对象软件工程的概念_第2页
第2页 / 共59页
管理信息系统第7章面向对象软件工程的概念_第3页
第3页 / 共59页
管理信息系统第7章面向对象软件工程的概念_第4页
第4页 / 共59页
管理信息系统第7章面向对象软件工程的概念_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《管理信息系统第7章面向对象软件工程的概念》由会员分享,可在线阅读,更多相关《管理信息系统第7章面向对象软件工程的概念(59页珍藏版)》请在金锄头文库上搜索。

1、西安交通大学 刘海岩,1,第7章 面向对象软件工程的概念,传统软件开发方法的局限性 面向对象的过程模型 面向对象的概念 几种面向对象方法 统一建模语言UML,西安交通大学 刘海岩,2,7.1传统软件开发方法的局限性,传统的软件工具、软件技术和抽象层次越来越难以适应大规模复杂软件系统的开发特点。软件能力问题已经成为制约软件发展的因素。软件工程自70年代以来,有力的推动了软件能力的解决。自顶向下的分析与设计的方法、软件项目的工程化管理、软件工具和开发环境、软件质量保证等都对软件的发展起了非常重要的作用。传统的软件开发方法在当时的软件工程中起了主导作用,随着系统复杂性、多变性增强,传统方法的缺陷就显

2、露了出来:(1)面向过程为主。系统围绕着由计算机来实现功能的复杂过程而建立,在分析和解决问题时与人们对现实世界的认识有一定差距。,西安交通大学 刘海岩,3,(2)软件结构稳定性差。需求分析阶段重点是功能模型,难以彻底明确全部需求。设计阶段的软件体系结构是基于系统功能建立的。每个模块完成一个基本功能,多个模块的组合完成一个整体功能。一个模块的变动可能会影响到多个模块。用户的需求大多针对功能,功能的变化会引起体系结构的变化,不利于系统的维护。(3)软件开发的抽象力度小。解决问题的类型一般用于“输入-处理-输出”为核心的数据处理系统,不适应于复杂的实时、交互、事件驱动、分布式等新型应用的系统开发。(

3、4)软件重用未能得到很好的解决。传统的方法一般从“零”开始开发软件,数据与操作作为相互分离的实体来考虑,使软件的可复用性差。重用的实施仅仅是公用模块的调用。面向对象的封装性、继承性、多态性等特性支持软件重用且重用的粒度大。软件的重用导致更快地、高质量地开发软件,为软件工业化生产奠定基础。,西安交通大学 刘海岩,4,传统方法数据与过程是分离的,过程1,输入,输出,过程2,过程3,数据实体,属于该对象 的数据,对象,处理数据的方法,消息,消息,对象把数据和处理数据的方法封状成一个单元,西安交通大学 刘海岩,5,传统方法与面向对象方法的比较,面向对象方法 系统是交互对象的集合 对象与人或其它对象交互

4、 对象发送与响应消息,传统方法 系统是过程的集合 过程与数据实体交互 过程接受输入并产生输出,西安交通大学 刘海岩,6,7.2 面向对象的过程模型,1、演化/并行模型 (p402)是Booch等人在90年代初建议的。该模型与第1章介绍的螺旋模型、增量模型相似。但强调: (1)对OO系统的分析和设计建模不在相同的抽象层次上进行。 (2)分析和设计可以并发地应用到独立的系统构件。,西安交通大学 刘海岩,7,该模型每次迭代都要计划、工程和评估。每个计划都要调整进度以适应和本次迭代相关的变化。早期阶段迭代进行的分析与设计工作为了分离出OO模型中的所有重要元素;当工程工作不断进展时,产生软件的增量版本;

5、在评估阶段对每个增量的评估其反馈将影响下一次计划活动及后续增量。2、RUP98年6月推出,该过程强调了开发方法的统一、建模语言的统一、研究成果的统一。该过程是基于构件的,即所构造的系统是由软件构件通过明确定义的接口相互连接所建造起来的。它使用UML来制定软件系统的所有蓝图。RUP的主要特点:(1)用例驱动用例作为系统分析、设计、实现和测试的基本输入。,西安交通大学 刘海岩,8,即用例不只是一种确定系统需求的工具,它还能驱动系统的设计、实现和测试的进行。基于用例模型,开发人员可以创建一系列实现这些用例的设计模型和实现模型。开发人员可以审查每个后续建立的模型是否与用例模型一致。测试人员测试实现以确

6、定实现模型的构件是否实现了用例。所以用例启动了开发过程,还使开发过程结合为一体。开发过程是沿着一系列从用例得到的工作流前进的。,西安交通大学 刘海岩,9,下图显示了用例模型与其他模型之间的相关性:,用例模型,由建立,分析模型,为系统描述一系列类,由设计,设计模型,为系统定义一系列子系统和界面,由实现,实现模型,将类映射到构件,由分配,测试模型,由验证,验证系统是否提供了用例模型中描述的功能,配置模型,定义软件分布,西安交通大学 刘海岩,10,(2)以构架(Architecture)为中心软件系统的构架从不同角度描述了即将构造的系统,它刻画了系统的整体设计,去掉了细节部分,突出了系统的重要特征,

7、包含了系统中最重要的静态结构和动态行为。构架是根据应用领域的需要逐渐发展起来的,并在用例中得到反映。每种产品都具有功能和表现形式,功能与用例对应,表现形式与构架对应。用例与构架是相互影响的,用例在实现时必须符合于构架,构架必须预留空间以实现现在或将来所有需要的用例。,西安交通大学 刘海岩,11,3、迭代与增量的过程迭代指工作流中的步骤,增量指产品中增加的部分。迭代过程要处理一组用例,这组用例合起来能扩展所开发产品的可用性,后续的迭代过程建立在前一次迭代过程末期所开发的产品上。构架提供了一种结构来指导迭代过程中的工作,用例则确定了目标并驱动每次迭代的工作。三条腿的凳子! 4、基于构件统一过程所构

8、造的软件系统,是由软件构件通过明确定义的接口相互连接所建造起来的。 5、使用UML统一过程使用UML来制定软件系统的所有蓝图,UML是整个统一过程的一个完整部分,他们是共同发展起来的,它强调创建和维护模型。,西安交通大学 刘海岩,12,6、过程可剪裁用统一过程开发软件时,各阶段应该有多长?各个阶段迭代多少次是合适的?候选构架可以在哪一点完全建立起来?这些问题的答案取决于系统的规模、项目的性质、开发组织的领域经验,甚至包括相关人员有效配合程度。总之,统一过程是一个框架,可以根据具体情况加以裁剪,以此来适应各种各样的开发过程。,西安交通大学 刘海岩,13,7.3 面向对象的概念,面向对象(Obje

9、ct Oriented,简称OO)的概念起源于20世纪60年代中期的Simula 67。80年代初,Smalltalk语言及其程序设计环境的出现成为面向对象技术发展的一个重要里程碑。80年代中期硬件的发展使C到C+过渡平滑,推出了相应工具及面向对象集成环境,使OOP模式进入主流。80年代中后期,面向对象分析与设计的研究开始发展。进入90年代,面向对象软件工程成了许多软件产品的建造笵型。(1)对象(object)是现实世界中个体或事物的抽象表示。封装了其属性及相关的操作。属性表示对象的性质,属性值规定了对象所有可能的状态。对象的操作指出了该对象具有的行为并提供了对外的服务。,西安交通大学 刘海岩

10、,14,(2)类(class)是具有相同属性和相同操作的对象的抽象。通常用类名、类的属性、类的操作三方面的内容来定意一个类。一个具体对象是类的一个实例。(3)消息(message)是一个对象发送给另一个对象的操作请求。消息一般由三部分组成:对象名、消息名、参数。消息传递是对象与外部世界相互通信的唯一途径。(4)方法(method)是对象操作的实现,描述了对象中操作的算法和响应消息的方式。,西安交通大学 刘海岩,15,(5)继承(inheritance)是子类自动的共享其父类中定义的属性和操作的机制,该机制构成了类的层次结构。较高层的父类称为基类、超类、一般类。子类称为派生类、特殊类。子类除了继

11、承父类的特征,还可有自己的特征。继承有传递性,子类能继承上层的全部特征。继承性使得相似的对象可以共享程序代码和数据结构,从而简化了创建类及对象的工作量,基类解决一般性问题,派生类解决特殊问题,提高了软件的可重用性。继承性还使得软件便于维护,当需要扩充软件原有功能时,从要修改的类中派生出一个子类,在该子类中添加新的代码。,西安交通大学 刘海岩,16,(6)多态(polymorphism)指在类的不同层次上可以使用相同的操作名。同一操作名可有不同的实现方式,运行时可动态地选择哪一个算法。多态性增加了软件的灵活性,可扩充性,通用功能的操作放在高层,不同地实现这一功能的行为放在低层,以实现不同的相应。

12、,西安交通大学 刘海岩,17,7.4 几种面向对象方法,20世纪80年代以来,出现了几十种面向对象软件开发方法。每一种都有自己的符号体系和开发过程,都支持以下基本活动: 标识类及对象 描述类及对象之间的关系 定义类的属性和操作1、Booch方法Booch是面向对象方法最早的提出者之一,提出了面向对象软件工程的概念。提出了“微开发过程”和“宏开发过程”的思想。,西安交通大学 刘海岩,18,微开发过程:定义一组分析任务,包括标识类和对象以及类和对象的语义、定义类和对象间的关系、描述类和对象的动态行为。宏开发过程:将微过程反复应用,并包含了体系结构设计的计划活动: 将相似的对象聚集到独立的模块; 描

13、述对象管理、内存管理、错误处理等其它功能的实施; 可使用原型对上述任务进行精化; 将同时执行的进程分配到不同的处理机。该方法提出建立以下模型:类图、对象图、状态转移图、时序图、模块图、进程图。,西安交通大学 刘海岩,19,2、Coad/Yourdon方法著名的OOA/OOD方法,也是最早的面向对象的分析与设计方法之一。简单、易学。OOA阶段的任务: 标识类及对象 定义结构(一般特殊结构、整体部分结构) 划分主题 定义属性及对象间的实例连接 定义服务及对象间的消息连接上述任务迭代进行,产生5个层次的问题域模型(主题层、类及对象层、结构层、属性层、服务层),西安交通大学 刘海岩,20,OOD阶段的

14、活动: 问题域部分 人机交互部分 任务管理部分 数据管理部分3、OMT方法Rumbaugh等人提出的对象建模技术(Object Model Technology, OMT),该方法强调了三种模型,并将软件开发过程划分为以下几个阶段:(1)系统分析 问题描述 建立对象模型 产品:对象模型对象图数据字典,西安交通大学 刘海岩,21, 建立动态模型产品:动态模型状态图事件跟踪图 建立功能模型产品:功能模型数据流图约束(2)系统设计 将系统分解为各个子系统 确定问题中固有的并发性 将各子系统分配给处理器 数据存储管理 全局资源管理 选择软件控制机制 边界条件处理,西安交通大学 刘海岩,22,(3)对象

15、设计对分析模型细化: 将三种模型结合起来以获得对象类上的操作。如功能模型中的加工,动态模型中对应一个事件的活动。 设计实现操作的算法 优化数据访问路径 实现系统设计中的控制机制 为提高继承而调整类结构 设计对象之间的关联 将类和关联集成到模块中,西安交通大学 刘海岩,23,4、Jacobson方法也称OOSE方法。最大特点是强调使用实例(Use-Case),每一个用例就是一个使用系统的方式,用例的执行将引发执行一系列与行为相关的事务。该方法将用例贯穿于整个开发阶段,并在用例描述中引入了角色或参与者(Actor)的概念。角色指使用系统的人以及与系统相互作用的软硬件环境。该方法还将对象区分为实体对

16、象(业务对象)、接口对象(界面对象)和控制对象。需求分析阶段活动:定义潜在的角色、识别问题域中的对象和关系、基于需求规格说明和角色的需要描述用例。设计阶段的活动:从用例的描述中发现与设计有关的对象,并描述其属性、行为和关联。同时把所有用例的行为分派给每个对象。,西安交通大学 刘海岩,24,7.5 统一建模语言UML,UML(Unified Modeling Language)产生于90年代中期。它不仅统一了Booch、OMT和OOSE方法中的概念和表示法,而且对其作了进一步扩展,最终成为在面向对象技术领域占主导地位的、并被大众所接受的标准建模语言。1、UML概述UML的发展历程(下图)UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行可视化建模。UML不是一个开发过程,也不是一个方法,但允许任何一种开发过程和面向对象方法使用它。,西安交通大学 刘海岩,25,Booch93,

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

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号