2.3生命周期在项目规划中的作用外文翻译资料

 2023-02-01 10:58:06

毕业设计(论文)外文翻译

译文:2.3生命周期在项目规划中的作用

软件在什么意义上有生命周期?在一个项目的开始,软件处于婴儿期——它的特征是轮廓和粗略的定义。在项目的后期,这些轮廓和草图被填充了关于结构、处理和数据的细节;该软件获得了独特的“个性”最终(除了疾病,如错误的设计),软件在运行时达到完全开发的状态,并通过改进、新功能和潜在缺陷修复的结合而优雅地老化。

生命周期的概念可以被看作是一种工具,用来解释将软件从某人或某个企业头脑中相对不确定的状态带到运行软件代码完成有用工作的完成状态所涉及的活动。生命周期帮助管理层获得对软件系统开发过程的洞察力。例如,考虑图2-2中描述的情况。通常,软件系统开发项目的目的是实现从手动或传统自动化系统到新的/改进的自动化系统的过渡。如图2-2所示,正如我们随后解释的,开发生命周期集成了开发、产品保证和管理的系统规程。

图2-2软件系统开发项目将手动或自动遗留系统转换为新的/改进的系统。开发生命周期突出了实现(1)成功过渡和(2)响应部署后需求所需的规程和任务。

编号的任务(即1、2、3、4、5、6)代表一个软件系统开发路径,它集成了开发、产品保证和管理规程。开发规程由什么(任务1)、如何(任务2)、构建(任务4)和使用(任务5)这四个通用开发阶段来表示。每个阶段产生一个或多个软件或软件相关产品。在软件生命周期的早期阶段,通常会产生需求规格。这些规范表达了要做的事情。在随后的阶段,设计规范(任务2)和计算机代码和数据库(任务4)通常被产生。

在本书中,我们依靠生命周期概念来解释和扩展软件系统开发过程概念。因此,重要的是你要从一开始就意识到生命周期“阶段”不是一次就能经历的事情,永远也不会再被重复。正如我们在第1章中提到的,从软件系统开发的角度来看,在软件系统废弃(即死亡)之前,任何生命周期阶段都可能被重新访问多次。我们更倾向于认为对生命周期阶段的重新访问是对之前访问该阶段所做工作的增强、纠正和/或调整。重访只不过是字典意义上的“维护”(即“保持存在或继续的行为;保持特定状态的行为”[1])。因此,在本书中,我们采取的态度是,“维护”是与任何生命周期阶段相关的活动的一个组成部分。因此,我们不区分软件系统开发和软件系统维护。要求的学科和流程是一样的。

  1. 兰登书屋韦氏大学词典(纽约:兰登书屋,1999)。我们在第一个定义中为“维护”定义了连词,在第一个和第三个定义中为“维护”定义了连词

如图2-2所示,产品保证规程和管理规程一起显示在评审区域。产品保证活动(任务3)为开发人员提供了开发中产品的替代视图(例如,需求规格说明),并为管理人员提供了开发人员在开发过程中所处位置的洞察力。产品保证寻求将生命周期产品相互比较,以确定它们在逻辑上相互遵循的程度,以及它们符合客户声明的需求的程度。这种比较有助于建立一个线索,该线索明确地将产品追溯到前一阶段的产品(或同一阶段的产品,如规范文档的早期草案),这反过来又提高了软件系统开发过程的可见性。管理活动(任务6)包括监督开发活动和产品保证支持活动。管理层利用产品保证提供的可见性来决定下一步该做什么。例如,在管理层审查产品保证测试结果之后,如果认为软件代码没有满足客户需求,管理层可以决定重新进入什么阶段。

在特定项目中使用的生命周期阶段的数量是期望可见性(和可承受性)的函数。这个数字也可能是组织政策的函数。例如,您的组织可能有一个策略,规定出于规划目的,所有项目都应划分为指定数量的阶段。此外,一旦项目开始,可能需要改变项目开始时计划和商定的阶段数。可能改变阶段数量的例子包括:项目预算的改变、客户希望对开发过程有更多了解的改变、或者客户交付日期的改变。将软件系统开发工作分成几个阶段的想法对于避免管理消化不良很有用。正如许多因素决定了人们在进餐前如何选择分割食物的成分,也可能有许多因素决定了生命周期应该如何划分。最根本的一点是,生命周期中没有一个单一的“首选”分区应该适用于所有项目。

项目团队成员执行以下通用软件系统开发任务,从现有系统过渡到新的/改进的系统:

  • 分析从现有系统过渡到新的/改进的系统需要做什么。
  • 将“什么”转换为“如何进行转换”。
  • 执行产品保证活动,以获得对项目进展的额外洞察。
  • 使用构建的系统,分析反馈,决定下一步做什么。

我们用两个例子来说明这个基本的转换点:(1)现成的软件和(2)软件维护(即生命周期阶段的重新审视)。这些例子提供了我们对软件系统开发的理解。当我们在本书中处理项目规划过程时,需要这种洞察力来阐明它的范围。

示例1—现成软件

我们的第一个例子是关于一个企业或组织决定淘汰打字机,引进带有文字处理软件的个人电脑。在这里,办公室正在实现从人工系统到自动化系统的过渡。在这一点上,你们中的一些人说,“这不是软件系统开发!这只是一个简单的设备采购练习。”

首先,考虑文字处理供应商是如何开发文字处理软件的。一个典型的场景是,供应商的营销组织评估市场,以确定用户社区在文字处理包中想要什么。该营销组织是供应商产品开发组织的代理客户(即代理买方/用户)。开发组织,大概是与营销组织合作,将供应商的“什么”转化为“如何”。在这里,诸如用户界面的性质(例如,下拉菜单)之类的东西就成形了。然后,产品开发组织构建如何和什么来生产文字处理产品。在发布产品进行销售之前,供应商可能会对产品进行测试营销(通常称为“测试版测试”),以解决问题并完善特性。随后,供应商将产品发布到客户使用的地方进行销售。

现在,从实际客户购买设备和文字处理软件的角度来考虑问题。这种材料的购买大概不是在真空中进行的。客户组织中的某个人编制了设备和文字处理软件需要满足的能力(即需求)列表。在其他事情中,有人可能需要确定安装的系统是否满足要求。此外,一旦办公人员开始使用已安装的设备,新的需求可能会出现,而更多的现成软件应用程序可能会满足这些需求,也可能不会满足这些需求。

就我们的通用生命周期而言,我们说什么阶段对应于编译能力列表。通用生命周期的其他阶段呢?它们是如何进入画面的?通常,许多个人计算机软件包在使用前必须安装。安装通常包括选择各种选项组合。决定选择哪个选项取决于买家的需求。这些需求可能包括语法检查、同义词查找和外语拼写检查的需要。因此,通过比较需求和可用选项,买方选择满足这些要求所需的选项。这种选择活动可以被视为现成系统开发的“如何”阶段。

应该注意的是,可能还有其他因素控制该选项的选择,例如硬件限制(例如,可用内存、可用硬盘空间)。一旦完成这一选择,买方输入安装命令并构建文字处理系统,以使用这样开发的满足要求的文字处理器。由于检查安装是否正常运行通常是一个好主意,安装的系统应该移交给产品保证部门,以确定是否所有需要的功能都已正确安装。然后,文字处理系统可以交给企业/办公室用户进行培训和操作使用。

从前面的讨论来看,一般来说,使用非自带软件比打开热缩包装并将媒体弹出到硬件中要多得多。像刚才讨论的那些活动的计划可以使现成系统的开发相对免于痛苦。

关于这个现成系统开发例子的最后一个评论是:许多现成的购买经常演变为使用根据购买者的特定需求定制的软件(通过选择供应商提供的选项之外的方式)——通过修改供应商提供的软件或生产新软件。如果没有其他原因,规划这种不可避免的迁移可以节省更多的时间和金钱。此外,在最初购买时规划此类迁移会带来更大的好处。此外,该计划还需要解决如果供应商提供的软件不符合工作说明书中的要求会发生什么情况。

示例2—软件维护(即生命周期阶段回顾)

我们的第二个例子涉及一个企业或组织,它目前拥有一个自动化系统,并希望升级该系统以纳入新功能并修复潜在缺陷。在软件工程文献中,这种情况经常被称为“软件维护”在这本书里,我们选择将这种类型的项目包括在软件系统开发领域。换句话说,我们认为软件维护需要与新软件开发相同的活动和规程。

对于软件维护,什么阶段是(1)对新特性的需求的说明,(2)重申未满足的需求(即缺陷),以及(3)对现有需求的可能修改(即增强)。如何阶段是新特性设计的规范,修正设计以修正缺陷,以及增加设计以包含增强[2]开发阶段对应于从需求和设计规范开始的代码开发。

  1. 对于文档很少或没有文档的遗留系统,在为新特性指定设计之前,开发人员可能需要花时间检查现有的计算机代码,以了解代码是如何工作的。但是,由于现有的设计,设计选项可能会受到限制。

因此,在这本书里,软件系统开发涵盖了从购买现成软件到传统维护的所有领域。因此,根据图2-2,我们看到软件系统开发——无论它涉及(1)以前不存在的计算机代码的开发,(2)现成代码的购买,还是(3)现有代码的维护——都涉及图2-2所示的任务。因此,每个项目计划都需要在一定程度上包含这些任务。正如我们随后解释的那样,这些任务的特定特征是通用生命周期如何实例化的函数。

总结前面的讨论,关键项目规划原则如下:

项目计划中的任务是卖方对客户需求声明(如工作说明书)的“如何做”响应。这些任务只是陈述如何(1)开发每个生命周期阶段出现的产品,(2)管理该产品开发活动,(3)检查产品是否符合客户需求(即产品保证),以及(4)检查项目完成是否符合项目计划(即过程保证)。

图2-3以“表格”的形式展示了前面的项目规划原则。该图说明了由管理、开发和产品保证执行的任务可以发生在一个或多个生命周期阶段。此外,该图还显示变更控制委员会(CCB)为项目期间的任务完成情况审查提供了一个论坛。项目计划描述了销售团队与客户一起(迭代地)在客户从现有系统过渡到新的/升级的系统的生命周期中执行的任务。在项目过程中,无论项目最初计划得多好,实际发生的细节都与计划的不同。变更控制委员会(CCB)提供了一个论坛,讨论需要做什么来响应发生的变更。当决定下一步需要做什么时,项目计划会更新,以反映对确保项目成功需要做什么的精确理解。随着项目的展开,更新项目计划对项目的成功至关重要。更新后的计划为卖方提供了确保开发有利可图的手段。在许多情况下,更新的计划为客户提供了确保开发在预算范围内进行的方法。

图2-3通用软件系统开发生命周期为识别管理、开发和产品保证任务提供了一个起点。

生命周期概念的另一个方面需要强调。生命周期阶段是可视化一组相关软件系统开发活动的概念性方法。在实际的软件项目中,这些活动通常不局限于特定的时间间隔(即使在项目规划中,它们通常被分配到特定的时间,例如,项目的前两个月)。回顾清楚地表明,例如,什么活动可以在整个项目的不同时间间隔内执行。因此,在一个真实的软件项目中,什么、如何、构建和使用活动将会相互穿插。

此外,在项目中的任何给定点,项目团队的一些成员可能正在做,例如,如何工作,而其他成员可能正在做什么工作。因此,一个项目可能同时处于多个生命周期阶段。尽管我们将生命周期概念表示为一系列的阶段,但这种相关项目活动的顺序通常

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[261121],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。