UML
UML(统一建模语言)是通用的可视化标准建模语言。由构造块、公共机制、构架三部分组成。
1、构造块:包括基本的UML建模元素(类、接口、用例等)、关系(关联关系、依赖关系、泛化关系、实现关系)和图(9种图形,分为静态模型和动态模型)
2、公共机制:包括规格说明、修饰、公共分类、扩展机制
3、构架:系统的五个视图,逻辑视图、进程视图、实现视图、部署视图、用例视图
UML包括9种不同的图,分为表示系统静态结构的静态模型(类图、构件图、部署图),表示系统动态结构的动态模型(对象图、用例图、序列图、协作图、状态图、活动图)
掌握由什么组成、实现什么功能、用在什么地方
 
用例图
一个用例定义一组用例实例,它确定了一个和系统参与者进行交互,并可由系统执行的动作序列。用例模型描述外部执行者所理解的系统功能。表明了开发者和用户对需求规格达成的共识,用于需求分析阶段
用例图的元素
1、参与者:代表与系统接口的任何事物或人,它是指代表某一特定功能的角色,是虚拟的概念
2、用例:用例实例是在系统中执行的一系列动作。是对系统行为的动态描述,可以促进设计人员、开发人员与用户的沟通,理解正确的需求,还可以划分系统与外部实体的界限,是系统设计的起点。
3、包含和扩展:两个用例之间的关系分为两种,一种是用于重用的包含关系,用include表示,一种是用于分离出不同的行为,用extend表示
包含关系:从两个或两个以上的原始用例(A)中提取出公共行为(B),a与b为包含关系,在包含关系中被包含用例对基用例来说是必须的,如果没有被包含用例则基用例就不完整。使用包含关系的目的是为了提高组件的重用性
扩展关系:一个用例由多个用例组成,当其中部分用例并不是每次都发生的,可将在特定情况下发生的用例定义为扩展用例,扩展用例对基用例来说不是必须执行的动作序列。使用扩展关系的目的是为了提高用例的稳定性。
 
类图和对象图
类图和对象图揭示了系统的结构,类图描述类和类之间的静态关系,它不仅显示信息的结构还描述了系统的行为。对象图是类图的一个实例,常用于表示复杂的类图的一个实例。
类之间的关系
1、依赖关系:如果元素A的变化会引起元素B的变化,则称元素B信赖于元素A,使用带箭头的虚线表示依赖关系。依赖关系有一个类向另一个类发消息,一个类是另一个类的成员,一个类是另一个类的操作参数等。
2、泛化关系:描述一般事物与该事物特殊种类之间的关系,泛化关系是继承关系的反关系,使用空心箭头的实线表示,箭头指向父类。泛化关系有三个要求:一是子类应包含父类的所有内容,父类所具有的关联、属性和操作,子类都应具有;二是子类除了包含父类的信息外,还包括额外的信息;三可以使用父类实例的地方,也可以使用子类实例。
3、关联关系:表示两个类的实例之间存在的某种语义上的联系,如一个学校有多间教室,是学校和教室间存在关联关系,关联关系可分为两种
聚合关系:是关联关系的特例,表示一种松散的整体和部分的关系,如一个电脑包括显示器,用一个带空心菱的实线表示。
组合关系:如果部分对整体来说是必不可少的,则称为组合关系,如公司和部门,用带有实心菱形的实线表示。
4、实现关系:用来规定接口与实现接口的类或组件之间的关系,接口是操作的集合,用来规定类或组件的服务,用带空心箭头的虚线表示。
 
顺序图和协作图
顺序图和协作图统称为交互图,是表示各组对象如何进行协作的模型,通常用来表示和说明一个用例的行为,顺序图和协作图本质上没有不同,只是排版方式不相同,顺序图强调对象交互行为的时间顺序,协作图强调对象之间的协作。
1、顺序图:描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。顺序图可以直观地表示出对象的生存期,在生存期内,对象可以对输入消息做出响应,并可以发送信息。顺序图存在两个轴,水平轴表示不同的对象,垂直轴表示时间,即对象、类的生命期。
2、协作图:描述相互合作的对象间的交互关系和链接关系,侧重体现交互对象间的链接关系。
 
状态图
描述对象状态和事件之间的关系,通常用来描述单个对象的行为,不适合于表述包括若干协作的对象行为,通常不需要对每一个类编制状态图,只有那些重要的交互行为的类,如在业务流程、控制对象、用户界面的设计方面使用状态图。如数码冲印店的订单状态图。
状态图的元素包括
1、状态:又称为中间状态,用圆角矩形表示;
2、初始状态:又称为初态,用一个黑色的实心圆表示,在一张状态图中只能有一个初始状态。
3、结束状态:又称为终态,在黑色的实心圆外面套上一个空间圆,在一张状态图中可能有多个结束状态。
4、状态转移:用箭头说明状态的转移情况,用文字说明引发这个状态变化的事件。
 
活动图
活动图用来表示系统中各种活动的次序,既可用来描述用例的工作流程,也可用来描述类中某个方法的操作行为,活动图依据对象状态的变化来捕获动作与动作的结果。活动图是由状态图变化而来的,也包括初始状态、终止状态、中间活动状态,活动图中一个活动结束后将立即进入下一个活动,状态图中状态的变迁需要事件的触发
活动图可分为基本活动图和带泳道的活动图,基本活动图描述系统发生了什么,带泳道的活动图更进一步,可描述出各个活动由哪个类完成。
 
构件图
构件图是面向对象系统的物理方面进行建模的两种图之一,可以有效地显示一组构件,以及它们之间的逻辑关系。构件图中通常包括构件、接口、以及各种关系。构件是指源代码文件、二进制文件和可执行文件等。构件图可对源代码、可执行体、物理数据库进行建模。
 
部署图
部署图也称为实施图。是面向对象系统的物理方面建模的图之一,构件图是说明构件之间的逻辑关系,部署图则在此基础上更进一步,描述系统硬件的物理拓扑结构,以及在此结构上执行的软件。部署图可以显示计算结点的拓扑结构和通信路径、结点上运行的软件构件,常常用于帮助理解分布式系统,可以使系统的安装、部署更为简单。主要元素包括节点和连接、接口和构件。
 
UML九种图形总结:
九种图形总体上可分为静态模型图(类图、构件图、部署图)和动态模型(用例图、对象图、顺序图、协作图、状态图、活动图),其中顺序图和协作图统称为交互图,顺序图着重描述对象交互的时间顺序,协作图着重于描述对象之间的交互和关联;构件图和部署图是对系统进行物理建模的两种图形,构件图是对系统构件进行逻辑建模,部署图在构件图的基础上描述系统的物理拓扑结构,并描述各节点运行的构件及接口、交互关系等。

UML(统一建模语言)是通用的可视化标准建模语言。由构造块、公共机制、构架三部分组成。的更多相关文章

  1. UML建模学习1:UML统一建模语言简单介绍

    一什么是UML? Unified Modeling Language(UML又称为统一建模语言或标准建模语言)是国际对象管理组织OMG制定的一个通 用的.可视化建模语言标准.能够用来描写叙述(spec ...

  2. [本体论][UML][统一建模语言][软件建模][OWL]从本体论到UML到OWL

    以下内容,是关于软件建模的方法与思路. UML与OWL都是基于本体论的建模语言. 本体论(哲学) 本体论(信息科学) UML(统一建模语言) more info 参考:[设计语言][统一建模语言][软 ...

  3. UML标准建模语言与应用实例

    一.基本信息 标题:UML标准建模语言与应用实例 时间:2012 出版源:科技创新导报 领域分类:UML标准建模语言 面向对象 系统分析与设计 二.研究背景 问题定义:UML建模语言用图形来表现典型的 ...

  4. UML统一建模语言介绍

    统一建模语言简介 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标 ...

  5. python day 17: UML(统一建模语言)

    python day 17 UML:unified modeling languages,是一种基于面向对象的可视化建模语言. 画图语言:画图要合理.即符合逻辑. 历史: 3.1. 软件功能越来越强大 ...

  6. uml统一建模语言学习笔记(一)

    UML是一种统一建模语言,他是以面向对象的方式来实现对任何的系统进行描述的一种语言, 它包括9种图形+包图,分为静态和动态两种,也就是结构图和行为图 “静态”图有:用例图.类图.对象图.部署图.构件图 ...

  7. UMLUnified Modeling Language (UML)又称统一建模语言或标准建模语言

    1.用例图(use case diagram) 2.活动图(activity diagram) 3.静态结构图 4.顺序图(Sequence Diagram):时序图 5.交互纵览图(Interact ...

  8. $UML统一建模语言简介

    (一)UML概述 1.面向对象软件开发的过程: (1)OOA(面向对象分析):建立分析模型并文档化. (2)OOD(面向对象设计):用面向对象思想对OOA的结果进行细化,得出设计模型. (3)OOP( ...

  9. UML(统一建模语言)

    需求分析阶段 用例图 定义:用例图并不是用来描述用例的.用例图的主要作用是:直观地描述系统对外提供的功能. 用例图的三个要素:角色.系统.用例 用例图的关系: 角色和用例的关系:有关和无关 用例和用例 ...

随机推荐

  1. 配置hdfs之后发现9000端口未被监听[玄学]

    1. 按照apache的官网的文档配置hdfs 2. 在 core-site.xml 中配置了 fs.defaultFS 的值为 hdfs://0.0.0.0:9000 3. 执行 start-dfs ...

  2. https加密过程

    https加密完整过程 step1: “客户”向服务端发送一个通信请求 “客户”->“服务器”:你好 step2: “服务器”向客户发送自己的数字证书.证书中有一个公钥用来加密信息,私钥由“服务 ...

  3. jQuery效果--show([speed,[easing],[fn]])和hide([speed,[easing],[fn]])

    hide([speed,[easing],[fn]]) 概述 隐藏显示的元素 这个就是 'hide( speed, [callback] )' 的无动画版.如果选择的元素是隐藏的,这个方法将不会改变任 ...

  4. 常对象与this指针

    [1]示例代码 用代码说事,比较靠谱.请看下例: #include <QDebug> #include <QString> class Person { public: Per ...

  5. 性能测试工具Locust,一个开源性能测试工具

    性能测试工具Locust,一个开源性能测试工具使用Python代码来定义用户行为.用它可以模拟百万计的并发用户访问你的系统.1.它与目前主流的LoadRunner和Jmeter玩法都不一样.2.它完全 ...

  6. js定时器优化

    在js中如果打算使用setInterval进行倒数,计时等功能,往往是不准确的,因为setInterval的回调函数并不是到时后立即执行,而是等系统计算资源空闲下来后才会执行.而下一次触发时间则是在s ...

  7. 新建git并将本地代码上传到分支

    1 查看远程分支 $ git branch -a * br-2.1.2.2 master remotes/origin/HEAD -> origin/master remotes/origin/ ...

  8. Ajax 知识

    Ajax 为什么要有ajax技术?    传统的web应用,一个简单的操作就要加载整个页面.浪费资源. Ajax  即“Asynchronous Javascript And XML”(异步JavaS ...

  9. 51Nod 1072 威佐夫游戏

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1072 有2堆石子.A B两个人轮流拿,A先拿.每次可以从一堆 ...

  10. [转载]C# 常用日期时间函数(老用不熟)

    原博地址:http://www.jb51.net/article/20181.htm --DateTime 数字型 System.DateTime currentTime=new System.Dat ...