UML(1)
来源:互联网 发布:mac爱奇艺flash 编辑:程序博客网 时间:2024/05/01 10:21
UML(1)
任何事情都要先想清楚了才能做,软件开发更是如此!软件开发过程不可能一上来就开始盲目写代码,写代码之前必须搞清楚下面一些基本问题:
1.要做什么?
2.做成什么样?
3.怎么去做?
软件设计: 把软件开发想清楚的过程.
软件工程: 对软件开发全过程进行建模和管理.
模型: 对问题的书面上的无歧义文字或图形的描述.简言之, 模型是对现实的简化. 通过模型, 人们可以了解所研究事物的本质
建模: 对现实系统进行适当的过滤, 用适当的表现规则描述出简洁的模型.
建模是一种深入解决问题的方法.
建模的原则:
(1). 选择建立什么样的模型对如何发现和解决问题具有重要的影响。正确的模型有助于提高开发者的洞察力。
(2). 每个模型可以有多种表达方式. 使用者的身份和使用的原因是评判模型好坏的关键
(3). 最好的模型总是能够切合实际. 模型是现实的简化,必须保证简化过程不会掩盖任何重要的细节
(4). 孤立的模型是不完整的
UML(United Modeling Language, 统一建模语言): 是一种基于面向对象的可视化建模语言.
UML 采用了一组形象化的图形(如类图)符号作为建模语言, 使用这些符号可以形象地描述系统的各个方面
UML 通过建立图形之间的各种关系(如类与类之间的关系)来描述模型.
UML 2.0 中一共定义了13 种图示(diagrams)。为方便了解,可分类成右侧的结构。 UML图
结构图(Structure diagrams) 强调的是系统式的建模:
类图 (Class Diagram)
组件图(Component diagram)
复合结构图(Composite structure diagram)
部署图(Deployment diagram)
对象图(Object diagram)
包图(Package diagram)
行为图(Behavior diagrams) 强调系统模型中触发的事件:
活动图(Activity diagram)
UML
状态机图 (State Machine diagram)
用例图 (Use Case Diagram)
交互图(Interaction diagrams), 属于行为图形的子集合,强调系统模型中的资料流程:
通信图(Communication diagram]]
交互概述图(Interaction overview diagram) (UML 2.0)
序列图(顺序图)(Sequence diagram)
时间图(UML Timing Diagram) (UML 2.0)
UML 中的关系主要包括 4 种:
关联关系(association)
依赖关系(dependency)
泛化关系(generalization)
实现关系(realization)
用例图(Use Case Diagram): 也称为用户模型图, 是从软件需求分析到最终实现的第一步, 它是从客户的角度来描述系统功能.
用例图包含 3 个基本组件: 参与者(Actor), 用例(Use Case), 关系:
参与者(Actor): 与系统打交道的人或其他系统即使用该系统 的人或事物. 在 UML 中参与者用人形图标表示
用例(Use Case): 代表系统的某项完整的功能. 在 UML 中使 用一个椭圆来表示
关系: 定义用例之间的关系 ------ 泛化关系, 扩展关系, 包含关系
泛化关系: 表示同一业务目的(父用例)的不同技术实现(各个子用例). 在 UML 中, 用例泛化用一个三角箭头从子用例指向父用例. 以下是某购物网站为用户提供不同的支付方式
包含关系:一个用例可以包含其他用例具有的行为, 并把它包含的用例行为作为自身行为的一部分. 在 UML 中包含关系用虚线箭头加 “<<include>>”, 箭头指向被包含的用例
扩展关系:如果在完成某个功能的时候偶尔会执行另外一个功能, 则用扩展关系表示.在 UML 中扩展关系用虚线箭头加 “<<extend>>”, 箭头指向被扩展的用例
类图:
类图是面向对象系统建模中最常用的图. 是定义其他图的基础.
类图主要是用来显示系统中的类, 接口以及它们之间的关系.
类图包含的主要元素有类, 接口和关系. 其中关系有关联关系, 泛化关系, 依赖关系和实现关系. 在类图中也可以包含注释和约束.
类之间的关系:
泛化关系:在 UML 中, 泛化关系用来表示类与类, 接口与接口之间的继承关系. 泛化关系有时也称为”is a kind of”关系
在 UML 中泛化关系用一条实线空心箭头由子类指向父类
实现关系:在 UML 中, 实现关系用来表示类与接口之间的实现关系.
在 UML 中实现关系用一条虚线空心箭头由子类指向父类
依赖关系:对于两个相对独立的系统,当一个系统负责构造另一个系统的实例,或者依赖另一个系统的服务时,这两个系统之间体现为依赖关系. 例如生产零件的机器和零件,机器负责构造零件对象; 充电电池和充电器,充电电池通过充电器来充电;自行车Bicycle和打气筒Pump,自行车通过打气筒来充气
在现实生活中,通常不会为某一辆自行车配备专门的打气筒,而是在需要充气的时候,从附近某个修车棚里借个打气筒打气。在程序代码中,表现为Bicycle类的expand()方法有个Pump类型的参数。以下程序代码表示某辆自行车先后到两个修车棚里充气:
关联关系:对于两个相对独立的系统,当一个系统的实例与另一个系统的一些特定实例存在固定的对应关系时,这两个系统之间为关联关系。例如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司;自行车和主人,每辆自行车属于特定的主人,每个主人有特定的自行车。而充电电池和充电器之间就不存在固定的对应关系,同样自行车和打气筒之间也不存在固定的对应关系。
聚合关联:聚合关联是一种特殊的关联. 它表示类间的关系是整体与部分的关系. 简言之: 关联关系中的一个类描述了一个较大的事物, 它由较小的事物组成.
聚合关系描述了 “has a” 的关系, 即整体对象拥有部分对象
整体和部分之间用空心菱形箭头的连线连接, 箭头指向部分
组合关系:组成关系是更强形式的聚合.
组成关系中, 整件拥有部件的生命周期, 所以整件删除时, 部件一定会跟着删除. 而且, 多个整件不可以同时共享同一个部件。
聚合关系中, 整件不会拥有部件的生命周期, 所以整件删除时, 部件不会被删除. 再者, 多个整件可以共享同一个部件.
UML 中组成关系用实心的菱形实线表示
- UML读书笔记(1)
- UML用例图(1)
- uml(1)
- UML(1)
- UML用例图(1)
- UML图示(1)
- UML学习(1)
- 初识UML(1)
- UML(1)
- [UML] UML练习1
- UML视频总结(1) —UML基础
- 【UML】学习笔记(1)——初识UML
- UML学习总结(1)——UML学习入门
- UML建模详解(1)—初识UML建模
- UML学习-------用例图(1)
- UML学习-------类图(1)
- UML学习-------状态图(1)
- UML类图---关联(1)
- 在C#中利用自动化模型操纵Word
- 移植ucos II
- 将sql数据导入到Excel
- php soap举例及wsdl文件的生成
- MeeGo开发常用测试工具及流程
- UML(1)
- XML的属性规则
- 数据结构之 插入排序
- webservices 服务器未能识别 HTTP 头 SOAPAction 的值
- 为什么中国程序员技术偏低?
- CSS优化小结
- 关于overflow hidden的研究
- SVN 恢复删除
- RHEL5.4 iptables 配置详解(图)