1 建模
建模(Modeling),是指通过对客观事物建立一种抽象的方法用以表征事物并获得对事物本身的理解,同时把这种理解概念化,将这些逻辑概念组织起来,构成一种对所观察对象的内部结构和工作原理的表达。建模涉及两个基本问题:
- 怎么建
即方法论。UML采用面向对象的方法建模。 - 模是什么
问题领域 = 抽象角度
抽象角度 = 问题领域边界之外的参与者的业务目标 = 业务用例
业务用例 = 特定的场景
特定场景 = 静态的事物 + 特定的条件 +特定的动作 或者
特定的事 = 特定的事物 + 特定的规则 + 特定的人的行为
2 用例驱动
用例驱动是统一过程的重要概念,整个软件生产过程就是用例驱动的。
- 逻辑视图
系统只有一个逻辑视图,以图形方式说明关键的用例实现、子系统、包和类。 - 进程视图
系统只有一个进程视图,以图形方式说明了系统中进程的详细组织结构,其中包括类和子系统到进程和线程的映射。这个视图就是我们常说的分析设计视图。 - 部署视图
系统只有一个部署视图,以图形方式说明了处理活动在系统中各节点的分布,包括进程和线程的物理分布,即建模公式中的人、事、物、规则是如何部署到物理节点(主机、网络环境)上的。 - 实施视图
获取为实施指定的架构决策,包括 - 列举子系统
- 描述子系统如何组织为层次和分层结构的构件图
- 描述子系统间的导入依赖关系的图解
3 抽象层次
抽象层次是面向对象方法中极其重要,但又非常难以掌握的技巧。
- 抽象层次越高,具体信息越少,但是概括能力越强
- 抽象层次越低,具体信息越丰富,结果越精确,但概括能力越弱。
抽象有两种方法:
- 自顶向下的方法适用于让人民从头开始认识一个事务
- 自底向上的方法适用于在实践中改进和提高认识。
软件开发过程主体上应该采用自顶向下的方法,用少量的概念覆盖系统需求,再逐步降低抽象层次,直到代码编写。同时辅以自底向上的方法,通过总结在较低抽象层次的实践经验来改进较高抽象层次的概念以提高软件质量。
4 视图
视图用于组织UML元素,表达出模型某一方面的含义。UML定义了用例图、对象图、类图、包图、活动图等不同的视图,从不同的方面描述了一个软件的结构和组成。所有这些视图的集合表达了一个软件的完整含义。同时,由于软件的干系人很多,如客户、系统分析员、架构师、设计师、开发人员、测试人员等,因此建模的另一项重要工作是为不同的干系人展示他们所关心的那部分视角。建模过程需要经常思考如下两个问题:
- 应该为哪些软件信息绘制哪些视图
- 应该给哪些干系人展示哪些视角
5 对象分析方法
- 一切都是对象
- 对象都是独立的
- 对象都具有原子性
- 对象都是可抽象的
- 对象都有层次性