《第1章面向对象技术概述》由会员分享,可在线阅读,更多相关《第1章面向对象技术概述(64页珍藏版)》请在金锄头文库上搜索。
1、第1章 面向对象技术概述 1.1 软件危机及软件工程 1.2 对软件开发的基本认识1.3 软件的固有复杂性1.4 控制软件复杂性的基本方法1.5 面向对象技术1.6 面向对象分析(OOA)1.7 面向对象设计(OOD)1.1 软件危机及软件工程 1.1.1 软件危机1.1.2 软件工程 1.1.1 软件危机1946年,世界上第一台电子计算机在美国研制成功。50年代,软件诞生。 60年代中期到70年代中期,“软件危机” 出现。1968年,“软件工程” 概念的提出。1.1.1 软件危机软件危机主要表现:软件危机主要表现:开发周期拖后按年计成本超出可多达一个数量级开发生产效率低软件质量难以保证,甚至
2、不能使用系统复杂性远超出人脑直接控制的程度美国丹佛新国际机场1996年的亚特兰大奥运会中,IBM赞助的Info96网络1.1.1 软件危机6个投入使用,2个被取消。软件开发时间超时50%。大型系统中,3/4的系统有运行问题说明软件问题的重要性、复杂性、困难性说明软件问题的重要性、复杂性、困难性和长期性和长期性解决问题的两个途径提高个人的能力提高组织的能力1.1.1 软件危机实现的三种途径三条途径构成软件工程的三大要素:方法、工具和过程合理分配开发力量改进方法借助软件工具1.1.2 软件工程软件工程就是包含方法、工具和过程三个要素的软件开发方法,实质就是在软件开发过程中引入过程化的方法软件工程方
3、法为软件工程提供如何做的技术。系统分析如何做、系统设计如何做、编码如何做。主要的侧重点在于改进技术手段软件工程的工具为软件工程的方法提供支撑环境软件工程的过程是把软件工程的方法和工具结合起来,并且整合其他的必要资源,组织起来进行软件开发软件工程的目的就是要在规定的时间、规定的开发费用内开发出满足用户需求的软件系统一一一一、软软软软件件件件(SoftwareSoftwareSoftwareSoftware):软软软软件件件件是是是是“ “程程程程序序序序以以以以及及及及开开开开发发发发使使使使用用用用维维维维护护护护程程程程序序序序所所所所需需需需的的的的所所所所有有有有文文文文档档档档” ”,
4、由由由由应应应应用用用用程程程程序序序序,系系系系统统统统程程程程序序序序,面面面面向向向向用用用用户户户户的的的的文档,及面向开发者的文档四部分构成。文档,及面向开发者的文档四部分构成。文档,及面向开发者的文档四部分构成。文档,及面向开发者的文档四部分构成。二、软件的特点二、软件的特点二、软件的特点二、软件的特点1 1 1 1、软件是一种逻辑实体,不是具体的物理实体。、软件是一种逻辑实体,不是具体的物理实体。、软件是一种逻辑实体,不是具体的物理实体。、软件是一种逻辑实体,不是具体的物理实体。2 2 2 2、软件产品的生产主要是研制。、软件产品的生产主要是研制。、软件产品的生产主要是研制。、软
5、件产品的生产主要是研制。3 3 3 3、软软软软件件件件具具具具有有有有“ “复复复复杂杂杂杂性性性性” ”,其其其其开开开开发发发发和和和和运运运运行行行行常常常常受受受受到到到到计计计计算算算算机机机机系系系系统统统统的限制。的限制。的限制。的限制。4 4 4 4、软软软软件件件件成成成成本本本本昂昂昂昂贵贵贵贵,其其其其开开开开发发发发方方方方式式式式目目目目前前前前尚尚尚尚未未未未完完完完全全全全摆摆摆摆脱脱脱脱手手手手工工工工生生生生产产产产方式。方式。方式。方式。5 5 5 5、软件不存在磨损和老化问题,但存在退化问题。、软件不存在磨损和老化问题,但存在退化问题。、软件不存在磨损和
6、老化问题,但存在退化问题。、软件不存在磨损和老化问题,但存在退化问题。1.2 对软件开发的基本认识三、软件的分类三、软件的分类三、软件的分类三、软件的分类1 1 1 1、按照软件功能划分、按照软件功能划分、按照软件功能划分、按照软件功能划分系统软件系统软件 如操作系统、设备驱动程序等。如操作系统、设备驱动程序等。支支撑撑软软件件(实实用用软软件件) 协协助助用用户户开开发发的的工工具具软软件件,如如编辑程序、程序库、图形软件包等。编辑程序、程序库、图形软件包等。应应用用软软件件 如如工工程程与与科科学学计计算算软软件件、CAD/CAMCAD/CAM软软件件、CAICAI软件、信息管理系统等。软
7、件、信息管理系统等。2 2 2 2、按照软件工作方式划分、按照软件工作方式划分、按照软件工作方式划分、按照软件工作方式划分实时处理软件实时处理软件交互式软件交互式软件批处理软件批处理软件3 3 3 3、按照软件服务对象的范围划分、按照软件服务对象的范围划分、按照软件服务对象的范围划分、按照软件服务对象的范围划分项目软件项目软件 由客户委托开发的软件。由客户委托开发的软件。产品软件产品软件 由软件开发机构开发,提供给市场的。由软件开发机构开发,提供给市场的。 四、软件生命周期四、软件生命周期四、软件生命周期四、软件生命周期生命周期人的生命周期:婴儿、幼儿、儿童、少年、软件生命周期一个从用户需求开
8、始,经过开发、交付使用,在使用过程中不断增补修订,直至软件报废的全过程。即软件从提出开发开始到最终灭亡所经历的时期软件生命周期示意图软件定义软件定义软件开发软件开发维护维护可行性研究和项目开发计划可行性研究和项目开发计划了解用户要求和现实环境,从技术、经济、市场等方面研究并论证开发该软件系统的可行性需求分析需求分析确定软件系统必须具备哪些功能概要设计概要设计设计软件系统总体结构、设计全局数据库和数据结构详细设计详细设计细化概要设计所生成的各个模块, 并详细描述程序模块的内部细节(算法,数据结构等),形成可编程的程序模块编码编码根据详细设计规格说明书编写源程序测试测试检验软件的各个组成部分是否正
9、确维护维护对使用后的软件进行维护,例如:修正使用过程中发现的错误纠错性维护增加新的功能完善性维护从一个环境搬迁到另一个环境适应性维护1.2 对软件开发的基本认识软件与硬件不同的特点软件与硬件不同的特点表现形式不同生产方式不同产品要求不同维护方式不同大型软件系统的特点大型软件系统的特点开发代价高开发时间长参加开发的人员多软件生命周期长1.2 对软件开发的基本认识需要采用工程的概念、原理、技术和方法,把经过时间考验而证明有效的管理技术和当前能够得到的最好的技术方法结合起来,以指导计算机软件的开发和维护-软件工程软件开发从两个方面刻画软件开发从两个方面刻画软件开发过程软件开发过程涉及到的各种资源软件
10、过程模型是描述软件开发过程中各种活动如何执行的模型。也称软件开发模型或软件生存周期模型软件过程模型典型的软件过程模型有:瀑布模型瀑布模型(waterfall model)增量模型增量模型(incremental model)原型模型(原型模型(prototyping model)螺旋模型(螺旋模型(spiral model)喷泉模型(喷泉模型(water fountain modelwater fountain model)软件过程模型1 1 瀑布模型瀑布模型将软件开发过程模仿阶梯瀑布。将软件开发过程模仿阶梯瀑布。软件生存周期由立项、需求分析、策划、概软件生存周期由立项、需求分析、策划、概要设
11、计、详细设计、编程、测试、发布、维要设计、详细设计、编程、测试、发布、维护、退役等阶段所组成,把每个阶段当作瀑护、退役等阶段所组成,把每个阶段当作瀑布中的一个台阶。布中的一个台阶。开发人员按照阶段开发,管理人员按照阶段开发人员按照阶段开发,管理人员按照阶段管理。管理。开发开发时期时期运行运行时期时期计划计划时期时期( (目标与范围说明书目标与范围说明书) )( (可行性论证论告可行性论证论告) )( (维护报告维护报告) )( (测试报告测试报告) )( (程序程序) )( (设计文档设计文档) )( (需求说明书需求说明书) )瀑布模型瀑布模型瀑布模型的特点瀑布模型的特点1.阶段间具有顺序性
12、和依赖性2.推迟实现的观点3.质量保证的观点(文档驱动)每个阶段都必须完成规定的文档每个阶段结束前都要对所完成的文档进行评审瀑布模型的缺点瀑布模型的缺点u模型缺乏灵活性。模型缺乏灵活性。u开发过程一般不能逆转,否则代价太大开发过程一般不能逆转,否则代价太大u规格说明很难理解:规格说明很难理解:“我知道这是按我的要我知道这是按我的要求做的,但不是我想要的样子。求做的,但不是我想要的样子。”u软件的实际情况必须到项目开发的后期客户软件的实际情况必须到项目开发的后期客户才能看到。(文档驱动的两面性)才能看到。(文档驱动的两面性)带反馈的瀑布模型带反馈的瀑布模型2.2.增量模型增量模型增量模型将软件产
13、品看作一组增量构件,每次设计、增量模型将软件产品看作一组增量构件,每次设计、实现、集成、测试和交付一块构件,直到所有构件实现、集成、测试和交付一块构件,直到所有构件全部实现为止。全部实现为止。要开发一个大的软件系统,先开发其中的一个核心要开发一个大的软件系统,先开发其中的一个核心模块,后再开发其他模块,这样一个个模块地增加模块,后再开发其他模块,这样一个个模块地增加上去,直至整个系统开发完毕为止。上去,直至整个系统开发完毕为止。特点:特点: (1) (1) 任务或功能模块驱动,可以分阶段提交产品;任务或功能模块驱动,可以分阶段提交产品; (2) (2) 有多个任务单,这些多个任务单的集合,构成
14、项有多个任务单,这些多个任务单的集合,构成项目的一个总任务书目的一个总任务书( (总用户需求报告总用户需求报告) )。增量模型项目日历时间项目日历时间软软件件功功能能性性和和特特征征1 12 23 34 45 5第第2 2次增量发布次增量发布增量增量2 21 12 23 34 45 5第第n n次增量发布次增量发布增量增量n n1 12 23 34 45 5第第1 1次增量发布次增量发布增量增量1 15 5部署(发布,反馈)部署(发布,反馈)4 4构造(编码,测试)构造(编码,测试)3 3建模(分析,设计)建模(分析,设计)2 2计划计划1 1交流交流增量模型增量模型模型的缺点:模型的缺点:
15、若软件系统的组装和拆卸性不强,或开发人员全局若软件系统的组装和拆卸性不强,或开发人员全局把握水平不高或者客户不同意分阶段提交产品,或把握水平不高或者客户不同意分阶段提交产品,或者开发人员过剩,都不宜采用这种模型。者开发人员过剩,都不宜采用这种模型。模型的优点:模型的优点:u每个阶段交付一个可用的产品每个阶段交付一个可用的产品u减少一个全新产品给客户带来的心理上的影响减少一个全新产品给客户带来的心理上的影响u分阶段地交付产品不需要大的资金支出分阶段地交付产品不需要大的资金支出u需求经常变化,增量模型的灵活性使其具有更加需求经常变化,增量模型的灵活性使其具有更加优越的适用性优越的适用性3.3.原型
16、模型原型模型 以某个软件原型为参照模型的开发方法,叫做原型以某个软件原型为参照模型的开发方法,叫做原型法。法。在初步需求分析之后,马上向客户展示一个软件产在初步需求分析之后,马上向客户展示一个软件产品原型,让客户试用,在试用中收集客户意见,修品原型,让客户试用,在试用中收集客户意见,修改原型,再让客户试用,反复循环,直到客户确认改原型,再让客户试用,反复循环,直到客户确认为止。为止。特点:特点:原型驱动。因此,开发者必须先有一个原型,原型驱动。因此,开发者必须先有一个原型,至少要有一个原型的核心。至少要有一个原型的核心。与迭代模型比较:与迭代模型比较:相同点是反复循环几次,直到客户相同点是反复
17、循环几次,直到客户确认为止。不同点是原型模型事先有一个展示性的确认为止。不同点是原型模型事先有一个展示性的产品原型,而迭代模型可能没有。产品原型,而迭代模型可能没有。部署交付和反馈部署交付和反馈构建原型构建原型交流交流快速设计方式建模快速设计方式建模快速计划快速计划原型模型原型模型原型模型原型模型模型的缺点:模型的缺点: 因为事先有一个展示性的产品原型,所以在一定因为事先有一个展示性的产品原型,所以在一定程度上,不利于开发人员的创新。程度上,不利于开发人员的创新。是瀑布模型和演化模型的结合,并增加了是瀑布模型和演化模型的结合,并增加了风风险分析险分析螺旋模型沿着螺线旋转,在四个象限上分别螺旋模
18、型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即:表达四个方面的活动,即:制定计划制定计划:确定软件目标,选定实施方案,:确定软件目标,选定实施方案,弄清项目开发的限制条件弄清项目开发的限制条件风险分析风险分析:评价所选的方案,识别风险,消:评价所选的方案,识别风险,消除风险除风险工程实施工程实施:实施软件开发,验证工作产品:实施软件开发,验证工作产品客户评估客户评估:评价开发工作,提出修正建议:评价开发工作,提出修正建议4.螺旋模型 螺旋模型螺旋模型模型的优点:模型的优点:u容易确定什么时候已经对某一阶段的产品充分测试完毕u维护和开发之间没有什么本质上的差别模型的缺点:模型的缺点:u仅
19、适合于大型软件u风险驱动既是优点也是缺点 5.5.喷泉模型喷泉模型分分 析析系统系统 设计设计软件软件 设计设计实实 现现喷泉模型用于面向对象的软件开发项目。克服瀑布模型不支持软件用于面向对象的软件开发项目。克服瀑布模型不支持软件重用和多项开发活动集成的局限性,使开发过程具有迭代性和重用和多项开发活动集成的局限性,使开发过程具有迭代性和无间隙性。无间隙性。 特点:特点: 、开发过程有分析、系统设计、软件设开发过程有分析、系统设计、软件设计和实现计和实现4个阶段。个阶段。、各阶段相互重叠,它反映了软件过程、各阶段相互重叠,它反映了软件过程并行性的特点。并行性的特点。 、以分析为基础,资源消耗成塔
20、型。、以分析为基础,资源消耗成塔型。、反映了软件过程迭代性的自然特性,、反映了软件过程迭代性的自然特性,从高层返回低层无资源消耗。从高层返回低层无资源消耗。 、强调增量开发,整个过程是一个迭代、强调增量开发,整个过程是一个迭代的逐步提炼的过程。的逐步提炼的过程。 1.3 软件的固有复杂性复杂性的原因软件的复杂性和计算机体系结构有关软件开发是人的智力活动,软件系统从本质上来说是由许多相互联系的概念组成软件系统中各元素之间的相互作用关系具有不确定性软件系统面临不断变化的压力和需要满足不同用户的工作方式和习惯的压力规模较大的软件系统的生命周期一般都超过相应硬件系统的生命周期1.3 软件的固有复杂性软
21、件设计面临的困难要多软件固有的复杂性与一些传统的工程领域不同,软件设计没有完整的理论作指导,软件开发过程具有巨大的自由性1.4 控制软件复杂性的基本方法1.分解分解 2.抽象抽象 抽取系统中的基本特性而忽略非基本特性,从而理解和控制复杂的系统3.模块化模块化4.信息隐蔽(封装)信息隐蔽(封装)提高软件的可维护性,使软件的部分对整体的影响减少。隐蔽内部细节,降低软件复杂性一、结构化开发方法(一、结构化开发方法(一、结构化开发方法(一、结构化开发方法(Structured Developing Structured Developing MethodMethod) 是是一一种种面面向向数数据据流流
22、的的开开发发方方法法,它它的的基基本本原原则则是是功功能能的分解与抽象。的分解与抽象。结构化方法总的指导思想是自顶向下、逐步求精。结构化方法总的指导思想是自顶向下、逐步求精。包括:包括: SA结构化分析方法;结构化分析方法; SD结构化设计方法;结构化设计方法; SP结构化程序设计方法结构化程序设计方法。1.5 面向对象技术1.5 面向对象技术二、面向对象方法二、面向对象方法 基本思想:对问题进行自然分割,以更接近人类思维的方式建立问题域模型,从而使设计出的软件尽可能直接地描述现实世界,具有更好的可维护性,能适应用户需求的变化面向对象的基本概念面向对象技术的基本观点面向对象技术的基本观点:认为
23、客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。 把所有对象都划分成各种类,每个类都具有相同的特征和方法。特征描述对象的状态信息,类中定义的方法是允许施加于该类对象上的操作。按照派生类与基类的关系,把若干个对象类组成一个层次结构的系统。对象彼此之间仅能通过传递消息互相联系。 面向对象的基本概念1. 对象对象(object) 对对象象是是指指一一组组属属性性以以及及这这组组属属性性上上的的专专用用操操作的封装体。作的封装体。 属属性性(attribute)通通常常是是一一些些数数据据,有有时时它它也也可可以以是是另另一一个个对对象象。每每个个对对象
24、象都都有有它它自自己己的的属属性性值值,表表示示该该对对象象的的状状态态。对对象象中中的的属属性性只只能通过该对象所提供的操作来存取或修改。能通过该对象所提供的操作来存取或修改。 操操作作(operation)(也也称称方方法法或或服服务务)规规定了对象的行为,表示对象所能提供的服务。定了对象的行为,表示对象所能提供的服务。 一个对象的实例图解 封装(encapsulation) 封装是面向对象方法的一个重要原则。封装是面向对象方法的一个重要原则。封装就是把对象的属性和方法结合成一个独立封装就是把对象的属性和方法结合成一个独立的系统单位,并尽可能地隐蔽对象的内部细节的系统单位,并尽可能地隐蔽对
25、象的内部细节封装使一个对象形成两个部分:接口和实现封装使一个对象形成两个部分:接口和实现 封装的目的是使对象的使用者和生产者分离,封装的目的是使对象的使用者和生产者分离,使对象的定义和实现分开。使对象的定义和实现分开。封装提供了两种保护:封装提供了两种保护:保护对象防止用户直接存取对象的内部细节保护客户端防止对象实现部分的变化影响客户端。2. 类类(class) 类是一组具有相同属性和相同操作的对象的类是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个类的一个集合。一个类中的每个对象都是这个类的一个实例(实例(instance)。)。 类是创建对象的模板,从同一个类实例化的类
26、是创建对象的模板,从同一个类实例化的每个对象都具有相同的结构和行为。每个对象都具有相同的结构和行为。 类和对象的关系:抽象与具体的关系。类和对象的关系:抽象与具体的关系。 轿轿 车车型号:字符串型号:字符串颜色:字符串颜色:字符串牌照号:字符串牌照号:字符串张经理的轿车张经理的轿车型号型号= =桑塔纳桑塔纳颜色颜色= =红色红色牌照号牌照号= =沪沪AN2037AN2037类类实例对象实例对象3. 继承继承(inheritance) 继承性是面向对象程序设计语言不同于其他语言继承性是面向对象程序设计语言不同于其他语言的最主要特点。的最主要特点。 继承是指子类可以自动拥有父类的全部属性与操继承是
27、指子类可以自动拥有父类的全部属性与操作的机制。作的机制。 继承是类间的基本关系,它是基于层次关系的不继承是类间的基本关系,它是基于层次关系的不同类共享数据和操作的一种机制。同类共享数据和操作的一种机制。 父类中定义了其所有子类的公共属性和操作,在父类中定义了其所有子类的公共属性和操作,在子类中除了定义自己特有的属性和操作外,可以继承子类中除了定义自己特有的属性和操作外,可以继承其父类(或祖先类)的属性和操作,还可以对父类其父类(或祖先类)的属性和操作,还可以对父类(或祖先类)中的操作重新定义其实现方法。(或祖先类)中的操作重新定义其实现方法。 继承增加了软件重用的机会,降低软件开发和维继承增加
28、了软件重用的机会,降低软件开发和维护的费用。护的费用。 矩形矩形长长宽宽对角线对角线计算面积计算面积计算对角线计算对角线 多边形多边形顶点数顶点数顶点坐标顶点坐标计算面积计算面积旋转旋转交通工具交通工具飞行器飞行器汽汽 车车 船船轿轿 车车货货 车车 一般一般- -特殊关系特殊关系 如果一个子类只有唯一一个父类,这个继如果一个子类只有唯一一个父类,这个继承称为承称为单一继承单一继承。如果一个子类有一个以上的。如果一个子类有一个以上的父类,这种继承称为父类,这种继承称为多重继承多重继承。 水上交通工具水上交通工具 陆上交通工具陆上交通工具 水陆两栖交通工具水陆两栖交通工具多重继承多重继承4. 消
29、息消息(message) 消息传递是对象间通信消息传递是对象间通信的手段,一个对象通过向另的手段,一个对象通过向另一个对象发送消息来请求其一个对象发送消息来请求其服务。服务。 消息消息(接收对象名接收对象名,调用的调用的操作名操作名,适当的参数适当的参数) 面向对象方法的一个原面向对象方法的一个原则就是通过消息进行对象之则就是通过消息进行对象之间的通信。间的通信。状态:李伟状态:李伟 25 计算机系计算机系 讲师讲师操作:调工资操作:调工资 评职称评职称 受受 聘聘李伟,调工资(李伟,调工资( )人事处向对象发消息人事处向对象发消息对象:李伟对象:李伟5. 多态性多态性(polymorphis
30、m) 多态性是指同一个操作作用于不同的对象上可多态性是指同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。以有不同的解释,并产生不同的执行结果。 相同操作的消息发送给不同的对象时,每个对相同操作的消息发送给不同的对象时,每个对象将根据自己所属类中定义的这个操作去执行,从象将根据自己所属类中定义的这个操作去执行,从而产生不同的结果。而产生不同的结果。 多态性分为两种:多态性分为两种: (1)编译时的多态性。编译时的多态性。 (2)运行时的多态性。运行时的多态性。 1.6 面向对象分析(OOA)面向对象分析OOA(Object-Oriented Analysis)的目标是完成对所
31、求解问题的分析,确定系统“作什么”,并建立系统的模型OOA的基本任务 运用面向对象的方法,对问题域和系统责任进行分析和理解,找出描述它们的类和对象,定义其属性和操作,及其结构、静态联系和动态联系。OOA面临的问题1、问题域和系统责任问题问题域(problem domain) 被开发系统的应用领域。系统责任(system responsibilities) 所开发的系统应具备的职能。2、交流问题(各类人员之间的要求)3、需求的不断变化(用户、竞争因素、经费、技术因素)基于UML的面向对象分析1、获取用户基本需求、获取用户基本需求用户与开发者之间进行充分交流,常用User case来收集和描述用户
32、的需求。即先标识使用该系统的不同的行为者(actor)。行为者所提出的每个使用场景(或功能)称为一个用例,所有的用例则构成完整的系统需求。2、标识类和对象标识类与对象是一致的。在确定系统的用例后,可标识类及类的属性和操作。从问题域或用例描述入手,发现对象。对象形式:外部实体 、事物、发生的事件、角色、组织单位、场所、构造物等确定最终对象确定原则:需要保留的信息,需要的服务,具有多个属性,具有公共属性及操作。标识属性可从问题的陈述中或通过对类的理解而标识出属性。定义操作操作定义了对象的行为并以某种方式修改对象的属性。操作分为:对数据的操作,计算操作,控制操作。3、定义类的结构和层次类的结构有:一
33、般一般特殊特殊 (generalization - specialization)结构整体整体部分部分(whole-part)结构构成类图的元素所表达的模型信息,分为三个层次:对象层对象层给出系统中所有反映问题域和系统责任的对象特征层特征层给出类的内部特征,即类的属性和操作。关系层关系层给出各类之间的关系,包括继承、组装、一般特殊 、整体部分、属性的静态依赖关系,操作的动态依赖关系。4、建立类(对象)间的关系用“对象-关系模型”描述了系统的静态结构。(1) 一般/特殊结构(2) 整体/部分结构(3) 实例连接 (4) 消息连接 (1) 一般/特殊结构一般/特殊结构均形成层次或网络 (2) 整体
34、/部分结构 (3) 实例连接 实例连接用于表达对象之间的静态联系 (4) 消息连接 定义定义:两个对象之间存在的由于通信需要而形成的关系。 表示方法表示方法:使用箭头从发送消息的对象指向接收消息的对象。 5、建立对象-行为模型 描述了系统的动态行为。指明系统如何响应外部的事件或激励。 建模步骤建模步骤:1.评估所有的用例,以完全理解系统中交互的序列。2.标识驱动交互序列的事件,理解这些事件如何和特定的对象相关联。3.为每个用例创建事件轨迹。4.为系统建造状态图。5.复审对象-行为模型,以验证准确性和一致性。1.7 面向对象设计(OOD)面向对象设计的一般步骤面向对象设计的一般步骤如下:如下:1
35、.系统设计系统设计将子系统分配到处理器将子系统分配到处理器选选择择实实现现数数据据管管理理、界界面面支支持持和和任任务务管理的设计策略管理的设计策略为系统设计合适的控制机制为系统设计合适的控制机制复审并考虑权衡(折衷)复审并考虑权衡(折衷)2.对象设计对象设计在在过过程程级级别别设设计计每每个个操操作作,即即设设计计每每个个操作的实现细节操作的实现细节定义内部类定义内部类为类属性设计内部数据结构为类属性设计内部数据结构3.消息设计消息设计 使使用用对对象象间间的的协协作作和和对对象象-关关系系模模型型,设设计消息模型计消息模型4.复审复审 复审设计模型并在需要时迭代。复审设计模型并在需要时迭代。 典型的面向对象方法典型的面向对象方法Coad & Yourdon 方法方法OMT方法方法Booch方法方法OOSE方法方法基于UML的面向对象设计设计系统和系统中的类及其行为