基于TSP项目管理系统论文正文.docx
《基于TSP项目管理系统论文正文.docx》由会员分享,可在线阅读,更多相关《基于TSP项目管理系统论文正文.docx(50页珍藏版)》请在冰豆网上搜索。
基于TSP项目管理系统论文正文
1引言
伴随着软件行业的发展和计算机的普及,许许多多的软件被开发出来服务于我们日常的生活以及工作。
每一款软件的诞生都需要经过严格的性能测试以确保它能为我们提供高效、安全的服务。
许多个人和企业都依赖于软件。
我们需要提前获得大型的、更复杂、更安全的软件系统。
但是不同的软件实践下,却可能无法实现这个目标。
团体软件过程(TSP)标示了这个需求。
个体软件过程提供了开发人员需要的知识和技能,来满足开发人员在实行团队软件过程(TSP)团队中工作的需要。
中国目前软件业的落后状况,实际已经不是技术本身的问题,而是科学管理的问题。
在这种多项目并发、技术含量高、变化速度快、资源有限的环境下,如何对企业、项目、资源实施科学的管理,加强团队能力,实现软件企业的生产规模化、规范化、国际化,是当前我国软件业面临的最大挑战。
随着计算机及网络技术的飞速发展,Internet/Intranet应用在全球范围内日益普及,当今社会正快速向管理化社会前进,从而使我们从繁杂的事务中解放出来,提高了我们的工作效率。
现今,软件控制着大多数商业、政府和军事系统。
工厂由软件来管理大多数高级商品由软件控制金融、集中管理和商业操作大部分由软件来操作.作为计算机应用的一部分,使用计算机对公司工作流程进行管理,拥有不可代替的好处。
例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
21世纪的今天,网络已经逐渐代替人类的工作和生活,所以开发这套基于TSP软件项目管理系统是社会发展的必然。
2TSP简介
TSP是由“软件质量之父”Wattss.Humphrey提出的一种采用广泛的团队过程。
TSP(TeamSoftwareProcess),为开发软件产品的开发团队提供指导,TSP的侧重于帮助开发团队改善其质量和生产率,以使其更好的满足成本及进度的目标。
近年来,越来越频繁的应用到软件领域,TSP采用了一套可操作规范来具体指导和规范项目组开发措施,从而解决了长期困扰软件开发的一系列问题,有助于团队更好的应对挑战。
于此同时,TSP与科学的软件项目管理也是不可分割的,软件项目管理已经是公认的软件开发企业的核心竞争之一,十分重要,因此管理过程中的项目定义问题,控制问题等等。
引起越来越多人的关注。
将TSP与软件项目管理相结合已经成为一种不可阻挡的趋势。
本论文阐述了软件项目管理的目的和面临的问题,分析总结出软件项目管理的原则及要素。
通过对各方面的探讨,设计出这个基于TSP软件项目管理系统。
此系统一方面团体软件过程(TSP)标示了各方面需求。
提供了开发人员需要的知识和技能,来满足开发人员在实行团队软件过程(TSP)团队中工作的需要。
另一方面,也将应用于软件团队开发管理,从而让人从繁杂的事物中解放出来,提高了工作效率,也节省了时间和资源。
规模的扩大导致开发人员增多,开发人员之间需要更密切的配合,管理的信息量和信息类型越来越大,工作流程越来越清晰,社会分工越来越细,原来传统上的人工处理方式和单机管理系统越来越来不能适应人事管理的需要,不能满足新形势下企业信息管理的需要。
所以一个健全的项目管理系统可使人们从繁忙的劳动中解脱出来,仅使用简单的操作便可及时、准确的获得需要的信息,提高了效率,同时也减少公司资源的浪费。
公司信息管理系统能更有效地分配宝贵的公司资源。
TeamSoftwareProcess,TSP对群组软件过程的定义、度量和改革提出了一整套原则、策略和方法,把CMM要求实施的管理与PSP要求开发人员具有的技巧结合起来,以按时交付高质量的软件,并把成本控制在预算的范围之内。
在TSP中,讲述了如何创建高效且具有自我管理能力的工程小组,工程人员如何才能成为合格的项目组成员,管理人员如何对群组提供指导和支持,如何保持良好的工程环境使项目组能充分发挥自己的水平等软件工程管理问题。
2.1TSP流程
TSP作为一个世界目前公认的软件三大体系之一,团队软件过程(TeamSoftwareProcess,TSP)对群组软件过程的定义、度量和改革提出了一整套原则、策略和方法,把开发人员具有的技巧结合起来,以按时交付高质量的软件,并把成本控制在预算的范围之内。
TSP与软件项目管理相结合已经成为一种不可阻挡的趋势。
通过对各方面的探讨,设计出这个基于TSP软件项目管理系统。
此流程一方面给团体软件过程(TSP)标示了各方面需求。
提供了开发人员需要的知识和技能,来满足开发人员在实行团队软件过程(TSP)团队中工作的需要。
另一方面,也将应用于软件团队开发管理,从而让人从繁杂的事物中解放出来,提高了工作效率,也节省了时间和资源。
在TSP中,讲述了如何创建高效且具有自我管理能力的工程小组,工程人员如何才能成为合格的项目组成员,管理人员如何对群组提供指导和支持,如何保持良好的工程环境使项目组能充分发挥自己的水平等软件工程管理问题。
为了更好达到这个目的,TSP一般将一个软件项目的开发工作分为6个阶段。
任何一个应用TSP的项目可以只包括其中的一个阶段,也可以包括几个连续的阶段。
在项目开始之前,项目组应该执行启动过程,对整个任务进行全面地规划和组织。
在每个阶段之前,项目组应该执行重启过程,对下一个阶段的任务进行规划:
图2-1TSP流程图
(1)启动过程:
组成小组并分配角色;
(2)开发策略和计划:
项目建议书、任务分派书、立项可行性分析;
(3)需求:
项目计划书和相关需求;
(4)系统设计:
项目计划书、需求说明书、需求规格说明书;
(5)编码实现:
系统功能概要设计、系统功能详细设计、规格说明细节;
(6)事后分析:
服务请求记录、用户联系单、常见问题。
2.1.1启动过程
TSP的工程是从一个启动步骤开始的,项目组的启动过程非常重要。
启动过程中,项目组同管理人员一起评审项目计划和分析关键风险。
在项目已经启动之后,项目组应每周进行一次项目进展讨论会,另外还应及时向有关主管和客户告项目的进展情况。
该过程主要分为三个方面:
图2-2小组人员信息输入过程图
(1)组成小组并分配角色;
(2)确定产品目标,建立工作准则;
(3)确定小组会议和报告时间。
2.1.2开发策略和计划过程
开发计划是所有活动的基础,合理的计划和策略使得工作有序,有目标可循,是状态追踪管理的基础同时也是度量的比较基线和过程改进的基础。
因此计划过程同样必不可少,其中做完成的概念性设计,在整个计划过程中都要使用这个概念性的设计。
同时,在策略阶段中,估计概念性设计每一个不用的部分的规模,确定在每个开发周期中完成哪些部分,并把这这些信息考虑进去。
如果发现有个别工程师完成任务的预计完成时间迟于你所希望的日期,这个阶段就把他们一些工作重新分配给别的小组成员。
分工合作,为下一步做好充分准备。
一般而言TSP计划过程包括3个步骤和1个图表(TASK任务计划结合SUMP计划小结):
(1)工作计划;
(2)日程安排计划;
(3)概念性计划。
图2-3TASK任务计划结合SUMP计划小结图
2.1.3需求过程
需求过程,即是为了软件项目开发定义一个需求。
软件需求规格说明书有时候对产品是什么提供清晰的和不含糊的说明。
一般而言其应该包括评估产品的明确标准以保证完成的产品有期望的功能。
但是大多数需求说明是模糊的、不准确的,因为需求每时每刻都在变化。
很难把握,但在创建一个产品之前,一定要准确地知道,期望该产品做什么。
在使用产品之前,用户常常不能确切地知道自己需要什么。
他们常以为自己知道,但实际上他们所知道的都只依据目前他们的工作所需,而采用新的系统通常会改变他们的工作方式。
他们了解得越多,就越有可能要求新的功能和特色。
因此,需求总是在不断变化,直到人为冻结需求。
这个过程至关重要也比较简单明了,主要就是做指导小组开发和检查需求,以及后期的需求更新两个方面:
(1)指导小组完成第一周期的开发和检查需求;
(2)指导小组完成后期周期的需求更新和检查。
2.1.4系统设计过程
任何设计方法几乎可以肯定在将来会被一些更好的方法取代,故TSP不强调任何专门的设计方法。
TSP主要讲述设计原则和进行设计的过程。
首先要产生一个总体的合适的设计。
确定部件部分,命名它们的功能,以及决定它们如何关联。
存在制作设计的许多方法。
你可以使用流程图、使用事件,或者其它方法。
但最后,一定要对总体结构、部件名称、在部件中分配产品取得一致意见。
把工作分为几个部分。
在小组领导人的帮助下,小组把这些部分分配给小组成员,并得到他们何时完成各自的部分的承诺。
分配的关键性问题是确定谁有必要的设计,能实用知识和为详细说明部件获得时间,指导小组软件设计规范开发和检查进行2个步骤的设计:
图2-4系统设计过程流程图
(1)指导小组第一周期的软件设计规范的开发和检查;
(2)指导小组后期周期的软件设计规范的开发和检查。
2.1.5编码实现过程
如果说前面的步骤都是肢体部分,那么编码实现过程就是大脑,控制着整个系统的正常运行。
开发人员根据自己负责模块的《模块任务描述单》、《模块设计说明书》,按照编码规范的要求,对模块进行编码实现,指导小组完成软件实现和检查软件产品,在编写完成每个模块后,开发人员必须对自己的代码进行必要的走查和自测,保证提交代码的质量。
词过程主要分为2个步骤:
图2-5编码实现过程图
(1)指导小组完成第一周期的软件产品实现和检查;
(2)指导小组完成后期周期的软件产品实现和检查。
2.1.6事后分析过程
事后分析过程的本质,就是重复地做同样的事情并期待着一个不同的结果。
如果我们不改变我们工作的方法,我们得继续做过去那样多的事。
事后分析提供了一种有序的方法能识别那些需要改进的地方,并作出需要的改变。
团队项目领导小组成员对数据进行评论小组领导领导整个小组来评价每个角色在任何可能的时候,要用实际的数据来证明结论。
收集一些必要的数据进行系统后期的维护需要,一般而言简要的分为四个部分:
(1)收集、分析和记录工程数据;
(2)评价小组和每个角色工作;
(3)确定改进后继周期过程的方法;
(4)写出周期报告。
2.2TSP简单原则
在实施团体软件过程TSP的过程中,应该自始至终贯彻集体管理与自我管理相结合的原则,TSP的创始人Humphrey建议在一个软件开发小组内把管理的角色分成客户界面、设计方案、实现技术、工作规划、软件过程、产品质量、工程支持以及产品测试等八类。
如果小组成员的数目较少,则可将其中的某些角色合并,如果小组成员的数目较多,则可将其中的某些角色拆分。
总之,每个成员都要独立担当一个角色。
具体地说,在实施过程中要把握住以下七项原则:
(1)提供一个简单的框架,每个人在其中各司其职;
(2)把产品的开发分为多个周期;
(3)建立标准的评估机制;
(4)对小组和组员有准确的评价;
(5)采用针对角色和小组的评估;
(6)开发过程中强调纪律性;
(7)有人提供关于小组协同工作的问题的指导。
3项目管理系统
从概念上讲,软件项目管理是根据管理科学的理论,结合软件产品开发的实际,保证工程化系统开发方法顺利实施的管理实践,为了使软件项目能够按照预定的成本、进度、质量顺利完成,从而对成本、人员、进度、质量、风险、文档等进行分析、管理和控制的一系列活动。
实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟。
3.1项目管理系统原则
软件项目管理的目的就是为了使软件项目能够按照预定的成本、进度、质量顺利完成。
决定一个软件项目实施成功与否,软件项目管理无疑起着举足轻重的作用,软件项目管理已经是公认的软件开发企业的核心竞争力之一。
其中软件项目的几条基本原则至关重要:
(1)平衡原则。
正视需求、资源、工期、质量这四个要素之间的平衡关系是软件用户、开发商、代理商成熟理智的表现。
(2)高效原则。
基于高效的原则,对项目的管理需要从几个方面来考虑:
要选择精英成员,目标要明确,范围要清楚,沟通要及时、充分,要在激励成员上下工夫。
(3)分解原则。
项目越大对项目组的管理人员、开发人员的要求越高,将大项目拆分成几个小项目,可以降低对项目管理人员的要求,减少管理风险,能够将项目管理的权力下放,充分调动人员的积极性。
(4)实时控制原则。
依靠一套规范的过程来保证实时监控项目的进度,实时控制确保项目经理能够及时发现问题、解决问题。
(5)分类管理原则。
项目经理需要根据项目的特点,制订不同的项目管理的方针政策。
(6)简单有效原则。
没有完美的管理,只有有效的管理,而项目经理往往试图堵住所有的漏洞,恰恰是这种理想,最后导致项目的失败。
(7)规模控制原则。
即要控制项目组的规模,“贵精而不贵多”,这是一个基本的原则,这和我们上面提到的高效原则、分解原则是相辅相成的。
(8)组织的知识积累原则。
有效的积累知识的方法是:
人员专业化培养,知识与载体分离。
3.2项目管理系统目的和问题
在项目的设计过程中,必须允许用户提出改变设计的要求。
但是同时一个项目又要有一定的“刚性”,要使设计的改变尽量少。
平衡这个矛盾需要非常好的设计艺术,而且每个项目的平衡点都是不一样的。
在项目进行过程中,团队需要直接与客户沟通,分析过程。
项目管理十分重要,但要真正实施起来,也决非易事。
实施项目管理过程要解决四个方面的问题:
(1)项目定义中的问题。
客户与软件企业之间具有很强的互动性,合理地定义客户需求,与客户充分沟通,共同进行充分挖掘,才能真正贴近客户的需求。
(2)项目组织实施中的问题。
软件行业是一个高智力密集型行业,项目组织实施过程中,还不可避免的存在着功能型部门与项目团队的冲突、知识员工的个性化与团队运行模式的冲突等,这也是项目实施过程中必须考虑的。
(3)项目控制中的问题。
软件在项目实施全过程中,企业需要与客户、合作伙伴进行充分沟通与交流,其中任何一个环节出现问题,都会影响到整个项目的进程。
另外,在软件项目管理中,常常会面临应用技术、业务需求等方面的变化这也增加了项目控制的难度。
(4)项目评价中的问题。
项目评价有两个方面,一是评价项目,由于软件项目客户需求难以定义清晰,导致项目范围模糊给评价项目带来困难;二是评价项目成员,各自具有较强的个性,渴望价值创造与自我实现,如何做到公正、客观、量化地评价员工的价值,也是软件项目管理的难点。
3.3软件项目需求和分析
软件项目管理系统中,与一般的想法相反,在运行一个项目的时候,最好的设计方法学并不是那种正式的方法。
多数设计方法学都是臃肿而不切实际的。
设计方法的本质应该是简单和整体的。
实际上,对于一个成功的设计方法,最关键的甚至可以说是与设计无关的东西,如果管理不当,即使你有最好的设计也有可能失败。
在设计方法中,最重要的一点是必须提供一个明确的需求和分析的过程,让自己知道是做什么怎么做。
要实现需求的确定和分析的准确,总得来说概括为以下几个要点
(1)不要在需求获取和分析过程中吝啬你的时间,对需求的明确可以减少你以后设计和开发的改动,提高你所开发软件的可用性。
你对它的轻视只可能换来对你的产品修改、计划延迟等方面的惩罚。
(2)要使尽各种办法,尽量多的获取客户的需求。
主要的方法包括:
仔细阅读合同标书和市场资料、与客户直接的谈话交流、让用户观看或使用原型界面提出意见。
另外不要忽略内部客户的一些合理需求如测试人员等。
(3)进行正规的需求管理。
如建立需求文档或使用需求管理数据库等。
在文档或数据库中要保留每个需求的详细描述及其来源,最好还能记录一些其他细节信息(如用户的一些原始描述等),另外别忘了确定每个需求的优先级。
(4)在设计前组织你的设计人员开会进行需求理解和讨论。
由于阅读文字性的信息容易造成一些误解和歧义,最好让需求制定者组织会议,给相关人员(如各子系统设计人员)讲解需求并进行设计讨论。
这样做有两个好处,一是避免设计与需求出现偏差。
软件项目团队管理
团队建设
输入:
1.项目人员
2.项目计划
3.人员配置管理计划
4.执行情况报告
5.外部反馈
措施:
1.团队建设活动
2.一般管理技能
3.奖励和承认系统
4.培训
输出:
1.团队效率改进
2.绩效评估输入
团队组织计划
输入:
1.组织界面
2.人员属性和分配
3.制约条件
方法和技术:
1.人力资源惯例
2.组织理论
3.项目分析
输出:
1.组织结构图
2.角色职责完成情况
3.人员配备管理计划
4.支持细节
团队人员获取
输入:
1.人员配置管理计划
2.人员库说明
3.招募规则
工具和技术:
1.谈判
2.预分配
3.采购
输出:
1.已分配的项目人
2.项目团队名录
图3-1程序流程图
4基于TSP软件项目管理
软件项目团队管理就是运用现代化的科学方法,对项目组织结构和项目全体参与人员进行管理,在项目团队中开展一系列科学规划、开发培训、合理调配、适当激励等方面的管理工作,使项目组织各方面人员的主观能动性得到充分发挥,以实现项目团队的目标。
4.1软件项目管理团队描述
一个团队中,一个好的设计方案不可能完全出自一个人的脑袋,它往往是经历多次讨论甚至争论、多次改进与融合而最终形成的一个有创造性的妥协产物。
但你要避免争论的过分激烈而导致的负面效果。
就必须在系统设计时想想你的用户将怎样使用你的软件工作。
很多时候设计人员会习惯性地从技术角度考虑系统地布局和划分,可这种技术上地合理有时可能跟使用上的合理是冲突的,所以此时考虑一下你的用户将降低你今后修改的风险。
因此在团建项目管理团队的描述中以下三个方面是必不可少的:
(1)团队组织计划。
确定、记录与分派项目角色、职责,并对请示汇报关系进行识别、分配和归档。
(2)团队人员获取。
获得项目所需的并被指派到项目的人力资源(个人或集体)。
(3)团队建设。
包括提高利害关系者作为个人做出贡献的能力,也包括提高项目团队作为集体发挥作用的能力。
个人的培养(管理能力与技术水平)是团队建设的基础。
团队的建设是项目实现其目标的关键。
4.2软件项目团队管理要素
(1)合理组织人力资源。
人是决定软件开发质量的最关键、最活跃又最难以控制的因素。
应注意以下几个原则:
理配备,各尽其才;落实责任,责权均衡;及时交流;养团队精神;提升道德水平和规范职业行为。
(2)开发规范化。
软件开发需要严格按照软件规范实施,从项目的用户需求分析、系统分析、编码、调试、测试、发布都需要一步一步完成,越是项目起步阶段,越是要注意按照规范进行。
(3)周密的计划。
所有资源和工作都是按照项目计划进行分配和执行的,管理人员依据项目计划跟踪和监督项目进展情况的,所以制定合理、准确、细致的项目计划是进行项目管理的基础。
有效的计划有利于增强项目组成员的紧迫感,减少相互等待时间。
(4)有效的控制。
项目控制包括进度控制、成本控制、质量控制、风险控制等方面,具体的控制措施包括:
周会,周报,里程碑报告,提交物审计,过程审计,配置审计,风险跟踪等。
(5)严格的测试。
软件测试是软件开发的重要环节,同时也是确保软件质量的重要方法和手段。
通过测试,证实软件产品的质量已获得,并能满足用户的各项质量需求;发现错误,纠正错误,防止错误在交付用户、投入运行后暴露,给用户和开发组织造成损失;积累经验,完善设计,提高软件开发人员的技能。
(6)良好的信息沟通。
沟通是监督、控制的基础,是推动项目执行的基础,更是减少冲突的良方。
项目经理周期性向机构管理层和客户报告项目的技术、进度、费用、质量方面的状况;在客户面前全面代表所在机构,与客户建立和维持友好和开放的关系,直接面向客户的项目经理是客户与所在机构最关键的联系点;做一个项目沟通的推动者、避免项目中出现沟通的遏制者;为项目沟通积极创造环境,包括集中工作;保证所有会议的高效率。
4.3软件项目团队管理方法
项目团队管理中,一个合适的管理方法是必不可少的,也是成功的一个基点。
如果想将软件质量提高到一个新的档次,对开发的软件模块进行完整的单元测试是一个很好的途径,它能使开发者对自己的代码成果更加有信心。
虽然一些软件项目单元测试做的很少甚至没有,并且产品在最终测试后也运行的不错,但它只能保证在与最终测试环境类似的环境中运行是安全的,超出这样一种环境范围则可能充满雷区。
最终测试和关键,如果项目受时间、人力等资源影响没法进行过多的单元测试,那最终测试就成了你软件产品的唯一质量保证。
在最终测试的过程同同样有几点地方必须控制的好,让其能顺利的组织完善:
(1)质量控制。
是一个全面的、全过程的控制,应当采取有效措施对影响工程质量的因素进行控制,主要是从质量保证过程和质量控制过程两个方面进行控制,以确保工程建设质量。
质量管理计划的内容:
质量要素分析,质量目标,人员与职责,过程检查计划,技术评审计划,软件测试计划,缺陷跟踪工具,审批意见等。
(功能性质量因素:
正确性,健壮性,可靠性;非功能性质量因素:
性能,易用性,清晰性,安全性,可扩展性,兼容性,可移植性等)。
项目质量控制工作的重点应放在调查研究外部环境和系统内部各种干扰质量的因素上,要做好风险分析和管理工作,预测各种可能出现的质量偏差,制定切实可行的预防措施。
使主动控制措施与监督、检查、反馈等被动控制措施有机结合起来,发现问题及时解决,发生偏差及时纠正,有效监督控制之下,确保工程建设质量。
(2)进度控制。
项目实施过程中,要达到工程项目的进度控制目标,必须认真分析各种因素对工程进度目标的影响程度,并对影响工程项目进度的各种因素加以控制,采取切实有效地措施,减少或避免这些因素对工程进度的影响,使工程进展具有连续性和均衡性,缩短建设工期。
及时将实际进度与计划进度进行对比,发现偏差,采取有效措施消除影响,并采取赶工措施,使实际进度与计划进度保持一致。
组织协调是实现进度控制的有效措施,为有效控制工程项目的进度,必须协调好参建各方的关系,处理参建各方工作中存在的问题,建立协调的工作关系,投入适当的人力、物力做好联络、联合、调和工作,搞好工程项目的进度控制。
(3)工作量的估算及评价。
项目管理最大的难度,就是每一模块的工作量、开发时间的确定,这也是项目实施的主要风险,最难预测、控制的风险。
采用WidebandDelphi估计方法,可以降低不同人员所作估计的偏差。
基于模型的估计方法则包括KLOC、FPA以及COCOMOⅡ等模型。
(4)计划的编排。
项目管理方法分为四个发展阶段①Gannt图阶段②确定性网络计划技术阶段③概率型网络计划技术阶段④多因素随机网络计划技术阶段。
(5)投资控制。
工程项目实施过程中,严格按照工程建设合同进行工程结算,严禁超计划结算。
工程项目的投资控制不是单一目标的控制,应与工程项目的质量控制和进度控制同步进行,工程建设质量不经验收合格,不予结算工程价款。
在对投资目标控制时,应考虑整个目标的协调、统一,反复协调工程质量、进度和投资之间的关系,考虑采取投资控制措施对质量控制、进度控制产生的不利影响,使投资控制与质量控制、进度控制满足工程建设的需要,在保证质量的前提下,加快施工进度,缩短工期,降低耗资,力求实现三大控制目标的最佳配合。
(6)项目控制过程。
按照计划跟踪项目的实际结果和执行性能,当实际结果和执行性能偏离软件计划时,要采取纠正措施并对其进行管理,要保证相关人员和组织同意所改变的责任。
(7)变更控制。
软件实施过程中,在控制投资的情况下,根据需求的变化做好软件的软件的质量保证计划和进度控制计划。
(8)风险控制。
风险评估(风险确认、风险分析、风险级别);风险管理(风险管理计划、风险解决方案、风险监视)。
(9)协调沟通控制。
是掌握各方信息,进行项目决策和项目协调的基础,也是项目管理的基