软件工程与开发技术(西电第二版)第23章-小组软件过程-54

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第23章小组软件过程第23章小组软件过程23.1TSP的由来与发展23.2工程协作与工程小组23.3小组协作的条件23.4保证小组工作的有效性23.5TSP的目标与与工作23.6启动一个TSP小组23.7基于TSP的协同工作23.8TSP的质量管理23.9TSP小结第23章小组软件过程23.1TSP的由来与发展为了系统地解决软件项目管理问题,美国国防部于1984年在Carnegie-Mellon大学建立了软件工程研究所,1986年开始研究并于1991年提出能力成熟度模型CMM,1989年开始研究并于1994年提出个体软件过程PSP,1994年开始研究并于1998年在CMU/SEI召开的过程工程年会上第一次介绍了TSP草案,于1999年发表了有关TSP的一本书,使软件过程框架形成一个包含CMM、PSP和TSP三者的严密整体。第23章小组软件过程开发TSP的最初的原意是提供一个环境,为受过PSP培训的工程师使用规范方法提供支持。PSP要求工程师们使用统一的规范化工作过程。但是,由于环境的原因,这些工作过程并不总是能够得到坚持。其原因有多种:第一,管理者没有接受过培训,不懂得PSP或者不欣赏它的好处,他们经常反对他们的工程师们在制定计划、进行个人过程复审或收集和分析数据上花费时间;第二,即使有了支持和指导,规范化的工作做起来也是很困难的,没有TSP提供的这些支持和帮助,长时间维持不变的规范工作几乎是不可能的。TSP最初的实际目的就是着眼于解决这些问题。第23章小组软件过程1996年,WattsHumphrey建立了TSP过程的最早的版本。目的是为了提供一个规范的操作过程,帮助工程技术人员持续地做高质量的工作。最原始的TSP过程被称为TSP0,这一过程十分简单。他拿两个工作组来做实验,然后看结果来评价他们的工作情况。第一个TSP0过程是为经过PSP培训的小组设计的,除了小组的直接领导外,小组没有受过其他的培训和指导。根据这两个最初的TSP小组的结果分析,实施TSP能够明显地帮助工程技术人员进行曾接受过训练的工作,但是需要更多的指导和支持;另外,管理者要全面地支持TSP过程。在此基础上,一个增强的过程版本TSP1.0很快就被其他的小组试用,在试用过程中,搜集了更多有关进一步提升TSP的必需的过程信息。第23章小组软件过程在接下来的3年中,Humphery开发了另外9种TSP版本。他最初的目标是想了解一下针对通用目标的小组过程能否帮助软件项目工程组更好地完成工作。取得肯定的结论之后,他将研究方向转为简化这个过程,减少它的规模并提供更有效和有用的支持和指导。结果最近的TSP版本比TSP1.0(1996年底)和TSP2.0(1997年初)版本明显小了。越来越多的工程组已经使用了TSP过程。TSP中的一些基本方法已经能够被用来协助工程技术人员和管理人员建立有效的小组,使他们能更好地按照这个过程开展工作,实施定期评估,在必要时重新计划工程。不同的原型支持工具也已经被发展用来简化工程师必须要做的计划、数据采集与存储、数据分析和工程报告活动。第23章小组软件过程第23章小组软件过程第23章小组软件过程23.3小组协作的条件如前所述,一个小组是具有共同目标的一群人,他们必须为这个目标共同努力,必须具有一个公共的工作框架。一般来说:(1)一个小组最少要由两个人组成。(2)小组成员要为一个共同的目标工作。(3)每个人都被分配一定的角色。(4)小组使命的完成依赖于小组全体成员的努力。第23章小组软件过程关于小组的定义的四个部分都是非常重要的。例如,很明显一个小组必须要多于一个人,并且一个共同的目标也是应该被接受的。然而为什么每个成员必须要有自己的角色这一点好像是不明显的。角色提供了所有权和隶属感觉,它们在怎样完成自身的工作方面帮助、指导小组成员;它们避免冲突、重复的工作和无效的努力;它们以特定的工作环境为基础,按照一定的规程分配不同任务给工作成员。这种规程对于形成一个既有纪律又具有活力的小组来说是一个基本的要求。第23章小组软件过程相互依赖也是小组的一个基本的要素。也就是说,每一个成员的成功都在某种程度上依赖于其他成员的工作的完成情况。相互依赖可以加快工作的进度,因为小组成员之间可以相互帮助。例如,设计小组提供的产品设计一般来说要比单独一个人设计的产品好。这是因为小组成员比一个单独的个人有更广泛的技术和经验。人类本身就是一种社会动物,几乎没有人喜欢完全一个人工作,最起码不喜欢长时间的单独工作。小组的工作会因社会的支持而得到增强。因为社会固有的小组特性,每个人努力完成他自己的任务,余下的就由其他人来完成。既然小组成员之间相互支持、相互依赖,小组就不只是小组中单个个人的简单叠加。第23章小组软件过程23.4保证小组工作的有效性为了使小组有效,小组成员必须相当的熟练,而且能够团结在一起工作。有效的小组具有一些共同的特点:(1)小组成员接受过必要的培训。(2)小组的目标是重要的、被明确定义的、可视的和可实现的。(3)小组的资源对于它们的工作来说是足够的。(4)小组成员乐于为实现小组的目标尽力。(5)小组成员之间相互合作、相互支持。(6)所有小组成员遵守小组的规程。第23章小组软件过程一个有效的小组的另一个特点是小组必须具有革新能力。革新不只是想出一个聪明的主意,它还需要创造力和许多艰苦的工作。每一个工程任务都是革新努力的一部分。富有革新能力的小组必须有熟练的、有能力的、具有高度创新精神的成员。他们必须是具有创造性的、能适应多种环境的、自觉遵守规程的。他们必须努力去执行计划,保障进度;当需要对工作计划进行适当的调整时,他们必须分析计划变更带来的诸多影响,控制工程的成本和进度。第23章小组软件过程要创建一个富有创新精神的和有效的工程组,就必须在组内营造一个相互信任和相互支持的工作环境。工程组是由具有各种杰出能力的人组成的,他们能快速地察觉到信任的缺乏。当管理人员不信任他们的工作小组,制定不符合实际的计划或者不努力去达到这种计划目标时,他的工程技术人员将能感受到。而当工程技术人员感到他们没有被信任和尊敬时,他们经常会觉得受到敌视和被操纵。这些工程师将不再愿意对组织负责,容易在他们的工作中遭受失败。为小组制定合理的目标是保持旺盛斗志所必须的。当人们面对重要而有意义的工作时,他们一般工作得很努力。对于管理者来说,给他们的工作组制定具有挑战性的目标是适当的。但是当工作组对此有强烈的反映时,管理者应该愿意与他们商谈一个他们认为能接受的更现实的目标。几乎没有人愿意为一个似乎不可能的进度勤奋工作。为了能更有效的工作,必须让工作小组认为他们的工作是重要的,而且工作进度是可以按期完成的。第23章小组软件过程23.5TSP的目标与工作23.5.1TSP的目标TSP的设计目的就是建立以有效工作为特点的环境。TSP建立这种工作环境的原则如下:(1)小组成员建立一个共同的目标和定义相应的角色,明确角色职责和应当具备的能力。(2)工作小组制定一个大家都同意的发展战略。(3)小组成员为他们的工作定义一个统一的工作过程。(4)所有的成员参与计划的制定,并且每一个成员明确地知道他们自己承担的角色。第23章小组软件过程(5)小组能够和管理层讨论计划。(6)小组成员按照事先制定的计划工作。(7)小组成员自由地、经常地进行交流。(8)小组形成一个富有凝聚力的整体:成员相互合作,为实现一个共同的目标共同努力。(9)工程师知道他们的工作状态,从他们的工作中得到反馈,并有一个协调、支持他们工作的领导层。第23章小组软件过程23.5.2小组操作过程要完成一项规范的工作,工程师需要使用Deming称为“操作过程”的概念。这些过程定义了工作应当怎样去做,并将工作状况记录在过程记录中。虽然有些定义不够完善的软件工程过程也有很多复杂的文档记录,但是操作过程更加贴近实际。设计小组的具体操作过程是小组成员工作的一部分。TSP提供了一个定义好的标准的操作过程,这个过程具体到建立一个有效的工作环境的每一步。它指出了建立一个有效小组的步骤,并为工程师和管理人员提供工作向导。如果没有具体的向导,工程师就必须自己设计出所有的有关小组建立和工作的细节。由于定义这些细节需要相当的技术和努力,很少有工程师有足够的经验和充足的时间去设计这些必需的细节,会造成时间浪费并且经常导致效率低下。第23章小组软件过程有一个定义好的过程和遵从这个过程的计划,工程师能更加有效地开展工作。如果没有这样一个过程,就必须在每一步都停下来去考虑下一步是什么和怎样去做。大部分工程过程是相当复杂的,它包括许多步骤。没有具体的向导,工程师可能会漏掉一些步骤,按不正确的顺序执行,或者浪费时间去考虑下一步该怎么做。TSP提供一些操作过程,用于组织工程小组、形成良好的团体氛围以及指导他们开展工作。第23章小组软件过程如图23.1所示,TSP是可以帮助项目小组高效地开发和维护软件以改进系统的方法之一。软件能力成熟度模型(CMM)为高效地进行工程工作提供了全面的改善框架。个人软件过程提供了一些工程师们使用的定义、计划和衡量过程时所遵循的工程原则。TSP将开发小组的开发原则同PSP、CMM方法结合起来,以建立高效的团队。实质上,CMM和PSP主要提供高效开发的关系与技巧,而TSP是在实际的工作中指导工程师的。第23章小组软件过程图23.1过程改进方法第23章小组软件过程23.5.3TSP流程TSP的主要成分如图23.2所示。在小组成员参加TSP团队以前,他们必须知道如何进行规范化的工作。进行个人软件过程的培训可以向工程师们提供使用TSP所必需的知识和技能。第23章小组软件过程图23.2TSP简图第23章小组软件过程PSP培训包括学习如何编制详细的工作计划,采集和使用过程数据,用获得的数据跟踪项目,度量和管理产品质量以及定义和使用可操作的工程过程。工程师必须在参与TSP团队构建或执行TSP过程以前接受有关这些技能的培训。如图23.3所示,TSP团队的工作呈现出阶段性的重新启动性。因为TSP遵循反复演进的开发策略,所以阶段性的重新启动是必须的。这样,每一个阶段或周期就可以根据上一个周期获得的度量数据、总结出来的知识与经验对下一阶段的工作进行更好的计划。重新启动同样要求工程师个人更新自己的详细工作计划。通常,这些计划仅仅在几个月内是精确的。在TSP启动的时候,团队要编制今后三、四个月的总体和详细计划。当团队成员完成一个项目阶段或工作周期的所有或大部分的工作后,他们将根据需要修订总体计划,并为以下三、四个月编制新的计划。这些工作是在TSP提供的重新启动过程的指导下进行的。第23章小组软件过程图23.3TSP的流程第23章小组软件过程23.6启动一个TSP小组TSP一般将一个软件项目的开发工作分为4个阶段。任何一个应用TSP的项目可以只包括其中的一个阶段,也可以包括几个连续的阶段。在项目开始之前,项目组应该执行启动过程,对整个任务进行全面的规划和组织。在每个阶段之前,项目组应该执行重启过程,对下一个阶段的任务进行规划。一般来说,如果项目组的成员经过了PSP的培训,项目组的启动过程约需4天时间,重启过程约需两天时间。此时,项目组同管理人员一起评审项目计划和分析关键风险。在项目已经启动之后,项目组应每周进行一次项目进展讨论会,另外还应及时向有关主管和客户报告项目的进展情况。第23章小组软件过程当前版本的TSP使用23个过程指南、14个数据表格和3个标准。在这些过程指南中定义了173个启动和开发步骤。每一个步骤都不复杂,但它们的描述都非常详细,以便开发人员能够清楚地知道下一步应该做什么,应该怎样去做。这些过程指南可用来指导项目组,以完成启动过程和一步步地完成整个项目。经过4天的项目启动过程之后,项目组应该产生以下结果:项目组的目标;项目组各成员的明确角色;过程开发计划;项目组的质量计划;全面的开发计划和进度计划;下一阶段每个成员的详细工作计划;项目的风险分析结果以及项目的状态报告。第23章小组软件过程在小组启动阶段,所有的小组成员必须制定他们的工程策略、过程和计划。小组启动完成以后,

1 / 81
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功