版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章OO方法与UMLOO方法与UML第1页6.1面向对象开发方法概述面向对象方法发展简史面向对象开发方法(OO方法)是一个用于指导软件开发系统方法。它最早出现在挪威计算中心和奥斯陆大学共同研制仿真语言Simula67中。80年美国Xerox研究中心推出SmallTalk80语言使得面向对象编程开始得到比较完整地支持。80年代中后期OO方法不停成熟,并在开发GUI应用系统和大规模信息系统等方面取得了一系列成功范例。90年代以后,OO方法开始广泛流行,并逐步取代结构化开发方法主流地位。OO方法与UML第2页6.1.1OO方法基本思想OO方法了解和结构软件系统基本思想是:软件系统不是由彼此独立“数据”和“功效”组成,而是由“一起协作、相互作用以完成指定任务对象集合”组成。“对象”封装了“相关数据和功效”——代表了业务领域中存在“事物”。软件系统中对象经过“属性(数据组员)”说明自己当前状态;经过“方法(组员函数)”参加业务活动并负担自己职责;经过“消息”请求与其它对象协作,利用他们方法提供自己所需服务。“类”是对含有相同特征对象抽象定义,它描述了对象内部结构(属性、方法),是用于创建实例对象模板。OO方法提供“继承”机制,允许以层次结构来表达“普通性事物”和“较特殊事物”共性和差异。OO方法与UML第3页总而言之,面向对象方法基本思想能够用以下等式来概括:
OO=Objects(对象)+Classes(类)+Inheritance(继承)
+
Communicationwithmessages(消息通信)OO方法与UML第4页结构化方法数据与功效是分离功效1输入输出功效2功效3数据实体对象把和一个事物相关数据和功效封装为系统组成基本单位消息消息描述该对象状态数据对象A表达对象职责方法描述该对象状态数据对象B表达对象职责方法结构化方法系统是功效和数据集合功效处理数据输入并产生输出功效与功效之间传递数据面向对象方法系统是对象集合对象封装本身数据和功效对象间经过消息协作6.1.2OO方法VS结构化方法OO方法与UML第5页6.1.3OO方法优点问题空间与解空间结构一致性
经过对现实(业务)系统直接模拟来结构软件系统,将现实系统中事物直接映射到软件系统中。体系结构独立性
对象固有封装性和信息隐藏机理确保了对象含有很强自含性和独立性,消息通信弱化了对象之间依赖,局部修改不会造成大范围影响,从而使系统便于拓展、维护和进化可复用性
对象含有较强独立性,可复用于多个项目,同时继承机制使得子类能够自动得到父类程序实现,有利于降低编码量,提升开发效率。开发过程高度连贯性
在系统分析、设计、实现等阶段一直围绕着“类和对象”进行发觉和精化,关键任务和概念没有改变,便于开发工作平滑过渡。……OO方法与UML第6页6.1.4OOA主要任务OO方法也由一组用于指导系统分析(OOA)、设计(OOD)和实现(OOP)技术集合组成。其中在面向对象分析阶段,要完成以下任务:定义系统范围,说明系统内部要向外部“参加者”提供哪些服务以及提供服务方式。定义系统结构,确定系统内部应包含事物(类),事物内部结构(属性、方法)以及事物之间静态关系。定义系统行为,说明提供每一个系统服务过程是由系统内哪些对象以什么样消息通信方式协作完成。为上述信息建立可视化模型OO方法与UML第7页
统一建模语言(UnifideModelingLanguageUML)是一个绘制软件蓝图(蓝图意为一个详细、各部分完全协调计划或行动规划)可视化建模语言,可用于对软件密集型系统进行可视化、详述、结构和文档化。6.2UML——统一建模语言OO方法与UML第8页6.2.1UML发展历程 UML产生背景——OO方法大战。80年代末对OO分析和设计技术研究到达高潮,当初指导面向对象开发方法论有50各种,其中比较有代表性包含由GradyBooch(Rational企业)提出Booch方法Booch是面向对象方法最早提倡者之一,Booch方法强调利用“宏开发”和“微开发”两个过程实现系统演进,比较适合于指导系统设计和结构。由JamesRumbaugh(通用电气企业)提出OMT方法OMT引入各种独立于语言表示符。用对象模型、动态模型、功效模型和用例模型完成对整个系统建模,比较适合用于分析和描述以数据为中心信息系统由IvarJacobson(Objectory企业)提出OOSE方法OOSE最大特点是以用例(Use-Case)为中心驱动开发过程,用例是准确描述需求主要武器,也贯通于对系统测试和验证过程。OOSE比较适合支持商业工程和需求分析。OO方法与UML第9页众多开发方法论和建模技术限制了OO方法有效应用,94年开始,在OO方法研究领域内含有领导性三位大师(GradyBooch、JamesRumbaugh、IvarJacobson)开始彼此从对方方法中吸纳思想,并致力于将他们主要工作结果进行统一化。吸收了各种不一样开发方法优点,建立了一个适合用于面向对象软件开发,以用例驱动、以体系结构为中心,迭代及增量软件开发过程——RUP(Rational统一软件开发过程)统一了不一样开发方法基本概念,定义了用以可视化表现这些概念符号体系及语义,形成了可用于对各个开发阶段制品进行建模可视化建模语言——UMLOMG认证Booch’91其它方法OMT-1OOSEBooch’93OMT-2UML0.8UML0.9&0.91UML1.0UML1.1UML同行教授意见10/9510/96&9/96OMG审核,1/97OMG修正,9/97OMG采取,11/97UML1.3OO方法与UML第10页6.2.2UML特点UML是一个定义良好、富有表示力且普遍适用建模语言。可用于对复杂系统(包含非软件领域系统)静态结构、动态行为和结构实施建立可视化模型;尤其适用对采取OO方法开发软件系统进行建模。UML是一个能够在软件开发全过程中使用建模语言,对于需求分析、系统设计、实现等不一样阶段制品都能够采取UML进行文档化。UML只是一个建模语言,而不是软件开发方法,也不是软件开发过程。UML更适合对采取OO方法开发软件系统进行建模。UML更适适用于“用例驱动,以体系结构为中心、迭代及增量”软件开发过程中。OO方法与UML第11页6.2.3UML组成三要素 UML是一个语言,一个语言概念模型必须包含以下要素:用于信息交流词汇表;组合词汇表中词汇规则;利用于整个语言公共机制。UML一样包含这三种组成要素。基本结构块规则公共机制OO方法与UML第12页6.2.4UML基本结构块事物、关系和图是UML三种结构块,事物是模型中应用元素,它代表了以不一样视角和抽象程度分解系统所确定基本成份。关系定义了事物之间结合形式图聚集了一定范围内事物及他们之间关系,对观察者表现出一个有意义整体含义。简单说,事物是系统基本成份,关系使事物结合在一起,图表示了系统某个范围内事物和关系。OO方法与UML第13页(1)UML中事物UML包含四种事物,分别是结构事物——模型中名词部分,说明被观察范围内,组成系统逻辑元素或物理元素。行为事物——模型中动词部分,说明结构事物在一段时间和空间内动作行为。分组事物——模型中组织部分,分组事物是一个逻辑上集合,将有必要划分在一起相关事物组织成一个整体。注释事物——模型中说明部分。用以对模型中任何需要解释其它事物进行说明。OO方法与UML第14页1)结构事物UML中定义了7种基本结构事物类(对象)接口协作用例主动类构件结点OO方法与UML第15页2)行为事物UML定义了两种主要行为事物交互:由在特定语境中共同完成一个任务一组对象之间交换消息组成。消息在UML中用一个带有名字有向直线表示。状态机:对一个对象(或交互)在生命期内响应事件所经历状态序列描述。OO方法与UML第16页3)分组事物UML中“包”是最主要分组事物,“包”将有必要被划分在一起相关事物组织成一个“逻辑”上整体——如“子系统”。OO方法与UML第17页4)注释事物UML中“注解”是最主要注释事物,它依附与模型中某个被说明事物,并包含对其解释信息。OO方法与UML第18页(2)UML中关系系统中“事物”不是孤立存在,而是以某种形式结合在一起,“关系”定义了事物之间结合形式。UML定义了事物间4种关系形式,并提供了对应图形符号表示,这4种关系是:依赖关联泛化实现OO方法与UML第19页1)依赖关系依赖是一个使用关系,它说明一个事物要利用其它事物来完成本身职责,因而被依赖事物改变将影响到依赖于它事物;但反之则未必。依赖关系被表示为一条指向被依赖事物有向虚线。在代码上看,当类A方法申明中,包含有引用类B对象形参时,表明类A依赖类B。OO方法与UML第20页2)泛化关系泛化是一个继承关系,表示了普通性事物和该事物中较特殊种类之间联络。泛化关系被表示为一端带有空心箭头实线。箭头指向“普通性事物”(基类)。OO方法与UML第21页3)实现关系实现关系是一个约定关系。即一个事物对外公开了一组由另一个事物确保执行契约。比如C++中,实现文件CView.cpp实现了由对应头文件CView.h对外公开契约。实现关系在语义上是依赖和泛化关系交叉,被表示为一端带有空心箭头虚线。指向公开契约事物(头文件)。在UML模型中,有两种情况可能使用到实现关系用于表示一个接口和实现该接口类或构件之间联络。用于表示一个用例和实现该用例协作之间联络。OO方法与UML第22页4)关联关系关联是事物间结构关系,关联表示了事物间存在连接,从而确保事物能够相互协作。从对象语境看,关联被实例化为对象间进行消息通信“链”。简单关联说明两个事物间能够相互导航。用直线表示。当需要表示事物间“整体/部分”结构关系时,能够使用特殊关联形式聚合:“整体”包含了对“部分”引用;“部分”能够单独存在,表示为“整体”端带有空心菱形。组合:“整体”包含了对“部分”值;“部分”不能够脱离整体单独存在,表示为“整体”端带有实心菱形。OO方法与UML第23页关联修饰名字:关联可以被命名,用以描述该关系性质和含义。角色:可认为关联事物命名角色,角色名是关联中靠近它一端事物对另一端事物展现职责。多重性:
关联事物可以被指定多重性,用以描述关联另一端一个事物实例,本端要求实例数量。OO方法与UML第24页(3)UML中图“图”经过在语法规则内组合相关事物和关系,完整地表现出系统某一范围内使观察者感兴趣特征信息。因为没有那个复杂系统能够从一个角度了解其全局,所以UML定义了各种图,分别用于在不一样开发阶段“观察”目标系统各个方面。OO方法与UML第25页UML9种图图名称图定义图性质1类图一组类、接口、协作及它们关系静态图2对象图一组对象及它们关系静态图3用例图一组用例、参加者及它们关系动态图4次序图一个交互,强调消息时间次序动态图5协作图一个交互,强调消息发送和接收对象结构组织动态图6状态图一个状态机,强调对象按事件排序行为动态图7活动图一个状态机,强调从活动到活动流动动态图8构件图一组构件及关系静态图9实施图一组接点及它们关系静态图包图:包中类以及包与包之间关系(静态图)OO方法与UML第26页UML9种图能够简单地划分为两类静态图——表现系统静态结构类图、对象图、构件图、实施图动态图——表现系统行为特征用例图、协作图、次序图、活动图、状态图也可依据观察系统不一样视角,将9种图详细分为5类视图。结构视图(类图、对象图)用于在分析和设计阶段观察系统由哪些“逻辑元素”组成物理视图(构件图、实施图)用于在实现和公布阶段观察系统由哪些“物理元素”组成用户视图(用例图)用于对从用户角度所能观察到系统服务集建模。行为视图(活动图、状态图)对系统运行控制流程和对象状态随事件序列发生改变建模。交互视图(协作图、次序图)表现系统运行过程中相关对象间消息通信和协作过程。1)UML中图分类OO方法与UML第27页用例图主要用于创建用户视图,表现系统提供服务集合,并指出使用这些系统服务用户角色。
购置商品登录退货收款员POS系统用户开启/关闭管理用户其它管理员系统管理员2)用户视图OO方法与UML第28页结构视图关注于系统逻辑组成结构,类图、对象图和包图用于创建结构视图类图展示系统中包含类、类属性、方法、以及类之间关系。对象图是类图实例化,它主要用于表现在特定时刻系统中包含对象实例,对象当前状态(属性值)以及对象之间“链”包是一个组合机制,包将相关元素组织成一个整体。包图也用于描述系统逻辑结构,表示包与包之间关系。3)结构视图OO方法与UML第29页类图举例OO方法与UML第30页对象图举例OO方法与UML第31页包图举例《subsystem》课程注册子系统用表示子系统包对系统结构建模《subsystem》成绩管理子系统《system》
教学管理系统OO方法与UML第32页行为视图关注于目标系统动态行为特征,通常使用活动图和状态图进行表现。状态图用于对一个对象(或交互)在生命期内响应事件所经历状态序列进行描述。活动图在本质上是一个流程图,显示一组连续执行活动间控制流。
4)行为视图OO方法与UML第33页活动图和状态图举例OO方法与UML第34页交互视图关注是:在提供系统服务过程中,相关对象怎样进行协作和消息交换。交互视图主要经过次序图和协作图进行表现。次序图显示对象之间动态合作过程,强调消息序列时间次序
协作图与次序图同构(能够相互转换),也表示对象间动态协作过程,但重视表示对象间联络。5)交互视图OO方法与UML第35页次序图举例OO方法与UML第36页协作图举例OO方法与UML第37页物理视图关注于软件系统本身实现结构(比如软件包含哪些可执行组件,未来被配置在哪些运行结点上),使用构件图和实施图建模
构件图表现出目标系统由哪些“构件”(可执行文件、动态链接库…)组成,以及构件相互关系实施图定义系统配置结点(计算机、外设)物理体系结构,结点之间连接关系,以及各个结点包含可执行构件。6)物理视图OO方法与UML第38页
构件图举例
财务系统.exe教学管理.exe
课程课程管理.dll成绩管理.dll人事管理.dll开设课程选课注册教师管理学生管理OO方法与UML第39页实施图举例
“TCP/IP”网络A客户机B客户机应用服务器数据库服务器OO方法与UML第40页7)4+1视图不一样视图代表了从不一样角度对系统观察结果。但5种视图之间并不是一个平行关系。用例视图从用户角度对软件需求进行建模,是产生其它视图模型基础。结构视图行为视图交互视图物理视图用例视图OO方法与UML第41页UML是一个能够应用于面向对象软件开发全程建模语言,在系统分析阶段经常使用以下UML图对“需求”和系统分析结果进行建模用例图活动图类图/对象图次序/协作图状态图6.2.5UML在OOA阶段应用OO方法与UML第42页(1)用例图用例图能够用于表示从用户角度上能够发觉和使用系统服务,通常在用例图中还标注出系统边界。用例图是对软件需求直接建模。用例图中主要事物用例代表系统向外部用户提供一个完整服务单元。用户在特定场景下使用这种服务,并取得一个可见服务结果。参加者执行用例用户角色。用例参加者OO方法与UML第43页1)用例图中关系参加者与用例之间关系关联参加者之间关系泛化关系:“管理员是特殊操作员”依赖关系:“操作员在借书时用手持扫描设备扫描图书条码”用例与用例之间关系泛化关系:“系统登录分为外网用户登录和本网用户登录”依赖转义——“包含”、“拓展”包含关系《Include》:基础用例执行必定激活其它用例,指向被包含用例。拓展关系《Extend》:基础用例有条件地激活其它用例,指向基础用例。OO方法与UML第44页OO方法与UML第45页(2)类图类图是在面向对象系统模型中使用得最普遍图。类图包含了一组类、接口和协作以及他们之间关系类图所传达信息包含在所观察范围内包含类类组员及可见性:属性、方法类之间关系OO方法与UML第46页UML中类表示为一个被分隔成三栏矩形框第一栏:类名第二栏:属性集合第三栏:方法集合属性和方法可见性能够经过特定符号表示Public:+Private:-Protect:#特定建模工具可能采取不一样图标进行表示1)类表示OO方法与UML第47页2)类图中关系在类图中能够对类之间关系进行可视化表示,常见关系形式有泛化:基类与子类关系关联:需要彼此“连接”类之间关系。聚合:整体类对部分类引用包含组合:整体类对部分类值包含依赖:类之间使用关系,一个类方法中包含有对其它类对象引用。OO方法与UML第48页3)从程序实现角度了解关系OO方法与UML第49页关联关系(简单关联1:1)Classperson{private charname[20]; charsex; intage;
pet*p; car*c;public voidIncAge(); char*GetName(); voidSetName(char*NewName) …… }Classpet{private:charname[20];charcolor[4];
person*ownerpublic:voidchgNm(char*c);……}
OO方法与UML第50页聚合、组合Classfamily{private person*member[]; ……};Classmoto{……};Classcar{privatemotom;person*owner……}OO方法与UML第51页泛化关系(单继承) 依赖关系ClassDog:publicpet{public: voidbark(); ……;}ClassCat:publicpet{public: voidmiaow(); ……;}ClassTeacher:publicPerson{public:
voidteach(CourseWareCAI); ……;}ClassCourseWare{public: Person*author;
inthours;……;}OO方法与UML第52页(3)对象图对象是类实例,在UML中普通将对象表示成2栏矩形名称栏:说明对象名字及所属类,名称栏内容带有下划线属性栏:说明对象属性当前值。对象方法被定义在类语境中,普通不再对象图中显式表示。OO方法与UML第53页对象图对象图用于表示在某个特定时刻,系统内实例对象详细状态(属性值)和与其它对象当前连接。OO方法与UML第54页(4)次序图、协作图交互视图描述了执行系统功效各个对象之间相互传递消息协作关系。交互视图能够用次序图和协作图进行表示。
经过次序图和协作图,能够表示出参加协作对象对象间消息通信消息通信时序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基因检测结果健康指导手册
- 荷斯坦奶牛全混合日粮饲喂规程
- 腰椎间盘突出理疗方案
- 环境监测数据真实性核查办法
- 大马力拖拉机田间作业技术指引
- 生猪标准化养殖管理流程
- 全身刮痧排毒治疗操作流程
- 岗位安全风险告知卡管理标准
- 无公害蔬菜上市检测标准
- 高血压饮食营养调理手册
- 电力拖动自动控制系统-运动控制系统(第5版)习题答案
- JG/T 355-2012天然石材用水泥基胶粘剂
- 合伙贷款合同协议书
- 2025年高考英语复习难题速递之语法填空(2025年4月)
- GB/T 2878.1-2025液压传动连接普通螺纹斜油口和螺柱端第1部分:斜油口
- 美团电子合同协议
- 水库溃坝分析报告范文
- 中成药处方大全-仅作参考
- 【MOOC】3D工程图学-华中科技大学 中国大学慕课MOOC答案
- DB32T 2178-2012 淮麦25 标准规范
- 2024至2030年中国重组(酵母)乙型肝炎疫苗数据监测研究报告
评论
0/150
提交评论