初识UML

      最近由于很多事情一直没有更新自己的博客,从今天开始每天都会更新自己的博客,把自己所学的点点滴滴都记录,总结下来。开始学习UML(unified modeling language),我觉得UMl是在软件工程(softworeengineering)理论的基础上产生的,都是为了能够更好的对软件技术和软件项目的管理和统一,就像秦始皇灭六国之后,实行了全国“书同文,车同轨”的政策,都是为了能够有一个统一的标准,大家可以无障碍的交流和协作。当然,UML意义远不止这些。UML被应用到面向对象的问题的解决上。想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的。一个模型model就是根本问题的抽象。域domain就是问题所处的真实世界。模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的。记住把一个对象想象成“活着的”。对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations)。对象的属性的值决定了它的状态state。类Classes是对象的“蓝图”。一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数)。对象是类的实例instances。

        简单的说,UML就是五类九图。还有就是UML用来描述一个模型(model)的时候用到的内容有事物,关系,图三种。可以用下面两个图表示。



 不过这些都是一些简单的概念,为了完成对一个项目的建模准备的基础。下面对每个图做一个简单的例子和介绍。

用例图

用例图主要一个项目的需求分析阶段。用例图是所有图中最核心的图,描述了系统的所有功能,在其它工作流中起着指导作用,而且在最后还可以指导软件的测试。上图表示一个患者可以与医院的预约系统有一个约定。可以到门诊部就诊,可以付款。一个用例图中可以有多个用例,用例说白了就是一个系统有哪些功能,这些功能涉及到了哪些参与者,这些参与者可以是人,物或者子系统。用例之间可以有继承,扩展,包含关系。

类图


上面是一个顾客从零售商处预定商品的模型的类图。中心的类是Order。连接它的是购买货物的Customer和Payment。Payment有三种形式:Cash,Check,或者Credit。订单包括OrderDetails(line item),每个这种类都连着Item。UML类的符号是一个被划分成三块的方框:类名,属性,和操作。抽象类的名字,像Payment是斜体的。类之间的关系是连接线。
类图有三种关系。
关联association-表示两种类的实例间的关系。如果一个类的实例必须要用另一个类的实例才能完成工作时就要用关联。在图中,关联用两个类之间的连线表示。
聚合aggregation-当一个类属于一个容器是的一种特殊关系。聚合用一个带菱形的连线,菱形指向具有整体性质的类。在我们的图里,Order是OrderDetails的容器。
泛化generalization-一个指向以其他类作为超类的继承连线。泛化关系用一个三角形指向超类。Payment是Cash,Check和Credit的超类。
一个关联有两个尾端。每个尾端可以有一个角色名role name来说明关联的作用。比如,一个OrderDetail实例是一个Order实例的项目。
关联上的方向性navigability箭头表示该关联传递或查询的方向。OrderDetail类可以查询他的Item,但不可以反过来查询。箭头方向同样可以告诉你哪个类拥有这个关联的实现;也就是,OrderDetail拥有Item。没有方向性的箭头的关联是双向。

对象图


对象图是类图的实例。类图很简单,就不多说了,一些有逻辑关系的对象可以放入一个包中。

时序图


时序图描述了对象之间的动态交互关系,着重体现了消息传递的时间顺序。上图描述了选修课程的设置,添加时的消息时间顺序。

协作图


上顺序图的协作表现。

状态图
对象拥有行为和状态。对象的状态是由对象当前的行动和条件决定的。状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移。
我们的模型例图建立了一个银行的在线登录系统。登录过程包括输入合法的密码和个人账号,再提交给系统验证信息。
登录系统可以被划分为四种不重叠的状态:Getting SSN, Getting PIN, Validating, 以及 Rejecting。每个状态都有一套完整的转移transitions来决定状态的顺序。


活动图
活动图activity diagram是一个很特别的流程图。活动图和状态图之间是有关系的。状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程。活动图告诉了我们活动之间的依赖关系。
对我们的例子来说,我们使用如下的过程。
“通过ATM来取钱。”
这个活动有三个类Customer, ATM和 Bank。整个过程从黑色圆圈开始到黑白的同心圆结束。活动用圆角矩形表示。


组件与配置图

组件component是代码模块。组件图是是类图的物理实现。
配置图Deployment diagrams则是显示软件及硬件的配置。
下面的配置图说明了与房地产事务有关的软件及硬件组件的关系。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值