




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程一级学科硕士研究生学位课程软件过程改进河海大学计算机与信息学院第三讲个人/小组软件过程 PSP/TSPTSP简介TSP小组角色TSP小组软件过程PSP/TSP与CMMI目 录TSP发展史为了系统地解决软件项目管理问题,美国国防部于1984年在卡耐基大学建立了软件工程研究所:1986年开始研究并于1991年提出能力成熟度模型CMM1989年开始研究并于1994年提出个体软件过程PSP1994年开始研究并于1998年在过程工程年会上第一次介绍了TSP草案,于1999年发表了TSP;使软件过程框架形成一个包含CMM、PSP和TSP三者的严密的整体。CMM、TSP和PSP的关系TSP的目标 创
2、建具有自我管理能力的群组; 管理人员要善于引导和激励群组的全体成员使他们能发挥自己的最高水平; 采用CMM来进行软件过程的改革,为处于高成熟度的软件组织的过程改进提供指导、积极培训人才。TSP基于四条基本原理 应该遵循一个确定的、可重复的过程并迅速获得反馈,这样才能使学习和改革最有成效; 一个群组是否高效,是由明确的目标、有效的工作环境、有能力的教练和积极的领导等四方面因素的综合作用所确定的,因此,应在这四个方面同时努力,而不能偏废其中任何一个方面;TSP基于四条基本原理 应注意及时总结经验教训,当成员在项目中面临各种各样的实际问题并寻求有效的解决问题方案时,就会更深刻地体会到TSP的威力;
3、应注意借鉴前人和他人的经验,在已经可资利用的工程、科学和教学法经验的基础上来指导过程改进。TSP过程的7条原则 1、提供一个简单的框架 2、把产品的开发分为多个周期 3、建立标准的评估机制; 4、对小组和组员有准确的评价; 5、采用针对角色和小组的评估; 6、开发过程中强调纪律性; 7、有人提供关于小组协同工作问题的指导;TSP实施的条件需要有高层主管和各级经理的支持,以取得必要的资源。整个软件开发小组至少应达到CMM的第二级(已管理级) 。全体软件开发人员必须经过PSP的培训,并有按TSP工作的愿望和热情。开发小组成员应在2到20个人之间。经验表明,48个人的小组工作效率最高。TSP管理的六
4、项原则 在实施小组软件过程TSP的过程中,应该自始至终贯彻集体管理与自我管理相结合的原则: (1)计划工作的原则 (2)实事求是的原则 (3)动态监控的原则 (4)自我管理的原则 (5)集体管理的原则 (6)独立负责的原则 计划工作的原则 在每一阶段开始时要制定工作计划、规定明确的目标;在TSP的21个表格中与计划相关的表格有4个TSP管理的六项原则 实事求是的原则 目标不应过高也不应过低,而应实事求是,在检查计划时如果发现未能完成或者已经超越规定的目标,应分析原因,并根据实际情况对原有计划做必要的修改; 动态监控的原则 一方面应定期追踪项目进展状态并向有关人员汇报,另一方面应经常评审自己是否
5、按PSP原理进行工作;TSP管理的六项原则 自我管理的原则 开发小组成员如发现过程不合适,应主动、及时地进行改进,以保证始终用高质量的过程来生产高质量的软件,任何消极埋怨或坐视等待的态度都是不对的; 集体管理的原则 项目开发小组的全体成员都要积极参加和关心小组的工作规划、进展追踪和决策制定等项工作;TSP管理的六项原则 独立负责的原则按TSP原理进行管理,每个成员都要担任一个角色;TSP管理的六项原则 独立负责的原则在TSP的实践过程中,TSP建议在一个软件开发小组内把管理的角色分成客户界面、设计方案、实现技术、工作规划、软件过程、产品质量、工程支持以及产品测试等八类;如果小组成员的数目较少,
6、则可将其中的某些角色合并,如果小组成员的数目较多,则可将其中的某些角色拆分。总之,每个成员都要独立担当一个角色。TSP的过程 当前版本的TSP使用23个过程指南、21个数据表格和3个标准。在这些过程指南中定义了173个启动和开发步骤TSP过程质量度量 软件开发小组按小组软件过程TSP进行生产、维护软件或提供服务,其质量可用两组元素来表达:一组元素用以度量开发小组的素质,称之为开发小组素质度量元;另一组用以度量软件过程的质量,称之为软件过程质量度量元。 无论开发小组的素质,还是软件过程的质量,都可用一个等五边形来表示。其中每一个基本度量元是该等五边形的一个顶。 基本度量元的实际度量结果,落在其顶
7、点与等五边形中心的连线上。其取值可以根据事先给定的定义来确定。 在应用TSP时,可以通过对必要数据的采集,项目组在进入集成和系统测试之前能够初步确定模块的质量。TSP过程质量度量 开发小组素质的基本度量元:所编文档的页数;所编代码的行数;花费在各个开发阶段或花费在各个开发任务上的时间(以分为度量单位);在各个开发阶段中注入和改正的缺陷数目;在各个阶段对最终产品增加的价值。TSP过程质量度量 软件过程质量的基本度量元:设计工作量应大于编码工作量;设计评查工作量至少应占一半以上的设计工作量代码评审工作量应占一半以上的代码编制工作量每千行源程序在编译阶段发现的差错不应超过10个每千行源程序在测试阶段
8、发现的差错不应超过5个TSP过程质量度量TSP过程质量度量TSP简介TSP小组角色TSP小组软件过程PSP/TSP与CMMI目 录TSP小组角色 小组领导 开发经理 计划经理 质量/生产经理 技术支持经理TSP小组角色 每一个角色都描述四种特征小组角色的目标(每个目标都可度量);对小组角色有帮助的技能和能力;小组角色的主要活动;小组角色在工程中的活动; 小组领导的目标 建立并维持一个有效的小组;督查所有小组成员在做工程时努力工作;解决所有小组成员给你带来的问题;使领导全面了解小组的进展情况;作为小组会议推动者有效地工作;TSP小组角色小组领导 小组领导的目标度量建立并维持一个有效的小组: 度量
9、1:小组工作与成本、日程和质量目标进行对照 度量2:PEER表中对整个小组有效性的评价 度量3:PEER表中对小组领导全部贡献的评价 度量4:小组成员的PEER表中对小组领导角色做得如何的评价TSP小组角色小组领导 小组领导的目标度量督查所有小组成员在做工程时努力工作; 度量1:所有小组成员工作了他们承诺的小时数 度量2:所有小组成员实现了他们获得价值的承诺 度量3:所有小组成员遵循TSP过程,记录了所有数据,完成了所有要求的表格。TSP小组角色小组领导 小组领导的目标度量解决所有小组成员给你带来的问题 度量1:小组成员的PEER表里对小组领导角色有用性和技术支持的数字评价;使领导全面了解小组
10、的进展情况 度量1:每星期给领导提供一个准确完整的工程情况报告; 度量2:保证领导及时知晓工程情况; TSP小组角色小组领导 小组领导的目标度量作为小组会议推动者有效地工作 度量1:小组的PEER表对工程的评价就是把工程看作是一种有回顾的经历TSP小组角色小组领导 对小组领导有帮助的技能和能力有拥护者的领导者(三个先决条件) (1)对你要做的事情你有一个构想;(2)动员整个小组去实现你的构想;(3)你有责任帮助你的小组完成你的构想;领导者需要的特性;领导者客服困难;领导者处理人际关系;TSP小组角色小组领导 小组领导的八项主要活动(职责):动员小组成员执行他们的任务每周开始时召开每周的小组会议
11、每周报告小组情况帮助小组分配任务和解决问题在所有小组会议上充当促进者的记时员保留工程笔记本领导小组制定开发周期报告充当开发工程师TSP小组角色小组领导 小组领导在工程中活动:项目启动开发策略、布局控制开发计划、质量计划需求陈述、制定SRS、系统测试计划设计细节、整合计划细节设计、单元测试计划、测试开发、实现、编译、代码检查、单元测试测试开发、创建、整合、系统测试、用户文档计划周期报告、周期报告、准备同事间评价数据报告、每周会议、领导报告、任务和问题、工程笔记本TSP小组角色小组领导 开发经理的目标和标准目标1:生产一种极好的产品 标准1.1:小组已生产出一种有用的文档齐全的,并且满足基本要求的
12、产品 标准1.2:要求可以从需求说明追溯到SRS、SDS及最后实现; 标准1.3:产品设计是文档齐全的并且满足小组的设计标准 标准1.4:实现完全按设计进行 标准1.5:产品满足所有的质量标准 标准1.6:产品实现了它的功能和操作目标TSP小组角色开发经理 开发经理的目标和标准目标2:充分利用小组成员的能力和才干标准2.1:小组成员对开发经理这个角色的担任者干得如何的PEER评价; 标准2.2:小组成员对开发经理这个角色的担任者的有用性和支持的PEER评价标准2.3:小组成员对产品质量的PEER评价TSP小组角色开发经理 对开发经理最有帮助的特征:喜欢创建东西要成为一个软件工程师并且需要有领导
13、设计和开发工程的经历是一个有能力的设计者并且相信你能领导一个设计小组一般来说熟悉各种设计方法你愿意听取其他人的意见并且客观上和逻辑上把他们的设计方法与你的相比TSP小组角色开发经理 开发经理的主要活动(职责):领导小组制定开发策略领导小组给要生产的产品制定最初的大小和实际估计领导软件需求细节的开发领导小组生产高层次的设计领导小组生产软件设计细节领导小组实现这个产品领导小组生产出建立、集成和系统测试计划领导小组生产测试材料并进行测试领导小组生产产品的用户文档参与生产开发周期报告充当开发工程师TSP小组角色开发经理 计划经理的目标:为小组和每个小组成员制定出一个完整的精密的正确的计划每周准确地报告
14、小组的工作情况TSP小组角色计划经理 计划经理的四种有用技能和才干:有一个逻辑的、和有条理的头脑并且当你有一个已定义的工作时,你工作时才会感觉到最舒适。尽管你不必总是制定计划,但你尽可能地制定出你的工作计划你对过程数据感兴趣并且期望输入你的结果以便你能清楚地明白进行到哪个地步。你有超期于计划、落后于计划?为什么计划会出错?计划怎样才能做得更好你认为计划很重要并且督查小组同事们追究和检测他们的工作;TSP小组角色计划经理 计划经理的六项主要活动:领导小组制定下一个开发周期的任务计划领导小组制定下一个开发周期的日程表领导小组制定平衡的小组计划跟踪小组按照计划进行的进展情况参与产生开发周期报告充当一
15、个工程师TSP小组角色计划经理 领导小组制定平衡的小组计划:是计划过程中最重要的步骤之一;最成功的方法是要求全组参与;常常发现一些任务不得不分配给哪些 不是最适合的人来做。然而通常那些最适合做这些任务的人也有着最重要的工作负担;重要的是要明白许多人比他们自认为的要更能干一些。如果你冒险分配给他们更难的任务,他们常常会提高自己进入挑战从而令人惊讶的把工作做好。TSP小组角色计划经理 质量/生产经理的目标:小组成员正确地报道和合理地使用TSP数据小组忠实地遵循TSP的程度小组的所有的检查活动被合理地调整和报告所有的小组会议被正确的记录、报告记录在工程笔记本中TSP小组角色质量/生产经理 对质量/生
16、产经理最有帮助的特性:关心软件质量对过程和度量标准感兴趣有检查和复核方法的经验愿意并能对其他人的工作进行建设性的个性意见,而不引起其他人的反抗TSP小组角色质量/生产经理 质量/生产经理的九项主要活动:领导组员制定和遵循质量计划将质量问题及时通报给小组领导和领导领导小组定义和文档化它的过程并且维持对过程进行的改进过程建立和维护小组开发标准在提交给CCB(配置控制委员会)之前检查和批准所有产品;充当小组检查调节员充当小组会议记录员参与制定本开发周期报告充当一个开发工程师TSP小组角色质量/生产经理 技术支持经理的目标:保证小组有合适的工具和方法来支持它的工作;不存在对产品原型的未经许可的修改;小
17、组的所有的风险和问题被记录在风险跟踪系统中,并且每星期都报告;小组实现了开发周期的复用目标TSP小组角色技术经理 对技术经理有帮助的技能和能力:对工具和方法感兴趣是一个有能力的计算机用户,并且你感到你在小组支持需要方面帮助小组有各种支持工具和系统的工作经验你对很可能在此工程中使用的工具熟悉。TSP小组角色技术经理 技术支持经理的七项主要活动:领导小组决定其支持的需要和获得需要的工具和设备主持配置控制委员会,管理更换控制管理配置管理系统维护系统词汇表维护小组的问题和风险跟踪系统充当小组复用的提倡者参与制作本开发周期的报告TSP小组角色技术经理TSP简介TSP小组角色TSP小组软件过程PSP/TS
18、P与CMMI目 录TSP简化软件过程 1、启动过程:TSP的工程是从一个启动步骤开始的。建立软件开发小组决定小组成员的角色建立工作原则确立小组目标和个人目标确立产品目标TSP软件过程启动过程 建立软件开发小组建立小组人员信息INFO表格为人员分配角色明确角色职责TSP软件过程启动过程TSP软件过程启动过程TSP软件过程启动过程 确立小组目标:三个基本目标生产出一个优质的产品运作一个高效率的、管理良好的工程按时完成TSP软件过程启动过程 如何度量小组目标:生产出一个优质的产品评估1.1:在第一次编译之前发现的缺陷的百分比80%;评估1.2:在系统测试中发现缺陷的数目:0评估1.3:已完成的工程包
19、括的需求功能:100%运作一个高效率的、管理良好的工程评估2.1:产品大小估计的误差:20%评估2.2:开发时间估计的误差:20%TSP软件过程启动过程 如何度量小组目标:运作一个高效率的、管理良好的工程 评估2.3:被记录下来并被放进项目手册的数据百分比:100%按时完成评估3.1:提前或推迟完成整个开发周期的天数:3评估1.2:所有贡献的角色互评的平均值:3TSP软件过程启动过程 小组成员目标:进行始终如一的有纪律的个人工作。 评估2.1:个人的数据被记录下来并放进项目手册的百分数:100% 评估2.2:完成了个人“表格周”的百分数:100% 针对这个目标,必须跟踪个人工作的时间,大小和缺
20、点,保证这些数据被适当地记录在TSP表格中。在“表格周”的使用中,还必须在每周例会上报告你在这个计划中的进度。TSP软件过程启动过程 小组成员目标:计划和跟踪你的个人工作。 评估3.1:个人的数据记录进SUMP和SUMQ表格的百分数:100% 评估3.2:在TASK表格中有完整的计划和实际数据的工程任务的百分数:100% 为达到这个目标,必须为所有大的工作建立个人计划,并且按照这些计划来跟踪进度。这要求你在每一个开发周期都完成一份个人任务计划和日常计划表格,并按计划跟踪每周取得的进度TSP软件过程启动过程 小组成员目标:生产出优质的产品 评估4.1:在第一次编译前发现缺陷的平均百分数:70%
21、评估4.2:在编译中发现缺陷的密度:10/KLOC 评估4.3:在单元测试中发现缺陷的密度:5/KLOC 评估4.4:在单元测试后发现缺陷的密度:0TSP软件过程启动过程 2、开发策略设计一个进行工作的策略创立一个概念上的产品设计计划对产品规模和开发时间进行初步的估计 SMART策略表格描述了TSP策略过程的步骤TSP软件过程开发策略 概念性的设计要完成一个概念性的设计,要完成四个问题基于我目前的知识,我该如何开发这个产品我开发这个产品所需要的基本组成部分是什么这些组成部分都应该有什么样的功能这些组成部分应该有多大TSP软件过程开发策略 规模估计分解可能的功能和组成元素考虑每个程序元素,判断可
22、能需要多少新的或改变的LOC。把这个估计记录在策略表格上。在每一个后续的开发周期中,重新评价策略和规模、时间的估计。你可以在周期1中学到很多东西,这样对周期2和周期3的估计就会更加准确。TSP软件过程开发策略 进行初步时间估计使用预计的程序大小和每小时的LOC速度来估计开发每个功能大约需要多少时间直到你有了更好的数据之前,你都要使用你的PSP经验。TSP软件过程开发策略 风险管理可能的风险如下:你可能遇到一种或更多的、不会设计的功能你可能遇到系统支持问题而延误工作产品缺陷太大,测试时间太长你无法控制产品或改变产品,在你已经开发过的程序上浪费时间你的小组没法有效率地一起工作TSP软件过程开发策略
23、 确定配置管理计划如果小组不使用适当的配置管理计划,他们就经常无法知道哪个模块是被确定、增强或是测试过的;他们会开发出功能错误或是缺少功能的产品来,而且他们不知道哪些测试正在进行,哪些缺陷已被确定。时间因这些问题被浪费,不得不重新整理你已经完成了的工作。TSP软件过程开发策略 3、开发计划计划是所有活动的开始计划使工作有序计划有目标可循计划是状态追踪管理的基础计划是度量的比较基线计划是过程改进的基础TSP软件过程开发计划 TSP计划过程TSP计划过程包括9个活动步骤和6个表格,每一个步骤要做的工作都比较简单;START策略表格SUMS规模小结表格TSAK任务计划表格SCHEDULE日常计划表格
24、SUMQ质量计划表格SUMP计划小结表格TSP软件过程开发计划TSP软件过程开发计划 平衡的计划一个导致日常问题的基本原因就是不平衡的工作负担,有的工程师的任务比其他人要重,少数负担过重的工程师就会延误全组的进度;如果工程师们可以用适当的顺序在同一时间完成各自的工作,那么这个计划就是平衡的;如果计划是平衡的,那么就没有人需要等候其他人,每个人也都得到充分的利用。TSP软件过程开发计划 跟踪计划过程TSP基本的工程跟踪措施是使用计划价值(PV)和获得价值(EV) 计划价值PV:计划每项工作在总工作中所占的百分比。(计划时间/计划累计时间) 获得价值EV:已完成任务的所有PV值之和。 一个任务的价
25、值只有在这个任务被完全完成后才能得到TSP软件过程开发计划 完成未计划的任务为管理和杂务工作取得EV,建议在总工程计划时间里留出5%-10%的余量,以备不时之需。可以在计划中每周插入2个小时的管理和杂务工作时间。TSP软件过程开发计划 质量计划质量计划(SUMQ表格)给出了系统中每一个模块的质量情况。主要质量属性: -主要比率 -复核与检查比率 -无缺陷比率 -缺陷引入比率 -缺陷数/页 -缺陷除去比率 -缺陷数/KLOC -阶段成品率 -缺陷比率 -过程成品率 -开发时间比率 TSP软件过程开发计划 4、TSP需求过程需求是什么需要它的原因是什么需求的变化需求过程的难点需求过程的步骤TSP软
26、件过程需求过程 需求导出的主要步骤评估系统可行性理解结构问题确定系统的风险承担者记录需求来源确定系统的功能评估商业问题定义区域限制记录需求的理论解释将不好理解的需求原型化定义使用界面TSP软件过程需求过程 5、TSP设计过程任何设计方法几乎可以肯定在将来会被一些更好的方法取代,所以TSP不强调专门的设计方法。而是主要讲述设计原则和进行设计的过程。TSP软件过程设计过程 总体产品结构首先要产生一个总体的概念设计。确定部件及他们的功能,以及功能之间的关联。可以使用流程图、事件等方法进行制作设计;使用类似于定义策略时使用的一个可跟踪表来把功能分配给不同的部件TSP软件过程设计过程 设计任务的分配把工
27、作分为几个部分。在小组领导人的帮助下,小组把这些部分分配给小组成员,并得到他们何时完后各自部分的承诺。分配的关键性问题是确定谁有必要的设计技能,实用知识和为详细说明部件可获得时间。TSP软件过程设计过程 集成测试计划制作设计规范时,制作集成测试计划也是很重要的。原因在于集成测试是要检验系统部件的所有界面。制作集成测试计划时,必须复核所有的界面并设计出一种测试方法。在定义这些测试时,你可能会发现许多在复查时错过的疏忽和错误。为确保所有的界面被适当地测试,检查测试计划是个好主意。TSP软件过程设计过程 6、TSP实现过程TSP软件过程实现过程 7、集成和系统测试测试原则测试策略测试计划测试的度量和
28、追踪隐含缺陷的模块隐含缺陷分析制作用户文档时要考虑的东西TSP软件过程集成和系统测试 测试原则TSP中测试的目的是为了评估产品,而不是为了修正他尽管你的确应该修正测试中发现的缺陷,但在测试阶段以前你就应该已经发现和修正了几乎全部的缺陷当对质量差的产品进行测试时,测试时间会急剧变长,而且你可能发现不了全部的剩余缺陷;靠基于测试的质量策略让系统相当可靠地工作要用去大量的时间;一个产品的质量是在它被开发时决定的。TSP软件过程集成和系统测试 测试策略TSP中目标就是对优质程序进行测试,然后,在测试中验证这个产品是否是高质量的;主要的TSP测试活动:使用已开发的单元测试过的部分来建立系统集成测试这个系统来验证它是否被适当地建立起来,所有的部分是否都存在,以及他们是否能共同工作;系统测试这个产品来确认他满足了系统需求TSP软件过程集成和系统测试 测试计划因为几乎很少有足够的时间来进行你所能想象得到的所有测试,因此需要一个测试计划。完整的测试计划应描述你计划运行什么测试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论