版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程,面向对象的概念 陈巧丽,CH7 面向对象的分析和设计方法 在前面各章节中,我们学习的是传统的软件工程方法-结构化方法学,这部分我们将要介绍一种全新的系统分析设计方法面向对象方法学。它是一种实用而强有力的软件开发方法,它产生于20世纪70年代末,直到目前,OO技术已有广泛的应用。 面向对象技术具有许多特色,一是面向对象方法的唯一性,即面向对象方法是对软件开发过程所有阶段进行综合考虑而得到的唯一有效方法.二是面向对象技术中生存期的一个阶段到下一个阶段的高度连续性,即在一个阶段所用的组成部分与下一个阶段所使用的组成部分是衔接的。三是把面向对象分析(OOA)、面向对象的设计(OOD)和面向对
2、象程序设计(OOP)集成到生存期的相应阶段。,面向对象(OO,Object Oriented)可用公式表示为:面向对象= 对象+类+继承+通信 面向对象的基本思想是从现实世界客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,将一个实际问题看成是一个对象或几个对象的集合。 面向对象分析是在系统所要求解的问题中找出对象(具有属性和行为)以及它所属的类,并定义好对象与类; 面向对象设计是把系统所要求解的问题分解为一些对象及对象间传递消息的过程;,面向对象实现是把数据和处理数据的过程结合为一个对象。对象既可以像数据一样被处理,又可以像过程一样被描述处理的流程和细节。 总之,
3、面向对象分析到面向对象设计再到面向对象实现(即OOAOODOOP)之间可以直接进行而不用转换,保持了问题域中事物及其相互关系的本来面貌。例子和概念后面介绍。,概述 面向对象技术,系统中的对象是数据抽象与过程抽象的综合。 系统的状态保存在各个对象的数据存储中。 控制流包含在各个对象中的操作内。 在面向对象体系结构消息从一个对象传送到另一个对象。算法被分布到各种实体中。通过执行消息传递和对象中的操作实现算法的功能。,面向对象开发范型的特点,参考资料:,面向对象的特点,抽象性:对象的数据抽象和行为抽象; 封装性:信息隐蔽; 共享性: 同一类中所有实例共享数据结构和行为特征; 同一应用中所有实例通过继
4、承共享数据结构和行为特征; 不同应用中所有实例通过复用共享数据结构和行为特征,对象,对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,由一组属性和一组对属性进行操作的服务组成。 属性一般只能通过执行对象的操作来改变。 操作(方法或服务)描述了对象执行的功能,若通过消息传递,还可以为其他对象使用。 对象可以是外部实体、信息结构、事件、角色、组织结构、地点或位置、操作规程等。,类,把具有相同特征(属性)和行为(操作)的对象归在一起就形成了类 (如班级) 。 类的定义包括一组数据属性和在数据上的一组合法操作。 在一个类中,每个对象都是类的实例 (例证) ,它们都可使用类中的函数。 类
5、定义了各个实例所共有的结构,使用类的构造函数,可以在创建该类的实例时初始化这个实例的状态。,消息,消息是一个实例与另一个实例之间传递的信息,要求该实例执行类中定义的某个操作。 消息的使用类似于函数调用,消息中指定了某一个实例,一个操作名和一个参数表 (可能是空的) 。 接收消息的实例执行消息中指定的操作,并将形式参数与参数表中相应的值结合起来。,继承,如果某几个类之间具有共性的东西 (信息结构和行为),抽取出来放在一个泛化类中,将各个类的特有东西放在特殊类中分别描述,则可建立起特殊类对泛化类的继承。 继承是使用已有的类定义做为基础建立新类的定义技术。 已有的类可当做基类来引用,则新类相应地可当
6、做派生类来引用。,多态与动态绑定,多态性指同名的函数或操作可在不同类型的对象中有各自相应的实现。例如 整数“+”:整数加法 浮点数“+”:浮点数加法 字符串“+”:字符串连接 点“+”:两个点的坐标位置分别叠加 具有多态的函数或操作在运行时才根据实际的对象类型,执行相应实现程序的连接,此即动态绑定。,Rational统一开发过程,最佳软件开发实践 为了以一种更好的、迭代的、可预测的方式开发软件产品,总结了软件开发的最佳实践: 迭代式软件开发; 需求管理; 基于构件的软件体系结构; 建立软件可视化模型; 不断验证软件质量; 控制变更。,Rational统一开发过程 软件开发过程的作用是: 成为开
7、发组活动顺序的向导。 详细说明需要开发哪些制品,何时开发。 指导每一个成员及整个开发组的工作。 提供监控和度量项目产品和活动所依据的准则。 如果没有一个良好定义的过程,开发组将各行其是,开发成功与否完全依赖个别优秀的人才,这不是能够长久的。,Rational统一开发过程(RUP, Rational Unify Process)描述了如何在软件开发组织中严格分配任务和职责的方法。 RUP 是一个过程产品,软件过程也是软件。 RUP 采用二维的过程结构: 横轴表明过程的生存周期,它反映了过程被激活时的动态情况,用周期、阶段、迭代和里程碑表示。 纵轴表明过程的静态状况,通过过程构件、活动、工作流、制
8、品和工作人员描述过程。,初始,细化,构造,移交,阶 段,初始化,细化#1,细化#2,构造#1,构造#2,构造#3,移交#1,移交#2,迭代,工作流,业务建模,需求,分析与设计,实现 测试 实施,配置和变更管理 项目管理 环境,沿时间轴的组织结构,沿内容轴的组织,过程的静态描述:过程模型 过程模型中的主要模型元素有 4 种: 工作人员:谁做(Who) 活动:怎么做(How) 制品:做什么(what) 工作流:何时做(when) 过程的中心概念是工作人员,工作人员不是指某一个人,而是指完成工作的角色。工作人员定义人们应履行的行为和职责。,活动定义了工作人员所执行的工作。有 3 类步骤: 思考步骤
9、执行步骤 评审步骤 制品是过程生产、修改或使用的一种信息。RUP 的制品分为 5 个信息集。 管理集:计划制品、操作制品 需求集:构想文档、项目相关人员需求、用例模型和业务模型,设计集:设计模型、软件体系结构描述、测试模型 实现集:源代码和可执行程序、相关数据结构和数据文档 实施集:安装资料、用户文档、培训材料 工作流用来描述生成结果的活动序列,用以描述工作人员之间的交互。在 RUP 中共有 9 个核心过程工作流,包括 6 个核心工程工作流和 3 个核心支持工作流。,业务建模工作流:描述业务过程的本质和执行情形。 需求工作流:定义系统构想,使用用例模型和补充规格说明定义系统软件需求,管理系统范
10、围和需求变更。 分析和设计工作流:研究实现环境和系统构件的效用,定义软件的组织结构,把需求获取结果转化为实现规格。 实现工作流: 建立代码的分层结构,实现类和对象,进行单元测试和系统集成。,测试工作流:根据事先定义的度量和准则检查产品,确认产品是否满足或者超出事先定义并被一致接受的需求。 实施工作流:在实际使用环境中测试软件、包装要交付的软件、发布软件产品、培训最终用户及销售人员。,过程的动态描述:迭代开发 将一个大项目分解为可连续应用瀑布模型的几个小部分。在对一部分进行分析、设计、实现并确认后,再对下一部分进行分析、设计、实现和确认。以此进行下去,直到整个项目完成。在 RUP 中,迭代过程分
11、为几个阶段。,初始阶段:确定最终产品的构想及其用例,定义项目范围。 细化阶段:计划需完成活动和资源,详细说明产品特性并设计软件体系结构。 构造阶段:构造整个产品,逐步完善软件体系结构和计划,直到产品(完整的构想)已完全准备好交付给用户。 移交阶段:移交产品给用户,包括制造,交付,培训,支持及维护产品。,这 4 个阶段构成开发周期,周期结束时产生一代新的软件产品。 软件产品产生于初始开发周期,随着重复执行同样的过程,软件发展到下一代产品,这一时期即为软件的进化周期。,Rational统一过程的特点: 用例驱动的、以体系结构(架构)为中心的、迭代和增量的过程。 用例建模技术可以用为大多数项目相关人
12、员理解的形式来表述问题。 参与者(Actor) 用例(Use Case) 场景(scenario) 事件流(event flow),用例和参与者的事例 银行储户通过自动取款机(自动柜员机)提款,转账或检查账户余额。用一组用例表达如下:,用例模型 将整个系统或子系统的所有用例,以及与之交互的参与者集合起来构成系统的用例模型。 用例模型给出系统预期功能模型和系统上下文环境模型,它成为开发人员和用户之间的契约。 用例模型的目的是确保系统能处理所有的功能性需求。,用例驱动的过程 “用例驱动” 指开发过程是基于用例,从一个工作流向下一个工作流,逐步前进的。 开发初期,开发人员使用用例获取用户需求,建立用
13、例模型,描述系统的全部功能。 基于用例模型,开发人员创建一系列实现这些用例的分析模型、设计模型和实现模型。 测试人员测试实现确保系统正确实现了用例。,以体系结构为中心的过程 软件体系结构设计不仅涉及系统的组织结构,而且涉及系统的行为,即在结合点和接口处会有什么事件发生。 定义体系结构还要考虑系统的外部上下文环境,即操作环境(涉及最终用户)、开发环境(涉及开发系统的组织)。,面向对象分析( OOA ),面向对象分析是软件开发过程中的问题定义阶段,这一阶段最后得到的是对问题领域的清晰、精确的定义。 在分析中,需要找到特定对象,基于对象的公共特性组合它们,标识出对这个问题的抽象。 在应用中的控制流由
14、两部分构成:每个单独操作内部的控制流,对象之间的消息模式。,OO 分析模型,面向对象设计( OOD ),面向对象设计建立软件系统的结构。 设计层次为: 子系统层:包含每个子系统的表示。 类和对象层:包含类层次和每个对象的设计表示。 消息层:包含使每个对象能够和其协作者通信的细节,建立系统的外部和内部接口。 责任层:包含针对每个对象的所有属性和操作的数据结构和算法的设计。,将 OO 分析模型转换到 OO 设计模型,分析模型,设计模型,面向对象设计的主要工作分为两个阶段:高层设计和类设计。 高层设计构造应用软件的总体模型。 类设计建立类的规格说明,包括类的实例可执行的操作和它们的数据表示。 三个可
15、能的利用现有类的方向: 现有类的复用 从现有类进行演化 从废弃型进行开发,面向对象分析与设计的建模,软件开发需要把问题解决模型化。 模型化是理解一个复杂系统的工具; 模型是系统早期抽象的重要结构; 常用的面向对象分析与设计模型 Rumbaugh 等人的 OMT 模型 Coad 和 Yourdon 的模型 Booch 开发模型 UML 统一建模语言,对象模型化技术的三类模型:对象模型、动态模型和功能模型。 这个模型化的过程是一个迭代过程通过不断更新、细化,直到切合系统真正需求为止。,Rumbaugh的对象模型化技术OMT(object modeling technique),1. 对象模型,是三
16、个模型中最关键的一个模型,它的作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,及它们之间的关系。 在OMT中,类与类之间的关系叫做关联。关联代表一组存在于两个或多个对象之间的,具有相同结构和含义的具体连接。关联可以是物理的,也可以是逻辑的。,类名,属性,操作,类,类的实例,(类名) 属性值,类定义示例,自动售货机,饮料编号 价格,投入货币 送出饮料 显示金额 按下按钮 按退币杆 显示售完,聚合,代表整体与部分的关系,这是一种特殊形式的关联。 菱形框 表示整体侧对象 限定,用以对关联的含义做某种约束。 角色,用来说明关联的一端。由于多数关联具有两个端点,因而涉及到两个角色。
17、附加的说明对象之间的连接连接属性。,聚合,限定,泛化关联,2. 动态模型,动态模型着重于系统的控制逻辑,它包括两个图,一是状态图,一是事件追踪图。,状态图,状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为。,事件追踪图,事件追踪图侧重于说明发生于系统执行过程中的一个特定“场景”。 场景也叫做脚本,是完成系统某个功能的一个事件序列。 场景通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件,它可以包括发生在这个期间的系统所有的内部事件。,自动售货机售货脚本(事件序列),3. 功能模型,功能模型由数据流图组成,指明从外部输入到外部输出,数据在系统中传递和变换的情况。,顶层数据流图,数据流图,Coad 与 Yourdon 的分析与设计,1. 面向对象分析的概念模型,通过面向对象分析建立的系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 妇产科计划生育指导与避孕宣教手册
- 公共文化服务体系建设与实施手册
- 气象台重大活动气象保障手册
- Unit 4 Reading for writing 教学设计-2022-2023学年高中英语(人教版2019必修第一册)
- 工程检测服务协议书范本三篇
- 期末测试(试题)五年级上册科学教科版
- 2024年郑州智能科技职业学院高职单招职业技能考试题库(模拟题)附答案详解
- 2025年山东圣翰财贸职业学院高职单招职业技能考试题库含答案详解【预热题】
- 2024年枣庄现代智能制造学院单招职业技能考试模拟试卷【培优B卷】附答案详解
- 2025年辽宁商贸职院单招职业技能考试题库附完整答案详解(网校专用)
- 药包材与药物相容性研究专题
- 食堂人员替补方案模板(3篇)
- 2023年海南省财金集团有限公司招聘笔试模拟试题及答案解析
- 2025年中国PVC压延薄膜数据监测研究报告
- DZ/T 0275.1-2015岩矿鉴定技术规范第1部分:总则及一般规定
- JJF(赣) 039-2024 真空干燥箱校准规范
- 2025届初升高英语衔接讲义教案(共16讲)
- 妇科肿瘤放射治疗临床应用
- 小学奥数举一反三(三年级)全1
- 视屏号认证授权书
- 2025年重庆沙坪坝区西部重庆科学城沙兴实业发展集团有限公司招聘笔试参考题库附带答案详解
评论
0/150
提交评论