您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > [软件工程]CH09-面向对象方法
2019/8/91软件工程软件工程刘迎春软件工程2019/8/92第九章面向对象方法主要内容9.1概述9.2UML简介9.3面向对象分析(静态分析)9.4建立动态模型9.5面向对象设计9.6UML双向工程2019/8/939.1概述9.1.1对象和类Coad和Yourdon的定义:面向对象=对象+类+继承+通信2019/8/949.1.1对象和类【类】是对一组具有相同结构、操作,并遵守相同规则的对象的抽象;【对象】是类的一个实例;钢笔【类?对象】【类?对象】铅笔毛笔【类】笔我的一支铅笔【类?对象】2019/8/959.1.1对象和类【对象】是类的一个实例;每个对象都具有属性及与之相关的事件和方法,通过对象的属性、事件和方法来处理对象。【对象三要素】⑴属性(Property)定义对象的特征或某一方面的行为;如:汽车的颜色、载重量;表单(表单类对象)的大小、标题等;2019/8/969.1.1对象和类【对象三要素】⑵事件(Event)对象识别的一个动作,由相应的方法对此动作进行响应;如:单击鼠标(Click)、移动鼠标(MouseMove)、按键(KeyPress)对象的事件集合是固定的,用户不能创建新的事件;⑶方法(Method)对象能够执行的一个操作,是与对象相关联的过程;方法可由用户自己创建(处理代码);2019/8/979.1.1对象和类⑴封装性(encapsulation)⑵继承性(inheritance)⑶多态性(polymorphism)2019/8/98类的特性:封装封装是允许有选择地隐藏类中的属性和方法的过程有选择的数据隐藏,防止意外的数据破坏,更易于隔离和修复错误在类的外部不能访问在类的外部可以访问私有公有类2019/8/99类的特性:继承超类是有其他类继承其特征和行为的类继承其他类的类称为子类动物2019/8/910类的特性:多态性同样的函数在不同的类上有不同的行为类:形状方法:绘制移动初始化子类对各个子类实现的方法将产生不同的结果2019/8/9119.1.2面向对象的基本特征结构化方法(SA、SD、SP)【指导思想】自顶向下,逐步细化自顶向下地进行功能分解;从外部功能上模拟客观世界;2019/8/9129.1.2面向对象的基本特征【结构化设计实例】教材购销系统学生采购员购书单领书单缺书单进书通知进书通知学生采购员购书单领书单缺书单进书通知1销售2采购自顶向下地进行功能分解2019/8/9139.1.2面向对象的基本特征【结构化设计实例】进书通知学生采购员购书单领书单缺书单进书通知1销售2采购2.1按书号汇总缺书2.2按出版社汇总缺书2.3修改库存采购员缺书单缺书列表进书通知自顶向下地进行功能分解2019/8/9149.1.2面向对象的基本特征【结构化设计实例】自顶向下地进行功能分解2019/8/9159.1.2面向对象的基本特征结构化方法(SA、SD、SP)【指导思想】自顶向下,逐步细化自顶向下地进行功能分解;从外部功能上模拟客观世界;【开发过程】”做什么””如何做”【优点】系统的结构性强,便于设计和理解【缺点】维护困难;用户的需求不可能一次提得完备、精确;一旦需求改变,后续的设计和实现都要修改;2019/8/9169.1.2面向对象的基本特征【结构化设计实例】自顶向下地进行功能分解WW1W1.1W1.2W1.3维护困难2019/8/9179.1.2面向对象的基本特征结构化方法(SA、SD、SP)【指导思想】自顶向下,逐步细化自顶向下地进行功能分解;从外部功能上模拟客观世界;【开发过程】”做什么””如何做”面向对象方法(OOA、OOD、OOP)【指导思想】基于对象的自底向上地进行功能综合;从内部结构上模拟客观世界;【开发过程】”用什么做””做什么””如何做”2019/8/9189.1.2面向对象的基本特征面向对象方法(OOA、OOD、OOP)【指导思想】基于对象的自底向上地进行功能综合;从内部结构上模拟客观世界;【开发过程】”用什么做””做什么””如何做”用什么做认识应用领域中的对象及其关系;设计出程序的基本单位——类、对象;做什么需要具体解决某一应用任务;如何做如何综合类、对象解决问题;2019/8/9199.1.2面向对象的基本特征【结构化方法.VS.面向对象方法】结构化方法以过程为中心构造系统。将现实世界映射为数据流,加工。强调过程抽象和模块化加工之间通过数据流进行通信。被动的数据被主动的加工所操作。面向对象方法以对象为中心构造系统。把世界看成对象的集合。对象将数据和操作封装在一起。对象之间通过消息相互通信。2019/8/9209.1.3面向对象开发的优点【面向对象方法的优点】(1)面向对象方法强调把问题域的概念直接映射到对象以及对象之间的接口,符合人们通常的思维方式,减少了结构化方法从问题域到分析阶段的映射误差。(2)面向对象方法从分析到设计再到采用—致的模型表示,每一阶段可以直接复用前—阶段的工作成果,弥合了结构化方法从数据流图到模块结构图转换的鸿沟,减少了工作量和映射误差2019/8/9219.1.3面向对象开发的优点【面向对象方法的优点】(3)面向对象方法开发的软件,具有易于修改和维护的特性把属性和服务封装在“对象”中;改动局限于一个对象的内部,减少了改动所引起的系统被动效应。(4)面向对象方法具有的继承性和封装性支持软件复用,使软件易于扩充,能较好地适应复杂大系统不断发展和变化的要求。2019/8/9229.2UML简介【有影响的OO方法】(1)Booch的OOD擅长设计;(2)Rumbaugh等人的OMT擅长分析;(3)Jacobson的OOSE擅长业务建模UnifiedModelingLanguage2019/8/923Rational三剑客-UML的奠基者UML是对象管理组织(OMG)采纳的基于面向对象技术的标准建模语言。JimRumbaughGradyBoochIvarJacobson2019/8/9249.2UML简介•统一建模语言UML(UnifiedModelingLanguage)是一种绘制软件蓝图的标准语言•可以用UML对软件系统进行可视化、行为、结构和文档化•按照实际情况或按需要的样式对系统进行可视化;•提供一种详细说明系统的结构或行为的方法;•给出一个指导系统构造的模板;•对所做出的决策进行文档化•它是一种富有表达力的语言,可以描述开发所需要的各种视图,然后以此为基础开发系统2019/8/925在不同系统中的应用从企业信息系统到基于Web的分布式应用,甚至严格的实时嵌入式系统都适合于用UML来建模。•技术系统:处理和控制技术设备•信息系统:与数据库有关的系统•嵌入式系统:控制像移动电话这样的设备以及家用设备•分布式系统:使用CORBA和类似的面向对象机制分布在不同系统上的数据库系统•系统软件:操作系统和编写系统实用程序•业务系统:与工作流有关的系统2019/8/926UML建模类型1、业务建模:分析、描述业务领域2、需求模型:系统需求分析3、设计模型:高层设计模型;详细设计模型4、实现模型:开发、设计模型5、数据库模型:数据库逻辑、物理模型设计2019/8/9279.2.1UML的组成构造块关系图建模元素(类、接口、协作、用例、对象、构件、节点)行为元素(交互、状态机)分组元素(包)注解元素关联依赖泛化实现静态模型(类图、对象图、构件图、部署图)动态模型(用例图、顺序图、协作图状态图、活动图)2019/8/928UML的组成【UML模型的基本组成】①构造块、元素(Things)“点”——模型的核心内容;②关系(Relationships)“线”——将要素联系在一起;③图(Diagrams)“面”——将一组要素和关系展现出来;2019/8/9291.构造块是对模型中最具有代表性的成分的抽象建模元素,是对模型中最具有代表性的成分的抽象类、接口、协作、用例、对象、构件、节点行为元素,UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为交互、状态机分组元素,UML中的容器,用来组织模型,使模型更加的结构化包注解元素,UML中的解释部分2019/8/9302.UML的图类别图形名称作用静态图类图展现类,接口及其关系对象图描述一个时间点上系统中各个对象的一个快照构件图描述构件的结构与连接部署图描述在各个节点上的部署动态图用例图展现UseCase,Actor及其关系顺序图按时序展示对象间的消息传递协作图描述(收发消息的)对象间的协作关系状态图对象可能经历的状态及对事件的响应活动图系统从一个活动转到另一个活动的路径2019/8/931类和类图“类”(Class)描述一组具有相同属性、操作、语义的对象。SampleClass+attribute1:String+attribute2:Integer+attribute3:Boolean+operation1()+operation2()+operation3()类名属性操作2019/8/932接口说明一个类应该提供的服务,是一组操作的集合。接口以一种规范的形式来表述多态性。接口名操作SampleInterfaceinterface+sampleOperation1()#sampleOperation2()-sampleOperation3()SampleInterface2019/8/933对象和对象图对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。如下面:左图指明对象和它对应的类名;右图尽管指明了对象所属类,但并未提供一个具体的对象名,这是匿名对象。myWaster:WashingMachine:WashingMachine2019/8/934用例和用例图用例是在系统中执行的一系列动作,这些动作将生成特定执行者可见的价值结果。用例图是从用户角度描述系统功能,并指出各功能的操作者。以洗衣机系统如下:2019/8/935构件图构件图描述代码部件的物理结构及各部件之间的依赖关系。是比“类”更大的实体,例如一个COM组件ActiveX文件、一个JavaBeans、进程内组件(.DLL)、进程外组件(.EXE)、C++中的头文件(.h)、实现文件(.cpp)等等它包含逻辑类或实现类的有关信息。构件图有助于分析和理解部件之间的相互影响程度。2019/8/936某系统四个可执行文件组成的构件图SysMgrChkCtrIntAccntAppServer2019/8/937节点Node节点是在运行时存在的物理元素,它表示一个计算机资源,通常至少有一些记忆能力和处理能力。一组构件可以驻留在一个节点内,也可以从一个节点迁移到另一个节点。在图形上,把节点画成一个立方体,通常在立方体中只写它的名称2019/8/938部署图部署图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。下面为不同品牌计算机的通信部署图:2019/8/939一个典型的基于三层架构的财务系统的物理配置图数据库服务器应用系统管理核算中心集成帐务打印机AppServerSQLServerSysMgrChkCtrIntAccnt服务器2019/8/940状态图状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。如下为一洗衣过程的状态图。2019/8/941顺序图顺序图显示对象之间的动态合作关系,
本文标题:[软件工程]CH09-面向对象方法
链接地址:https://www.777doc.com/doc-165734 .html