《对象(object) 现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现 对象具有的含义:在现实世界中: 是客观世界中的一个实体.ppt》由会员分享,可在线阅读,更多相关《对象(object) 现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现 对象具有的含义:在现实世界中: 是客观世界中的一个实体.ppt(138页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 对象(object)现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。对象具有的含义:在现实世界中:是客观世界中的一个实体 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望 对象对象(object)对象具有的含义:对象具有的含义:q在面向对象程序中:在面向对象程序中:表达成计算机可理解、可操纵、具有一表达成计算机可理解、可操纵、具有一 定定属性属性和和行为行为的对象的对象q 在计算机世界中:在计算机世界中:是一个可标识的存储区域是一个可标识的存储区域面
2、向对象建模面向对象建模 面向对象方法是一种运用对象、面向对象方法是一种运用对象、类、继承、封装、聚合、消息传递、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的多态性等概念来构造系统的软件开软件开发方法发方法。面向对象面向对象面向对象面向对象=对象对象对象对象+类类类类+继承继承继承继承+消息通信消息通信消息通信消息通信面向对象建模面向对象建模 面向对象的主要特征:面向对象的主要特征:q封闭性封闭性(Encapsulation)q 继承性继承性(Inheritance)q 多态性多态性(Polymorphism)面向对象建模面向对象建模 类(类(class)具有共同属性和行为的对象具有
3、共同属性和行为的对象的抽象的抽象类与对象的关系类与对象的关系类是对象的抽象类是对象的抽象对象是类的实例对象是类的实例类类对象对象 对象、实体与类对象、实体与类对象对象实体实体实体实体类类抽象数据类抽象数据类抽象数据类抽象数据类计算机世界计算机世界现实世界现实世界计算机逻辑的实现影射抽象实例化抽象概念世界概念世界 封装封装 封装是软件开发方法的重要原则,有两个封装是软件开发方法的重要原则,有两个涵义:涵义:把对象的全部属性和全部服务结合在一起,把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(对象)。形成一个不可分割的独立单位(对象)。尽可能隐蔽对象的内部细节尽可能隐蔽对象的内部
4、细节(信息隐蔽)(信息隐蔽)面向对象建模面向对象建模 传统方法数据与过程是分离的传统方法数据与过程是分离的过程过程1 1输入输入输入输入输出输出输出输出过程过程2 2过程过程3 3数据实体数据实体属于该对象属于该对象的数据的数据对象对象处理数据的方法处理数据的方法消息消息消息消息消息消息消息消息对象把数据和处理数据的方法封状成一个单元对象把数据和处理数据的方法封状成一个单元对象把数据和处理数据的方法封状成一个单元对象把数据和处理数据的方法封状成一个单元 传统方法和面向对象方法的比较传统方法和面向对象方法的比较传统方法传统方法系统是过程的集合系统是过程的集合系统是过程的集合系统是过程的集合过程与
5、数据实体交互过程与数据实体交互过程与数据实体交互过程与数据实体交互过程接受输入并产生输出过程接受输入并产生输出过程接受输入并产生输出过程接受输入并产生输出面向对象方法面向对象方法系统是交互对象的集合系统是交互对象的集合系统是交互对象的集合系统是交互对象的集合对象与人或其它对象交互对象与人或其它对象交互对象与人或其它对象交互对象与人或其它对象交互对象发送与响应消息对象发送与响应消息对象发送与响应消息对象发送与响应消息面向对象建模面向对象建模 继承继承(继承性(继承性inheritance)继承性是父类和子继承性是父类和子类之间共享数据和类之间共享数据和方法的机制方法的机制继承性具有传递性继承性具
6、有传递性继承性包括单继承继承性包括单继承和多重继承和多重继承 子类子类继承部分继承部分增加部分增加部分父类父类共性部分共性部分 继承性作用继承性作用 使软件系统具有开放性使软件系统具有开放性 更好地进行抽象与分类更好地进行抽象与分类 增强代码的重用率增强代码的重用率面向对象建模面向对象建模 多态(多态性多态(多态性polymorphism)不同的对象收到同一消息可产生完全不同的对象收到同一消息可产生完全 不同的结果,这一现象叫做不同的结果,这一现象叫做多态多态多态的效果多态的效果 用户发送一个通用的消息,而实现用户发送一个通用的消息,而实现的细节则由接收对象自行决定的细节则由接收对象自行决定面
7、向对象建模面向对象建模 消息消息(message)消息消息 对象之间相互请求或相互协作对象之间相互请求或相互协作的途径,是要求某个对象执行某个功能的途径,是要求某个对象执行某个功能操作的规格说明操作的规格说明面向对象建模面向对象建模 消息消息(message)消息内容消息内容 通常包含接收方及请求接通常包含接收方及请求接收方完成的功能信息收方完成的功能信息发送方发送方 发出消息,请求接收方响应发出消息,请求接收方响应接收方接收方 收到消息后,经过解释,激收到消息后,经过解释,激活方法,予以响应活方法,予以响应面向对象建模面向对象建模 面向对象方法的主要优点:面向对象方法的主要优点:自然性自然性
8、 追求软件系统对现实系统的直接模拟,追求软件系统对现实系统的直接模拟,尽量实现将现实世界中的事物直接映射到尽量实现将现实世界中的事物直接映射到软件系统的解空间中。软件系统的解空间中。面向对象建模面向对象建模 面向对象方法的主要优点:面向对象方法的主要优点:可复用性(可重用性)可复用性(可重用性)reusebility reusebility可扩展性可扩展性可管理可管理性性面向对象建模面向对象建模 可复用性(可重用性)面向对象技术允许复用的不仅仅是面向对象技术允许复用的不仅仅是代码代码,通过面向对象技术通过面向对象技术,我们可以复我们可以复用需求、分析、设计、测试计划、用户用需求、分析、设计、测
9、试计划、用户界面以及体系结构等等界面以及体系结构等等,事实上事实上,软件软件工程生存期中的每个部分都可以工程生存期中的每个部分都可以复复用用。面向对象建模面向对象建模 传统系统分析传统系统分析:面向功能面向功能,把系统看成把系统看成 一组功能一组功能OOA:把问题当作一组相互作用把问题当作一组相互作用 的实体,并确定实体间关系的实体,并确定实体间关系面向对象建模面向对象建模 面向对象技术是一个有全新概念的面向对象技术是一个有全新概念的开发模式开发模式,其特点是其特点是:(1)(1)方法是对软件开发过程所有阶段进方法是对软件开发过程所有阶段进 行综合考虑而得到的行综合考虑而得到的;面向对象建模面
10、向对象建模 面向对象技术是一个有全新概念的面向对象技术是一个有全新概念的开发模式开发模式,其特点是其特点是:(2)(2)从生存期的一个阶段到下一个阶段从生存期的一个阶段到下一个阶段 所使用的方法与技术具有高度的连所使用的方法与技术具有高度的连 续性续性;(3)(3)将将OOA、OOD、OOP集成到生存集成到生存 期的相应阶段期的相应阶段.面向对象建模面向对象建模 OO方法的开发过程方法的开发过程 OOOO方方法法改改进进了了在在生生存存期期各各个个阶阶段段间间的的界界面面,因为生存期各个阶段开发出来的因为生存期各个阶段开发出来的“部件部件”都是都是类类.在在面面向向对对象象生生存存期期的的各各
11、个个阶阶段段对对各各个个类类的的信信息息进进行行细细化化,类类成成为为分分析析、设设计计和和实实现现的的基基本本单单元元。面向对象建模面向对象建模 类的生存期模型类的生存期模型类的规类的规格说明格说明从废弃从废弃型开发型开发既存类既存类的复用的复用渐增式渐增式的实现的实现渐增式渐增式的测试的测试求精和求精和 维护维护 测试用测试用例和测试例和测试 的开发的开发实现实现从既存从既存类演变类演变 类的设计与实现类的设计与实现类类的的规规格格说说明明指指导导对对存存放放现现存存类类的的软软件库进行查找件库进行查找现存类提供当前应用所需功能现存类提供当前应用所需功能三种可能利用现存类的方向三种可能利用
12、现存类的方向:现存类的复用现存类的复用 从现存类进行演变从现存类进行演变 从废弃类进行开发从废弃类进行开发 对象之间的联系与对象模型对象之间的联系与对象模型面向对象建模面向对象建模 面向对象方法开发软件面向对象方法开发软件通常建立的三种形式的模型通常建立的三种形式的模型 描述系统数据结构的描述系统数据结构的对象模型对象模型 描述系统控制结构的描述系统控制结构的动态模型动态模型 描述系统功能的描述系统功能的功能模型功能模型 面向对象建模面向对象建模 面向对象方法开发软件面向对象方法开发软件通常建立的三种形式的模型通常建立的三种形式的模型 三种模型从三个不同但由密切三种模型从三个不同但由密切相关的
13、角度模拟目标系统。相关的角度模拟目标系统。对象模型对象模型是最重要、最基本、最核是最重要、最基本、最核心的。心的。面向对象建模面向对象建模 对象模型对象模型 对象模型表示静态的、结构的系统数对象模型表示静态的、结构的系统数据的性质。据的性质。对模拟客观世界实体的对象以及对象对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静彼此之间的关系的映射,描述了系统的静态结构。态结构。OO方法强调围绕对象而不是功能方法强调围绕对象而不是功能来构造系统。来构造系统。面向对象建模面向对象建模 类及对象间类及对象间常见常见的的联系联系 分类关系分类关系 (归纳关系、(归纳关系、一般与特殊的关系
14、一般与特殊的关系)组成关系组成关系 (组合关系、(组合关系、整体整体/部分部分的关系)的关系)对象属性之间的静态的联系对象属性之间的静态的联系 对象行为的动态联系对象行为的动态联系 面向对象建模面向对象建模 分类关系分类关系(一般与特殊的关系一般与特殊的关系)示例示例学生学生学生学生本科生本科生本科生本科生研究生研究生研究生研究生面向对象建模面向对象建模 组成关系组成关系(整体与部分的关系整体与部分的关系)示例示例学科部学科部办公室办公室学院学院实验室实验室面向对象建模面向对象建模 对象对象模型中表现模型中表现上述联系的结构和连接上述联系的结构和连接面向对象建模面向对象建模 (1)(1)分类结
15、构(一般分类结构(一般/特殊结构)特殊结构)分类是对象抽象的基础分类是对象抽象的基础 分类结构表现的是事物的一般与特殊分类结构表现的是事物的一般与特殊的关系,即的关系,即“is-ais-a”关系。关系。面向对象建模面向对象建模 (1)(1)分类结构(分类结构(一般一般/特殊特殊结构)结构)面向对象术语中常把一般与特殊的关面向对象术语中常把一般与特殊的关系称为系称为泛化(泛化(GeneralizationGeneralization)与与特化特化(SpecializationSpecialization)联系联系面向对象建模面向对象建模 存户存户一般一般/特殊结构举例特殊结构举例 一般类一般类(
16、父类、基类、超类父类、基类、超类)特殊类特殊类(子类子类、具体类、具体类)继承继承一个特殊类中的所有对象可继承一般类中的属一个特殊类中的所有对象可继承一般类中的属性性、服务服务、关系关系账号账号姓名姓名余额余额存款存款取款取款 支票存户支票存户 储蓄存户储蓄存户利息率利息率 (2)(2)组装结构(整体组装结构(整体/部分结构)部分结构)组装结构表示对象类之间的组成关系,组装结构表示对象类之间的组成关系,即整体与部分的关系。即整体与部分的关系。整体对于部分是整体对于部分是“has-ahas-a”关系。关系。(部分对于整体是部分对于整体是“a-part-of”“a-part-of”关系关系)组装结
17、构体现了面向对象方法的组装结构体现了面向对象方法的 聚合(也叫聚集聚合(也叫聚集 Aggregation)原则。原则。整体整体/部分结构表示法举例部分结构表示法举例 微机微机1+电源电源主机箱主机箱键盘键盘监视器监视器鼠标鼠标内存内存CPU硬盘硬盘o (3)(3)实例连接实例连接(Instance ConnectionInstance Connection)实例连接表现了对象之间的静态实例连接表现了对象之间的静态联系,通过对象的属性来表现对象之联系,通过对象的属性来表现对象之间的依赖关系。间的依赖关系。面向对象术语中把对象之间的实面向对象术语中把对象之间的实例连接称为例连接称为链接链接(Lin
18、k)(Link),把类之间的,把类之间的实例连接称为实例连接称为关联关联(Association)(Association)实例连接实例连接示例及表示示例及表示教师教师 指导论文指导论文0,m 1学生学生教师为学生教师为学生指导论文:指导论文:教师教师 教学教学0,m 0,n 学生学生教师为学生教师为学生授课:授课:关联关系关联关系(链属性链属性)的表示的表示 允许实例连接带有一组属性,这些属性允许实例连接带有一组属性,这些属性通过关联来描述通过关联来描述 类类 1 连接名称连接名称m n类类 1连接连接属性属性 关联关系关联关系 (链属性链属性)为之工作为之工作工资工资职务职务雇主雇主雇员雇
19、员 个人个人名字名字身份证号身份证号公司公司名字名字地址地址题目题目答辩时间答辩时间成绩成绩 教师教师学生学生 指导论文指导论文0,m 1 (4)(4)消息连接消息连接 (Message ConnectionConnection)对象之间的对象之间的通信通信联系。联系。一需要另一个对象的服务,便向它发出个一需要另一个对象的服务,便向它发出个对象请求服务的消息,接收消息的对象响对象请求服务的消息,接收消息的对象响应消息,触发所要求的服务操作。应消息,触发所要求的服务操作。消息连接体现了对象行为的消息连接体现了对象行为的动态联系动态联系。面向对象建模面向对象建模 一家公司的对象模型(一家公司的对象
20、模型(OMT)示例示例为之工作为之工作为之工作为之工作管理管理 0,1姓名姓名身份证号码身份证号码地址地址员工员工名字名字电话号码电话号码主要产品主要产品地址地址公司公司职务职务雇用雇用解雇解雇项目名项目名预算预算优先级优先级项目项目产品名产品名成本成本重量重量产品产品工人工人经理经理部门部门部门名部门名主持主持参加参加1+1+1+1+1+生产生产 网上商店对象模型网上商店对象模型(部分部分)示例示例(UML)销售代表销售代表 0.1定货定货nameaddress顾客顾客creditRating():String产品产品雇员雇员1dataReceivedisPrepaidnumber:Stri
21、ngprice:Money协作顾客协作顾客contactNamecreditRatingcreditLimitcreditCard#个人顾客个人顾客creditRating()=“poor”定货作业线定货作业线dispatch()close()remind()billForMonth()Quantity:Integerprice:MoneyisSatisfied:Boolean1 1*1 1物品物品 面向对象的方法论面向对象的方法论 方法论是如何对复杂系统方法论是如何对复杂系统进行进行“抽象抽象”的工作,以及的工作,以及如何建立抽象模型。如何建立抽象模型。面向对象建模面向对象建模 面向对象分析
22、方法使得软件工程师能面向对象分析方法使得软件工程师能够通过对象、属性和操作(作为主要的建够通过对象、属性和操作(作为主要的建模成分)的表示来对问题建模。模成分)的表示来对问题建模。建立分析模型5个基本原则:(1 1)建模信息域;建模信息域;(2 2)描述模块功能;描述模块功能;(3 3)表示模型行为;表示模型行为;(4 4)分解以模型显示更多细节;分解以模型显示更多细节;(5 5)早期)早期模型表示问题的本质,而后期模型表示问题的本质,而后期 模型提供实现细节。模型提供实现细节。面向对象建模面向对象建模 OOA的意图的意图是定义所有与被求解的问题相关的类是定义所有与被求解的问题相关的类(及同类
23、关联的关系和行为),为了达到这个目(及同类关联的关系和行为),为了达到这个目标,必须完成以下任务:标,必须完成以下任务:(1 1)必须在客户和软件工程师之间沟)必须在客户和软件工程师之间沟 通了解基本的用户需求;通了解基本的用户需求;(2 2)必须标识类)必须标识类(定义属性和方法定义属性和方法);(3 3)必须刻划类层次;)必须刻划类层次;(4 4)表示对象与对象之间的关系(对象连接);)表示对象与对象之间的关系(对象连接);(5 5)必须对对象行为进行建模;)必须对对象行为进行建模;(6 6)任务)任务(1)1)到到(5)(5)递进地反复使用,直至递进地反复使用,直至 完成建模完成建模面向
24、对象建模面向对象建模 目前流行的目前流行的OOA方法概述方法概述Coad-Yourdon方法方法Coad-Yourdon的的OOA过程概述:过程概述:使用使用“寻找什么寻找什么”标准来标识对象标准来标识对象定义一般定义一般/特殊结构特殊结构定义整体定义整体/部分结构部分结构标识主题(子系统构件的表示)标识主题(子系统构件的表示)定义属性定义属性定义服务定义服务 目前流行的目前流行的OOA方法方法概述概述Booch方法方法Booch的的OOA宏观开发过程概述:宏观开发过程概述:标识类和对象标识类和对象标识类和对象的语义标识类和对象的语义标识类和对象间的关系标识类和对象间的关系进行精化进行精化 目
25、前流行的目前流行的OOA方法方法概述概述Rumbaugh方法方法(简称简称OMT)Rumbaugh的的OOA过程概述:过程概述:开发对问题的范围陈述开发对问题的范围陈述建造对象模型建造对象模型开发动态模型开发动态模型构造系统的功能模型构造系统的功能模型 不同面向对象分析方法的相似步骤:(1 1)使用基本需求作为指南选择)使用基本需求作为指南选择类类 和对象;和对象;(2 2)为对象标识属性和操作;为对象标识属性和操作;(3 3)定义组织)定义组织类的结构和层次;类的结构和层次;(4 4)建造对象建造对象-关系模型;关系模型;(5 5)建造)建造对象对象-行为模型。行为模型。对象模型技术对象模型
26、技术 (OMT,Object Model Tech.)对象模型对象模型动态模型动态模型功能模型功能模型基本模型:三个三个模型模型分别从不同角度分析系统分别从不同角度分析系统 分析模型分析模型对象模型对象模型:描述静态结构描述静态结构,定义做定义做 事情的实体事情的实体功能模型功能模型:描述处理描述处理(数据变换数据变换),指明系统应指明系统应“做什么做什么”动态模型动态模型:描述交互过程描述交互过程,规定什么规定什么 时候做时候做 OMT模型系统分析和设计过程概观图模型系统分析和设计过程概观图产生需求产生需求结构及对象结构及对象设计设计建立模型建立模型问题描述问题描述对象模型、动态模型、功能模
27、型对象模型、动态模型、功能模型详细的对象模型详细的对象模型详细的动态模型详细的动态模型详细的功能模型详细的功能模型分分析析阶阶段段设设计计阶阶段段 步骤步骤:(1)(1)找出对象及其关联找出对象及其关联(2)(2)赋予类及关联的属性数据赋予类及关联的属性数据(3)(3)组织类的结构组织类的结构OMT的的对象图对象图 实例:饮料自动售货机系统实例:饮料自动售货机系统设置设置 一个饮料自动售货机可以放置五种不同或部分一个饮料自动售货机可以放置五种不同或部分相同的饮料,可由厂商根据销售状况自动调配,相同的饮料,可由厂商根据销售状况自动调配,并可随时重新设置售价,但售货机最多仅能放置并可随时重新设置售
28、价,但售货机最多仅能放置5050罐饮料,其按钮设计在各种饮料样本的下方,罐饮料,其按钮设计在各种饮料样本的下方,若经金额计算器累计金额足够,则选择键灯会亮;若经金额计算器累计金额足够,则选择键灯会亮;若某一种饮料已销售完毕,则售完灯会亮。若某一种饮料已销售完毕,则售完灯会亮。实例:饮料自动售货机系统实例:饮料自动售货机系统销售销售 顾客将硬币投入售货机,经累加金额足额的饮顾客将硬币投入售货机,经累加金额足额的饮料选择键灯亮,等顾客按键选择。顾客按键后饮料选择键灯亮,等顾客按键选择。顾客按键后饮料由取物楼掉出,并自动结算及找钱。料由取物楼掉出,并自动结算及找钱。取消交易取消交易 顾客可在按下选择
29、键前任何一个时刻,拉动退顾客可在按下选择键前任何一个时刻,拉动退币杆取消交易收回硬币。币杆取消交易收回硬币。对象模型对象模型 描述系统内部对象结构,包括对象本身描述系统内部对象结构,包括对象本身的定义、对象的属性、操作,以及对象与的定义、对象的属性、操作,以及对象与其它对象之间的关系。其它对象之间的关系。饮料自动售货机饮料自动售货机系统系统对象图对象图贩卖机贩卖机饮料号码饮料号码价格价格投币投币-接受接受饮料掉出饮料掉出金额显示金额显示按纽按纽退币杆退币杆售完显示售完显示存量计算器存量计算器饮料号码饮料号码存量存量递减递减售完显示售完显示重置重置选择钮选择钮选择钮状态选择钮状态灯亮灯亮灯熄灯熄
30、售完灯亮售完灯亮按钮按钮顾客顾客姓名姓名硬币硬币投币投币-置入置入拿取饮料拿取饮料退币杆退币杆退币杆状态退币杆状态拉动拉动金额计算器金额计算器金额金额累加累加找零找零重置重置购买购买选取选取被拉动被拉动属于属于属于属于属于属于属于属于 建立数据字典建立数据字典 为所有模型实体准备一个数据字为所有模型实体准备一个数据字典典,精确描述每一个对象类精确描述每一个对象类,包括包括:成员成员 约束约束 关联、属性、操作关联、属性、操作 动态模型动态模型 用来描述系统与时间相关的动态用来描述系统与时间相关的动态行为即系统的控制逻辑,表现对象彼行为即系统的控制逻辑,表现对象彼此间经过相互作用后,随时间改变的
31、此间经过相互作用后,随时间改变的不同运算顺序。不同运算顺序。动态模型动态模型 动态模型以动态模型以“事件事件”(Events)和)和“状态状态”(States)为其模型的主要概)为其模型的主要概念。念。动态模型以状态图形式呈现动态模型以状态图形式呈现 事件事件:瞬时发生的行为;瞬时发生的行为;引起对象状态转换的控制信息引起对象状态转换的控制信息。事件类和属性举例:事件类和属性举例:飞机起飞(航线、航班号、城市)飞机起飞(航线、航班号、城市)按动鼠标按钮(按钮、位置)按动鼠标按钮(按钮、位置).脚本和事件踪迹脚本和事件踪迹 脚本是系统某一次特定运行时期内发脚本是系统某一次特定运行时期内发生的事件
32、序列。生的事件序列。(脚本也叫场景)脚本也叫场景)事件追踪图事件追踪图 侧重说明发生于系统执行过程中的一侧重说明发生于系统执行过程中的一 个特个特 定定“场景场景(scenarios)”。通话脚本(只包括影响电话线的事件)通话脚本(只包括影响电话线的事件)17.打电话者挂断电话打电话者挂断电话16.电话切断电话切断15.接电话者挂断电话接电话者挂断电话14.通电话通电话12.接电话者电话停止振铃接电话者电话停止振铃13.铃声在打电话者电话中消失铃声在打电话者电话中消失11.接电话者回答接电话者回答10.铃声在打电话者电话传出铃声在打电话者电话传出9.接电话者的电话开始振铃接电话者的电话开始振铃
33、8.打电话者拨数字打电话者拨数字(3)7.打电话者拨数字打电话者拨数字(7)6.打电话者拨数字打电话者拨数字(3)5.打电话者拨数字打电话者拨数字(2)4.电话忙音结束电话忙音结束3.打电话者拨数字打电话者拨数字(8)2.电话忙音开始电话忙音开始1.打电话者拿起听筒打电话者拿起听筒 动态模型表示方法 状态图状态图 状态和事件的网络,侧重描述每一类对象状态和事件的网络,侧重描述每一类对象 的动态行为。的动态行为。状态图状态图 例:例:状态状态1Do:活动活动1状态状态2 .事件事件1条件条件1/动作动作1结束结束事件事件初始初始事件事件空闲空闲可视菜单可视菜单左边按钮按下左边按钮按下/显示弹出菜
34、单显示弹出菜单左边按钮弹起左边按钮弹起/擦除弹出菜单擦除弹出菜单光标移动光标移动/高亮菜单项高亮菜单项 弹出菜单动作弹出菜单动作 举例:举例:饮料自动售货机饮料自动售货机系统系统的状态图的状态图 投入硬币投入硬币(有效的)(有效的)按下选择饮料键按下选择饮料键Do:显示售货机在备用显示售货机在备用 所有灯都关闭所有灯都关闭 Do:显示金额总数显示金额总数 Do:显示金额已够显示金额已够 饮料选择灯亮饮料选择灯亮 取出饮料取出饮料 结算找零结算找零 扣减存量扣减存量 完成交易完成交易 饮料饮料“售完售完”灯亮灯亮 投入硬币金额投入硬币金额(1元、元、5元、元、10元元)金额不足金额不足再投币再投
35、币存量为零存量为零无效的硬币无效的硬币 取消取消 取消取消 回到备用状态回到备用状态 回到备用状态回到备用状态 事件追踪图举例:事件追踪图举例:打电话的事件追踪图打电话的事件追踪图挂断电话挂断电话电话切断电话切断挂断电话挂断电话通通 话话通通 话话停止振铃停止振铃停止振铃停止振铃响应电话响应电话电话振铃电话振铃铃铃 声声拨拨 号号(3)拨拨 号号(7拨拨 号号(3)拨拨 号号(2)电话忙音结束电话忙音结束拨拨 号号(8)电话忙音开始电话忙音开始拿起听筒拿起听筒电话线电话线接电话者接电话者打电话者打电话者 存量为零存量为零找零找零扣减存量扣减存量灯亮灯亮余额余额饮料饮料结算结算选择键选择键#选择
36、按纽选择按纽灯亮灯亮金额总够金额总够显示总额显示总额总额总额累加累加投入硬币投入硬币金额计算器金额计算器存量计算器存量计算器顾客顾客售货机售货机选择键选择键举例举例:饮料自动售货机饮料自动售货机系统系统的事件追踪图的事件追踪图售完灯售完灯 3.3.功能模型功能模型 用来描述系统中数据的变换。用来描述系统中数据的变换。传统传统DFD+DFD+控制流控制流对象对象A对象对象B过程过程1过程过程2数据存储区数据存储区控制流控制流数据流数据流 基于三个模型的分析步骤基于三个模型的分析步骤 需求陈述需求陈述 对象建模对象建模 动态建模动态建模 功能建模功能建模 添加添加操作反复建模操作反复建模 OMTO
37、MT支持整个软件生命周期支持整个软件生命周期:需求分析、系统设计、系统实现、需求分析、系统设计、系统实现、测试与维护。测试与维护。1.1.分析阶段分析阶段 理解应用问题,理解应用问题,建立建立对象模型、动对象模型、动态模型和功能模型,说明对象关联、控态模型和功能模型,说明对象关联、控制流及数据变换。制流及数据变换。2.2.系统设计阶段系统设计阶段 确定确定系统框架系统框架,考虑并发任务、通,考虑并发任务、通讯机制和数据存储策略。讯机制和数据存储策略。3.3.对象设计阶段对象设计阶段 从实现的角度从实现的角度细化细化分析对象模型、分析对象模型、动态模型和功能模型动态模型和功能模型 OMT方法的特
38、点:方法的特点:开发重点在分析阶段开发重点在分析阶段 强调数据结构而不是功能强调数据结构而不是功能开发步骤的衔接良好开发步骤的衔接良好 重复性的开发过程重复性的开发过程 Yourdon的的OOA方法方法 以类与对象图及对象状态图为辅助以类与对象图及对象状态图为辅助工具,建立问题域的五层模型工具,建立问题域的五层模型.OOA模型被划分为五个层次模型被划分为五个层次 (五个视图五个视图)OOA的结构的结构 类的边界类的边界Class&object layer(类及对象层类及对象层)Attribute layer(属性层属性层)Service layer(服务层服务层)Structure layer
39、(结构层结构层)Subject layer(主题层主题层)实例的边界实例的边界实例连接实例连接消息连接消息连接主题主题服务服务属性属性 分析阶段由五个活动组成:分析阶段由五个活动组成:(1)(1)标识类及对象标识类及对象(2)(2)标识结构标识结构(3)(3)标识主题标识主题(4)(4)定义属性及实例连接定义属性及实例连接(5)(5)定义服务及消息连接定义服务及消息连接五个步骤常根据需要交叉进行五个步骤常根据需要交叉进行 (1)(1)发现发现对象对象主要策略主要策略:F 考虑问题域考虑问题域人员人员组织组织物品物品设备设备事件事件表格结构表格结构F 考虑系统边界考虑系统边界 人员人员 设备设备
40、 外系统外系统F 考虑系统责任考虑系统责任步骤步骤1:识别类与对象识别类与对象 F 问题域描述中的问题域描述中的名词名词,往往是候选的往往是候选的 及对象及对象;根据问题域结构可提取候选根据问题域结构可提取候选 的类及对象的类及对象;例例:银行储蓄管理系统银行储蓄管理系统 F与系统发生作用的与系统发生作用的其它系统其它系统和必要和必要 的的设备设备可作为候选的类及对象可作为候选的类及对象;如:如:打印机等打印机等(分析阶段可不把与实现有关的计算分析阶段可不把与实现有关的计算 机部件作为候选的类及对象机部件作为候选的类及对象)F系统必须观测、系统必须观测、记忆记忆的与时间有关的的与时间有关的 事
41、件事件可作为候选的类及对象可作为候选的类及对象;如:建立帐户的日期如:建立帐户的日期 打开一个帐户等打开一个帐户等 F与系统发生交互的与系统发生交互的人人及系统必须保留及系统必须保留其信息的人其信息的人,可作为候选的类及对象可作为候选的类及对象;如:柜员、储户等如:柜员、储户等F这些人所属的这些人所属的组织组织单位,可作为候选单位,可作为候选的类及对象的类及对象;如:总行、分行等如:总行、分行等 F系统必须记忆、且不在问题域约束中系统必须记忆、且不在问题域约束中 的顺序的顺序操作过程操作过程(为了指导人机交互为了指导人机交互)可作为候选的类及对象可作为候选的类及对象;如:柜员事务、远程事务等。
42、如:柜员事务、远程事务等。其中属性是操作过程名其中属性是操作过程名,操作特权及操作操作特权及操作 步骤的描述步骤的描述;F系统需了解掌握的物理位置、办公系统需了解掌握的物理位置、办公 地点地点等可作为候选的类及对象等可作为候选的类及对象;如:如:ATMATM机器、帐户等机器、帐户等 (2)(2)审查和筛选审查和筛选F 舍弃无用的类舍弃无用的类F 对象的精简对象的精简只有一个属性的对象只有一个属性的对象只有一个服务的对象只有一个服务的对象F 推迟到推迟到OOD考虑的对象考虑的对象 帐册帐册 上级系统接口上级系统接口供货员供货员销售事件销售事件商品商品特价商品特价商品计量商品计量商品 收款机收款机
43、商品一览表商品一览表超市销超市销售管理售管理系系 统统(对象层对象层)步骤步骤2 2:定义属性与服务定义属性与服务定义属性定义属性定义服务定义服务对象的状态与状态转换图对象的状态与状态转换图例:栈的状态例:栈的状态/服务对照表服务对照表空空半满半满满满压入压入可执行可执行 可执行可执行 不可执不可执行行弹出弹出不可执不可执行行可执行可执行 可执行可执行 例:栈状态转换图例:栈状态转换图空空半满半满满满创建创建压入压入(未满未满)弹出弹出(未空未空)压入压入(报错报错)弹出弹出(报错报错)弹出弹出(已空已空)压入压入弹出弹出压入压入(已满已满)定义服务定义服务 对象行为分类对象行为分类 发现服务
44、的策略发现服务的策略 审查与调整审查与调整 识别对象的主动行为识别对象的主动行为 服务的详细说明服务的详细说明(服务解释、消息协议、服务解释、消息协议、消息发送、约束条件、服务流程图消息发送、约束条件、服务流程图)帐册帐册前班节余前班节余销售事件表销售事件表收入累计收入累计上交款上交款本班节余本班节余接班接班计帐计帐报帐交班报帐交班 上级系统接口上级系统接口帐目目册帐目目册 消息发送消息发送查帐查帐报帐报帐价格更新价格更新种类增删种类增删供货员供货员缺货登记表缺货登记表缺货登记缺货登记供货供货销售事件销售事件收款人收款人购物清单购物清单应收款应收款销售计划销售计划入帐入帐商品商品编号编号名称名
45、称单价单价架上数量架上数量下限下限售出售出补充补充价格更新价格更新特价商品特价商品开始日期开始日期结束日期结束日期计量商品计量商品*单价单价计量单位计量单位计价方式计价方式*售出售出*补充补充*价格更新价格更新 收款机收款机本班收款员本班收款员开始时间开始时间结束时间结束时间 登录登录 售货售货 结帐结帐商品一览表商品一览表商品目录商品目录检索检索种类增删种类增删超市销超市销售管理售管理系系 统统(特征层特征层)建立数据字典建立数据字典 为所有模型实体准备一个数据字典为所有模型实体准备一个数据字典,精确描述每一个对象类精确描述每一个对象类,包括包括:成员成员约束约束关联、属性、操作关联、属性、
46、操作 对象字典举例:对象字典举例:类名类名 父类父类 提供的服务提供的服务 需要的服务需要的服务帐户帐户 ATM 银行银行 出纳员出纳员 步骤步骤3 3:定义结构与连接:定义结构与连接初步确定关联初步确定关联对应于描述性动词或动词短语对应于描述性动词或动词短语需求陈述中隐含需求陈述中隐含根据问题域知识得出根据问题域知识得出筛选筛选 步骤步骤3 3:定义结构与连接:定义结构与连接完善完善分析标识对象之间的关系分析标识对象之间的关系对象之间的分类关系:一般对象之间的分类关系:一般-特殊结构特殊结构对象之间的组成关系:整体对象之间的组成关系:整体-部分结构部分结构对象之间的静态联系:实例连接对象之间
47、的静态联系:实例连接对象之间的动态关系:消息连接对象之间的动态关系:消息连接 从从一般一般类发类发现现特殊特殊类类公司职员公司职员股东股东姓名姓名身分证号码身分证号码股份股份职员职员工资工资公司职员公司职员姓名姓名身分证号码身分证号码股份股份工资工资?从从特殊特殊类发现类发现一般一般类类公司职员公司职员股东股东姓名姓名身分证号码身分证号码股份股份职员职员工资工资股东股东姓名姓名身分证号码身分证号码股份股份职员职员姓名姓名身分证号码身分证号码工资工资?收款机收款机ABC现钞收款机现钞收款机D DE EF F现钞收款机现钞收款机ABCDEFXYZZXY为支持复用建立结构为支持复用建立结构收款机类成
48、为收款机类成为可供本领域其可供本领域其它系统复用的它系统复用的领域构件领域构件 取消没有取消没有特殊特殊属性的特殊类属性的特殊类大学生大学生研究生研究生研究方向研究方向指导教师指导教师学生学生姓名姓名学号学号班级班级研究生研究生研究方向研究方向指导教师指导教师学生学生姓名姓名学号学号班级班级 通过增加属性简化一般通过增加属性简化一般-特殊结构特殊结构人员人员男人男人女人女人美国人美国人日本人日本人人员人员性别性别国籍国籍中国人中国人 两种结构的变通两种结构的变通冷藏车冷藏车汽车汽车制冷设备制冷设备冷藏车冷藏车汽车汽车制冷设备制冷设备仅用一般仅用一般-特殊结构特殊结构两种结构两种结构同同 用用冷
49、藏车冷藏车汽车汽车制冷设备制冷设备仅用整体仅用整体-部分结构部分结构 用整体用整体-部分结构实现复用部分结构实现复用车床车床机床机床刨床刨床起重机起重机电动机电动机钻床钻床送料车送料车 筛选:筛选:删除下列关联删除下列关联已删去的类间的关联已删去的类间的关联无关或实现关联无关或实现关联瞬时事件瞬时事件三元关联三元关联派生关联派生关联 中央中央计算机计算机总行总行通信通信银行代码银行代码ATM拥有拥有分行分行计算机计算机出纳出纳工作站工作站远程业务远程业务现金卡现金卡分行分行帐户帐户储户储户出纳员出纳员出纳业务出纳业务通信通信授权授权存取存取拥有拥有拥有拥有持有持有组成组成拥有拥有拥有拥有雇佣雇
50、佣进入进入被进入被进入修改修改修改修改进入进入ATM系统的初始对象图系统的初始对象图 步骤步骤4 4:定义服务及消息连接:定义服务及消息连接 分析和认识对象之间在行为上分析和认识对象之间在行为上的往来关系。的往来关系。顺序系统中的消息传递顺序系统中的消息传递主动对象主动对象Aa被动对象被动对象Bb被动对象被动对象Cc被动对象被动对象Dd1d2运行开始运行开始运行结束运行结束服务执行服务执行消息发送消息发送控制点返回示意控制点返回示意 并发系统中并发系统中 的消息传递的消息传递主动对象主动对象A主动对象主动对象B被动对象被动对象D任务任务Task1 线程线程Ta控制线程之间控制线程之间的消息连接