软件工程与项目管理第9章面向对象的软件 开发 方法

上传人:w****i 文档编号:91076048 上传时间:2019-06-21 格式:PPT 页数:64 大小:1.03MB
返回 下载 相关 举报
软件工程与项目管理第9章面向对象的软件 开发 方法_第1页
第1页 / 共64页
软件工程与项目管理第9章面向对象的软件 开发 方法_第2页
第2页 / 共64页
软件工程与项目管理第9章面向对象的软件 开发 方法_第3页
第3页 / 共64页
软件工程与项目管理第9章面向对象的软件 开发 方法_第4页
第4页 / 共64页
软件工程与项目管理第9章面向对象的软件 开发 方法_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《软件工程与项目管理第9章面向对象的软件 开发 方法》由会员分享,可在线阅读,更多相关《软件工程与项目管理第9章面向对象的软件 开发 方法(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. 继承,图9-1 类的继承,图9-2 单重继承和多重继承

4、,5封装 把某个类的共同的属性和方法“组装起来”称为对象类的封装,或称为信息隐蔽。封装的含义是某个对象类的共同的属性和方法,对该类中的某一对象来讲是信息隐蔽的,这个对象只能见到封装界面上的信息,即接口。类的封装同芯片的封装很相似,其内部的“电路”是不可见的。 6多态 对象之间的调用是通过消息来完成的。在收到消息时,对象要予以响应。不同的对象收到同一消息可产生完全不同的结果,这一现象叫做多态。,7类的关系 系统中的类与类之间存在着各种关系,例如前面所讲的“继承”(又称为“泛化”,它表示类与类之间、接口与接口之间的继承关系,或类对接口的实现关系)。除此之外,常见的类的关系还包括:,1)关联 关联是

5、一种结构化的关系,指一种对象和另一种对象有联系。对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。,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 DependReturnType(); ,3)聚合 当对象A被加入到对象B中,成为对象B的组成部分时,对象

7、B和对象A之间为聚合关系。聚合是一种较强的关联关系,强调的是整体与部分之间的关系。例如,计算机类和外设类的关系。 4)组合 组合是一种特殊的聚合关系,它是一种强类型的聚合,组合中的部分不能脱离整体而独立存在,例如汽车类和汽车轮胎类之间的关系。 组合与聚合的区别在于:在生命周期的实现上,组合需要负责其部分的创建和销毁,聚合不需要;组合中的一个对象在同一时刻只能属于一个组合对象,而聚合的一个部分对象可以被多个整体对象聚合,例如一个学生可以在多个学校就读,而一个菜单在同一时刻只能是某个窗口内的对象。,8消息 消息是对象之间的通信联系,它表现了对象行为的动态联系。通常,一个对象向另一个对象发出消息请求

8、某项服务时,接收消息的对象响应该消息,激活所要求的服务操作,并将操作结果返回给请求服务的对象。,9.1.2 面向对象的开发方法,1Booch方法 Booch方法是由Grady Booch 提出的一种开发方法,它最先描述了面向对象的软件开发方法的基础问题,指出面向对象开发是一种根本不同于传统的功能分解的设计方法。面向对象的软件分解更接近人对客观事务的理解,而功能分解可通过问题空间的转换来获得。 Booch方法的过程包括以下步骤: (1)在给定的抽象层次上识别类和对象。 (2)识别这些对象和类的语义。 (3)识别这些类和对象之间的关系。 (4)实现类和对象。,2Coad/Yourdon方法 Coa

9、d/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)对象设计 基于分析模型和求解域中的体系结构等添加的实现细节,完成系统设计。 4)实现 将设计转换为特定的编程语言或硬件,同时保持可追踪性、灵活性和可扩展性。,表9-1 OMT方法的各个阶段及中间结果,4OOSE方法 OOSE是I

11、var Jacobson在1992年提出的一种面向对象的开发方法,以“用例”驱动的思想而著称。 OOSE方法与上述方法有所不同,它涉及到整个软件生命周期,包括需求分析、设计、实现和测试4个阶段。OOSE方法中的一个关键概念就是“用例”。 OOSE方法对以用例驱动进行需求获取、分析和设计提供了极好的支持。,9.1.3 UML,1UML的由来 1996年6月和10月分别发布了两个新的统一方法版本,即UML 0.9和UML 0.91,并将UM重新命名为UML(Unified Modeling Language)。 1996年, UML的开发者得到了来自公众的正面反应,并倡议成立了UML成员协会,以完

12、善、加强和促进定义UML的工作。 UML 1.0(1997年1月)及UML 1.1(1997年11月17日) UML不仅统一了Booch方法、OMT方法、OOSE方法的表示方法,还做了进一步的发展,最终成为大众接受的标准建模语言。,2UML表示法 UML并没有规定具体的软件开发过程,只包括了概念的语义、表示法和说明,提供了静态、动态、系统环境及组织结构的模型。UML可被交互的可视化建模工具所支持,这些工具提供了代码生成器和报表生成器。UML是为支持大部分现存的面向对象开发过程而设计的。,图9-3 UML中的视图,3UML的优点 (1)UML并没有从根本上脱离Booch、OMT或OOSE方法,而

13、是对这些方法的有批判的继承。 (2)与Booch、OMT、OOSE等其他方法相比,统一建模语言具有表达力更强、更清晰和表达形式一致等优点。,9.1.4 常用的UML视图,1用例图 用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,可以通俗地将用例理解为软件的功能模块。,图9-4 一个论坛系统的用例图,2序列图 序列图主要用于按照交互发生的顺序显示对象之间的这些交互。,图9-5 一个游戏点卡充值系统的序列图,3类图 类图展现了一组对象、接口、协作和它们之间的关系。,表9-2 类之间的关系及其UML表示,图9-6 一个类图的简单例子,4协作图,

14、图9-7 一个协作图的例子,9.2 面向对象的分析与设计,9.2.1 面向对象的分析和设计过程,(1)识别系统的用例和角色。 (2)进行系统分析,并抽取类。 (3)系统设计,并设计类及其行为。,9.2.2 面向对象的分析,图9-8 面向对象的分析过程,面向对象的需求分析从概念上又可分为问题分析和应用分析两个方面。 1.问题分析 问题分析的主要任务是收集并确认用户的需求信息,对实际问题进行功能分析和过程分析,从中抽象出问题中的基本概念、属性和操作;然后,用泛化、组成和关联结构描述概念实体间的静态关系;最后,将概念实体标识为问题域中的对象类,并定义对象类之间的静态结构和信息连接关系,最终建立关于对

15、象的分析模型。 2.应用分析 应用分析的主要任务是动态描述系统中对象的合法状态序列,并用动态模型表达对象的动态行为、对象之间的消息传递和协同工作的动态信息。对象的动态行为与静态结构密切相关并且受其约束,静态结构限制了对象状态的取值范围,而动态行为反映了对象状态的变化序列。,某学校欲开发一个小型图书管理系统,使用计算机实现对学校图书资料的登记、借出、归还、查询等管理。该系统有图书管理员和读者两种用户,图书管理员负责添加、更新和删除系统中的图书资料信息和读者信息,并登记和查询图书资料的借出情况或归还情况。读者可以按照作者或者主题检索图书资料信息,并且可以预订目前借不到的图书资料。系统在Web环境下

16、运行,要求用户界面友好,响应速度快,具有良好的可扩展性。,1识别系统的用例和角色 根据问题描述,可以识别出该小型图书管理系统有两类角色:“图书管理员”和“读者”,其相应的用例为: 1)与“图书管理员”有关的用例 (1)管理读者:在系统中增加、删除和修改读者信息。 (2)管理图书:在系统中增加、删除和修改图书信息。 (3)登记借书:在系统中登记读者的借书记录。 (4)登记还书:在系统中登记读者的还书记录。 2)与“读者”有关的用例 (1)预订图书:在系统中登记预订信息。 (2)取消预订:在系统中删除已登记的预订信息。 3)与“图书管理员”和“读者”都有关的用例 (1)用户登录:登录到系统。 (2)图书查询:查询图书信息及图书的借出记录。,图9-9 小型图书管理系统的用例图,2识别分析类 1)实体类 用于描述必须存储的信息及相关行为,它是对系统的核心信息建模,通常这些信息需要长久地保存。 图书管理员类(命名为BookManager类)、读者类(命名为Reader类)、图书资料类(命名为

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

当前位置:首页 > 高等教育 > 大学课件

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