学习Uml开始
Um的全称是 Unified Modeling Language, 统一建模语言,uml可以帮助我们做软件需求和软件设计的工作,
1.1UML的定义
UML是一种通用的可视化建模语言,是一种标准化的用图形方式来建模(建立模型)的语言,是面向对象分析和设计的一种表示。它用于对软件进行描述、可视化处理、构造和建立软件系统的文档。UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具。UML能够描述系统的静态结构和动态行为:静态结构定义了系统中重要对象的属性和操作,以及这些对象之间的相互关系;动态行为定义了对象的时间特性和对象为完成目标任务而相互进行通信的机制。UML不是一种程序设计语言,但我们可以用代码生成器将UML模型转换为多种程序设计语言代码,或使用反向生成器工具将程序源代码转换为UML模型。
它包括两个方面的概念:语义和表示法。
(1)语义 是用自然语言描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UML还支持对元模型的扩展定义。
(2)表示法 定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,这决定了UML是一种可视化(图形化)的建模语言。
Uml图大概可以分为两类:结构型的图和行为型的图
UML图 |
说明 |
|
结构型的图 (Structure diagram) |
类图(Class Diagram) |
必用来分析业务概念 |
对象图 (Object diagram) |
很少使用 |
|
组件图(Component Diagram) |
用来分析IT基础架构,软件架构等方面的需求 |
|
部署图(Deployment Diagram) |
||
包图(Package Diagram) |
很少使用 |
|
行为型的图 Behavior Diagram |
活动图(Activity Diagram) |
必会使用至少其中一种图来分析业务流程,大部分情况至少会使用到其中两种图 |
状态机图(State Machine Diagram) |
||
顺序图(Sequence Diagram) |
||
通信图(Communication Diagram) |
||
用例图(Use Case Diagram) |
必会用,表达软件绝大部分析需求 |
|
时序图(Timeing Diagram) |
UML中的关系类型有
- 依赖
- .关联
- .泛化
- .实现
2.UML建模的步骤
在UML中存在两种建模机制:静态建模机制和动态建模机制。
当我们在实际的应用中使用面向对象的设计和分析方法时,一般遵循的步骤是:
第一步,理解需求;这个步骤一般产生用例图。
第二步,根据需求建立系统的静态模型,构造系统的结构;
这个步骤产生:类图,对象图,组件图和部署图。
第三步,描述系统的行为。这里建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。
这个步骤产生:状态图,活动图,顺序图。
第一和第二步建立的模型都是静态的,我们称之为静态建模,第三步我们称之为活动建模。
=================================================================================================
以后的内容将会与下面一个需求有关来举例:
[某公司考勒系统的需求说明]
某公司是一个软件公司,员工人数100人左右,大部分员工是软件研发人员,包括项目经理,软件设计师,程序员,测试工程师,实施工程师等,除此以外还包括行政人员,财务人员,公司在软件研究及日常管理上有一套管理方法,在没有考勒系统之前,与考勒相关的管理工作如下:
1:每位员工需要上午上班时打一次卡,下午下班香打一次卡,
2:期间如果需要外出工作,从公司出发时需要打一次卡,回到公司时需要再打一次卡。
3:员工请假需要填写请假条,请假条为事假,病假,年假等多种情况,请假需要直接领导审批,甚至还需要高层领导的审批。
4:行政部每天统计考勒信息,包括打卡信息,外出信息,请假信息,每月将考勒汇总信息提交给财务部。
5:账务部根据考勒汇总信息,调整员工的薪金。
除此之外,还要考虑其它意外事件:
1:某员工想请年假,但行政部告知该员工的当年年假己经休完了,年休假的管理出现了问题,很可能会影响员工的工作积极性。
2:某员工投诉当月薪金多扣了钱,原因是考勒信息统计有误,于是财务部将责任推到行政部,行政部推诿账务部要求不明确。
3:某天出现了紧急情况,领导想找员工A处理,但员工A当天请了假,领导并不知情。
所以通过此考勒系统来提高考勒工作的效率和准确性,避免因为考勒问题影响正常工作。
以上需求来自于 【火球UML大战需求分析】,作为学习笔记记录一下。
学习Uml开始的更多相关文章
- 3 学习UML图 学习DDD的基本概念
今天在学习DDD的过程中看到了大神 圣杰的博文 个人觉得非常经典 强烈推荐 在此提供url链接: UML类图10分钟快速入门 关于聚合 的理解 :一类没有紧密相关的东西聚在一起 ,分开了也可以独立存 ...
- 学习UML图和时序图,以及IDEA种查看类之间关系
1.类之间的关系:(6种) 关系 表示 图示 解释 表明的结构和语义 泛化关系 带空心箭头的直线 A继承自B(B指代非抽象类) 继承结构 实现关系 带空心箭头的虚线 小汽车继承车(B指代抽象类) 继承 ...
- 轻松学习UML之用例图,时序图
本文主要讲解UML图中的用例图(Use Case Diagram)和时序图(Sequence Diagram)相关内容,如有不足之处,还请指正. 概述 统一建模语言(UML,UnifiedModeli ...
- 轻松学习UML之类图,状态图
本文主要讲解UML图中的类图与状态图相关内容,如有不足之处,还请指正. 概述 统一建模语言(UML,UnifiedModelingLanguage)是面向对象软件的标准化建模语言,UML因其简单.统一 ...
- 设计模式学习---UML常见关系的实现
一.UML基本构造 UML的基本构造含3种: (1) 事物(4种):结构事物,行为事物,分组事物,注释事物 (2) 关系(4种):泛化关系,实现关系,依赖关系,关联关系 (3) 图(10种):用例图, ...
- 学习UML类图
在类图中一共包含以下几种模型元素,分别是:类(class).接口(interface)以及类之间的关系. 1.类(class) 在面向对象编程中,类是对现象世界中一组具有相同特征的物体的抽象. 2.接 ...
- 学习UML --用例图
用例图用于描述系统提供的系列功能.使用用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求.用例图对系统的实现不做任何说明,仅仅是系统功能的描述. 用例图主要在需求分析阶段使用,用于描述 ...
- 设计模式学习起点 UML类图笔记
UML类图笔记 大学开设的软件设计课程一般都会学习UML类图,大部分关于设计模式的描述都是使用的UML类图,可以说类图的表示是学习设计模式的起点.UML定义类之间的关系主要有六种:泛化关系.实现关系. ...
- UML学习入门就这一篇文章
1.1 UML基础知识扫盲 UML这三个字母的全称是Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言. 你可能会问:这明明是一种图形,为什 ...
随机推荐
- __attribute__ 变量对齐
http://blog.163.com/sunm_lin/blog/static/9192142200741533038695/ 一. __attribute__ ((aligned (n))) ...
- First day in 阿里
周五上午10点半的飞机,为了便宜选了CA的空客320的飞机,结果体验很差.飞机涂了层风骚的粉紫色,机内较旧,也很小,经过所谓的头等舱简直惨不忍睹.对比起去年飞去北京乘的波音真是没法比,波音上每个人都有 ...
- [LintCode] Paint House II 粉刷房子之二
There are a row of n houses, each house can be painted with one of the k colors. The cost of paintin ...
- Hive_进阶
回顾: hive 优点 1. 类sql语句靠近关系型数据库,可自定义函数,增加了扩展性,易于开发,减少mapreduce学习成本 2. hive转换sql语句为mapreduce程序以mapreduc ...
- hdu Remainder
这道题是道很明显的bfs题.因为对数论没什么研究 ,所以这道题目里的两个关键点并不知道,看了别人的题解才知道 . 1.为避免取模后出现负数,采用:x%y=(x%y+y)%y 2.全部采用对m*k取模后 ...
- 关于ASP.NET Web API 客户端的请求报文中添加 Authorization
当你使用客户端发送请求 Web API 的时候,因为API 有验证,所以你的请求报文中必须有”Authorization“,那么就需要手动添加了! HttpClient client = new Ht ...
- asp.net mvc Post上传文件大小限制
最近发现在项目中使用jQuery.form插件上传比较大的文件时,上传不了,于是改了下web.config的上传文件最大限制. <configuration> <system.web ...
- 关于web-dev-server 记录
package.json "scripts": { "init": "webpack --progress --config webpack.dev. ...
- 打开网页自动弹出QQ对话框的实现办法
Ian今天偶然进入一个公司的企业网站,然后QQ聊天窗口这里马上就弹出与那个公司客服聊天的窗口.怀着好奇的心态,Ian分析了该公司的网站源码,发现了实现网页弹出qq对话框的原理与实现方法,相信此时此刻你 ...
- Java简单类(部门、领导、雇员关系)
class Dept { private int deptno ; private String dname ; private String loc ; private Emp emps [] ; ...