面向对象分析与设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

0问题与目标问题:1.WhatisOO(Object-Oriented)?2.WhatisOOAD(AnalysisandDesign)?目标:运用面向对象方法与技术,分析用户对软件系统的需求,建立软件系统模型。1第一章绪论1.1面向对象方法基本思想1.2面向对象方法发展简史1.3面向对象方法的基本概念和原则1.4面向对象软件系统模型21.1面向对象方法基本思想•以功能为中心的软件开发方法(结构化方法)•以数据为中心的软件开发方法(信息建模方法)低内聚,高耦合,缺乏灵活性和可维护性分析与设计阶段采用的概念和表示不一致对功能的处理较弱,不适合具有复杂功能的系统3以事物为中心将数据与对数据的操作看作一个整体,即对象是一种认识论、方法论是一种运用对象、类、继承、封装、聚合、关联、消息和多态性等概念和原则来构造系统的软件开发方法,其要点是(1)认识事物及其相互关系(2)对事物归类,并实现继承(3)强调事物的自主性面向对象方法基本思想4高可维护性:回避在不稳定的基础上建造系统。寻找可构造的元素作为系统构造的基础,可构造元素的变化不会涉及到系统的其它成分,不会影响到整体。可复用性:功能复用是代码级的,它基于必要的功能理解,然而功能的语义是不一致的、多义的。软件复用是全方位的,不但是代码级的复用,还应该有源程序级的复用,甚至包括分析和设计文档的复用。程序无关性:任何机器环境下,使用任意程序语言所编的程序,都应该是逻辑通用的。与机器相关的成分应该与处理逻辑无关。面向对象软件开发方法的目标51.2面向对象方法发展简史•源于面向对象程序设计语言1967,Simula671970s,Smalltalk,Modula1980s-90s,C++,Objective-C,Eiffel,java•向分析、设计甚至测试、维护等整个软件生命周期扩展1990s,统一建模语言(UnifiedModelingLanguage,UML)诞生61.3面向对象方法的基本概念和原则•基本概念类与对象,属性与操作,继承、聚合和关联•基本原则抽象,分类,封装,消息,多态性7对象(属性与操作,封装与消息)•客观存在的事物,包括有形对象和无形对象•在面向对象的系统模型中,对象是描述客观事物的一个实体,由属性和操作构成。属性:描述对象静态特征操作:描述对象动态特征•体现了封装原则,目的是实现信息隐蔽(事物的独立自主性)。可见性:暴露属性和操作的方式消息:请求其他对象提供服务的方式,如函数调用8类(抽象,分类)•类是具有共同属性和操作的对象的集合,对象是类的一个实例,类用于创建对象。•体现了抽象及分类原则,是人们分析问题的基本方法抽象:忽略事物的非本质特征,抽取共同的本质特征分类:把具有共性的事物划分为一类9抽象•类是对象的抽象,一般类是对特殊类的抽象•数据抽象:根据施加在数据上的操作来定义数据的类型•过程抽象:将确定的功能定义为单一实体(确定的功能是由一系列操作完成的)•抽象的好处:1)复杂问题简单化2)实现可替换性10例2:对下列事物进行分类和抽象显微镜、摩天楼、望远镜、飞机、铆钉、管道、卡车、单向阀、指数、过滤器、压力器、自行车、正旋、岩洞、眼镜、车库、滑翔机、平方根、铁钉、水龙头、螺钉、余旋、螺栓、帐篷、双筒镜、车棚、杂物堆房、摩托车、帆船、瞄准器例1:数据抽象和过程抽象数据抽象:学生、客户、电子邮件、汽车过程抽象:交易、答辩、备课、开门11光学设备类:显微镜、眼镜、望远镜、瞄准器、双筒镜管道控制类:管道、单向伐、水龙头、过滤器、压力器交通工具类:自行车、帆船、卡车、飞机、滑翔机、摩托车五金类:铁钉、螺钉、螺栓、铆钉建筑类:帐篷、岩洞、车棚、车库、杂物堆房、摩天楼数学概念类:平方根、指数、正旋、余旋光学设备类:聚焦度、变焦长度、单双镜形式、用途功能管道控制类:时速、功率,动力资源、消耗、用途、五金类:材料、直径、长度、硬度、用途建筑类:面积、高度、材料、用途数学概念类:概念定义、公式内容、用途抽取同类事物的共同性质:分类:12继承•在不同程度上运用抽象和分类原则,可以得到较一般的类和较特殊的类。•继承:特殊类自动拥有一般类所具有的全部属性和操作,也可称为一般类对特殊类的泛化。•多重继承:一个特殊类同时继承两个以上一般类的属性和操作•继承的重要作用:1)简化对事物的认识和描述2)有利于软件复用13学生姓名年龄……研究生导师研究方向……本科生班级专业……人员姓名年龄……研究生导师研究方向……职工部门职务……在职研究生……运输工具轮船车辆飞机卡车轿车继承:多继承:继承层次:14多态性•多态性:特殊类可以对继承来的属性和操作做出自己的解释,即在继承关系的类层次结构中可以定义同名操作或属性,形成同一操作或属性的多种形态,这样可以按不同的行为响应同一个消息。•多态性进一步体现了信息隐蔽的原则,可以实现接口的独立封装。15关联•关联表示类之间的静态联系。•当类实例化为对象后,关联实例化为对象之间的链。•可以通过属性来表达关联。职员……公司……关联:工作16聚合•聚合表示对象之间的整体部分关系,具有“有一个”或“是一部分”的语义•聚合也是一种关联。汽车…………发动机……车轮……聚合:17系统复杂性控制(包)•包用于控制系统的粒度,将系统组成元素组织到不同的包中,可以方便系统整体规划,减小系统分析和设计的复杂性。系统行为分析(状态转换与交互)•系统运行中对象的属性值会不断发生变化,从而形成对象的不同状态。描述对象状态的转换,可以确定对象的行为完整性;•系统中对象必须相互协作以完成某项功能,描述对象间的交互,可以表示系统实现功能的整体行为以及对象之间的并行性。18•实现高可维护性:1)类是封装了操作的一个“代码级复用”程序模板,类的使用,如同数据变量一样简单。类的对象可成为系统的构造元素。2)对于“对象变量”的操作不同于程序调用,采用了消息,“消息”是并发的机制,回避了功能调用的过程性,使系统成为可构造和高可维护的•实现可复用性:1)对象语义的表示唯一,这使得代码级的复用简单且自然。2)类继承性是源程序级的复用机制,允许用已有的程序构架,简单地构造新的应用,并仍保持易维护性。实现程序无关性:类的多态性以及动态绑定(动态联编)技术,是面向对象方法有别于结构化方法的实质性突破。它提供独立接口的实现技术,这样可以将与机器相关的成分独立出来,为程序无关性奠定了基础。面向对象方法实现其目标的途径191.4面向对象软件系统模型•系统模型为了理解和实现所要建造的软件系统,对系统及其工作环境的简化和形式化描述。•一个完整的软件系统模型通常包括若干不同层次、不同视角的模型层次:系统的抽象程度视角:系统的不同方面(交互、功能、实现、组织…)20面向对象模型视图用况视图进程视图部署视图设计视图实现视图结构视图21结构视图设计视图进程视图实现视图部署视图用况视图静态包图类、对象图构件图部署图用况图动态交互图、状态图、活动图•用况视图:软件系统的内外交互情况•设计视图:软件系统的功能需求•进程视图:软件系统的控制与驱动•实现视图:软件系统的配置与管理•部署视图:软件系统的物理分布与安装•结构视图:软件系统的体系结构面向对象模型视图的构成22第二章面向对象的分析技术2.1分析面临的主要问题2.2面向对象的分析模型2.3面向对象的分析过程232.1分析面临的主要问题•OOA与OOD的界限•对问题域和系统责任的理解•人与人之间的交流•需求的不断变化•软件复用的要求24OOA与OOD的界限•OOA:运用面向对象方法,对问题域和系统责任进行分析和理解,找出描述问题域和系统责任所需的对象,定义对象的属性和操作以及对象之间的关系,建立一个符合问题域,满足用户需求的OOA模型。•OOA不考虑与系统具体实现有关的因素,而将其留给OOD去处理,因此OOD包括两方面的工作:1)根据实现条件对OOA模型作某些必要的修改和调整。2)针对具体实现条件,建立人机界面、数据存储和控制驱动等模型。25问题域和系统责任•软件分析人员必须尽快了解和明确:1)问题域---被开发系统的应用领域,现实世界中,要求系统处理的业务范围。2)系统责任---所开发的系统应该具备的功能。•问题域不等于系统责任,但它们有很多重合部分金融业务个人储蓄代发工资收费业务贷款业务办公管理数据备份系统责任问题域26人与人之间的交流•交流包括三部分人员之间:1)开发人员与用户(需求方)2)开发人员之间3)开发人员与管理人员•交流工具包括谈话和文档用户文档,技术文档,管理文档27需求的不断变化•树立“需求变化是绝对的”的观念,从分析到设计,始终注意“易维护修改”这一原则。•需求变化时,最容易变化的是系统功能。在面向对象方法中,最容易变化的成分是对象中的操作,其次是对象间的交互与协作,第三是对象的属性。对象本事是相对稳定的。•隐蔽内部操作,抽取高层类,可以使系统稳定且易于应对需求变化。28软件复用的要求•在已有的软件成分基础上建造系统,是新型软件开发方法的一个重要原则。•复用已有的软件成分,不仅是提高开发效率的资源集约化生产方式,更重要的原因在于复用已有软件成分可以保证其相对正确性,回避不宜保证的软件质量问题。•复用是多方面的,从执行代码、源代码到设计文档,乃至分析文档。292.2面向对象的分析模型目标:用规范的面向对象图表和文字来描述所要建造的软件系统,以便在用户与系统分析人员之间达成共识,同时使后续工作得以继续。内容:需求描述UseCase用况图辅助模型Sequence交互图Collaboration协作图StateTransition状态转换图Component包图基本模型Class类图详细说明对象层关系层特征层30用况图(UseCase)捕获与描述用户需求的工具类图(Class)类图是系统模型的基础,描述系统的静态结构。三个层次:•对象层:描述问题域和系统责任所需的对象•关系层:类之间的相互关系•特征层:类的属性和操作(分析阶段不用细化)31顺序图(Sequence)按时间顺序排列在完成某一功能过程中对象之间的交互行为。协作图(Collaboration)以某一对象为中心描述对象之间的交互。状态转换图(StateTransition)描述对象在生命周期内,响应事件的状态转换过程,以及响应事件后所做的反映。包图(Component)对关系密切的模型元素进行打包。322.3面向对象的分析过程分析过程中各个步骤不要求按固定顺序进行。所以,面向对象的分析步骤经常被叫做“活动”。建立UseCase发现对象定义属性与服务建立结构与连接定义:顺序图、协作图、状态图建立Class详细说明原型开发33实施OOA的几点建议:1)确定需求的工作放在前面;2)建立Class图,可以随时切换到其他活动;3)建立顺序图、协作图和状态图的活动,放在对象识别之后,并与基本模型活动交错进行,4)详细说明应分散在各项活动之中进行,最后做一次审查和补充;5)原形可以反复地进行,早期的原型可以用来证实用户需求;6)对于规模较小系统,分析时可以省略包图。34第三章面向对象的设计3.1面向对象设计概述3.2问题域设计3.3人机交互设计3.4控制驱动设计设计3.5数据管理设计3.6构件和部署设计353.1面向对象设计概述•按照软件生命周期的规律,面向对象的方法学也包括分析活动和设计活动。•分析活动和设计活动并没有明显的阶段划分,对应喷泉式模型:演化维护测试实现设计分析–体现认识事物的循环迭代性–强调开发活动的无间隙性(无明显的阶段划分)–强调开发活动的并发性36•面向对象分析活动----针对问题域和系统责任,不考虑与实现有关的因素,建立独立于实现的OOA模型。•面向对象设计活动----考虑与实现有关的问题,建立针对具体实现的OOD模型,设计内容包括:1)根据实现语言对类(属性与操作)进行描述2)人机交互界面设计3)系统控制部分的设计4)数据管理部分的设计5)系统构件部署问题域部分详细说明控制驱动部分人机交互部分数据管理部分行为图与包图类图用况图详细说明37面向对象设计准则•以设计元素的耦合性、内聚性

1 / 109
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功