




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 7章 面向对象软件工程的概念l 传统软件开发方法的局限性l 面向对象的过程模型l 面向对象的概念l 几种面向对象方法l 统一建模语言 UML1西安交通大学 刘海岩7.1传统软件开发方法的局限性传统的软件工具、软件技术和抽象层次越来越难以适应大规模复杂软件系统的开发特点。软件能力问题已经成为制约软件发展的因素。软件工程自 70年代以来,有力的推动了软件能力的解决。自顶向下的分析与设计的方法、软件项目的工程化管理、软件工具和开发环境、软件质量保证等都对软件的发展起了非常重要的作用。传统的软件开发方法在当时的软件工程中起了主导作用,随着系统复杂性、多变性增强,传统方法的缺陷就显露了出来:( 1)面向过程为主。系统围绕着由计算机来实现功能的复杂过程而建立,在分析和解决问题时与人们对现实世界的认识有一定差距。2西安交通大学 刘海岩( 2)软件结构稳定性差。需求分析阶段重点是功能模型,难以彻底明确全部需求。设计阶段的软件体系结构是基于系统功能建立的。每个模块完成一个基本功能,多个模块的组合完成一个整体功能。一个模块的变动可能会影响到多个模块。用户的需求大多针对功能,功能的变化会引起体系结构的变化,不利于系统的维护。( 3)软件开发的抽象力度小。解决问题的类型一般用于 “输入 -处理 -输出 ”为核心的数据处理系统,不适应于复杂的实时、交互、事件驱动、分布式等新型应用的系统开发。( 4)软件重用未能得到很好的解决。传统的方法一般从 “零 ”开始开发软件,数据与操作作为相互分离的实体来考虑,使软件的可复用性差。重用的实施仅仅是公用模块的调用。面向对象的封装性、继承性、多态性等特性支持软件重用且重用的粒度大。软件的重用导致更快地、高质量地开发软件,为软件工业化生产奠定基础。3西安交通大学 刘海岩传统方法数据与过程是分离的传统方法数据与过程是分离的过程 1输入输入输出输出过程 2过程 3数据实体属于该对象的数据对象处理数据的方法消息消息消息消息对象把数据和处理数据的方法封状成一个单元对象把数据和处理数据的方法封状成一个单元 4西安交通大学 刘海岩传统方法与面向对象方法的比传统方法与面向对象方法的比较较面向对象方法面向对象方法系统是交互对象的集合系统是交互对象的集合对象与人或其它对象交互对象与人或其它对象交互对象发送与响应消息对象发送与响应消息传统方法传统方法系统是过程的集合系统是过程的集合过程与数据实体交互过程与数据实体交互过程接受输入并产生输出过程接受输入并产生输出5西安交通大学 刘海岩7.2 面向对象的过程模型1、演化 /并行模型( p402)是 Booch等人在 90年代初建议的。该模型与第 1章介绍的螺旋模型、增量模型相似。但强调:( 1)对 OO系统的分析和设计建模不在相同的抽象层次上进行。( 2)分析和设计可以并发地应用到独立的系统构件。6西安交通大学 刘海岩该模型每次迭代都要计划、工程和评估。每个计划都要调整进度以适应和本次迭代相关的变化。早期阶段迭代进行的分析与设计工作为了分离出 OO模型中的所有重要元素;当工程工作不断进展时,产生软件的增量版本;在评估阶段对每个增量的评估其反馈将影响下一次计划活动及后续增量。2、 RUP98年 6月推出,该过程强调了开发方法的统一、建模语言的统一、研究成果的统一。该过程是基于构件的,即所构造的系统是由软件构件通过明确定义的接口相互连接所建造起来的。它使用 UML来制定软件系统的所有蓝图。 RUP的主要特点:( 1)用例驱动用例作为系统分析、设计、实现和测试的基本输入。 7西安交通大学 刘海岩即用例不只是一种确定系统需求的工具,它还能驱动系统的设计、实现和测试的进行。基于用例模型,开发人员可以创建一系列实现这些用例的设计模型和实现模型。开发人员可以审查每个后续建立的模型是否与用例模型一致。测试人员测试实现以确定实现模型的构件是否实现了用例。所以用例启动了开发过程,还使开发过程结合为一体。开发过程是沿着一系列从用例得到的工作流前进的。8西安交通大学 刘海岩下图显示了用例模型与其他模型之间的相关性:用例模型由 建立分析模型为系统描述一系列类由 设计设计模型为系统定义一系列子系统和界面由 实现实现模型将类映射到构件由 分配测试模型由 验证验证系统是否提供了用例模型中描述的功能配置模型定义软件分布9西安交通大学 刘海岩( 2)以构架( Architecture)为中心软件系统的构架从不同角度描述了即将构造的系统,它刻画了系统的整体设计,去掉了细节部分,突出了系统的重要特征,包含了系统中最重要的静态结构和动态行为。构架是根据应用领域的需要逐渐发展起来的,并在用例中得到反映。每种产品都具有功能和表现形式,功能与用例对应,表现形式与构架对应。用例与构架是相互影响的,用例在实现时必须符合于构架,构架必须预留空间以实现现在或将来所有需要的用例。10西安交通大学 刘海岩3、迭代与增量的过程迭代指工作流中的步骤,增量指产品中增加的部分。迭代过程要处理一组用例,这组用例合起来能扩展所开发产品的可用性,后续的迭代过程建立在前一次迭代过程末期所开发的产品上。构架 提供了一种结构来指导 迭代 过程中的工作, 用例 则确定了目标并驱动每次迭代的工作。 三条腿的凳子!4、基于构件统一过程所构造的软件系统,是由软件构件通过明确定义的接口相互连接所建造起来的。5、使用 UML统一过程使用 UML来制定软件系统的所有蓝图,UML是整个统一过程的一个完整部分,他们是共同发展起来的,它强调创建和维护模型。 11西安交通大学 刘海岩6、过程可剪裁用统一过程开发软件时,各阶段应该有多长?各个阶段迭代多少次是合适的?候选构架可以在哪一点完全建立起来?这些问题的答案取决于系统的规模、项目的性质、开发组织的领域经验,甚至包括相关人员有效配合程度。总之,统一过程是一个框架,可以根据具体情况加以裁剪,以此来适应各种各样的开发过程。12西安交通大学 刘海岩7.3 面向对象的概念面向对象( Object Oriented,简称 OO)的概念起源于 20世纪 60年代中期的 Simula 67。 80年代初,Smalltalk语言及其程序设计环境的出现成为面向对象技术发展的一个重要里程碑。 80年代中期硬件的发展使 C到 C+过 渡平滑,推出了相 应 工具及面向 对 象集成 环 境,使 OOP模式 进 入主流。 80年代中后期,面向对 象分析与 设计 的研究开始 发 展。 进 入 90年代,面向 对 象 软 件工程成了 许 多 软 件 产 品的建造笵型。( 1) 对 象 (object)是 现实 世界中个体或事物的抽象表示。封装了其属性及相关的操作。属性表示 对 象的性 质 ,属性 值规 定了 对 象所有可能的状 态 。 对 象的操作指出了 该对 象具有的行 为 并提供了 对 外的服 务 。13西安交通大学 刘海岩( 2) 类 (class)是具有相同属性和相同操作的 对 象的抽象。通常用 类 名、 类 的属性、 类 的操作三方面的内容来定意一个 类 。一个具体 对 象是 类 的一个 实 例。( 3)消息 (message)是一个 对 象 发 送 给 另一个 对 象的操作 请 求。消息一般由三部分 组 成: 对 象名、消息名、参数。消息 传递 是 对 象与外部世界相互通信的唯一途径。( 4)方法 (method)是 对 象操作的 实现 ,描述了 对 象中操作的算法和响 应 消息的方式。14西安交通大学 刘海岩( 5) 继 承 (inheritance)是子 类 自 动 的共享其父 类 中定 义 的属性和操作的机制, 该 机制构成了 类 的 层 次 结 构。 较 高 层 的父类 称 为 基 类 、超 类 、一般 类 。子 类 称 为 派生 类 、特殊 类 。子 类 除了 继 承父 类 的特征, 还 可有自己的特征。 继 承有 传递 性,子 类 能 继 承上 层 的全部特征。继 承性使得相似的 对 象可以共享程序代 码 和数据 结 构,从而 简 化了 创 建 类 及 对 象的工作量,基 类解决一般性 问题 ,派生 类 解决特殊 问题 ,提高了 软件的可重用性。 继 承性 还 使得 软 件便于 维护 ,当需要 扩 充 软 件原有功能 时 ,从要修改的 类 中派生出一个子 类 ,在 该 子 类 中添加新的代 码 。15西安交通大学 刘海岩( 6)多 态 (polymorphism)指在 类 的不同 层 次上可以使用相同的操作名。同一操作名可有不同的 实现 方式,运行 时 可 动态 地选择 哪一个算法。多 态 性增加了 软 件的灵活性,可 扩 充性,通用功能的操作放在高 层 ,不同地 实现这 一功能的行 为放在低 层 ,以 实现 不同的相 应 。16西安交通大学 刘海岩7.4 几种面向对象方法20世纪 80年代以来,出现了几十种面向对象软件开发方法。每一种都有自己的符号体系和开发过程,都支持以下基本活动: 标识类 及 对 象 描述 类 及 对 象之 间 的关系 定 义类 的属性和操作1、 Booch方法Booch是面向 对 象方法最早的提出者之一,提出了面向 对 象 软 件工程的概念。提出了 “微开 发过 程 ”和 “宏开 发过 程 ”的思想。17西安交通大学 刘海岩微开 发过 程:定 义 一 组 分析任 务 ,包括 标识类和 对 象以及 类 和 对 象的 语义 、定 义类 和 对 象 间 的关系、描述 类 和 对 象的 动态 行 为 。宏开发过程:将微过程反复应用,并包含了体系结构设计的计划活动: 将相似的 对 象聚集到独立的模 块 ; 描述 对 象管理、内存管理、 错误处 理等其它功能的 实 施; 可使用原型 对 上述任 务进 行精化; 将同 时执 行的 进 程分配到不同的 处 理机。该 方法提出建立以下模型:类图 、 对 象 图 、状 态转 移 图 、 时 序 图 、模 块图 、 进 程 图 。18西安交通大学 刘海岩2、 Coad/Yourdon方法著名的 OOA/OOD方法,也是最早的面向对象的分析与设计方法之一。简单、易学。OOA阶段的任务: 标识类 及 对 象 定 义结 构(一般特殊 结 构、整体部分 结构) 划分主 题 定 义 属性及 对 象 间 的 实 例 连 接 定 义 服 务 及 对 象 间 的消息 连 接上述任 务 迭代 进 行, 产 生 5个 层 次的 问题 域模型(主 题层 、 类 及 对 象 层 、 结 构 层 、属性 层 、服 务层 )19西安交通大学 刘海岩OOD阶段的活动: 问题 域部分 人机交互部分 任 务 管理部分 数据管理部分3、 OMT方法Rumbaugh等人提出的 对 象建模技 术 (Object Model Technology, OMT), 该 方法 强 调 了三种模型,并将软 件开 发过 程划分 为 以下几个 阶 段:( 1)系 统 分析 问题 描述 建立 对 象模型 产 品: 对 象模型 对 象 图 数据字典20西安交通大学 刘海岩 建立 动态 模型产 品: 动态 模型状 态图 事件跟踪 图 建立功能模型产品:功能模型数据流图约束( 2)系统设计 将系 统 分解 为 各个子系 统 确定 问题 中固有的并 发 性 将各子系 统 分配 给处 理器 数据存 储 管理 全局 资 源管理 选择软 件控制机制 边界条件处理 21西安交通大学 刘海岩( 3)对象设计对分析模型细化: 将三种模型 结 合起来以 获 得 对 象 类 上的操作。如功能模型中的加工, 动态 模型中 对应 一个事件的活 动 。 设计实现 操作的算法 优 化数据 访问 路径 实现 系 统设计 中的控制机制 为 提高 继 承而 调 整 类结 构 设计对 象之 间 的关 联 将 类 和关 联 集成到模 块 中22西安交通大学 刘海岩4、 Jacobson方法也称 OOSE方法。最大特点是强调 使用实例 ( Use-Case),每一个用例就是一个使用系统的方式,用例的执行将引发执行一系列与行为相关的事务。该方法将用例贯穿于整个开发阶段,并在用例描述中引入了 角色或参与者 ( Actor)的概念。角色指使用系统的人以及与系统相互作用的软硬件环境。该方法还将对象区分为 实体对象 (业务对象)、 接口对象 (界面对象)和 控制对象 。需求分析阶段活动:定义潜在的角色、识别问题域中的对象和关系、基于需求规格说明和角色的需要描述用例。设计阶段的活动:从用例的描述中发现与设计有关的对象,并描述其属性、行为和关联。同时把所有用例的行为分派给每个对象。23西安交通大学 刘海岩7.5 统一建模语言 UMLUML(Unified Modeling Language)产生于 90年代中期。它不仅统一了 Booch、 OMT和 OOSE方法中的概念和表示法,而且对其作了进一步扩展,最终成为在面向对象技术领域占主导地位的、并被大众所接受的标准建模语言。1、 UML概述UML的发展历程(下图)UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行可视化建模。 UML不是一个开发过程,也不是一个方法,但允许任何一种开发过程和面向对象方法使用它。 24西安交通大学 刘海岩Booch93 OMT-2UML 0.8UML 0.9&0.91UML 1.0UML 1.1UML同行专家意见OMG认证10/9510/96 & 9/96OMG审核 ,1/97OMG修正 ,9/97OMG采纳为标准 ,11/97UML 1.3UML2.02001年重要修改OOSEUML开发历程25西安交通大学 刘海岩2、 UML中的模型视图UML有以下主要模型元素, 构成了 UML中的各
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国抗菌沐浴露行业市场全景分析及前景机遇研判报告
- 2025年中国建盏行业市场全景分析及前景机遇研判报告
- 2025-2030年中国型材行业市场全景调研及投资价值评估咨询报告
- 建筑节能报告用指标的确定
- 税务师老师讲解课件
- 2025年中国智能防火墙行业市场发展前景及发展趋势与投资战略研究报告
- 2022-2027年中国带鱼捕捞行业市场调查研究及投资战略研究报告
- 2025年 重庆四联特种装备材料有限公司招聘考试笔试试题附答案
- 中国机动车综合测试仪行业市场调研及投资战略研究报告
- 2025年 内蒙古呼和浩特中航集团信息管理部招聘考试笔试试题附答案
- 2025年施工企业工作总结(7篇)
- 2025中考作文押题:常考主题范文6篇
- 疏通吸污车租赁合同协议
- 学习领悟在庆祝中华全国总工会成立100周年大会上重要讲话心得体会
- 企业培训之办公区域安全隐患及管理规范
- 高速公路绿色通道查验业务专项培训
- 《中国糖尿病防治指南(2024版)》解读
- 港口设备故障诊断与维修考核试卷
- 记账公司外勤管理制度
- 路面沉降施工方案
- T-CSDA0005-2024 三维桥架保温隔声复合模块建筑地面工程 应用技术标准
评论
0/150
提交评论