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