制作者董玉坤主讲人SoftwareProjectManagement项目的生命周期和管理过程教学重点第2讲软件项目的生命周期和软件项目管理过程。主要包括以下几个内容:软件项目生命周期的划分软件项目生命周期中个阶段的任务软件项目管理过程概述现代项目管理认为任何项目都是由两个过程构成的,其一是项目的实现过程,其二是项目的管理过程。项目的实现过程是指人们为创造项目的产出物而开展的各种活动所构成的过程。一般用项目的生命周期来说明和描述实现过程的活动和内容。项目的管理过程是根据项目目标要求制定计划,然后按照计划去执行,随时控制项目进展,并实现项目目标的过程。2.1软件项目生命周期的划分典型软件项目开发的生命周期初步需求子系统需求分析概念设计逻辑设计开发概念原型第一次开发风险分析开发结果评估识别设计实施评估系统配置、运行、产品成型系统需求分析物理设计第二次开发开发结果评估整体需求最终设计最终开发测试软件项目的生命周期模型瀑布模型瀑布模型有很多的变化,包括以下的阶段:需求分析与定义系统设计与软件设计系统实施与单元测试系统集成与系统测试系统运行与系统维护软件项目的生命周期模型原型模型用户提出系统需求识别并归纳用户需求快速开发一个模型确定模型后的处理系统运行、维护重新设计或选择模型满意模型不满意图原型法的基本过程评价模型模型不可行修改模型软件项目的生命周期模型螺旋模型风险分析风险分析风险分析风险分析原型1原型2原型3可用原型建模模拟评价软件需求需求确认操作概念需求计划开发计划软件产品设计设计确认与验证集成与测试计划详细设计编码单元测试集成测试接收测试实现成本评审制订下阶段计划确定下阶段目标和约束条件风险分析、构造原型开发、验证阶段软件产品过程迭代图螺旋模型软件项目生命周期的阶段1.项目定义与可行性研究这一阶段的主要任务是提出项目、定义项目和做出项目决策。首先人们提出一个项目的提案,并对项目提案进行必要的机遇与需求分析识别,然后提出具体的项目建议书。在项目建议书或项目提案获得批准后,就需要进一步开展不同详细程度的项目可行性分析,通过项目可行性分析找出项目的各种备选方案,然后分析和评价这些备选方案的损益和风险情况,最终做出项目方案的抉择和项目的决策。软件项目生命周期的阶段2.需求分析需求分析是将用户对软件的一系列要求、想法转变为软件开发人员所需要的有关软件的技术规格说明,它涉及面向用户需求和面向开发者的系统需求两个方面的工作。评判一个软件项目成功的标准是看它是否解决了用户的问题,而用户的问题就体现为系统的需求,需求也就顺理成章的成为项目的成功标准。该阶段结束后形成“需求规格说明书”。软件项目生命周期的阶段3.系统设计这一阶段是根据需求规格说明书,提出软件系统的总体结构、布局、详细开发思路与计划。这一阶段的工作分为两步:总体设计和详细设计。总体设计阶段建立软件的总体结构。详细设计阶段确定软件结构中每个模块的内部细节。设计完成后形成“软件设计说明书”。软件项目生命周期的阶段4.软件实施按照设计阶段形成的软件设计说明书来编制软件程序代码。除了编写代码,开发人员还要为各个程序准备程序设计说明。本阶段好要进行各种文件和数据库的建立。这一阶段需要大量的人力、物力,工作十分繁杂,要求相互联系、相互制约。因此需要项目经理精心安排,加强控制和管理。软件项目生命周期的阶段5.系统测试对软件进行测试的目的是确保其从技术和业务上准确无误。为使业务和技术人员能够有效的使用新系统,还需要对他们进行培训。另外还需要制定一份完善的系统转换计划,以便提供投入新系统所要进行的各种活动的具体安排。软件项目生命周期中的重要概念检查点。是指在规定的时间间隔内对项目进行的检查和复审工作,它是通过比较实际进展与计划进度之间的差异,并根据这个差异来进行调整的。里程碑。完成阶段性工作的标志,里程碑往往是重要活动的完工。基线。指一个(或一组)配置项在项目生命周期的不同时间点上通过正式评审而进入正式受控的一种状态。软件项目的主里程碑主里程碑所处阶段目标下一阶段目标里程碑识别阶段末期如何开展项目的建议书,包括项目计划、成本和进度表以及期望的利润和效益等设计设计里程碑设计阶段末期经论证的可执行的设计方案开发开发里程碑开发阶段末期评估软件的可读性和可用性,以便软件产品开始向客户/用户的转换测试产品版本里程碑评估阶段末期评价软件的完整性和软件对其所支持组织的转换里程碑的重要意义对一些复杂的项目,需要逐步逼近目标,里程碑的中间“交付物”是每一步逼近的对象。如果没有里程碑,中间想知道“项目做得怎么样”是很困难的。可以降低项目风险。通过早期评审可以提前发现需求和设计中的问题,降低后期修改和返工的可能性。一般人在工作时都有“前松后紧”的习惯,而里程碑则强制规定在某些时间做什么,从而可以合理分配工作,细化管理。2.2软件项目管理过程软件项目管理的目标是要在生成项目产出物(成果)的实现过程中,通过项目的管理过程去保障项目目标的实现。现代项目管理认为,项目是由一系列的项目阶段所构成的一个完整过程(或叫全过程),而各个阶段又是由一系列具体活动构成的一个过程。此处所谓的“过程”是指能够生成具体成果的一系列活动的组合。从战术上看项目管理从战术上看,项目管理关注产品的质量、成本、进度三个方面。右边的三角形的三个边是相互影响的,任何一边发生变化都会影响其它两边。项目管理的作用是在项目目标之间作出一些权衡。质量时间成本图项目管理的三角形从战略上看项目管理人员人的因素是比精良的设备、先进的技术更为重要的项目成功因子问题项目经理的一个重要任务是发现问题和解决问题过程项目管理需要与软件过程管理结合起来才能达到预期的目的项目的管理过程项目的实现过程是由一系列的项目阶段或项目工作过程构成的,每个项目过程都需要一个相应的管理过程。启动计划控制执行结束图项目过程组之间的关系项目的管理过程1.项目启动在项目管理中,启动阶段是识别和启动一个新项目或项目新阶段的过程该阶段首先要定义项目,还需要确定项目的目标范围,其中包括开发和被开发双方的合同,软件要完成的主要功能以及这些功能的量化范围、项目开发的阶段周期等。项目的管理过程2.项目计划项目计划是建立项目行动指南的基准,包括对软件项目的估算、风险分析、进度规划、人员的选择与配备、产品质量规划等。计划编制工作的顺序:目标分解、任务活动的确定、任务活动分解和排序、完成任务的时间估算、进度计划、资源计划、费用预算和编制计划文档。形成的项目计划书将作为跟踪控制的依据。项目的管理过程3.项目执行与控制执行计划包括按计划执行项目和控制项目,以使项目在预算内、按进度完成,并使顾客满意。项目执行过程包括协调人员和其他资源,以便实施项目计划,并生产出项目或项目阶段的产品或可交付成果。项目的控制工作又可以进一步划分成对项目工期、成本、质量等不同方面的控制工作。项目的管理过程4.项目结束该阶段的主要工作是项目团队或项目组织开展的项目完工的工作,即全面检验项目工作和项目产出物,对照项目定义与决策阶段和项目计划与设计阶段所提出的项目目标和各种要求,确认项目是否达到目标或要求的工作,当发现项目存在问题或缺陷时,开展相应的返工与整改工作,使项目最终达到目标和要求。项目管理与软件产品管理的关系产品管理关注内容,项目管理关注过程。软件工程是围绕软件产品管理的,项目管理是围绕项目过程的。以通用的项目管理知识体系为基础,结合软件工程自身的科学规律,采用适合软件产品自身特点的管理方法,是真正管理好软件产品的最终出路。CMM(能力成熟度模型)作为项目管理中的代表模型,其各个领域的内容就反映了软件工程和项目管理的共同要求。案例神州数码项目管理体系1998年,神州数码的软件开发通过了ISO9001认证,标志着公司将自己的项目管理纳入了ISO的管理体系。2000年6月,神州数码发布了自己的项目监控体系(PMS),从公司层面对所有运行中的项目进行统一的监督和管理,确保每一个项目的质量符合标准。2002年1月,神州数码软件产品部通过了SEI的CMM2评估,对所有的软件产品开发项目实施CMM的项目管理体系。案例神州数码项目管理体系神州数码认为,项目管理体系的核心思想是对项目、过程和人员的集成管理。如何提高软件项目运作的整体效率?神州数码主要通过两个途径:一是提高过程能力;二是加强人员的管理能力和技术素养。为此,一方面,神州数码在本组织范围内培育和建立起过程持续改进的文化氛围,运用过程体系(ISO9000、CMM和项目管理监控体系)的改进来不断积累过程财富。同时,注意将组织的知识固化于过程之中。案例神州数码项目管理体系另一方面,过程的丰富和积累有赖于人员的能力和经验,神州数码公司凭借其完善的培训体系(如项目经理资质培训与认证、专项技术培训、过程培训等)充分保证项目组成员或的工作所需的必要技能。在项目的实践中,过程能力和人员能力相辅相成的发挥作用,从而形成了提高、固化、再提高的过程持续改进的循环状态。案例神州数码项目管理体系神州数码软件项目管理的基础是软件项目计划,通过项目周报、里程碑报告等方式来跟踪项目的实际执行状况,并参照项目计划比对偏差,从而采取相应的措施来保证软件软件项目的顺利进行。神州数码的软件项目在执行的过程中,从以下3个层面对项目的状况进行跟踪和监督。案例神州数码项目管理体系第一层面项目经理项目经理在项目初期编写工作说明书和制定项目计划,并在项目执行过程中通过管理项目组的日常活动跟踪项目的进展状况,根据实际完成的工作更新项目计划。如果项目计划出现重大变更,则要申请变更项目计划,根据变更后的项目计划来执行工作。案例神州数码项目管理体系第二层面部门经理部门经理根据项目经理报告的项目计划、项目周报和里程碑报告等方式跟踪项目的阶段偏差(进度、成本)质量状况、需求变更、风险管理等内容,判断项目中存在的风险并采取相应的措施,处理项目组解决不了的问题。当项目出现重大偏差时,决定是否变更项目计划及采取有效措施。案例神州数码项目管理体系第三层面公司位于公司层面的项目管理部收集整个公司范围内所有项目的项目周报和项目里程碑报告,并通过数据汇总与分析,计算项目TQC(进度、质量和成本)偏差情况,然后根据偏差情况采取相应的措施。项目管理部根据不同的项目类型为项目组指定质量经理(软件产品项目)或项目监理(工程实施项目),对软件项目进行阶段检查,判断项目的执行情况,提供软件项目对公司的软件项目管理体系的遵循情况。