|
UML学习笔记 1.建模
1.1 为什么要建模
要生产合格的软件就要有一套关于体系结构、过程和工具的规范。 建模的目标:
1)模型帮助我们按照实际情况或按照我们所需要的样式对系统进行可视化。 2)模型允许我们详细说明系统的结构和行为。 3)模型给出一个知道我们构造系统的模板。 4)模型对我们的决策进行文档化。
建模就是把复杂的系统变成小的系统,采用“各个击破”的原则逐一解决。 1.2 建模原理
1)选择创建什么模型很重要,模型要反映你难于处理的开发问题。
2)模型要在不同的精度级别上来表示。你可以根据观察的角色和观察的原因来选择精度。 3)建造模型要和现实相连。
4)重要的系统需要用一组独立的模型去处理。在面向对象的软件体系中,为了理解系统的体系结构,你需要几个互补和连锁的视图:用例图、设计视图、进程视图、实现视图和实施视图。
UML中的图
1)类图 --- 系统的静态状态图,包含主动类的类图给除系统的静态进程视图。 2)对象图 3)用例图 4)顺序图 5)协作图 6)状态图
7)活动图 --- 强调对象间的控制流程 8)构件图 9)实施图 2.3 体系结构
我们用5个互联的视图来描述软件密集型系统的体系结构: 1)系统的用例图
2)系统的设计视图 --- 静态方面由类图和对象图描述,动态方面由交互图、状态图和活动图描述。
3)系统的进程视图 --- 包含了形成系统并发和同步机制的线程和进程。 4)系统的实现视图 --- 主要针对系统发布的配置管理。 5)系统的实施视图 2.4 软件开发生命周期 用况驱动
以体系结构为中心
跌代过程 --- 涉及到一连串可执行发布的管理。
软件开发生命周期的(RUP)四个阶段:初始、细化、构造、移交。 4 类
4.3.1 对系统的词汇建模 需要做如下工作:
1)识别用户用于描述问题或解决问题的事物。 2)对于每个抽象,识别一个职责集。
3)提供为实现每个类的职责所需的属性和操作。 4.3.2 对系统中职责的分布建模
抽象出来的类要适中,不要过大过小。 需要如下工作:
1) 识别一组为了完成某些行为而紧密协同工作的类。 2) 对上面的每一个类识别出一组职责。
3) 从整体上观察这些类,过大的分解,过小的合并。 4) 考虑相映的协作方式,重新分配职责。 5 关系
面向对象建模中三种最重要的关系: 依赖 --- 使用关系
泛化 --- 一般/特殊关系 关联 --- 结构关系 当你开始建模是,特别是解决这些对象的动态协作时,你还会遇到两种其它的关系:链(可能发送消息的对象间的实例)和转换(状态机中不同状态的连接)
对简单依赖建模 ---(如一个类作为另一个类的参数) 依赖从操作的类指向当作参数的类。
对单继承建模 对结构关系建模 6 公共机制
四个公共机制可以使UML简化:详述、修饰、公共划分和扩展
构造型、标记值和约束使UML提供的用以增加新的构造块、创建新的特性以及描述新的语义的机制。 7 图
有5种最重要的互补视图:用例视图、设计视图、进程视图、实现视图和实施视图 每一种视图包含结构建模(静态)和行为建模(动态) 建图的两种方法:正向工程和逆向工程 一些术语:
系统:由子系统组成; 子系统:由元素组成; 模型:对现实的简化; 视图:对系统模型的组织和结构的投影,注重于系统的一个方面。 结构图:类图、对象图、构件图、实施图。
行为图: 用况图、顺序图、协作图、状态图、活动图。
顺序图和协作图统称交互图。顺序图强调消息的时间次序,协作图强调收发消息的对象的结构组织。
活动图强调对象之间的控制流。 如何选择视图来建模?
1)视图能够表达系统的体系结构,能够暴露项目的技术风险。 2)决定用哪些制品来捕获视图的基本细节。
3)作为你的过程策略的一部分,决定把那种视图至于某种形式或者半形式的控制之下。 4)保留废弃的视图。 两种系统建模的方法:
1)针对同一模型,用不同层次上的细节描述图。
2)在不同的抽象层次上,从一个模型跟踪到另一个模型的方法建模。
|
上一篇:端午了下一篇:uml学习心得
|