UML建模和开发预演

1.为什么要用UML

写软件就和盖房子一样,建造的房子结构越复杂,设计师和施工人员之间的交流就越重要,这个时候就体现出设计图图的重要性,设计人员和施工人员通过设计图进行沟通,同理,我们的系统越复杂,参与编写与配置软件的人员之间的交流也就越重要,所以在过去的几年里UML就成为设计师和程序员之间的 建筑蓝图 ,UML提供了分析师,设计师和程序员之间在设计软件时的通用语言。

UML:Unified Modeling Language(统一建模语言),使用UML进行建模的作用:

1)更好的理解问题

2)及早发现错误或者被遗漏的点

3)组员之间的沟通更加方便

4)面向对象软件开发建模,可以更好的描述显示编程的情景

5)对于复杂的系统,如果概要模型做得好,整个系统的模型也会非常的清晰

2.UML介绍

Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。 面向对象的分析与设计(OOA&D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言

UML 规格定义了两大类UML图:结构图( structure diagrams )和行为图(behavior diagrams)

结构图( structure diagrams ):结构图从不同的抽象和实现程度上描述了一个系统和系统构建的静态结构,并且描述了他们直接是如何关联到一起的。

行为图(behavior diagrams):行为图展示了一个系统中的对象的动态行为,它描述了一个系统中的对象如何随着时间变化而变化。

领域模型也叫概念模型,是对现实世界概念类的描述,并非软件对象描述,领域模型不是数据模型。在uml中领域模型被描述为一组没有操作的类图,具体说不是Java里面的软件对象或者具有职责行为的对象。他可以展现领域对象或概念类,概念类之间关联,概念类的属性。
三个要素,类名,属性 ,关联。
任何属性都不表示外键,应该直接使用关联关联到外键所在类。

3.分类

1)类图

泛化:继承关系的一种,子类继承父类的所有行为和属性,子类可以新增新的功能或者重写父类功能。使用带空心三角箭头的实线标示。

箭头指向父类

实现:实现是接口和类的关系,是指类实现了接口中定义的接口,uml中用带空心三角箭头的虚线

箭头指向接口类

关联:在建模过程中必然存在类之间的关系,使类可以感知其他了ode行为和属性,分为单向关联和双向关联

双向关联:被关联的两个类可以感知对方存在

如图在线每端放置一个角色和多重值,对于Route来说我们应该看在bike端的角色和多重值,对于Route来说每个骑行路线对应0个或者多个自行车,0个是因为可能先制定了骑行路线但是还没有找到自行车,多个是因为可以有多个人骑行同一个路线。对于bike来说我们应该看route端的角色和多重值,对于一个bike来说每个自行车对于0个或者多个骑行路线,0个是因为虽然有一个自行车但是我可以不骑行,不指定骑行路线那,多个是因为我一个自行车可以指定多个骑行路线。

上面多重值为0…*,其实还有其他多重值如下表:

表示 含义
0..1 0个或1个
—- —-
1 只能1个
—- —-
0..* 0个或多个
—- —-
* 0个或多个
—- —-
1..* 1个或多个
—- —-
3 只能3个
—- —-
0..5 0到5个
—- —-
5..15 5到15个

单向关联:一个单向的关联,表示为一条带有指向已知类的开放箭头(不关闭的箭头或三角形,用于标志继承)的实线。如同标准关联,单向关联包括一个角色名和一个多重值描述,但是与标准的双向关联不同的时,单向关联只包含已知类的角色名和多重值描述。

组合关系:组合关系用一条带实心菱形箭头直线表示,如下图表示A组成B,或者B由A组成;是一种强依赖的特殊聚合关系,如果整体不存在了,则部分也不存在了;例如, 公司不存在了,部门也将不存在了;

聚合关系:聚合关系用一条带空心菱形箭头的直线表示,如下图表示A聚合到B上,或者说B由A组成;聚合关系用于表示实体对象之间的关系,表示整体由部分构成的语义;例如一个部门由多个员工组成;与组合关系不同的是,整体和部分不是强依赖的,即使整体不存在了,部分仍然存在;例如, 部门撤销了,人员不会消失,他们依然存在;

依赖关系:依赖关系是用一套带箭头的虚线表示的;如下图表示A依赖于B;他描述一个对象在运行期间会用到另一个对象的关系;是一种临时性的关系,通常在运行期间产生,并且随着运行时的变化; 依赖关系也可能发生变化;依赖也有方向,双向依赖是一种非常糟糕的结构,我们总是应该保持单向依赖,杜绝双向依赖的产生;

注:在最终代码中,依赖关系体现为类构造方法及类方法的传入参数,箭头的指向为调用关系;依赖关系除了临时知道对方外,还是“使用”对方的方法和属性;

2)时序图

时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。时序图中包括的建模元素主要有:对象(Actor)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)等等。

时序图元素:

角色: 系统角色,可以是人、及其甚至其他的系统或者子系统。

对象:有三种命名方式 1.包括对象名和类名 ;2,。只显示类名不显示对象名,即表示他是一个匿名对象;3.只显示对象名不显示类名。

生命线:

控制焦点: 控制焦点是时序图中表示时间段的符号,在这个时间段内对象将执行相应的操作,用小矩形表示

消息:分为同步消息(Synchronous Message),异步消息(Asynchronous Message)和返回消息(Return Message).如下图所示:

同步消息=调用消息(Synchronous Message):消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。

异步消息(Asynchronous Message):  消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。

 返回消息(Return Message): 返回消息表示从过程调用返回

自关联消息:表示方法的自身调用以及一个对象内的一个方法调用另外一个方法。

实例:

场景:完成课程创建功能,主要流程有:

1、请求添加课程页面,填写课程表单,点击【create】按钮

2、添加课程信息到数据库

3、向课程对象追加主题信息

4、为课程指派教师

5、完成课程创建功能

时序图实例分析

1、序号1.0-1.3  完成页面的初始化

2、序号1.4-1.5  课程管理员填充课程表单

3、序号1.6-1.7  课程管理员点击【Create】按钮,并响应点击事件

4、序号1.8     Service层创建课程

5、序号1.9-1.10 添加课程到数据库,并返回课程编号CourseId

6、序号1.11-1.12 添加课程主题到数据库,并返回主题编号topicId

7、序号1.13         给课程指派教师

8、序号1.14         向界面抛创建课程成功与否的消息

时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。时序图中包括的建模元素主要有:对象(Actor)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)等等。最后,以课程创建功能演示一时序图实例。

原文地址:https://www.cnblogs.com/xiaoxiaoliu/p/10329629.html

时间: 2024-11-09 15:50:57

UML建模和开发预演的相关文章

对软件开发中uml建模的理解和图形整理(一)

由于uml(统一建模语言)在开发中经常会用到,特别是在软件开发中的OOAD阶段,因此要理解和使用uml显得尤为重要.在uml开始之前,咱先回顾一个OOAD.OOP的主要特征. OOAD:根据面向对象的方法学来对软件系统进行分析和设计的过程.它包括OOA 分析阶段和OOD设计阶段.其中分析阶段主要解决"What to do?"的问题,而设计阶段主要解决"How to do?"的问题.具体来说就是:在OOA分析阶段咱要做的主要工作就是建立对业务问题域的视图(建立模型).

UML建模——使用EA工具开发时序图实践及经验

Enterprise Architect(以下简称EA)是一款基于OMG UML的可视化模型与设计工具,提供了对软件系统的设计和构建.业务流程建模和基于领域建模的支持,被企业和组织不仅应用于对系统的建模,还用于推进模型在整个应用程序开发周期中实现. 在EA工具建模平台上,提供如下常用设计模型: Business Process   业务流程模型 Requirements   需求分析模型 Use Case       用例模型 Domain Model    领域模型 Class        

对软件开发中uml建模的理解和图形整理(二)

今天接着昨天的内容,继续来了解uml的静态建模和动态建模,希望大家通过这两天的了解能加深对uml建模的理解并在以后的项目开发中加以应用. 核心UML图分类:  ---> "独孤九剑" 静态建模:[用例图].[类图].对象图.组件图.部署图. 动态建模:[时序图](sequence diagrams).状态图.活动图.协作图. 核心UML图的定义及使用: 一. 用例图:主要用来展示系统的核心功能及其交互的用户或系统. 举例说明:相信上一篇已经写的很清楚了,这里简单贴一张图. ===

第六周作业-UML在详细设计阶段的使用心得&&UML建模与软件开发过程模型

这周又到了我们项目小组进行详细设计的阶段了.据了解呢,不大喜欢把详细设计做的太细,以便发挥下自己的创造力(初级设计能力).但是借鉴其他国家(如日本)的公司,详细设计不但详细到类级别,甚至每个方法都还有伪代码,这种感觉确实是太不能发挥自己的主观能动性了.不过仁者见仁,智者见智,因为一个初级的程序猿如果先是看别人的设计,然后再开始自己的设计,也许学习曲线就不会那么陡峭,日子也会过的舒服一点儿也未可知. 在这次的作业中我谈到的就是UML在项目实施中的使用心得(详细设计阶段),以及下面的一部分扩展知识:

对软件开发中uml建模的理解和图形整理(三)

今天接着上一节的内容,继续来了解uml剩下的几种的静态建模和动态建模. 三.对象图:主要用来表现对象的特征,展示多个对象的特征及对象之间的交互.就拿咱出行旅游使用交通工具为例,如图: 说明:对象图只在系统的某一段时间存在,可以被看作是类图在该时刻的实例,主要用来描述对象之间的行为. 四.组件图:也称为构件图,主要用来描述软件中组件之间的关系,同时也是系统设计的一个模块化元素.组件(构件)是系统中可替换的物理部分,它封装了类的实现以及对象提供一组接口,在软件开发过程中,满足相同接口的组件可以自由地

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

一什么是UML? Unified Modeling Language(UML又称为统一建模语言或标准建模语言)是国际对象管理组织OMG制定的一个通 用的.可视化建模语言标准,可以用来描述(specify).可视化(visualize).构造(construct)和记载(document)软件密集 型系统的各种工件(artifacts,又译为制品). UML是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由 需求分析到规格,到构造和配置. UML是面向对

UML建模之 - 类图&时序图

简介 简介 UML是面向对象开发中一种通用的图形化建模语言 UML建模技术就是用模型元素来组建整个系统的模型,模型元素包括系统中的类.类和类之间的关联.类的实例相互配合实现系统的动态行为等 UML建模工具 Rational Rose : 是直接从UML发展而诞生的设计工具,常用建模工具 Power Designer : 是对数据库建模而发展起来的一种数据库建模工具 Microsoft Visio :是一种画图工具,Visio 2010才开始引入UML建模,不是很专业 Star UML : 开源轻

linux 和windows系统下同时可用的UML建模工具(umbrello),超强

原文地址:linux 和windows系统下同时可用的UML建模工具(umbrello),超强 作者:zhangjiakouzf OPEN SOURCE 的 UML建模工具 -- umbrello 如果你的开发小组既有windows系统下的开发人员(比如客户端软件),又有linux或其他*nix系统下的开发人员(比如服务器端程序).就像我现在的处境一样,那么你需要"她",trust me!! umbrello 最初的 homepage 在http://uml.sourceforge.n

UML建模学习4:UML基本构造块之图

今天继续来看UML基本构造块中的图. 一UML基本构造块之图 UML基本构造块的图是在特定的视角下对系统所作的抽象描述.图是事物集合的分类,UML中包含多种图.我们先来看分类: UML定义了5类,10种模型图 五种类图定义: 1用例图:从用户角度描述系统功能,并指各功能的操作者. 2静态图:包括类图,包图,对象图. 2.1类图:描述系统中类的静态结构. 2.2包图:是包和类组成的,表示包与包之间的关系,包图描述系统的分层结构. 2.3对象图:是类图的实例. 3行为图:描述系统动态模型和对象组成的