前言

虽然软件开发人员都是经过严格训练的专业人员,但是该专业比较还很年轻。因此,开发人员需要有组织的指导。

软件变得更加复杂,要求开发时间尽量短,导致开发变得困难。

基于以上原因,软件工业需要一个指导开发人员的过程。

什么是软件开发过程?

一个过程定义了为达到某个确定的目标,需要什么人什么时间合中方式做合中工作。对于软件开发过程:

  • 目标:构造一个新的软件产品或者完善一个旧的软件产品。
  • 何种方式:一个有效的过程为有效地开发高质量的软件提供准则,它获取并提出当前技术条件下可行的最佳实践方案。因此,它可降低风险并增强预见性。
  • 什么人:软件开发过程可用于指导顾客、用户、开发人员和项目经理等参与者的过程。
  • 什么时间:软件开发过程广泛适用的过程,以便所有的项目相关人员都能理解自己在所进行的开发工作中的角色。

软件开发过程还要能随时间的推移不断地进化。在进化过程中,能及时调整自己以使用技术、工具、人员以及组织模式的变化:

  • 技术:过程必须建立在当时可以使用的使用技术。
  • 工具:过程和工具必须同事发展。
  • 人员:过程建造者必须将运作过程所需的技能做一定的限制,使得这些技能是先有开发人员以及具备的或者通过培训能孙旭掌握的。
  • 组织模式:软件开发人员并不是各自独立的专家,过程建立者要让过程适合当前的实际情况。

本书的目的

UML提供了一种标准的方法,对软件密集型系统中的制品进行可视化描述、详细说明、构建、文档和以及相互交流。然而UML不是目标,而是手段。最终的目标是健壮的、有弹性的和可扩充的软件应用系统。要达到这样的目标,既需要过程,又需要语言,而本书编写的目的就是要阐明过程。

本书的读者

主要是为处理生命周期活动的开发组成员编写的。

本书的学习方法

本书用大部分笔墨阐述在UML中认为是终点的活动:需求、分析和设计。正式在这些终点活动中,过程开发了复杂软件系统的架构。

RUP涵盖了整个软件生命周期,拓展了本书所阐述的统一过程范围,并提供了本书所没有包含的或者是一笔带过的其他工作流。

统一过程的历史

Ericsson 方法

Ericsson 将整个系统模型化成相互联系的模块(在UML中称之为子系统,并当作“构件”实现)的集合。他们用底层的模块装配成较高曾的子系统,使整个系统更易于管理。

通过遍历以前曾详细描述过的业务实例(现在称为“用况”)来发现这些模块。对于每一个用况,识别出其实现所需的相关模块。

了解了每个模块的职能后,它们就编织每一个模块的规格说明,设计出一批带有接口的静态模块图,并将其组合成子系统。这些模块图直接对应于UMl的类图或包图的简化版本。

设计活动的第一个工作产品使软件的架构描述。它基于对最关键的需求的理解,简要描述每个模块以及如何将它们组合成子系统。一组模块图描述了模块机器相互联系。在其联系上,信号用于模块之间的通信。所有消息都在消息库中逐个的加以描述。软件架构描述和消息库是知道开发工作的关键文档,同事也可用于向客户介绍整个系统。

对于每个用况,工程师纪要准备顺序图,还要准备协作图。这些图描述了模块是如何通过动态通信来实现该用况的。工程师以状态图(只包括状态和转换)和状态转换图(UML活动图的简化版本)的形式编织规格说明。

本质上讲,这种方法就是我们今天所说的基于构件的开发。

规格说明与描述语言(SDL)

1976年,CCITT公布了用以描述电信系统中功能行为的规格说明与描述语言。该标准收Ericsson方法的重大影响,用一系列相互关系的模块来刻画一个系统,各模块之间仅仅通过消息来相互通信。每一个模块都拥有一系列的“过程”,它们是由SDL术语表示的主动类。一个过程拥有实例,非常类似于面向对象术语中的类。过程实例通过消息阐述交互。SDL所推荐使用的图可以堪称UML中的类图、活动图、协作图和顺序图的特化。

对象工厂

用况使得开发过程更加清晰。

各种相继的工作流表征为一些列的模块:需求-用况、分析、设计、实现和测试。一个模块是对一个系统的一种刻画。在该系统中模型之间的关系对开发人员而言非常重要,可以看作是从模块序列的一端到另一端某个功能特征的演进路线。事实上可跟执行已称为用况驱动的开发过程的先决条件。开发者可以通过模型顺序跟踪到对应于某个用况的源代码,或者当出现问题时能够进行逆向跟踪。

需要注重指出的是,对象工程产品本身也被看成是一个系统。

Rational方法

归于过程建立最具贡献意义的两个因素是对架构和迭代式开发的强调。

一篇有关将的文档一般都表达了四个方面的试图:逻辑视图、过程视图、物理视图和开发视图,另外再加上一种用用况或者场景阐述前面四种视图的视图。

一些人曾认为迭代式开发有些混乱无序和漫无边际。再迭代中引进四阶段发可以设计出更好的结构和更好的迭代控制过程。阶段法强调迭代按一定的顺序继续宁

Rational对象工程过程:1995-1997

再合并前,对象工程已经说明了作为产品的软件开发过程是如何进行开发和建模的。它设计良软件开发过程的原始架构,建立了一套记录过程结果的模型。再用况建模、分析和设计等方面取得了很好的进展,但再不同于用况的需求管理、实现和测试等其他方面却没有取得太大进展。此外,再项目管理、配置管理、实施已经开发环境的准备等方面也很少涉足。

现在,我们将Rational的经验和实践加入。新版本中加入了阶段和受控的迭代方法。架构以建构描述的形式清晰地展现。

统一建模语言

再20世纪90年代初期出现了众多的面向对象方法,因此需要一种统一的和一致的可视化语言来表达这些方法。

Rational统一过程

增加了如下内容:

  • 需求管理方面的经验
  • 配置管理方面的经验
  • 测试
  • 扩展了业务建模的工作流,用于从业务过程提取为该业务服务的软件的需求。

过程的突破

软件开发过程已经成熟。

results matching ""

    No results matching ""