如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
TheUnifiedProcess作者:IvarJacobson,GradyBooch,andJamesRumbaugh,RationalSoftware翻译:环球联动开发组(GlobalEmpowerInc.)统一软件开发过程当前,软件的趋势是朝着更大更复杂的系统发展。这部分地是因为计算机的处理能力每年都在增大,导致用户对它的期望更多。同时,这种趋势也受到为交流各种信息(从纯文本到格式化文本到图像到图表再到多媒体)而不断扩大互联网的使用的影响。在产品版本的不断升级过程中,我们了解到产品是如何被改进的,因此我们对越来越复杂的软件的胃口也就越来越大。我们需要更符合我们的需要的软件,但是,这种需要反过来又使得软件越来越复杂。总之,我们需要更多。我们希望软件运行得越来越快捷。推向市场的时间是另一个重要的推动因素。然而,要达到这个目的是困难的。我们对强大、复杂软件的需要与软件开发的当前状况并不一致。今天,大多数人还在使用25年前使用的旧方法来开发软件。这就是症结所在。除非我们革新我们的方法,否则,我们无法达到开发当前所需的复杂软件的目标。我们可以把这个软件问题归结为软件开发人员面临的将一个大型软件项目的众多线索综合在一起的困难。软件开发界需要一种受控的工作方式。它需要一个过程来集成软件开发的许多方面。它需要一种通用方法,该方法能:ω提供应如何对整个开发团队的开发活动进行组织的指导;ω综合指导单个开发人员和开发团队;ω规定开发成果是什么;ω提供监控和衡量一个项目中的产品和活动的标准。一个定义良好且管理良好的过程是区别成效卓著的项目和不成功项目之间的重要指标。“统一软件开发过程”正是我们在软件开发上面临的难题的解决之道。“统一过程”概述第一点也是最重要的一点是,这个“统一过程”是软件开发过程。软件开发过程是将用户的需求转化为一个软件系统的一系列活动的总称(见图一)。然而,“统一过程”不仅仅是一个过程。它是一个通用过程框架,可以应付种类广泛的软件系统、不同的应用领域、不同的组织类型、不同的性能水平和不同的项目规模。“统一过程”是基于组件的,这意味着利用它开发的软件系统是由组件构成的,组件之间通过定义良好的接口相互联系。在准备软件系统的所有蓝图的时候,“统一过程”使用的是“统一建模语言(UnifiedModelingLanguage)。事实上,UML是“统一过程”的有机组成部分——它们是被同步开发的。”然而,真正使“统一过程”与众不同的方面可以用三个句话来表达:它是用例驱动的、以基本架构为中心的、迭代式和增量性的。正是这些特征使得“统一过程”卓尔不群。“统一过程”是用例驱动的开发软件系统的目的是要为该软件系统的用户服务。因此,要创建一个成功的软件系统,我们必须明白其潜在用户需要什么。“用户”这个术语所指并不仅仅局限于人类用户,还包括其他系统。在这种意义上,“用户”这个术语代表与利用“统一过程”开发出来的系统发生交互的某个人或者某件东西(例如在所要开发的系统之外的另一个系统)。交互的一个例子是使用自动取款机的一个人。他/她插入塑料磁卡,回答机器显示器上提出的问题,然后就得到了一笔现金。在响应用户的磁卡和回答时,系统完成一系列的动作,这个动作序列为用户提供了一个有意义的结果,也就是提取了现金。这个交互就是一个“用例”。一个用例就是系统中向用户提供一个有价值的结果的某项功能。用例捕捉的是功能性需求。所有用例结合起来就构成了“用例模型”,该模型描述系统的全部功能。这个模型取代了系统的传统的功能规范说明。一个功能规范说明可以描述成对这个问题的回答:需要该系统做什么?而用例战略则可以通过在该问题中添加几个字来描述:需要该系统为每个用户每个用户做什么?这几个字有着重大意义。每个用户它们迫使我们从用户的利益角度出发进行考虑,而不仅仅是考虑系统应当具有哪些良好功能。然而,用例并不仅仅是定义一个系统的需求的一个工具。它们还驱动系统的设计、实现和测试。也就是说,它们驱动整个开发过程。基于用例模型,软件开发人员创建一系列的设计和实现模型来实现各种用例。开发人员审查每个后续模型,以确保它们符合用例模型。测试人员将测试软件系统的实现,以确保实现模型中的组件正确实现了用例。这样,用例不仅启动了开发过程,而且与开发过程结合在一起。“用例驱动”意指开发过程将遵循一个流程:它将按照一系列由用例驱动的工作流程来进行。首先是定义用例,然后是设计用例,最后,用例是测试人员构建测试案例的来源。尽管确实是用例在驱动整个开发过程,但是我们并不能孤立地选择用例。它们必须与系统架构协同开发。也就是说,用例驱动系统架构而系统架构反过来又影响用例的选择。因此,随着生命期的继续,系统架构和用例都逐渐成熟。“统一过程”是以基本架构为中心的软件架构的作用在本质上与基本架构在建筑物结构中所起的