已阅读5页,还剩105页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
UML,UnifiedModelingLanguage统一建模语言,参考文献,UML参考手册(第2版)JamesRumbaugh,IvarJacobson,GradyBooch机械工业出版社UML用户指南(第2版)GradyBooch,JamesRumbaugh,IvarJacobson人民邮电出版社UML精粹:标准对象语言简明指南MartinFowler清华大学出版社,产生背景,面向对象的分析与设计(OOA&D)方法的发展在80年代末至90年代中出现了一个高潮UML是这个高潮的产物统一了Booch、Rumbaugh和Jacobson的表示方法Booch1993OMT-2OOSEOOA/OODCoad/Yourdon统一为大众所接受的统一建模语言,发展历程,什么是UML?,通用的可视化建模语言用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档它记录了对必须构造的系统的决定和理解用于对系统的理解、设计、浏览、配置、维护和信息控制,UML的适用范围,各种软件开发方法软件生命周期的各个阶段各种应用领域,UML描述能力,静态结构动态行为模型分解成包的结构用于显示系统实现和组织运行的成分,UML是什么语言?,不是一门程序设计语言不是一种可用于定理证明的高度形式化的语言是一种通用建模语言是一种离散的建模语言不适合对诸如工程和物理学领域中的连续系统建模是一个综合的通用建模语言适合对诸如由计算机软件、固件或数字逻辑构成的离散系统建模,UML概念域,静态结构动态行为实现构造模型组织扩展机制,静态结构,静态视图用类构造模型来表达应用类继承和子类关联:对象与其他对象之间也具有运行时间连接依赖:包括在抽象级上进行模型转换、模板参数的捆绑、授予许可以及通过一种元素使用另一种元素等,动态行为,描述和时间相关的交互图状态图活动图,模型组织,子系统包图,实现结构,组件图部署图,扩展机制,构造性标记值约束,UML视图,视图来划分UML概念和组件视图只是表达系统某一方面特征的UML建模组件的子集三个视图域结构分类动态行为模型管理,类元classifier,各种视图的组成用类元(classifier)表示描述事物的建摸工具是描述结构和行为特性的一种机制类元为研究系统动态行为奠定了基础,结构分类,描述了系统中的结构成员及其相互关系类元视图静态视图用例视图实现视图,动态行为,描述了系统随时间变化的行为行为用从静态视图中抽取的瞬间值的变化来描述动态行为视图状态机视图活动视图交互视图,模型管理,说明了模型的分层组织结构包是模型的基本组织单元,UML视图表,UML视图,用例视图,被称为执行者的外部用户所能观察到的系统功能的模型图用例是系统中的一个功能单元,可以被描述为执行者与系统之间的一次交互作用用例模型的用途是列出系统中的用例和执行者,并显示哪个执行者参与了哪个用例的执行。,例子,交互图,描述了执行系统功能的各个角色之间相互传递消息的顺序关系类元是对在系统内交互关系中起特定作用的一个对象的描述,这使它区别于同类的其他对象互视图显示了跨越多个对象的系统控制流程交互视图可用两种图来表示顺序图协作图(通信图)定时timing交互概图,顺序图,表示了对象之间传送消息的时间顺序每一个类元角色用一条生命线来表示用垂直线代表整个交互过程中对象的生命期用来进行一个场景说明即一个事务的历史过程用来表示用例中的行为顺序当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件,例子,通信图(协作图),对在一次交互中有意义的对象和对象间的链建模对象和关系只有在交互的才有意义类元角色描述了一个对象关联角色描述了协作关系中的一个链一个用途是表示一个类操作的实现可以说明类操作中用到的参数和局部变量以及操作中的永久链,例子,顺序图VS通信图,都可以表示各对象间的交互关系侧重点不同顺序图用消息的几何排列关系来表达消息的时间顺序,各角色之间的相关关系是隐含的协作图用各个角色的几何排列图形来表示角色之间的关系,并用消息来说明这些关系,状态机视图,是一个类对象所可能经历的所有历程的模型图状态机由对象的各个状态和连接这些状态的转换组成每个状态对一个对象在其生命期中满足某种条件的一个时间段建模当一个事件发生时,它会触发状态间的转换,导致对象从一种状态转化到另一新的状态与转换相关的活动执行时,转换也同时发生,例子,活动视图,是状态机的一个变体用来描述执行算法的工作流程中涉及的活动活动状态代表了一个活动一个工作流步骤或一个操作的执行描述了一组顺序的或并发的活动,例子,模型管理视图,对模型自身组织建模一系列由模型元素(如类、状态机和用例)构成的包组成了模型一个包(package)可能包含其他的包整个模型实际上可看成一个根包,它间接包含了模型中的所有内容子系统是另一种特殊的包,包图,扩展机制,约束用某种形式化语言或自然语言表达的语义关系的文字说明构造型由建模者设计的新的模型元素标记值附加到任何模型元素上的命名的信息块,例子,各种视图间的关系,用例视图,用例模型由IvarJacobson在开发AXE系统中首先使用加入由他所倡导的OOSE和Objectory方法中描述的是外部执行者(Actor)所理解的系统功能是获取系统功能需求的一种技术,用例视图的作用,它描述了待开发系统的功能需求它将系统看作黑盒,从外部执行者的角度来理解系统它驱动了需求分析之后各阶段的开发工作不仅在开发过程中保证了系统所有功能的实现被用于验证和检测所开发的系统影响到开发工作的各个阶段和UML的各个模型,用例视图的适用范围,用于需求分析阶段它的建立是系统开发者和用户反复讨论的结果表明了开发者和用户对需求规格达成的共识,用例模型的组成,用例模型由若干个用例图描述用例图中显示执行者、用例和用例之间的关系用例图包括三种模型元素系统执行者用例,系统System,用例模型的一个组成部分代表的是一部机器或一个业务活动不是真正实现的软件系统系统的边界用来说明构建的用例模型的应用范围自动售货机准确定义系统的边界并不总是容易的事自动还是手工?系统规模有多大?,定义系统的一般方法,先识别出系统的基本功能然后以此为基础定义一个稳定的、精确定义的系统架构以后再不断地扩充系统功能,逐步完善,术语和定义,在建模初期要定义一些术语和定义在描述系统、用例或进行作用域分析时采用统一的术语和定义能够规范表述系统的含义,不致于出现误解,USECASE用例,代表的是一个完整的功能是活动序列的集合系统执行该活动序列来为执行者产生一个可观察的结果活动是系统的一次执行一个用例是用户与计算机之间的一次典型交互作用系统中的每种可执行情况就是一个活动,每个活动由许多步骤组成,用例的图示,自动售货机系统用例图,关联Association,用例和执行者之间的连接关系表示哪种执行者能与该用例通信关联关系是双向的多对多关系一个执行者可以与多个用例通信一个用例也可以与多个执行者通信,用例的情景Scenario,用例表示的也是一个类,而不是某个具体的实例用例的实例(也是一种动作)代表系统的一种实际使用方法这个实例通常叫作情景(scenario)情景是系统的一次具体执行路线,用例的特点,用例总由执行者初始化用例为执行者提供值用例具有完全性,用例规格说明,用例规格说明不是UML的一部分很多开发方法都需要对用例进行文字说明都有一个用例规格说明的模板目的是详细描述用例,用例规格说明模板,用例:用例标示:执行者:。先决条件(preconditions):事件流:后置条件(postconditions):,执行者Actor,Actor指用户在系统中所扮演的角色是与系统交互的人或事其图形化的表示是一个小人状图案执行者是一个群体概念代表的是一类能使用某个功能的人或事执行者不是指某个个体执行者可以是人,也可以是外界系统执行者对提供用例是非常有用的,主要执行者和次要执行者,主要执行者(primaryactor)指的是执行系统主要功能的执行者次要执行者指的是使用系统次要功能的执行者次要功能是指一般完成维护系统的功能例如管理数据库通信备份等将执行者分级的目的是保证把系统的所有功能表示出来,执行者的泛化关系,执行者是一个类,它拥有与类相同的关联描述使用泛化(generalization)关系描述若干执行者之间的关系(is-a)将某些执行者的共同行为抽取出来表示成泛化的行为,且将它们描述为超类,泛化的例子,用例间的关联,用例的泛化关系,像类之间的泛化关系一样子用例继承超用例的行为和含义子用例还可以增加或覆盖新的行为也可以重置超用例中的行为子用例可以出现在超用例出现的任何位置,用例间泛化关联的例子,扩展关联extendassociation,和泛化非常类似,一个用例中加入一些新的动作后则构成另一个用例前者通常称为用基本用例后者常称作扩展用例同一个基本用例的几个扩展用例可以在一起应用基本用例的扩展增加了原有的语义,如何扩展行为,扩展用例是靠向基用例的活动序列插入额外的活动序列来完成扩展的。它允许扩展用例到达基用例中合理的扩展点,且扩展条件满足的时候,延续基用例的活动序列当扩展用例的活动序列完成的时候,基用例就延伸了,扩展点,候选过程的逻辑替代基本活动过程的部分逻辑在用例中指出其替代点仅仅是基用例逻辑中的一个标记,表明哪里允许扩展,扩展用例的例子,引入扩展的好处,便于处理基用例中不易描述的某些具体情况便于扩展系统提供系统性能减少不必要的重复工作,包含关联(includeassociation),指一个用例包含了其他用例所描述的行为抽象用例如果若干个用例的某些行为是相同的,则可以把这些相同的行为提取出来单独作为一个用例当某个用例使用该抽象用例时,就好像这个用例包含了抽象用例的所有行为理解包含关联的最好方法是一个用例调用另一个用例,使用关系,包含关联在UML1.2或更早版本叫做使用关系一个用例使用另一个用例时,这两个用例之间就构成了使用关系,包含关联的例子,何时使用三种关系,当在两个或多个独立用例中重复自己并希望避免重复是,使用包含当表述关于正常行为的一个变化情形并希望临时表述时使用泛化表述正常行为的一个变化并希望使用更为受控的形式来在基本用例中说明扩展点表示特殊情况时使用扩展,交互图interactiondiagram,用来描述对象之间的动态协作关系以及协作过程中的行为次序它常常用来描述一个用例的行为显示该用例中所涉及的对象和这些对象之间的消息传递情况,交互图的种类,顺序图(sequencediagram)通信图(communicationdiagram)交互概图(interactionoverviewdiagram)定时图(timingdiagram),例子描述,订单提交窗口发送一条“prepare”消息给订单。订单发送“prepare”消息给订单上的每个订单项。每个订单项检查其对应的仓库货物。如果检查结果为“true”,即仓库货物的数量足够多时,则订单项,表明仓库中的货物数量低于订购量,这是仓库要求一次新的进货。,顺序图,用来描述对象之间动态的交互关系着重体现对象间消息传递的时间顺序,通信图(协作图),也是用来描述对象与对象之间的消息连结关系的它更侧重于说明哪些对象之间有消息传递,而不像顺序图那样侧重于在某种特定的情形下对象之间传递消息的时序性,顺序图和协作图的比较,不同的软件工程师可能偏好不同形式的交互图顺序图突出使用执行的时序,能更方便地看出事情发生的次序因为协作图的布局方法能更清楚的表示出对象之间静态的连结关系,何时使用交互图,交互图能清楚的显示消息机制当消息中有太多的条件或循环时,交互图就失去其简明性交互图仅适用于条件判断和循环不太多的时序过程一旦条件判断或循环太多,交互图就不太实用了当行为比较简单时,交互图是最好的图如果想在一张图中表示复杂的行为,则应当使用活动图交互图擅长显示对象之间的合作关系如果想描述跨越多个用例的单个对象的行为,应当使用状态图如果想描述跨越多个用例或多个线程的复杂行为,则需要考虑使用活动图,状态图StateDiagram,用来描述一个特定对象的所有可能状态及其引起状态转移的事件用状态图表示单个对象在其生命周期中的行为一个状态图包括一系列的状态以及状态之间的转移,基本概念,所有对象都具有状态状态是对象执行了一系列活动的结果当某些事情发生后,对象的状态将发生变化称改变对象状态的事情为“事件”状态图用来显示对象对事件的反应以及对象状态的改变,状态,初态状态图的起始点一个状态图只能有一个初态终态状态图的终点终态则可以有多个中间状态复合状态,状态的表示,名字状态变量活动,图3-39状态的三个组成部分:名字、状态变量、活动,在活动表中,常常使用下面三种标准事件:进入、退出、做(do)进入事件用来指定进入一个状态时的活动,退出事件用来指定退出一个状态的活动,做事件用来指定在该状态下的活动,活动表,三种标准事件:进入、退出、做(do)进入事件用来指定进入一个状态时的活动退出事件用来指定退出一个状态的活动做事件用来指定在该状态下的活动活动部分的语法事件参数表/活动表达式,转移,状态图中状态间带箭头的连线被称为转移状态的变迁通常是由事件触发的此时应在转移上标出触发转移的事件表达式如果转移上未标明事件,则表示在源状态的内部活动执行完毕后自动触发转移,转移的语法,事件守卫条件/动作表达式事件的表达式事件名参数守卫条件是状态转移的一个布尔表达式如果将守卫条件和事件说明放在一起使用时,则当且仅当事件发生且布尔表达式成立时状态才发生转移如果状态转移只有守卫条件这一个条件,则只要守卫条件为真,状态就发生转移动作表达式是一个过程表达式,当状态转移开始时执行,例子,活动图activitydiagram,活动图是显示从活动到活动的流一个活动是一个状态机中进行的非原子的执行单元活动最终导致一些动作这些动作由可执行的原子计算组成,这些计算会导致系统状态的改变或一个值得返回,活动图是状态图的变种,活动图的主要目的是描述动作(执行的工作或活动)以及对象状态改变的结果当状态中的动作被执行时,活动图中的状态(称作动作状态)直接转移到下一阶段不象正常的状态图,它不需指定任何事件活动图和状态图的另一个区别是活动途中的动作可以放到泳道中去活动图是另一种描述交互的方式,描述采取何种动作,做什么(对象状态改变),何时发生(动作序列),以及在何处发生(泳道),活动图的作用,描述成操作执行过程中(操作实现的实例化)所完成的工作(动作)描述对象内部工作显示如何执行一组相关的动作,以及这些动作如何影响它们周围的对象显示用例的实例是如何执行动作以及如何改变对象状态的,图例,活动的分解,一个活动可以分解成若干子活动这和状态图上的超态与子态很相同可以在父图上示明超态,或者也可以示明超态及其中的内部行为,活动分解,划分partition,划分将一个活动图中的活动状态分组每一组表示负责那些活动的业务组织当对业务过程的工作流建模时,划分是很有用的划分的一个简单一种简单划分是一维划分,这种方式往往称为泳道在UML2中,可以用二维的格,所以适用泳道概念就不合适了,划分的例子,划分特点,每个划分在图中都有一个唯一的名称每个划分代表一个活动图的全部活动中部分活动的高层职责每个划分最终可能由一个或多个类实施在一个被分为划分的活动图中,每个活动都明确的属于一个划分,而转移可以跨越划分,对象流,对象可以被包含在与一个活动图相关的控制流,对象流的说明,活动图能表示对象的值流和控制流对象流状态表示活动中输入或输出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年克拉玛依辅警招聘考试真题及答案详解(夺冠系列)
- 2023年西双版纳州辅警协警招聘考试真题附答案详解(预热题)
- 2024年咸阳辅警招聘考试题库附答案详解(轻巧夺冠)
- 云南医药健康职业学院《中国戏曲说唱分析基础》2024-2025学年第一学期期末试卷
- 天津城市建设管理职业技术学院《矿山环境工程》2024-2025学年第一学期期末试卷
- 山东省威海市2026届高二上生物期末预测试题含解析
- 四川省三台县塔山中学2025年高二上数学期末质量检测试题含解析
- 浙江省绍兴市诸暨中学2025年数学高二上期末检测模拟试题含解析
- 山西平遥县和诚2025年生物高二第一学期期末检测试题含解析
- 2025年宁夏银川市第一中学高二化学第一学期期末联考模拟试题含解析
- 搅拌车拉方合同协议书
- 2025贵州数城工程管理服务有限公司贵安新区酒店管理分公司第五批对外招聘5人笔试历年参考题库附带答案详解
- 山东省东营市东营区东营市实验中学2025-2026学年九年级上学期期中语文试题(含答案)(解析版)
- 2025年粮食岗考试题库及答案
- 2025重庆市地质矿产勘查开发集团有限公司招聘16人考试笔试参考题库附答案解析
- 工程测量无人机作业指导书
- 2025年汽车驾照考试科目一题库及答案(包过版)
- 供水管道工岗位职业健康及安全技术规程
- 自动化生产线运行维护方案及记录表
- 高三试卷:辽宁省沈阳市郊联体2024-2025学年高三上学期11月期中化学+答案
- 2025年中国聚氨酯分散体行业市场分析及投资价值评估前景预测报告
评论
0/150
提交评论