第13讲面向对象的软件工程_第1页
第13讲面向对象的软件工程_第2页
第13讲面向对象的软件工程_第3页
第13讲面向对象的软件工程_第4页
第13讲面向对象的软件工程_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第13讲讲面向对象的软件工程面向对象的软件工程何何 帆帆2主要内容v面向对象软件的开发过程面向对象软件的开发过程v面向对象的分析与模型化面向对象的分析与模型化v面向对象设计面向对象设计vCoadCoad与与YourdonYourdon的方法的方法vOMTOMT方法方法3v面向对象方法的形成最初是从面向对象程序设计语面向对象方法的形成最初是从面向对象程序设计语言开始的,随后才逐渐形成了面向对象的分析和设言开始的,随后才逐渐形成了面向对象的分析和设计。计。 v面向对象方法于面向对象方法于60年代末首次提出,年代末首次提出,80年代中才年代中才开始广为使用,开始广为使用,90年代面向对象方法才成为

2、专业人年代面向对象方法才成为专业人员的首选范型。员的首选范型。v传统方法的和面向对象的方法有何不同?传统方法的和面向对象的方法有何不同?4v面向对象的分析,简称:面向对象的分析,简称:OOAv面向对象的设计,简称:面向对象的设计,简称:OODv面向对象程序设计,简称:面向对象程序设计,简称:OOPv面向对象的测试,简称:面向对象的测试,简称:OOTv面向对象数据库系统,简称:面向对象数据库系统,简称:OODBMSv面向对象计算机软件辅助工程,面向对象计算机软件辅助工程,简称:简称:OOCASE5v面向对象的概念面向对象的概念面向对象方法的应用领域包括:面向对象方法的应用领域包括:数据库、计算机

3、辅助设计工程、人数据库、计算机辅助设计工程、人-机界面设计、计机界面设计、计算机辅助教学、多媒体技术、计算机网络等诸多领算机辅助教学、多媒体技术、计算机网络等诸多领域。域。什么是面向对象的观点?什么是面向对象的观点?vCoad和和Yourdon给出的定义如下:给出的定义如下:面向对象面向对象=对象对象+分类分类+继承继承+通信通信6v客观世界的问题都是由客观世界中的实体及其相互客观世界的问题都是由客观世界中的实体及其相互关系构成的,我们将客观世界中的实体抽象成为问关系构成的,我们将客观世界中的实体抽象成为问题空间中的对象,由于研究的问题不同,面向的对题空间中的对象,由于研究的问题不同,面向的对

4、象也就不同。象也就不同。v“面向对象面向对象”就是面向问题空间中的实体。就是面向问题空间中的实体。71 1 面向对象软件的开发过程面向对象软件的开发过程v采用面向对象开发方法构造的软件具有以下特点:采用面向对象开发方法构造的软件具有以下特点:面向对象技术构造的模型与客观世界一致;面向对象技术构造的模型与客观世界一致;适应变化的需要,修改局限在模块中;适应变化的需要,修改局限在模块中;具有可复用性。具有可复用性。8v面向对象软件的开发过程面向对象软件的开发过程分析阶段分析阶段v领域分析领域分析v应用分析应用分析高层设计阶段高层设计阶段类的开发类的开发实例的建立实例的建立组装测试组装测试维护维护9

5、2 2 面向对象的分析与模型化面向对象的分析与模型化vOOA方法的方法的5个基本原则:个基本原则:建立信息域模型建立信息域模型描述功能描述功能表达行为表达行为分解模型,以揭示更多细节分解模型,以揭示更多细节早期模型表示问题的本质,后期模型提供实现细早期模型表示问题的本质,后期模型提供实现细节节v面向对象分析的目标:开发一系列模型,用来描述面向对象分析的目标:开发一系列模型,用来描述客户需求的计算机软件。定义所有与待求解问题相客户需求的计算机软件。定义所有与待求解问题相关的类。关的类。10vOOA必须完成的任务:必须完成的任务:在客户和软件工程师间沟通,了解基本的用户需在客户和软件工程师间沟通,

6、了解基本的用户需求。求。标识类(即:定义属性和方法)。标识类(即:定义属性和方法)。划分类层次。划分类层次。表示对象间的关系。表示对象间的关系。建立对象的行为(动态)模型。建立对象的行为(动态)模型。在任务上述在任务上述15之间重复,直至完成建模。之间重复,直至完成建模。11v面向对象技术衍生出了许多方法和技术,如:面向对象技术衍生出了许多方法和技术,如:Booch方法方法Coad和和Yourdon方法方法Jocobson方法(也称方法(也称OOSE面向对象软件工程)面向对象软件工程)Rumbaugh方法(也称方法(也称OMT对象建模技术)对象建模技术)Wirfs-Brock方法方法统一建模语

7、言统一建模语言UML12v领域分析过程领域分析过程软件的领域分析是在软件的领域分析是在特定应用领域特定应用领域中标识、分析中标识、分析和规约公共需求,典型的是在应用领域中多个项和规约公共需求,典型的是在应用领域中多个项目间的复用。目间的复用。面向对象领域分析是以公共对象、类、自己和框面向对象领域分析是以公共对象、类、自己和框架等形式在特定应用领域中标识、分析和规约公架等形式在特定应用领域中标识、分析和规约公共的可复用的能力。共的可复用的能力。13v领域分析的工作:设计和建造可复用构件,它们可领域分析的工作:设计和建造可复用构件,它们可以用于很多相似的(但不一定是相同的)应用开发以用于很多相似的

8、(但不一定是相同的)应用开发工作。工作。v领域分析过程的关键输入和输出:领域分析过程的关键输入和输出:领域分析领域分析领域知识源领域知识源领域分析模型领域分析模型技术文件技术文件已有应用已有应用客户考察客户考察专家建议专家建议目前目前/未未来的需求来的需求类的分类类的分类复用标准复用标准功能模型功能模型领域语言领域语言14vOO分析模型到分析模型到OO设计模型的转换:设计模型的转换:关系模型关系模型索引索引卡片卡片使用实例使用实例行为模型行为模型子系统设计子系统设计类及对象设计类及对象设计消息设计消息设计责任设计责任设计属性、操作、协作者属性、操作、协作者3 面向对象设计面向对象设计15v分析

9、和设计的含义分析和设计的含义分析分析是一种研究问题域的过程,该过程产生是一种研究问题域的过程,该过程产生对外部可见行为的描述。对外部可见行为的描述。设计设计在分析的描述基础上,加入实际计算机在分析的描述基础上,加入实际计算机系统实现所需细节的过程。系统实现所需细节的过程。vOOD通常可以分为两个阶段:通常可以分为两个阶段:高层设计高层设计建立应用的体系结构。建立应用的体系结构。低层设计低层设计集中于类的详细设计。集中于类的详细设计。16v高层设计(系统级设计)高层设计(系统级设计)开发软件的体系结构,构造软件的总体模型。高层开发软件的体系结构,构造软件的总体模型。高层的设计包括:的设计包括:将

10、系统划分为子系统的决策;将系统划分为子系统的决策;子系统的软、硬件分配;子系统的软、硬件分配;设计框架的主要概念和策略性决策。设计框架的主要概念和策略性决策。17v高层设计模型高层设计模型客户客户/服务器模型(服务器模型(C/S)v导出的系统即适合于过程设计也适合于面向对导出的系统即适合于过程设计也适合于面向对象的设计。象的设计。v客户客户/服务器模型将系统分为服务器模型将系统分为2个部分:客户个部分:客户子系统和服务器子系统。子系统和服务器子系统。v请求服务的对象都归于客户子系统;服务器接请求服务的对象都归于客户子系统;服务器接受请求并提供服务。即:客户是服务的驱动者。受请求并提供服务。即:

11、客户是服务的驱动者。所以,客户必须了解服务者的接口,而服务器所以,客户必须了解服务者的接口,而服务器没有必要知道客户的接口。没有必要知道客户的接口。18窗口窗口报告报告人机交互人机交互界界 面面问题域问题域数据管理数据管理系统交互系统交互界界 面面(任务(任务 管理)管理)其它系统其它系统设设 备备处理器处理器 数据库数据库vCaod & Yourdon的设计模型的设计模型19应用框架结构应用框架结构根据应用领域系统的特有结构划分子系统(模板、根据应用领域系统的特有结构划分子系统(模板、主题、抽象类的集合)。主题、抽象类的集合)。然后设计细化每个子系统的对象模型、动态模型然后设计细化每

12、个子系统的对象模型、动态模型和功能模型。和功能模型。例如:专家系统的典型结构例如:专家系统的典型结构20用用 户户用户界面用户界面知识获取机制知识获取机制解释机制解释机制知知 识识 库库推推 理理 机机全局数据库全局数据库214 Coad4 Coad与与YourdonYourdon的方法的方法vCaod & Yourdon提出的提出的OOA方法包括方法包括5个步骤个步骤:(1)确定类和对象)确定类和对象(2)确定结构)确定结构(3)定义主题)定义主题(4)定义属性和实例关联)定义属性和实例关联(5)定义操作和消息关联)定义操作和消息关联221. 确定对象确定对象运用前面介绍的方法确定系

13、统中所有的对象及对象运用前面介绍的方法确定系统中所有的对象及对象的属性和操作。如家庭安全系统:的属性和操作。如家庭安全系统:系统系统控制面板控制面板传感器传感器传感器事件传感器事件声音报警声音报警232. 确定结构确定结构结构是一种组织方式的思维,在面向对象分析结构是一种组织方式的思维,在面向对象分析中,结构是问题域复杂关系的表示。中,结构是问题域复杂关系的表示。Yourdon面向对象的分析方法中提出两种结构:面向对象的分析方法中提出两种结构:分类结构(泛化分类结构(泛化-特化结构)特化结构)表示类(不是表示类(不是对象)的对象)的“一般一般-特殊特殊”关系。泛化类是超类,关系。泛化类是超类,

14、特化类是子类。特化类是子类。2425装配结构(整体装配结构(整体-部分结构)部分结构)表示事物的组成表示事物的组成结构,即由属于同一类或不同类的成员聚合而形结构,即由属于同一类或不同类的成员聚合而形成新的类。成新的类。控制面板键盘显示屏指示灯*263. 定义主题定义主题主题是指导读者或用户研究大型复杂模型的机制。主题是指导读者或用户研究大型复杂模型的机制。 每个主题相当于一个子模型,或子系统。分析者可每个主题相当于一个子模型,或子系统。分析者可以根据这一概念区分主题。以根据这一概念区分主题。例如:商品销售管理系统主题图例如:商品销售管理系统主题图27284. 定义属性和实例联系(链)定义属性和

15、实例联系(链)OOA模型的属性层包括对象属性以及对象之间的关模型的属性层包括对象属性以及对象之间的关系,即实例联系。系,即实例联系。 实例联系是对象之间的依赖关系。实例联系是对象之间的依赖关系。 实例联系表示了对象所需要的一部分状态信息。联实例联系表示了对象所需要的一部分状态信息。联系可以是双向的系可以是双向的。2930发送发送接收接收5. 定义操作和消息路径定义操作和消息路径定义操作和方法,如:检索、维护、计算、事件响定义操作和方法,如:检索、维护、计算、事件响应、状态改变、消息传送等这样一类操作和具体采应、状态改变、消息传送等这样一类操作和具体采用的某一种算法。用的某一种算法。 OOA模型

16、不仅定义了对象间的联系,而且也定义模型不仅定义了对象间的联系,而且也定义了对象间消息的传递路径。了对象间消息的传递路径。31vCaod & Yourdon提出的提出的OOD方法方法像其它的设计方法一样,面向对象设计的目标是生像其它的设计方法一样,面向对象设计的目标是生成成对真实世界问题域的表示并将之映射到解域对真实世界问题域的表示并将之映射到解域,也,也就是映射到软件上。就是映射到软件上。v OOD模型模型 同同OOA一样,横向由一样,横向由5级层次组成(主题层、结构级层次组成(主题层、结构层、服务层、属性层、类与对象层);在此基础上层、服务层、属性层、类与对象层);在此基础上又从纵向

17、进一步分为又从纵向进一步分为4个组元。个组元。32实例连接实例连接数据库数据库管理部分管理部分任务管任务管理部分理部分人机交人机交互部分互部分问题论问题论域部分域部分类或类或对象对象类与对类与对象层象层属性层属性层服务层服务层结构层结构层主题层主题层主题主题消息消息Coad&Yourdon的的OOD模型模型33v 这这4个组元是:个组元是:(1)问题域组元问题域组元(Problem Domain Component,PDC)(2)人机交互组元人机交互组元(Human Interface Component,HIC)(3)服务管理组元服务管理组元(Task Management Comp

18、onent,TMC)(4)数据管理组元数据管理组元(Data Management Component,DMC)34v设计问题域组元设计问题域组元问题域组元(问题域组元(PDC)构造特定应用的构造特定应用的OOD模型的基本组成部件,包括:数据结构、应用域模型的基本组成部件,包括:数据结构、应用域构件、语言构件。构件、语言构件。设计问题域组元的主要理由设计问题域组元的主要理由寻求系统结构的寻求系统结构的稳定性稳定性。而这种稳定性正是将一个问题域中的系。而这种稳定性正是将一个问题域中的系统转变到一个相似问题域中的系统时,可以重用统转变到一个相似问题域中的系统时,可以重用原有分析、设计及编程结果的关

19、键。原有分析、设计及编程结果的关键。35v问题域部分的设计要针对特定的实现环境,对问题域部分的设计要针对特定的实现环境,对OOA的结果加以增补,其策略如下:的结果加以增补,其策略如下:(1)重用设计和编程类)重用设计和编程类对对PDC进一步修改。将进一步修改。将OOA建立的有关类,替换建立的有关类,替换成库中的类或子类,并继承库中类的属性、建立相成库中的类或子类,并继承库中类的属性、建立相应的关联。应的关联。(2)将问题域专用类组合在一起)将问题域专用类组合在一起 在设计过程中,有时会将原来一些相互独立的在设计过程中,有时会将原来一些相互独立的类,在问题域中归入一个新的超类。类,在问题域中归入

20、一个新的超类。36(3)对继承进行调整)对继承进行调整 当当OOA模型中某个类或对象的继承关系和采用的模型中某个类或对象的继承关系和采用的语言不一致时,需要调整。语言不一致时,需要调整。(4)改进性能)改进性能37v设计人机交互组元(设计人机交互组元(HIC)HIC表示用户与系统打交道的命令以及系统提表示用户与系统打交道的命令以及系统提供给用户的信息。供给用户的信息。 HIC将用户界面技术从系统的其它部分中分离出将用户界面技术从系统的其它部分中分离出来。这一部分包括:用户输入、显示、交互方式、来。这一部分包括:用户输入、显示、交互方式、响应过程、菜单窗口、数据表示、报告、网络接响应过程、菜单窗

21、口、数据表示、报告、网络接口、控制面板(如:按钮、指示灯、仪表等)。口、控制面板(如:按钮、指示灯、仪表等)。38按键按键数字键数字键功能键功能键口令口令传感器传感器数据数据延迟延迟时间时间电话电话号码号码取消取消设置设置启动启动例如:家庭安全系统的例如:家庭安全系统的人机交互组元(人机交互组元(HIC)可以是:可以是:39显示显示参数信息参数信息当前状态当前状态报警信息报警信息传感器传感器参数参数呼叫号码呼叫号码40 F10返回上级菜单返回上级菜单 F10返回上级菜单返回上级菜单 F10返回上级菜单返回上级菜单 F1呼叫号码呼叫号码参数设置参数设置菜单入口菜单入口呼叫号码呼叫号码设置窗口设置

22、窗口传感器传感器设置窗口设置窗口帮助信息帮助信息窗窗 口口HIC对象模型还可以借助其它工具来补充说明,如:对象模型还可以借助其它工具来补充说明,如:状态状态迁移图迁移图41另存窗口另存窗口关闭窗口关闭窗口文字处理软件文字处理软件文件管理窗口文件管理窗口编辑窗口编辑窗口格式窗口格式窗口视图窗口视图窗口打开窗口打开窗口新建窗口新建窗口 菜单树图菜单树图42v任务管理问题(任务管理问题(TMC)对象中的每个服务最终总要被分配给某个计算对象中的每个服务最终总要被分配给某个计算机任务,这些计算机任务可看成是一些独立的机任务,这些计算机任务可看成是一些独立的可调度的实体。可调度的实体。许多系统都需要多任务

23、并行处理,例如:许多系统都需要多任务并行处理,例如: 对于具有数据获取机制、负责控制局部设备的对于具有数据获取机制、负责控制局部设备的系统,需要多任务。系统,需要多任务。 对于某种需要同时向多个窗口输入数据的用户对于某种需要同时向多个窗口输入数据的用户接口,也存在多任务。接口,也存在多任务。43 对于多用户系统,很可能存在一个用户任务的多对于多用户系统,很可能存在一个用户任务的多重复制。重复制。 对于多子系统的软件结构来说,各子系统之间的对于多子系统的软件结构来说,各子系统之间的协调及通讯需要多个任务完成。协调及通讯需要多个任务完成。 对于多处理器的硬件结构,必须为各处理器分配对于多处理器的硬

24、件结构,必须为各处理器分配任务并支持处理器之间的通讯。任务并支持处理器之间的通讯。 对于单处理器,在多任务实时操作系统的支持对于单处理器,在多任务实时操作系统的支持下,也可以实现多任务并行处理。下,也可以实现多任务并行处理。44任务管理一般是在特定平台(包括:硬件和操任务管理一般是在特定平台(包括:硬件和操作系统)。作系统)。通过通过TMC特定平台的处理机制对系统的其它部特定平台的处理机制对系统的其它部分隐藏了起来,这样如果应用系统需要移植到分隐藏了起来,这样如果应用系统需要移植到其它平台上时,只需替换其它平台上时,只需替换TMC的类就可以了。的类就可以了。任务管理组元可以看成是应用系统与平台

25、之间任务管理组元可以看成是应用系统与平台之间的接口。的接口。45任务的选择和调整的策略如下:任务的选择和调整的策略如下: 识别事件驱动任务(一些与硬件设备通讯的任识别事件驱动任务(一些与硬件设备通讯的任务)务) 识别时钟驱动任务(以固定时间间隔激发的事识别时钟驱动任务(以固定时间间隔激发的事件)件) 识别优先任务和关键任务识别优先任务和关键任务 识别协调者识别协调者 审查每个任务(要使任务数保持到最少)审查每个任务(要使任务数保持到最少) 定义每个任务(说明是什么任务、如何协调、如定义每个任务(说明是什么任务、如何协调、如何通讯)何通讯)46中中 断断启启 动动中中 断断停停 止止中中 断断进

26、入传感器进入传感器中中 断断烟雾传感器烟雾传感器中中 断断运动传感器运动传感器中中 断断47v设计数据库管理组元设计数据库管理组元DMC提供了数据管理系统中对象的存储及检索的提供了数据管理系统中对象的存储及检索的基础结构。基础结构。建立建立DMC的原因主要是的原因主要是DMC可以独立于各种数可以独立于各种数据管理模式,使数据库技术从系统的其它部分中据管理模式,使数据库技术从系统的其它部分中分离出来。分离出来。48为了开发为了开发DMC,要考虑以下点:,要考虑以下点:(1)哪种数据库查询方式能用于支持你的应用。)哪种数据库查询方式能用于支持你的应用。(2)建立哪些对象来封装查询的实现()建立哪些

27、对象来封装查询的实现(SQL)。)。(3)在)在DMC 与与PDC对象之间应建立的实例连接。对象之间应建立的实例连接。(4)检查一下)检查一下HIC部分哪些屏幕、字段、或报表需部分哪些屏幕、字段、或报表需要数据库查询?如果需要,则要在要数据库查询?如果需要,则要在DMC中建立一个中建立一个查询对象。查询对象。49下图简单地说明了DMC与应用系统和数据库间的关系,及执行过程。按下按下订阅按钮订阅按钮订阅登记订阅登记窗口窗口HIC订户订户PDC地址表地址表DMC订阅订阅 到到D B MS505 OMT5 OMT方法方法v对象建模技术对象建模技术(Object modelling Technique

28、) 简称:简称:OMT,1991年提出。年提出。51vOMT方法使用方法使用3种模型从不同角度来描述一个系种模型从不同角度来描述一个系统:统:(1)对象模型对象模型描述系统对象、类和它们之间关描述系统对象、类和它们之间关系的静态结构,反映了系统的系的静态结构,反映了系统的“数据数据”性质。性质。(2)动态模型动态模型用对象的状态和事件描述了瞬时用对象的状态和事件描述了瞬时的、行为化的系统的的、行为化的系统的“控制控制”性质。性质。(3)功能模型功能模型描述系统内的数据变化,指明了描述系统内的数据变化,指明了如何用输入值得到输出值,即反映了系统的如何用输入值得到输出值,即反映了系统的“功功能能”

29、性质。性质。52v3个模型之间的关系:个模型之间的关系:(1)通过)通过3个模型,系统以个模型,系统以3视图的形式呈现给设计视图的形式呈现给设计人员,以便设计者采用统一的描述方法设计实现。人员,以便设计者采用统一的描述方法设计实现。(2)模型是可以独立地进行测试和理解的,但不是)模型是可以独立地进行测试和理解的,但不是无关的、绝对独立的。一个好的设计是指:实现了无关的、绝对独立的。一个好的设计是指:实现了系统内部不同实质的分离,但又相互补充,限制耦系统内部不同实质的分离,但又相互补充,限制耦合。合。53v对象建模对象建模对象建模是通过描述系统中的对象、对象间的关对象建模是通过描述系统中的对象、

30、对象间的关系、标识类中对象的属性、操作来表示系统的静系、标识类中对象的属性、操作来表示系统的静态组织结构。态组织结构。 对象模型是对象模型是3种模型中最重要的模型。种模型中最重要的模型。 面向对象的设计技术强调的是围绕对象,而不面向对象的设计技术强调的是围绕对象,而不是围绕功能来构筑系统。是围绕功能来构筑系统。54vOMT中对象图有两种形式:类图和实例图。中对象图有两种形式:类图和实例图。类图类图是一种框架、模式或模板,用于描述许多是一种框架、模式或模板,用于描述许多可能的数据实例;类图描述了对象类。可能的数据实例;类图描述了对象类。实例图实例图描述一个特定的对象集是如何互相关联描述一个特定的

31、对象集是如何互相关联的;实例图描述对象实例。的;实例图描述对象实例。55v动态建模动态建模动态建模主要用来描述控制逻辑。动态建模主要用来描述控制逻辑。动态模型是用动态模型是用“状态图状态图”和和“事件追踪图事件追踪图”表表示。示。一个动态模型可由多个状态图表组成。一个动态模型可由多个状态图表组成。v基本概念:基本概念:事件、脚本和事件追踪、状态、事件、脚本和事件追踪、状态、 触发条件与事触发条件与事件、动作(操作)件、动作(操作)56事件事件v事件事件发生于某一时刻的某件事,或一个触发发生于某一时刻的某件事,或一个触发行为。事件的时间性很强,强调事情发生的瞬行为。事件的时间性很强,强调事情发生

32、的瞬间。间。v事件可以作为事件可以作为“类类”来表示。来表示。v事件发生的时间是所有事件的隐含属性。事件发生的时间是所有事件的隐含属性。v事件类的结构是层次性的。事件类的结构是层次性的。57时间事件 位 置鼠标键 字 符键盘控制图形按下鼠标释放鼠标键空格字母数字标点设 备用户输入58 脚本和事件追踪脚本和事件追踪v脚本(场景)脚本(场景)是系统某一次特定运行时期内是系统某一次特定运行时期内发生的事件序列。发生的事件序列。v事件跟踪图事件跟踪图建立建立“事件事件-响应响应”关系的工具。关系的工具。描述一个事件将信息从一个对象传到另一个对象描述一个事件将信息从一个对象传到另一个对象的轨迹。的轨迹。

33、59 打电话者拿起接收器打电话者拿起接收器 拨号音开始拨号音开始 拨号拨号6 拨号音结束拨号音结束 拨号拨号 拨号拨号 接话方开始响铃接话方开始响铃 打电话方电话铃声响打电话方电话铃声响 受话方回答受话方回答 受话方铃声停止受话方铃声停止 打电话方电话铃声停止打电话方电话铃声停止 电话连通电话连通 受话方挂机受话方挂机 电话断电话断 打电话者挂机打电话者挂机打电话者打电话者 电话线电话线 受话者受话者 拿起接收器拿起接收器 拨号音开始拨号音开始 拨号拨号6 拨号音结束拨号音结束 拨号拨号 铃声铃声 铃声铃声 受话方回答受话方回答 铃声停止铃声停止 铃声停止铃声停止 电话连通电话连通 电话连通电

34、话连通 受话方挂机受话方挂机 电话挂断电话挂断 电话挂断电话挂断 打电话者挂机打电话者挂机脚本:脚本: 事件踪迹图:事件踪迹图:60空空 闲闲菜单显示菜单显示按下右键按下右键 / 弹出菜弹出菜单单释放右键释放右键 / 抹去菜抹去菜单单光标移动光标移动 / 更新反向显示菜单项更新反向显示菜单项状态及状态图状态及状态图状态状态对象属性值和链的一种抽象形式,状态具对象属性值和链的一种抽象形式,状态具有持续性,占有时间间隔。有持续性,占有时间间隔。状态图:状态图:61空闲空闲拨号音拨号音拨号拨号连接连接玲响玲响连通连通断接断接纪录的信息纪录的信息超出时间超出时间忙音忙音快速忙音快速忙音放下话筒放下话筒

35、放下话筒放下话筒提起话筒提起话筒超时超时一位号码一位号码有效号码有效号码通路通路对方应答对方应答对方挂断对方挂断无效号码无效号码超时超时放下话筒放下话筒号码忙号码忙中断线忙中断线忙一位号码一位号码电话线电话线状态图状态图62v功能建模功能建模 功能模型描述了系统中所有的计算。功能模型描述了系统中所有的计算。功能模型考虑如何从输入值得到输出值,而不考功能模型考虑如何从输入值得到输出值,而不考虑参加计算的数据按什么时序执行。虑参加计算的数据按什么时序执行。功能模型采用数据流图描述,一个功能模型由多功能模型采用数据流图描述,一个功能模型由多个分层的数据流图组成。个分层的数据流图组成。63v分析分析O

36、MT一种软件工程方法学。一种软件工程方法学。软件工程方法学软件工程方法学是运用预先定义的技术和符是运用预先定义的技术和符号规则的一种有组织的软件生产过程。号规则的一种有组织的软件生产过程。64OMT方法的组成:方法的组成: 分析阶段(理解和设计应用模型及操作领域)分析阶段(理解和设计应用模型及操作领域) 系统设计阶段(确定系统的总体结构)系统设计阶段(确定系统的总体结构) 对象设计阶段(完善、改进、优化)对象设计阶段(完善、改进、优化)65OMT方法强调:方法强调:(1)开发重心是分析和设计阶段。)开发重心是分析和设计阶段。(2)强调数据结构而不强调功能。)强调数据结构而不强调功能。(3)不间

37、断开发过程。)不间断开发过程。(4)迭代的而不是顺序的。)迭代的而不是顺序的。OMT在分析阶段的任务是:建模。在分析阶段的任务是:建模。66动态模型的建立步骤和说明动态模型的建立步骤和说明动态分析从寻找事件开始,然后用状态图归纳出动态分析从寻找事件开始,然后用状态图归纳出每个对象允许的事件顺序。每个对象允许的事件顺序。STEP1:预备典型交互次序的脚本。:预备典型交互次序的脚本。STEP2:识别对象间的事件。:识别对象间的事件。67STEP3:为每个脚本准备一个事件踪迹图。:为每个脚本准备一个事件踪迹图。STEP4:构造一个状态图。:构造一个状态图。STEP5:匹配对象间的事件。:匹配对象间的

38、事件。68功能模型的建立步骤和说明功能模型的建立步骤和说明 数据流图的过程(加工)对应于对象状态图中的活数据流图的过程(加工)对应于对象状态图中的活动和动作,而数据流对应于对象图中的对象和属性。动和动作,而数据流对应于对象图中的对象和属性。构造具体功能模型的步骤是:构造具体功能模型的步骤是:69STEP1:确定输入和输出(上下文图)。:确定输入和输出(上下文图)。 STEP2:构造数据流图。:构造数据流图。STEP3:描述函数。:描述函数。STEP4:识别对象间的约束(即:条件)。:识别对象间的约束(即:条件)。建立完初步的模型后,需要进一步增加操作,然后建立完初步的模型后,需要进一步增加操作

39、,然后重复分析。重复分析。70应用实例v 十年前ATM(自动取款机)还是一个很新鲜的事物,现在在城市的大街小巷随处可见。我们在日常生活中也经常和ATM打交道。v 这里将以简化的ATM系统为例将用例图、类图、顺序图、状态图、活动图及协作图知识运用到此例中。 71用例模型v 用例图用例图 参与者银行储户和ATM机。简化后的ATM机仅有取款、存款及其余功能。其余功能不做详细说明 客户ATM机存款取款其他服务72静态模型v类图类图 整个银行系统包括了帐户库、银行储户库及ATM系统。 许多单个的帐户组成了帐户库。帐户具有帐户类型、帐户号、余额三个属性,均为private,其类型分别为char,int,d

40、ouble。六个操作分别为setType、getType、getAccountNumbe、setAccountNumbe、caculateBalance、getBalance,除caculateBalance为protected其余均为public。73 setType设置帐户类型,返回类型为void,参数类型为char,输入帐户类型。 getType获取帐户类型,返回类型为char,无参数。 setAccountNumbe设置帐户号,返回类型为void,参数类型为int,输入帐户号。 getAccountNumbe获取帐户号,返回类型为int,无参数。 caculateBalance计算余额

41、,返回类型为void,参数为double,第一个参数为输入存取款数额,第二个参数为存款余额,既为输入也为输出。 getBalance获取帐户余额,返回类型为double,无参数。74v许多银行储户组成了储户库。ATM系统包含了许多ATM机。银行储户及ATM机两个类包含哪些属性,哪些操作,它们的可见性及操作的返回类型、参数个数、参数类型从类图上都一目了然。更多的属性及操作都可以一一加上,使这个类图更详细更完整,从而使参与项目的每个成员都能无歧义的明了整个设计的类的结构。75v比如帐户类型我们可以先定义一个abstract class,它包含一个帐户最基本的属性及操作。而有些操作先定义为abstract,如余额的计算。然后再继承这个abstract class,我们可以有saving account 和checking account等等。不同的帐户有不同的余额计算方法,我们可以加上具体的算法。v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论