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