08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活。此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/details/7747205
此篇是UML课程的大作业,是我跟随桐姐,小鹿,和 翠翠 一起完成的。感谢几位认真扎实又不嫌弃我的队友,让我学习很多~
UML案例分析
UML建模的目的:
UML是Unified Modeling Language(统一建模语言)的简称。UML是对软件密集型系统中的制品(软件开发过程中产生的各种各样的产物,如模型、源代码、测试用例等)进行可视化、详述、构造和文档化的语言。
UML是一套表示法系统。UML由一组图组成,它使得系统分析员可以利用这一标准来建立能够和客户、程序员以及任何参与程序开发的人员理解的多视角的系统蓝图。不同的风险承担人通常使用不同类型的图相互交流。
- 使用模型可以更好地理解问题 (To understand the problem better)
- 使用模型可以加强人员之间的沟通 (To communicate with other persons)
- 使用模型可以更早地发现错误或疏漏的地方 (To find errors or omissions)
- 使用模型可以获取设计结果 (To plan out the design)
- 模型为最后的代码生成提供依据 (To generate code)
UML是Unified Modeling Language(统一建模语言)的简称。UML是对软件密集型系统中的制品(软件开发过程中产生的各种各样的产物,如模型、源代码、测试用例等)进行可视化、详述、构造和文档化的语言。
UML是一套表示法系统。UML由一组图组成,它使得系统分析员可以利用这一标准来建立能够和客户、程序员以及任何参与程序开发的人员理解的多视角的系统蓝图。不同的风险承担人通常使用不同类型的图相互交流。
- UML提供了九种不同的图来描述系统模型,用于面向对象的编程:类图:一类或者一组具有类似属性和共同行为的事物;
- 对象图:一个类的实例,是具有属性值的一个具体事物;
- 用例图:是从用户的观点对系统行为的一个描述;
- 状态图:在任意给定的时刻,一个对象总是处于某一特定的状态;
- 顺序图:表达对戏那个之间基于时间的动态交互;
- 活动图:显示系统中从一个活动到另一个活动的流程;
- 协作图:展示一组对象间的连接以及这组对象收发的消息;
- 构件图:展现了一组组件之间的组织和依赖,用于对源代码、可执行的发布、物理数据库和可调整的系统建模;
- 部署图:显示了基于计算机系统的物理体系结构;
实验步骤
【确定项目】
机场运作系统
【项目立意】
机场运作系统分析旨在分析机场的运作系统,从中发现系统中的不足,以求设计出更好的机场运作系统。机场运作系统的核心在于机场的调度系统,通过对此业务模型的建立和分析,希望那个能够找出更好的机场调度算法,使机场能够更加高效的运行。整个系统中采用无线网络进行通信,除了Pc机,为了方便通信,在本系统中还通过对讲机进行通信,使信息能够及时的传送。【系统分析】
首先机场运作系统是一个比较庞大的系统,为了方便起见,我们将其分成四大版块,小组四位成员一人负责一大版块,每阶段任务结束都进行汇报总结,相互纠正错误,完善各版块体系:四大版块:
- 买票系统:主要对乘客购买机票到登机前的系统的分析;包括:网购 、机场购买、退票、改签机票
- 登记系统:主要对乘客到达机场后直到登机之间的系统分析;包括:安检、检票、登机
- 调度系统:主要对飞机起飞与着陆的系统分析;包括:跑道控制、飞机起飞、特殊情况、飞机降落
- 货运系统:主要对货物从安检装机到抵达目的地之间的系统分析;包括:发货、货物检查、收货
图 1 登记活动图
图 2 买票活动图
图 3 飞机起飞活动图
图 4 飞机着陆活动图
图 5 机场货运活动图
【领域分析——抽类】
上阶段步骤校验结束后,进行领域分析,即对各版块系统进行对名词和动词的抽取,汇总去掉重复累赘项后得到初步类图:初步将类分为 : 角色、实体和机场部分
- 角色包括:乘客、检票员、安检人员、地控中心人员、携货员、前台服务人员、机场货运人员、机场广播人员、跑道工作人员
- 实体包括:机票、行李、货物、货运单、登机牌、货运单
- 机场部门包括:飞机、跑道、候机厅、机场公安局、机场大厅、海关、登机口、边防检查属
图 6 系统类图
图 7 跑道工作人员类图
图 8 安检人员类图
图 9 乘客相关类图
图 10 低空中心人员相关类图
图 11 机场工作人员相关类图
图 12 机场总负责相关类图
图 13 检票相关类图
图 14 携货人员相关类图
【开发用例】
对各种类进行了细化后,开始对用例的开发。对于用例,我们根据所得出的类来分析,首先我们将类分为几个不同的包,
如乘机对象(乘客和货物)、 携货人员(发货人和收货人)检查机构(海关和边防检察署)、 机场工作人员(前台服务员等)
图 15 检查机构用例图
图 16 乘机对象用例图
图 17 携货人员用例图
图 18 机场工作人员用例图
【创建时序图】
开发完用例后,我们小组对其中重要的用例进行了时序图的创建。对于买票系统来说,最关键的用例即购票,我们我们仅对网上购票进行了时序图的描述,具体时序图 ;对于登机系统来说,我们对登记检查部分进行了时序图的描述,检查包括登机前的机票检查和物品安检以及国际航班的海关检查;对于调度系统来说,主要是飞机的起飞和着陆,我们分别对这两个用例进行了时序图的描述。
对于货运系统来说,我们主要对货物交货时的安检用例进行了时序图的描述,对于货物的安检来说是比较严格的,而且考虑到的方面也比较繁杂
时序图完成后,相应的协作图就很容易得到,按F5即可。
图 19 登机顺序图
图 20 买票顺序图
图 21 飞机起飞顺序图
图 22 飞机着陆顺序图
图 23 货运顺序图
【创建状态图】
状态图在创建的过程中很容易出现错误,不知道什么是状态图,如何确定状态,常常需要回过头去看状态图的概念——是针对某一个对象不同时刻的状态所描绘成德图。于此,我们小组对两个重要对象进行了状态图的描绘:
图 24 货物状态图
图 25 飞机状态图
【创建组件图】
组件图是根据之前的类图,相关的用例所构建的,描述的是组件之间的组织和依赖。
图 26 系统构件图
【创建部署图】
部署图展现的是运行时处理节点以及其中组件的配置,说明分布、交付和安装的物理系统。
图 27 系统部署图
实验结果及分析
- 通过实验对具体问题的建模,更加深了对UML的理解,以及体系化了自己建模的思想。UML是Unified Modeling Language(统一建模语言)的简称。UML是对软件密集型系统中的制品(软件开发过程中产生的各种各样的产物,如模型、源代码、测试用例等)进行可视化、详述、构造和文档化的语言。同时理解了UML各种图之间的关系。UML中视图包括:用例视图、逻辑视图、实现视图、进程视图、部署视图。由九种图组成:包括类图、对象图、顺序图、状态图、用例图、活动图、协作图、构件图、部署图。
- 通过实验我们也再次融洽了小组的协作。集体的力量是无穷的!当你属于你一个集体的时候,那种归属感与优越感也能再次大限度的发挥你的潜力!整个建模过程我们一起讨论,分工合作。大家各有自己的任务,同时也有集体的大局,熬了几夜才搞出这个浩大的工程。实验中我们系统的类图啊,部署,构件几乎都是一起做的,而每个模块分到个人专门负责。我负责调度模块,为了使这一块做的好一些,也查阅了不少有关调度的知识(虽然很多并没有用来建模),学习了很多。相信我们团队会越走越远!
- 整个系统是通过EA(Enterprise Architecture)软件作为分析平台,由于Rational Rose中有些UML图是不支持的,比如顺序图中的帧化等,所以在此选择EA作为开发平台。顺序图中的帧化情况的出现是由于我们在各自的工程下进行分析,在整合系统的时候就直接采用帧化的方式,说明图式来自于别的工程,充分利用了UML2.0的优越性