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大战需求分析】这本书中。