软件工程 新的第九章 面向对象的方法2.ppt
《软件工程 新的第九章 面向对象的方法2.ppt》由会员分享,可在线阅读,更多相关《软件工程 新的第九章 面向对象的方法2.ppt(72页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第九讲 面向对象的方法软件工程软件工程 传统方法与面向对象方法传统方法与面向对象方法传统面向对象方法传统面向对象方法UMLUML与与RUPRUP基于基于UMLUML的实例分析的实例分析第9讲 面向对象的方法9.1传统方法与面向对象方法传统方法与面向对象方法(1 1)传统方法存在的问题)传统方法存在的问题传统方法的发展传统方法的发展以以结结构构化化程程序序设设计计为为基基础础,并并逐逐步步扩扩展展到到分分析析与与设设计计阶段的一种软件工程方法。阶段的一种软件工程方法。面向功能的方法面向功能的方法面向数据流的方法面向数据流的方法面向数据结构的方法面向数据结构的方法传统方法的本质传统方法的本质进进行
2、行功功能能分分解解,从从目目标标系系统统的的整整体体功功能能着着手手,自自顶顶向向下下不不断断将将复复杂杂的的处处理理分分解解为为子子处处理理,直直至至每每个个子子处处理理比比较较简简单单,在在使使用用的的时时候候一一个个一一个个依依次次调调用用就就可可以以了了。n传统方法存在的主要问题传统方法存在的主要问题由于围绕处理功能来构造系由于围绕处理功能来构造系统的,因此任何需求的变化统的,因此任何需求的变化都会对原有系统产生致命的都会对原有系统产生致命的影响;影响;需求不能精确描述,从分析需求不能精确描述,从分析到设计的转化存在鸿沟,造到设计的转化存在鸿沟,造成分歧,系统的稳定性和易成分歧,系统的
3、稳定性和易变性差;变性差;将数据与实现方法相分离的将数据与实现方法相分离的做法,偏离了客观世界中人做法,偏离了客观世界中人们处理问题的方式;们处理问题的方式;产生的软件重用性差,易变产生的软件重用性差,易变性差,可维护性差,软件不性差,可维护性差,软件不能满足用户要求的问题。能满足用户要求的问题。DFD数据结构数据结构功能功能SC程序结构程序结构界面与细节界面与细节鸿沟鸿沟问题空间问题空间解空间解空间?(2 2)面向对象的概念与思想)面向对象的概念与思想(1 1)认识问题、分析问题、解决问题的方式不同)认识问题、分析问题、解决问题的方式不同将数据和方法封装在一个称为将数据和方法封装在一个称为“
4、对象对象”的统一体中;的统一体中;对对象象之之间间通通过过“消消息息”相相互互联联系系,“对对象象+消消息息”机机制制取取代代了了“数数据结构据结构+算法算法”的思路,减小了系统变化所带来的波动性;的思路,减小了系统变化所带来的波动性;以对象为中心构建系统。以对象为中心构建系统。(2 2)“问题空间问题空间”与与“解空间解空间”有较一致的表示有较一致的表示在在“OOA-OOD-OOI”的的过过程程中中,采采用用一一致致的的模模型型表表示示,弥弥合合了了“鸿沟鸿沟”问题。问题。(3 3)利用继承性和封装性支持软件复用)利用继承性和封装性支持软件复用后一阶段可直接复用前一阶段的结果,可重用性好。后
5、一阶段可直接复用前一阶段的结果,可重用性好。(4 4)适应复杂大型系统的发展和变化要求)适应复杂大型系统的发展和变化要求 以以对对象象为为中中心心,而而不不是是基基于于功功能能与与功功能能的的分分解解来来建建立立系系统统,因因此此,当功能需求发生变化时,不会引起系统的整体变化,稳定性较好当功能需求发生变化时,不会引起系统的整体变化,稳定性较好(5 5)采用迭代的思想,通过连续的分析、设计,逐步认识系统)采用迭代的思想,通过连续的分析、设计,逐步认识系统n例如五子棋,传统的设计思路就是确定问题的步骤:例如五子棋,传统的设计思路就是确定问题的步骤:1、开始游戏,、开始游戏,2、黑子先走,、黑子先走
6、,3、绘制画面,、绘制画面,4、判断输赢,、判断输赢,5、轮到白子,、轮到白子,6、绘制画面,、绘制画面,7、判断输赢,、判断输赢,8、返回步骤、返回步骤2,9、输出最后结果。、输出最后结果。把上面每个步骤用分别的函数来实现,问题就解决了。把上面每个步骤用分别的函数来实现,问题就解决了。n面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为:面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为:1、黑白双方,这两方的行为是一模一样的,、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。、规则系统,负
7、责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。对棋局进行判定。9.2 9.2 传统面向对象方法传统面向对象方法OOA/OODOOA/OOD方法(方法(CoadCoad和和YourdonYourdon提出)提出)OMTOMT方法(方法(RumbaughRu
8、mbaugh提出)提出)BoochBooch方法(方法(BoochBooch提出)提出)OOSEOOSE方法(方法(JacobsonJacobson提出)提出)例例 问题简要描述:一个管理机构对于购买车的信息进问题简要描述:一个管理机构对于购买车的信息进行管理。管理机构有多名职员参与该管理工作。如果职行管理。管理机构有多名职员参与该管理工作。如果职员被授权进行进行管理,那么要对购车的信息进行登记:员被授权进行进行管理,那么要对购车的信息进行登记:谁买了车、买了什么车、登记合法信息。合法信息分为谁买了车、买了什么车、登记合法信息。合法信息分为注册和颁发执照。一个车主可能购买几部不同种类型的注册和
9、颁发执照。一个车主可能购买几部不同种类型的车,也可能一部车有几个车主。车分为卡车、小轿车、车,也可能一部车有几个车主。车分为卡车、小轿车、拖车,拖车分为标准拖车和旅行拖车。拖车,拖车分为标准拖车和旅行拖车。CoadCoad/Yourdon/Yourdon方法方法(1)方法简介提出:P.Coad和E.Yourdon于 1991年提出。该方法分2个阶段:OOA(Object-OrientedAnalysis)面向对象分析OOD(Object-OrientedDesign)面向对象设计。1 1 1 1、获取用户基本需求、获取用户基本需求、获取用户基本需求、获取用户基本需求用用户户与与开开发发者者之之
10、间间进进行行充充分分交交流流,常常用用User User casecase来来收收集集和和描描述述用用户户的的需求。即先标识使用该系统的不同的行为者需求。即先标识使用该系统的不同的行为者(actor)(actor)。(2)OOA的分析过程获取用户基本需求获取用户基本需求获取用户基本需求获取用户基本需求标识类和对象标识类和对象标识类和对象标识类和对象定义类的结构和层次定义类的结构和层次定义类的结构和层次定义类的结构和层次定义类定义类定义类定义类(对象对象对象对象)间的关系间的关系间的关系间的关系为对象行为建模为对象行为建模为对象行为建模为对象行为建模 行为者所提出的每个使用场景(或功能)称为一个
11、用例,所有的用行为者所提出的每个使用场景(或功能)称为一个用例,所有的用例则构成完整的系统需求。例则构成完整的系统需求。组织机构组织机构车主车主执照执照注册注册汽车汽车职员职员表示表示对象对象对象服务对象服务对象属性对象属性对象名对象名 标识类和对象标识类和对象主题主题(subject)(subject)又称为子系统又称为子系统(subsystem)(subsystem)是将一些联是将一些联系密切的类组织在一起的类的集合。按照粒度控制原系密切的类组织在一起的类的集合。按照粒度控制原则,将系统组成几个主题,便于理解。则,将系统组成几个主题,便于理解。组织机构组织机构车主车主执照执照注册注册汽车汽
12、车职员职员合法事件合法事件拖车拖车轿车轿车卡车卡车标准标准旅行旅行4 43 32 21 11 1 职员职员4 4 汽车汽车3 3 合法事件合法事件2 2 车主车主4 4、标识主题、标识主题(可选可选)用用“对象对象-关系模型关系模型”描述系统的静态结构描述系统的静态结构组织机构组织机构名字名字管理者管理者地址地址车主车主名字名字地址地址电话电话汽车汽车编号编号出厂日期出厂日期颜色颜色型号型号柴油机柴油机座位座位职员职员用户名用户名授权授权开始日期开始日期结束日期结束日期合法事件合法事件时间时间拖车拖车柴油机柴油机座位座位轿车轿车卡车卡车重量重量标准标准旅行旅行长度长度 执照执照编号编号所属关系
13、证明所属关系证明费用费用 注册注册开始时间开始时间结束时间结束时间费用费用5 5、定义类(对象)间的关系、定义类(对象)间的关系通过消息连接通过消息连接说明所标识的各种对象是如何通信、协作,使系统说明所标识的各种对象是如何通信、协作,使系统运作起来运作起来 。组织机构组织机构名字名字管理者管理者地址地址车主车主名字名字地址地址电话电话汽车汽车编号编号出厂日期出厂日期颜色颜色型号型号柴油机柴油机座位座位职员职员用户名用户名授权授权开始日期开始日期结束日期结束日期合法事件合法事件时间时间拖车拖车柴油机柴油机座位座位轿车轿车卡车卡车重量重量标准标准旅行旅行长度长度 执照执照编号编号所属关系证明所属关
14、系证明费用费用Calculate FeeAccept Fee 注册注册开始时间开始时间结束时间结束时间费用费用Calculate FeeAccept Fee隐含隐含服务服务显式显式表示表示服务服务消息消息连接连接6 6、定义服务及消息连接、定义服务及消息连接 是将是将是将是将OOAOOA所创建的分析模型转换为设计模型,解决如何作所创建的分析模型转换为设计模型,解决如何作所创建的分析模型转换为设计模型,解决如何作所创建的分析模型转换为设计模型,解决如何作的问题。的问题。的问题。的问题。OODOOD与与与与OOAOOA没有明显的分界,采用相同的符号。没有明显的分界,采用相同的符号。没有明显的分界,
15、采用相同的符号。没有明显的分界,采用相同的符号。(3 3)OODOOD(Object-Oriented DesignObject-Oriented Design)OOA人机人机交互交互部分部分HIC数据数据管理管理部分部分HIC问题问题域域部分部分PDC任务任务管理管理部分部分HIC属性层属性层结构层结构层类类/对象层对象层主题层主题层服务层服务层设计人机交互部分设计人机交互部分设计问题域部分设计问题域部分设计任务管理部分设计任务管理部分设计数据管理部分设计数据管理部分OOD 4部分部分 OOD4个活动个活动什么是问题域设计什么是问题域设计OOD是对是对OOA的修改、增补的修改、增补根根据据实
16、实现现技技术术及及实实现现方方面面的的限限制制,合合并并或或分分开开一一些些类类及及对对象象、结结构构、属性、服务属性、服务,但保留在但保留在OOA模型中所捕获到的基本的系统行为模型中所捕获到的基本的系统行为 什么是人机交互设计什么是人机交互设计通通常常在在OOA阶阶段段给给出出了了所所需需的的属属性性和和操操作作,在在设设计计阶阶段段必必须须根根据据需需求求把把交交互互的的细细节节加加入入到到用用户户界界面面的的设设计计中中,包包括括有有效效的的人人机交互所必需的实际显示和输入。机交互所必需的实际显示和输入。什么是任务管理设计什么是任务管理设计当当系系统统中中有有许许多多并并发发行行为为时时
17、,需需要要依依照照各各个个行行为为的的协协调调和和通通信信关关系系,划划分分各各种种任任务务。任任务务管管理理主主要要包包括括识识别别事事件件驱驱动动任任务务、识识别别时时钟钟驱驱动动任任务务、识识别别优优先先任任务务、识识别别协协调调任任务务、审审查查每每个个任务、定义每个任务等任务、定义每个任务等什么是数据管理设计什么是数据管理设计数数据据管管理理提提供供了了在在数数据据管管理理系系统统中中存存储储和和检检索索对对象象的的基基本本结结构构,包包括括对对永永久久性性数数据据的的访访问问和和管管理理。它它分分离离了了数数据据管管理理机机构构所所关关心的事项,包括文件、关系型心的事项,包括文件、
18、关系型DBMS或面向对象或面向对象DBMS等。等。9.3 UML9.3 UML与与RUPRUP(1)UML概述概述2020世世纪纪9090年年代代,3 3个个最最流流行行的的面面向向对对象象方方法法是是:OMTOMT方方法法(RumbaughRumbaugh提提出出),BoochBooch方方法法(BoochBooch提提出出),OOSEOOSE方方法法(JacobsonJacobson提提出出),每每种种方方法法各各有有所所长长,但但不同符号体系的使用给用户带来了混乱。不同符号体系的使用给用户带来了混乱。19941994年年RumbaughRumbaugh加加入入BoochBooch所所在在
19、的的RationalRational公公司司,他他们们将将BoochBooch和和OMTOMT方方法法统统一一为为UM0.8UM0.8,后后来来JacobsonJacobson也也加加入入到到这这一一工工作作中中,并并于于19961996年年6 6月月和和1010月月发发布布了了UML0.9UML0.9和和UML0.91UML0.91。到到19961996年年年年底底,UMLUML已已经经占占据据面面向向对对象象技技术术市市场场85%85%的的份份额额,成成为为事事实实上上的的工工业业标标准准。9797年年在在其其它它一一些些组组织织的的参参与与下下,OMGOMG采采纳纳了了UML1.1UML
20、1.1为为面面向向对对象象的的标标准建模语言。准建模语言。(2)UML的特点的特点统统一一了了Booch,OMT,OOSE和和其其它它面面向向对对象象方方法法的的基基本本概概念念和和符符号号,汇汇聚聚了了面面向向对对象象领领域域中中各各种优秀的思想。种优秀的思想。UML是是一一种种可可视视化化建建模模语语言言,而而不不是是一一种种方方法法,因因为为UML中中没没有有过过程程的的概概念念,而而过过程程是是方方法法的的一一个个重重要要组组成成部部分分。这这意意味味着着,用用户户在在使使用用UML进进行行建建模模时时,可可以以根根据据需需要要选选用用任任何何适适合合的过程的过程。(3)UML的组成的
21、组成UML语语义义:描描述述基基于于UML的的精精确确元元模模型型定定义义。使使开开发发者者能能在在语语义义上上取取得得一一致致,消消除除了了因因人人而而异异的的最最佳佳表表达达方方法法所所造成的影响造成的影响.UML表示法:定义表示法:定义UML符号的表示法。符号的表示法。UML中包括三种构造模块:元素、关系、图。其中中包括三种构造模块:元素、关系、图。其中元素包括:元素包括:类类、接接口口、用用例例、组组件件、节节点点、消消息息、连连接接、状状态态、事事件件、活动、包等。活动、包等。关系包括:关系包括:依赖关系、关联关系、泛化关系、聚合关系、实现关系等。依赖关系、关联关系、泛化关系、聚合关
22、系、实现关系等。图共有图共有9种,包括:种,包括:用用例例图图、类类图图、对对象象图图、状状态态图图、时时序序图图,协协作作图图、活活动动图、组件图和配置图。图、组件图和配置图。(1)(1)标准建模语言标准建模语言UML UML(用例图)用例图)用用例例图图描描述述的的是是外外部部执执行行者者(Actor)(Actor)所所理理解解的的系系统统功功能能。它它将将系系统统看看作作黑黑盒盒,从从外外部部执执行行者者的的角角度度来来理理解解系系统统,一一个个用用例例模模型型由由若若干干个个用用例例图图描描述述,用例图主要元素是用例和执行者。用例图主要元素是用例和执行者。用用例例图图是是包包括括执执行
23、行者者、由由系系统统边边界界(一一个个矩矩形形)封封闭闭的的一一组组用用例例,执执行行者和用例之间的关联、用例间关系以及执行者的泛化的图。者和用例之间的关联、用例间关系以及执行者的泛化的图。(1)(1)标准建模语言标准建模语言UML UML(用例)(用例)一个用例是用户与计算机之间的一次典型交互作用。是系一个用例是用户与计算机之间的一次典型交互作用。是系统执行的一系列动作,执行的结果能被执行者察觉到(为参统执行的一系列动作,执行的结果能被执行者察觉到(为参与者产生一个可观测的结果值)与者产生一个可观测的结果值)n用例特点:用例特点:用用例例捕捕获获某某些些用用户户可可见见的的需需求求,实实现现
24、一一个个具具体体的的用用户户目目标标。用用例例由由执执行行者者激激活活,并并提提供供确确切切的的值值给给执执行行者者。用用例例可可大可小,但它必须是对一个具体的用户目标实现的完整描述。大可小,但它必须是对一个具体的用户目标实现的完整描述。(1)(1)标准建模语言标准建模语言UMLUML(执行者)(执行者)执执行行者者是是指指用用户户在在系系统统中中所所扮扮演演的的角角色色(执执行行者者未未必必是是人人)。通通信信联联系系:将将执执行行者者与与用用例例连连接接到到一一起起不不带带箭箭头头的的线线段段,表表示示两两者者之之间间交交换换信信息息。执执行行者者触触发发用用例例,并并与与用用例例进进行行
25、信信息交换。息交换。单单个个执执行行者者可可与与多多个个用用例例联联系系;反反过过来来,一一个个用用例例可可与与多个执行者联系。多个执行者联系。对对一一个个大大系系统统,要要列列出出用用例例清清单单常常常常是是十十分分困困难难。这这时时可可先先列列出出执执行行者者清清单单,再再对对每每个个执执行行者者列列出出它它的的用用例例,问问题题就会变得容易很多。就会变得容易很多。p使用和扩展(Use and Extend):扩扩展展关关系系:一一个个用用例例可可由由其其它它用用例例扩扩展展而而来来,但但扩扩展展是是有有条条件件的的。在在没没有有遇遇到到扩扩展展点点前前,基基用用例例正正常常执执行行,在在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 新的第九章 面向对象的方法2 第九 面向 对象 方法
限制150内