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