UML基础
UML概念
概念解释:统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。
-
UML立足于对事物的实体、性质、关系、结构、状态和动态变化过程的全程描述和反映。UML可以从不同角度描述人们所观察到的软件视图,也可以描述在不同开发阶段中的软件的形态。UML可以建立需求模型、逻辑模型、设计模型和实现模型等,但UML在建立领域模型方面存在不足,需要进行补充。
-
UML立足于对事物的实体、性质、关系、结构、状态和动态变化过程的全程描述和反映。UML可以从不同角度描述人们所观察到的软件视图,也可以描述在不同开发阶段中的软件的形态。UML可以建立需求模型、逻辑模型、设计模型和实现模型等,但UML在建立领域模型方面存在不足,需要进行补充。
-
作为一种建模语言,UML有严格的语法和语义规范。UML建立在元模型理论基础上,包括4层元模型结构,分别是基元模型、元模型、模型和用户对象。4层结构层层抽象,下一层是上一层的实例。UML中的所有概念和要素均有严格的语义规范。
-
UML采用一组图形符号来描述软件模型,这些图形符号具有简单、直观和规范的特点,开发人员学习和掌握起来比较简单。所描述的软件模型,可以直观地理解和阅读,由于具有规范性,所以能够保证模型的准确、一致。
UML作用与价值
为软件系统建立可视化模型
UML符号具有良好的语义,不会引起歧义;基于UML的可视化模型,使系统结构直观、易于理解;使用UML进行软件系统的模型不但有利于系统开发人员和系统用户的交流,还有利于系统维护。模型是系统的蓝图,它可以对开发人员的规划进行补充,模型可以帮助开发人员规划要建的系统。有了正确的模型就可以实现正确的系统设计,保证用户的要求得到满足,系统能在需求改变时站得住脚。对于一个软件系统,模型就是开发人员为系统设计的一组视图。这组视图不仅描述了用户需要的功能,还描述了怎样去实现这些功能。
为软件系统建立构件
UML不是面向对象的编程语言,但它的模型可以直接对应到各种各样的编程语言。例如,它可以使用代码生成器工具将UML模型转换为多种程序设计语言代码,如可生成C++,XML,DTD,JAVA, Visual basic等语言的代码,或使用反向生成器工具将程序源代码转换为UML;甚至还可以生成关系数据库中的表。
为软件系统建立文档
UML可以为系统的体系结构及其所有细节建立文档。不同的UML模型图可以作为项目不同阶段的软件开发文档。
关键名词概念
●模型元素
代表面向对象中的类、对象、消息和关系等概念,是构成图的最基本的常面向对象系统分析与设计方法用概念。
●图
是模型元素集的图形表示,通常是由弧(关系)和顶点(其他模型元素)相互连接构成的。 [2]
●视图
是表达系统的某一方面的特征的UMI,建模元素的子集,由多个图构成,是在某一个抽象层上,对系统的抽象表示。
●通用机制
用于表示其他信息,比如注释、模型元素的语义等。另外,UMI。还提供扩展机制,使UML语言能够适应一个特殊的方法(或过程),或扩充至一个组织或用户。
软件模型与建模与算法
软件模型
◎什么是模型?模型是对现实世界的形状或状态的抽象模拟和简化。
◎什么是软件模型?软件模型是对软件代码等文件的抽象模拟和简化。
建模
为什么要建模?最简单的理由:为了能够更好地理解正在开发的系统。通过建模,可以达到四个目的:
1、有助于按照需求对系统进行可视化的分析
2、能够系统的结构或行为
3、给出了知道构造系统的模板
4、对做出的决策进行文档化
建模与算法
◎什么是算法?算法是针对某一复杂计算或逻辑问题给出当下最优解。
◎算法与软件的关系?软件提供业务应用功能;算法针对功能中的某一问题,提供算法接口;软件向算法提供问题的输入(已知条件),算法向软件提供问题的输出(计算结果)。
◎算法模型与UML模型的关系?这是两种不同的概念。
●算法模型是针对复杂计算或逻辑问题中的对象建立数学模型。
例如:
碰撞算法:车辆的碰撞预警模型
地图匹配算法:车辆位置(轨迹)与地图的拓扑路径信息的匹配模型
自车识别算法:车辆位置与多目标信息中的匹配模型
●UML模型是指软件开发全部过程、活动和任务的结构框架。软件模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。
例如:
算法部分UML模型:是把算法中涉及到的问题,提出的解决方案的代码模型。
应用层UML模型:是把业务中涉及到的功能,提出的解决方案的代码模型。
UML视图与图
视图
UML可以分为七种:
分别为静态、用例、交互、模型管理、物理、互动、活动、状态机。他们之间存在一定的关联。是从多个角度描述一个工程。
下图为详细描述七种视图的概念、作用、组成
静态视图
表示形式:类图
概念:对各种概念和系统内部概念进行建模
基本元素:类元与类元之间的关系
作用:1.UML基础 2.概念对象的基本结构 3.建立其他动态视图的基础
用例视图
表示形式:用例图
概念:参与者所能观察和使用到的系统功能模型图
作用:1.标识出系统中的用例与参与者之间的联系
2.确定什么样的参与者执行了那个用例
交互视图
表示形式:序列图、协作图
概念:描绘系统各种角色或功能交互的模型
以独立对象为中心,描述对象内部深层次的行为
以相互作用的对象为中心,描述一组对象的整体行为
作用:显示跨越多个对象的系统控制流程
物理视图(对应用自身的结构建模)
表现形式:实现图、部署图
概念: 实现图:将系统中可重用的块包装,成为具有可替代的物理构件
部署图:运行时计算资源的物理部署
作用:为了系统的可重用行和可操作性
状态机视图
表现形式:状态图
概念: 一个对象对自身所有可能处于的状态的模型图
作用: 表示一个对象对自身所有可能处于的状态
活动视图
表现形式:活动图
概念: 对计算流程和工作流程建模
作用: 表示计算过程中所处的各种状态
模型管理
概念:对模型自身组织进行建模
作用:表示包与包之间依赖关系
图
用例图(use case diagrams)
【概念】描述用户需求,从用户的角度描述系统的功能
【描述方式】椭圆表示某个用例;人形符号表示角色
【目的】帮组开发团队以一种可视化的方式理解系统的功能需求
【用例图】
静态图
类图(class diagrams)
【概念】显示系统的静态结构,表示不同的实体是如何相关联的
【描述方式】三个矩形
【目的】表示一个逻辑类或实现类,逻辑类通常是用户的业务所涉及的事物;实现类是程序员处理的实体
【类图】
对象图(object diagrams)
【概念】类图的一个实例,描述系统在具体时间点上所包含的对象以及各个对象的关系
【对象图】
交互图
序列图(顺序图)
【概念】描述对象之间的交互顺序,着重体现对象间消息传递的时间顺序
【描述方式】横跨图的顶部,每个框表示每个类的实例或对象;类实例名称和类名称使用冒号分开
【目的】显示流程中不同对象之间的调用关系,还可以显示不同对象的不同调用。
协作图(collaboration diagrams)
【概念】描述对象之间的合作关系,侧重对象之间的消息传递
行为图
状态图(statechart diagrams)
【概念】描述对象的所有状态以及事件发生而引起的状态之间的转移
【描述方式】
起始点:实心圆
状态之间的转换:使用开箭头的线段
状态:圆角矩形
判断点:空心圆
一个或多个终止点:内部包含实心圆的圆
【目的】表示某个类所处的不同状态以及该类在这些状态中的转换过程
活动图
【概念】描述满足用例要求所要进行的活动以及活动时间的约束关系
【描述方式】
起始点:实心圆
活动:圆角矩形
终止点:内部包含实心圆的圆
泳道:实际执行活动的对象
【目的】表示两个或多个对象之间在处理某个活动时的过程控制流程
【活动图】
状态图和活动图的区别:
实现图
构件图(component diagrams)
【概念】描述代码构件的物理结构以及各构件之间的依赖关系
【描述方式】构件
【目的】提供系统的物理视图,根据系统的代码构件显示系统代码的整个物理结构
【构件图】
部署图(deployment diagrams)
【概念】系统中硬件的物理体系结构
【描述方式】
三维立方体表示部件
节点名称位于立方体上部
【目的】显示系统的硬件和软件的物理结构
【部署图】