当前的软件工程技术:已经老去的面向过程,正当壮年的面向对象,冉冉升起的面向服务.
- 面向过程技术(结构化程序设计技术):DFD图,ER模型,UC矩阵.
- 面向对象技术:继承,封装,多态,复用等.
- 面向服务技术:业务的组合,面向服务,与IT技术的无关性.
面向过程的理解:世界的一切都不是孤立的,它们相互地紧密联系在一起,却一不可,相互影响,相互作用,并形成一个个具有严格因果的小系统,更多的小系统组成了更大的系统.
面向过程局限性: 将世界视为过程的方法本身蕴涵着一个前提,即这个过程是稳定的,所有的工作成果都依赖于对这个过程的步步分析,导致了另外一个结果,过程中的每一步都是预设好的,有着严谨的因果关系.
当前的困难:当前的商务业务变化太快,撼动的过程是稳定的根基,需求复杂性的提升,使得面向过程无力解决.
面向对象: 将世界看作一个个相互独立的对象,相互之间并无因果关系,只有在某个外部力量的驱动下,对象之间才会依据某种规律相互传递消息.
重要概念: 封装,继承,聚合,接口,多态,依赖,耦合,属性,方法,类,抽象,实例化.复用,抽象层次.
面向对象的困难:
如何将需求分析说明书和设计结果相对应-----------通过UML
oo跨越需求和设计的鸿沟需要:
- 一种把现实世界映射到对象世界的方法.------ 从现实世界到业务模型。
- 一种从对象世界描述现实世界的方法.---------------- 业务模型到概念模型。
- 一种验证对象世界行为是否正确反映了现实世界的方法.--- 概念模型到设计模型:
UML的理解:
名词 :面向对象的设计方法(OOD方法)。GOOD(通用面向对象开发)。HOOD(层次化面向对象设计)。OOSE(面向对象结构设计)。OOA(面向对象分析)。OMG(对象管理组织)
UML的好处:
- 统一语言。 保证各个组织都能理解相同的意思。
- 可视化。 通过图形表达隐晦的含义。
建模:
从现实世界到业务模型。
UML元素有:参与者(actor),用例(use case)。
业务模型到概念模型:
边界类(boundary),实体类(entity),控制类(control)
概念模型到设计模型:
软件架构和框架。编程语言。规范和中间件。