软件工程9面向对象的软件开发方法ppt课件.ppt
《软件工程9面向对象的软件开发方法ppt课件.ppt》由会员分享,可在线阅读,更多相关《软件工程9面向对象的软件开发方法ppt课件.ppt(64页珍藏版)》请在三一文库上搜索。
1、第9章 面向对象的软件开发方法 掌握:面向对象的开发方法、UML、常用的 UML视图、面向对象的分析与设计、面向对象 的编程、面向对象的软件测试。 9.1 面向对象方 法概述 9.1.1 面向对象的由来与基本概念 1. 面向对象的由来 面向对象的思想最初可追溯到20世纪60年代开 发的Simula 67语言,一般将它当作面向对象 语言的鼻祖。 20世纪70年代出现的Ada语言是支持数据抽 象类型的最重要的语言之一。 后来出现的Smalltalk语言是最有影响的面向对 象的语言之一,它丰富了面向对象的概念。 20世纪80年代中期以后,面向对象的程序设计 语言开始广泛应用于程序设计,并出现了更多
2、的面向对象的语言,如Object-C,C+, Java等。 面向对象首先体现为一种思想,可简要概括如下: (1)客观世界由对象组成,任何客观实体都是对象,复 杂对象可以由简单对象组成。 (2)具有相同数据和操作的对象可归纳成类,对象只是 类的一个实例。 (3)类可以派生出子类,子类除了继承父类的全部特性 外还可以有自己的特性。 (4)对象之间的联系通过消息传递来维系。类的封装性 使其具有某些对外界不可见的数据,这些数据只能通 过消息请求调用可见方法来访问。 简单地说,面向对象对象类继承消息。 2对象 对象是面向对象开发方法的核心。 一般认为,对象就是一种事物,一个实体,从 最简单的整数到极其复
3、杂的控制系统等都可被 看作是对象。 举例来说,飞机、车辆、桌子、计算机等有形 的实体,医生、职工、学生、公司等人或组织 ,计划、安排、演出、开会等事件和活动,都 可以被当作是某种对象。 3. 类 类是对象的集合的一种抽象,它描述的是一类对象的 共同的性质和行为,其中性质用属性表达,行为用方 法描述。 例如,“人”就可被当作一个类,具有性别、身高、体重 、肤色等属性,同时,具有开门、走路、吃饭、喝水 等方法,这是所有“人”都具备的共同的性质和行为。每 一个具体的“人”是该类的对象。 类概念的提出在面向对象思想发展中具有极其重要的 作用。 类具有一些十分重要的特性,包括继承、封装和多态 。 4.
4、继承 图9-1 类的继承图9-2 单重继承和多重继承 5封装 把某个类的共同的属性和方法“组装起来”称为对象类的 封装,或称为信息隐蔽。封装的含义是某个对象类的 共同的属性和方法,对该类中的某一对象来讲是信息 隐蔽的,这个对象只能见到封装界面上的信息,即接 口。类的封装同芯片的封装很相似,其内部的“电路”是 不可见的。 6多态 对象之间的调用是通过消息来完成的。在收到消息时 ,对象要予以响应。不同的对象收到同一消息可产生 完全不同的结果,这一现象叫做多态。 7类的关系 系统中的类与类之间存在着各种关系,例如前 面所讲的“继承”(又称为“泛化”,它表示类与类 之间、接口与接口之间的继承关系,或类
5、对接 口的实现关系)。除此之外,常见的类的关系 还包括: 1)关联 关联是一种结构化的关系,指一种对象和另 一种对象有联系。对于两个相对独立的对象, 当一个对象的实例与另一个对象的一些特定实 例存在固定的对应关系时,这两个对象之间为 关联关系。 Class Employee public void DoWork(); Class Association private Employee myEmployee; public void DoSomething() myEmployee.DoWork(); 2)依赖 依赖是指一个类使用了另一个类,它是一种 使用关系,即一个事物的规格说明的变化可能
6、会影响到使用它的另一个事物(反之不一定) 。最常见的依赖关系是一个类中使用了另一个 类的定义。对于两个相对独立的对象,当一个 对象负责构造另一个对象的实例或者依赖另一 个对象的服务时,这两个对象之间主要体现为 依赖关系。 Class DependReturnType Class DependParameter Class DependVarible Class Depend public DependReturnType Test (DependParameter param) DependVarible var = new DependVarible(); return new Depend
7、ReturnType(); 3)聚合 当对象A被加入到对象B中,成为对象B的组成部分 时,对象B和对象A之间为聚合关系。聚合是一种较强 的关联关系,强调的是整体与部分之间的关系。例如 ,计算机类和外设类的关系。 4)组合 组合是一种特殊的聚合关系,它是一种强类型的聚 合,组合中的部分不能脱离整体而独立存在,例如汽 车类和汽车轮胎类之间的关系。 组合与聚合的区别在于:在生命周期的实现上,组 合需要负责其部分的创建和销毁,聚合不需要;组合 中的一个对象在同一时刻只能属于一个组合对象,而 聚合的一个部分对象可以被多个整体对象聚合,例如 一个学生可以在多个学校就读,而一个菜单在同一时 刻只能是某个窗口
8、内的对象。 8消息 消息是对象之间的通信联系,它表现了对象行为的 动态联系。通常,一个对象向另一个对象发出消息请 求某项服务时,接收消息的对象响应该消息,激活所 要求的服务操作,并将操作结果返回给请求服务的对 象。 9.1.2 面向对象的开发方法 1Booch方法 Booch方法是由Grady Booch 提出的一种 开发方法,它最先描述了面向对象的软件开发 方法的基础问题,指出面向对象开发是一种根 本不同于传统的功能分解的设计方法。面向对 象的软件分解更接近人对客观事务的理解,而 功能分解可通过问题空间的转换来获得。 Booch方法的过程包括以下步骤: (1)在给定的抽象层次上识别类和对象。
9、 (2)识别这些对象和类的语义。 (3)识别这些类和对象之间的关系。 (4)实现类和对象。 2Coad/Yourdon方法 Coad/Yourdon方法也称为OOA/OOD方法。 Coad/Yourdon方法严格区分了面向对象分析OOA 和面向对象设计OOD。该方法利用5个层次和活动定 义及记录系统行为、输入和输出。这5个层次的活动包 括: (1)发现类及对象。 (2)识别结构。 (3)定义主题。 (4)定义属性。 (5)定义服务。 3OMT方法 OMT方法是1991年由James Rumbaugh等5人提 出来的,其经典著作为面向对象的建模与设计。 Rumbaugh的OMT方法提供了3种模型
10、,即对象模 型、动态模型和功能模型。 对象模型描述对象的静态结构和它们之间的关系, 主要的概念包括: 类、属性、操作、继承、关联(即 关系)、聚集。 动态模型描述系统随时间变化的那些方面,其主要 概念有:状态、子状态和超状态、事件、行为、活动 。 功能模型描述系统内部数据值的转换,其主要概念 有:加工、数据存储、数据流、控制流、角色。 OMT方法将开发过程分为4个阶段: 1)分析 基于问题和用户需求的描述,建立现实世界的模型 。 2)系统设计 结合问题域的知识和目标系统的体系结构(求解域 ),将目标系统分解为子系统。 3)对象设计 基于分析模型和求解域中的体系结构等添加的实现 细节,完成系统设
11、计。 4)实现 将设计转换为特定的编程语言或硬件,同时保持可 追踪性、灵活性和可扩展性。 表9-1 OMT方法的各个阶段及中间结果 阶段中间结果 分析问题描述 对象模型用对象图、数据词典表示 动态模型用状态图、全局事件流图表示 功能模型用数据流图、约束表示 系统设计子系统 对象设计细化的对象模型 细化的动态模型 细化的功能模型 实现编程代码 4OOSE方法 OOSE是Ivar Jacobson在1992年提出的一 种面向对象的开发方法,以“用例”驱动的思想 而著称。 OOSE方法与上述方法有所不同,它涉及到 整个软件生命周期,包括需求分析、设计、实 现和测试4个阶段。OOSE方法中的一个关键概
12、 念就是“用例”。 OOSE方法对以用例驱动进行需求获取、分 析和设计提供了极好的支持。 9.1.3 UML 1UML的由来 1996年6月和10月分别发布了两个新的统一方法版本 ,即UML 0.9和UML 0.91,并将UM重新命名为UML( Unified Modeling Language)。 1996年, UML的开发者得到了来自公众的正面反应, 并倡议成立了UML成员协会,以完善、加强和促进定 义UML的工作。 UML 1.0(1997年1月)及UML 1.1(1997年11月17日 ) UML不仅统一了Booch方法、OMT方法、OOSE方法 的表示方法,还做了进一步的发展,最终成
13、为大众接 受的标准建模语言。 2UML表示法 UML并没有规定具体的软件开发过程,只包 括了概念的语义、表示法和说明,提供了静态 、动态、系统环境及组织结构的模型。UML可 被交互的可视化建模工具所支持,这些工具提 供了代码生成器和报表生成器。UML是为支持 大部分现存的面向对象开发过程而设计的。 图9-3 UML中的视图 3UML的优点 (1)UML并没有从根本上脱离Booch、 OMT或OOSE方法,而是对这些方法的有批判 的继承。 (2)与Booch、OMT、OOSE等其他方法 相比,统一建模语言具有表达力更强、更清晰 和表达形式一致等优点。 9.1.4 常用的UML视图 1用例图 用例
14、图主要用来图示化系统的主事件流程,它主要 用来描述客户的需求,即用户希望系统具备的完成一 定功能的动作,可以通俗地将用例理解为软件的功能 模块。 图9-4 一个论坛系统的用例图 2序列图 序列图主要用于按照交互发生的顺序显示对 象之间的这些交互。 图9-5 一个游戏点卡充值系统的序列图 3类图 类图展现了一组对象、接口、协作和它们之间的关 系。 表9-2 类之间的关系及其UML表 示 类之间的关系UML表示 泛化 关联 依赖 聚合 组合 图9-6 一个类图的简单例子 4协作图 图9-7 一个协作图的例子 9.2 面向对象的 分析与设计 9.2.1 面向对象的分析和设计过程 (1)识别系统的用例
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 面向 对象 软件 开发 方法 ppt 课件
链接地址:https://www.31doc.com/p-3301871.html