面向过程方法认为我们的世界是由一个个相互关联的小系统组成的。每个小系统都有明确的开始和结束,开始和结束之间有着严谨的因果关系。只要我们将这个小系统中的每个步骤和影响因素都分析出来,就能完全定义这个系统的行为。
如上图的传统商务流程:
这个图被称为DFD(Data Flow Diagram)图,以图形的方式描绘数据在系统中流动和处理的过程。
面向过程方法的困难:难以描述复杂系统。因为面向过程将世界看作是过程化的,系统的各个部分之间存在密不可分的因果关系,在系统简单的时候还可以应对,但在描述复杂系统时,系统的细微变化都将导致因果关系的重构。
面向对象(Object Oriented)方法将世界看作一个个相互独立的对象,相互之间并无因果关系,只有在外力驱动下,对象之间才会依据某种规律相互传递信息。这种交互被称为过程,在没有外力的情况下,对象则保持静止。
面向对象具有封装、继承、多态等特点,对象具有属性、方法、对象之间存在依赖、关联、耦合等关系。对象需要能够复用。面向对象还有一个非常重要的特性:抽象*。不夸张地说,抽象能力决定了面向对象里的一切。
面向对象方法的困难:抽象。也就是说,抽象是面向对象的精髓,同时也是面向对象的难点。
UML(Unified Modeling Language)翻译为统一建模语言,它定义了一些用于表达某种特定含义的基本元素,如用例、类等,这些基本元素被称为元模型;然后定义了这些元模型相互之间的关系的规则,以及如何用元模型绘制图形以建立现实世界的映射,这些规则或图形被称为视图(View)。
UML建立了软件生命周期管理的统一语言,即一个需求从分析、设计,到开发、测试、部署等各阶段的描述都可以采用UML语言进行,同时它采用可视化的方式呈现了系统的全貌,方便了不同阶段不同角色之间的沟通与交流。
也就是给现实世界的问题建立软件模型。UML的方式包括:
即把业务模型转化为可用以指导开发的表达方式。UML的实现方式包括:
即建立软件所需要的所有组成内容及开发软件所需要的所有必要细节。UML通过定义具体视图(类图、时序图、活动图等)将理想落入现实,使系统真正达到一个可以指导编码的状态。
RUP(Rationnal Unified Process)译为统一过程,是一种软件方法,它采用面向对象思想,使用UML作为语言,结合了项目管理、质量保证等许多软件工程方法。
统一过程定义了软件开发过程的四阶段和九个核心工作流: