第7章面向对象软件工程的概念

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)软件开发的抽象力度小。解决问题的类型一般用于 “输入-处理-输出”为核心的数据处理系统,不适应于复 杂的实时、交互、事件驱动、分布式等新型应用的系统开 发。
(4)软件重用未能得到很好的解决。传统的方法一般从 “零”开始开发软件,数据与操作作为相互分离的实体来 考虑,使软件的可复用性差。重用的实施仅仅是公用模块 的调用。面向对象的封装性、继承性、多态性等特性支持 软件重用且重用的粒度大。软件的重用导致更快地、高质 量地开发软件,为软件工业化生产奠定基础。
第7章面向对象软件工程的概念
即用例不只是一种确定系统需求的工具,它还能驱动 系统的设计、实现和测试的进行。
基于用例模型,开发人员可以创建一系列实现这些用 例的设计模型和实现模型。开发人员可以审查每个后续建 立的模型是否与用例模型一致。测试人员测试实现以确定 实现模型的构件是否实现了用例。所以用例启动了开发过 程,还使开发过程结合为一体。开发过程是沿着一系列从 用例得到的工作流前进的。
PPT文档演模板
第7章面向对象软件工程的概念
该模型每次迭代都要计划、工程和评估。每个计划 都要调整进度以适应和本次迭代相关的变化。早期阶段 迭代进行的分析与设计工作为了分离出OO模型中的所 有重要元素;当工程工作不断进展时,产生软件的增量 版本;在评估阶段对每个增量的评估其反馈将影响下一 次计划活动及后续增量。
PPT文档演模板
第7章面向对象软件工程的概念
•输入 •输出
•过程1
•过程2
•数据实体
•过程3
•传统方法数据与过程是分离的
•消息 •消息
•对象
•属于该对象 •的数据
•处理数据的方法
•对象把数据和处理数据的方法封状成一个单元
PPT文档演模板
第7章面向对象软件工程的概念
传统方法与面向对象方法的比较
•传统方法 •系统是过程的集合 •过程与数据实体交互 •过程接受输入并产生输出
PPT文档演模板
第7章面向对象软件工程的概念
下图显示了用例模型与其他模型之间的相关性:
•由…建立
•用例模型
•分析模型 •由…设计
•为系统描述 •设计模型 •由…实现
一系列类
•为系统定义 一系列子系 统和界面
•实现模 •将型类映 射到构件
•由…验证
•测试模 •验型证系
•由…分配 •配置模型
统是否提 供了用例 模型中描
• 建立功能模型 产品:功能模型=数据流图+约束
(2)系统设计 • 将系统分解为各个子系统 • 确定问题中固有的并发性 • 将各子系统分配给处理器 • 数据存储管理 • 全局资源管理 • 选择软件控制机制 • 边界条件处理
PPT文档演模板
第7章面向对象软件工程的概念
(3)对象设计 对分析模型细化: • 将三种模型结合起来以获得对象类上的操作。如
7.4 几种面向对象方法
20世纪80年代以来,出现了几十种面向对象软件开 发方法。每一种都有自己的符号体系和开发过程,都支 持以下基本活动:
• 标识类及对象 • 描述类及对象之间的关系 • 定义类的属性和操作 1、Booch方法 Booch是面向对象方法最早的提出者之一,提出了面向 对象软件工程的概念。提出了“微开发过程”和“宏开 发过程”的思想。
PPT文档演模板
第7章面向对象软件工程的概念
3、迭代与增量的过程 迭代指工作流中的步骤,增量指产品中增加的部分。
迭代过程要处理一组用例,这组用例合起来能扩展所 开发产品的可用性,后续的迭代过程建立在前一次迭代过 程末期所开发的产品上。
构架提供了一种结构来指导迭代过程中的工作,用例 则确定了目标并驱动每次迭代的工作。——三条腿的凳子!
响应消息的方式。
PPT文档演模板
第7章面向对象软件工程的概念
(5)继承(inheritance)
是子类自动的共享其父类中定义的属性和操作的 机制,该机制构成了类的层次结构。较高层的父类称 为基类、超类、一般类。子类称为派生类、特殊类。 子类除了继承父类的特征,还可有自己的特征。继承 有传递性,子类能继承上层的全部特征。
该方法将用例贯穿于整个开发阶段,并在用例描述中 引入了角色或参与者(Actor)的概念。角色指使用系统的 人以及与系统相互作用的软硬件环境。
该方法还将对象区分为实体对象(业务对象)、接口 对象(界面对象)和控制对象。
需求分析阶段活动:定义潜在的角色、识别问题域中 的对象和关系、基于需求规格说明和角色的需要描述用例。
•定义软 件分布
述的功能
PPT文档演模板
第7章面向对象软件工程的概念
(2)以构架(Architecture)为中心
软件系统的构架从不同角度描述了即将构造的系统, 它刻画了系统的整体设计,去掉了细节部分,突出了系统 的重要特征,包含了系统中最重要的静态结构和动态行为。
构架是根据应用领域的需要逐渐发展起来的,并在用 例中得到反映。每种产品都具有功能和表现形式,功能与 用例对应,表现形式与构架对应。用例与构架是相互影响 的,用例在实现时必须符合于构架,构架必须预留空间以 实现现在或将来所有需要的用例。
设计阶段的活动:从用例的描述中发现与设计有关的 对象,并描述其属性、行为和关联。同时把所有用例的行 为分派给每个对象。
PPT文档演模板
第7章面向对象软件工程的概念
7.5 统一建模语言UML
用类名、类的属性、类的操作三方面的内容来定意一 个类。一个具体对象是类的一个实例。
(3)消息(message) 是一个对象发送给另一个对象的操作请求。消息
一般由三部分组成:对象名、消息名、参数。消息传 递是对象与外部世界相互通信的唯一途径。
(4)方法(method) 是对象操作的实现,描述了对象中操作的算法和
PPT文档演模板
第7章面向对象软件工程的概念
微开发过程:定义一组分析任务,包括标识类和 对象以及类和对象的语义、定义类和对象间的关系、 描述类和对象的动态行为。
宏开发过程:将微过程反复应用,并包含了体系 结构设计的计划活动:
• 将相似的对象聚集到独立的模块; • 描述对象管理、内存管理、错误处理等其它功能 的实施;
OOA阶段的任务: • 标识类及对象 • 定义结构(一般-特殊结构、整体-部分结构) • 划分主题 • 定义属性及对象间的实例连接 • 定义服务及对象间的消息连接
上述任务迭代进行,产生5个层次的问题域模型(主 题层、类及对象层、结构层、属性层、服务层)
PPT文档演模板
第7章面向对象软件工程的概念
OOD阶段的活动: • 问题域部分 • 人机交互部分 • 任务管理部分 • 数据管理部分
• 可使用原型对上述任务进行精化; • 将同时执行的进程分配到不同的处理机。 该方法提出建立以下模型:
类图、对象图、状态转移图、时序图、模块图、 进程图。
PPT文档演模板
第7章面向对象软件工程的概念
2、Coad/Yourdon方法 著名的OOA/OOD方法,也是最早的面向对象的分析与 设计方法之一。简单、易学。
PPT文档演模板
第7章面向对象软件工程的概念
7.3 面向对象的概念
面向对象(Object Oriented,简称OO)的概念起源于 20世纪60年代中期的Simula 67。80年代初,Smalltalk语 言及其程序设计环境的出现成为面向对象技术发展的一 个重要里程碑。80年代中期硬件的发展使C到C++过渡 平滑,推出了相应工具及面向对象集成环境,使OOP模 式进入主流。80年代中后期,面向对象分析与设计的研 究开始发展。进入90年代,面向对象软件工程成了许多 软件产品的建造笵型。
第7章面向对象软件工程 的概念
PPT文档演模板
2020/11/27
第7章面向对象软件工程的概念
7.1传统软件开发方法的局限性
传统的软件工具、软件技术和抽象层次越来越难 以适应大规模复杂软件系统的开发特点。软件能力问 题已经成为制约软件发展的因素。
软件工程自70年代以来,有力的推动了软件能力 的解决。自顶向下的分析与设计的方法、软件项目的 工程化管理、软件工具和开发环境、软件质量保证等 都对软件的发展起了非常重要的作用。传统的软件开 发方法在当时的软件工程中起了主导作用,随着系统 复杂性、多变性增强,传统方法的缺陷就显露了出来:
4、基于构件
统一过程所构造的软件系统,是由软件构件通过明确 定义的接口相互连接所建造起来的。
5、使用UML
统一过程使用UML来制定软件系统的所有蓝图, UML是整个统一过程的一个完整部分,他们是共同发展 起来的,它强调创建和维护模型。
PPT文档演模板
第7章面向对象软件工程的概念
6、过程可剪裁
用统一过程开发软件时,各阶段应该有多长?各 个阶段迭代多少次是合适的?候选构架可以在哪一点 完全建立起来?这些问题的答案取决于系统的规模、 项目的性质、开发组织的领域经验,甚至包括相关人 员有效配合程度。总之,统一过程是一个框架,可以 根据具体情况加以裁剪,以此来适应各种各样的开发 过程。
2、RUP
98年6月推出,该过程强调了开发方法的统一、建 模语言的统一、研究成果的统一。该过程是基于构件的, 即所构造的系统是由软件构件通过明确定义的接口相互 连接所建造起来的。它使用UML来制定软件系统的所 有蓝图。RUP的主要特点:
(1)用例驱动
用例作为系统分析、设计、实现和测试的基本输入。
PPT文档演模板
•面向对象方法 •系统Leabharlann Baidu交互对象的集合 •对象与人或其它对象交互
•对象发送与响应消息
PPT文档演模板
第7章面向对象软件工程的概念
7.2 面向对象的过程模型
•1、演化/并行模型 • 是Booch等人在90年 代初建议的。该模型与 第1章介绍的螺旋模型、 增量模型相似。但强调: •(1)对OO系统的分 析和设计建模不在相同 的抽象层次上进行。 •(2)分析和设计可以 并发地应用到独立的系 统构件。
功能模型中的加工,动态模型中对应一个事件的活动。 • 设计实现操作的算法 • 优化数据访问路径 • 实现系统设计中的控制机制 • 为提高继承而调整类结构 • 设计对象之间的关联 • 将类和关联集成到模块中
PPT文档演模板
第7章面向对象软件工程的概念
4、Jacobson方法
也称OOSE方法。最大特点是强调使用实例(UseCase),每一个用例就是一个使用系统的方式,用例的执 行将引发执行一系列与行为相关的事务。
继承性使得相似的对象可以共享程序代码和数据 结构,从而简化了创建类及对象的工作量,基类解决 一般性问题,派生类解决特殊问题,提高了软件的可 重用性。继承性还使得软件便于维护,当需要扩充软 件原有功能时,从要修改的类中派生出一个子类,在 该子类中添加新的代码。
PPT文档演模板
第7章面向对象软件工程的概念
3、OMT方法 Rumbaugh等人提出的对象建模技术(Object Model
Technology, OMT),该方法强调了三种模型,并将软 件开发过程划分为以下几个阶段:
(1)系统分析 • 问题描述 • 建立对象模型 产品:对象模型=对象图+数据字典
PPT文档演模板
第7章面向对象软件工程的概念
• 建立动态模型 产品:动态模型=状态图+事件跟踪图
(1)面向过程为主。系统围绕着由计算机来实现 功能的复杂过程而建立,在分析和解决问题时与人们 对现实世界的认识有一定差距。
PPT文档演模板
第7章面向对象软件工程的概念
(2)软件结构稳定性差。需求分析阶段重点是功能模型, 难以彻底明确全部需求。设计阶段的软件体系结构是基于 系统功能建立的。每个模块完成一个基本功能,多个模块 的组合完成一个整体功能。一个模块的变动可能会影响到 多个模块。用户的需求大多针对功能,功能的变化会引起 体系结构的变化,不利于系统的维护。
(6)多态(polymorphism)
指在类的不同层次上可以使用相同的操作名。同 一操作名可有不同的实现方式,运行时可动态地选择 哪一个算法。
多态性增加了软件的灵活性,可扩充性,通用功 能的操作放在高层,不同地实现这一功能的行为放在 低层,以实现不同的相应。
PPT文档演模板
第7章面向对象软件工程的概念
(1)对象(object)
是现实世界中个体或事物的抽象表示。封装了其属 性及相关的操作。属性表示对象的性质,属性值规定了 对象所有可能的状态。对象的操作指出了该对象具有的 行为并提供了对外的服务。
PPT文档演模板
第7章面向对象软件工程的概念
(2)类(class) 是具有相同属性和相同操作的对象的抽象。通常
相关文档
最新文档