第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page1第3章IT软件项目的生命周期3.1IT软件项目生命周期的划分3.2IT软件项目生命周期中各阶段任务3.3IT软件项目生命周期中的重要概念3.4IT软件项目管理里程碑第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page23.1IT软件项目生命周期的划分1.软件项目生命周期的概念任何软件的开发都要经历一个“生命周期”,从软件的调研开始到淘汰的全过程,从项目批准到交付的过程。一般将项目分为以下4个阶段:识别需求、提出解决方案、执行项目、结束项目第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page31.软件项目生命周期的概念对于典型的IT软件项目,项目的生命周期可以从不同的角度认识。从项目承担方看:项目是从接到合同正式开始的,到完成规定工作结束;从客户的角度看:项目是从确认有需求开始,到使用项目的成果实现商务目标结束。无论从哪个角度分析,软件项目的生命周期都包括识别、设计、实施和评估4个阶段。典型软件项目开发的生命周期如图3.1所示。第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page42.典型软件项目开发的生命周期图3.1典型软件项目开发的生命周期初步需求子系统需求分析概念设计逻辑设计开发概念原型第一次开发风险分析开发结果评估识别设计实施评估系统配置、运行、产品成型系统需求分析物理设计第二次开发开发结果评估整体需求最终设计最终开发测试第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page53.瀑布模型瀑布模型是美国WinstonRoyce向IEEEWESCON(Royce,Winston1970)提交的一篇名为《管理大规模软件系统的开发》(ManagingtheDevelopmentofLargeSoftwareSystems)的论文中首次提出的。这种方法是从一个阶段成瀑布流入下一个阶段,所以这个模型就称为“瀑布模型”。第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page6软件开发瀑布模型及不同阶段之间的交互图3.2软件开发瀑布模型及不同阶段之间的交互需求分析与定义系统设计与软件设计系统实施与单元测试系统集成与系统测试系统运行与系统维护第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page7(1)纯瀑布模型软件概念需求分析初步设计编码和调试详细设计系统测试①软件概念:用户提出对软件的开发与初步需求;④详细设计:⑤编码和调试:选择合适的计算机语言,完成详细设计中的各个模块的编码并调试;③初步设计:将用户需求分解成硬件与软件需求,并建立系统的整体结构模型;②需求分析:开发者与用户交流,确定系统的目标、服务与约束;将初步设计的整体结构继续分解为可实施编码的小模块,并完成流程图;⑥系统测试:测试系统的各部分是否满足需求。第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page8(2)改进的纯瀑布模型--生鱼片模型软件概念需求分析初步设计详细设计编码和调试系统测试主要缺点:①因为阶段重叠,里程碑非常不明确,很难精确地进行过程跟踪;②并行地执行活动可能导致无效的沟通、错误的想法以及低下的效率。“生鱼片模型”,是将模型中的连续的各阶段相互有较大幅度的重叠。例如,在需求分析完成之前可以进行初步设计和详细设计。主要优点:在项目比较小且定义得很好时,可以有效地减少文档的产生。是比较有效的模型。第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page9(2)改进的纯瀑布模型--具有子系统的瀑布模型软件概念需求分析初步设计详细设计子系统设计编码和调试详细设计子系统设计编码和调试详细设计子系统设计编码和调试系统测试初步设计中将系统分成几个逻辑上相对独立的子系统,每一个子系统都采用相对独立的方法进行设计,形成了具有子系统的瀑布模型。图中,初步设计阶段将系统分成3个相对、独立的子系统,各子系统分别独立进行详细设计、编码和调试及子系统设计,最后统一进行系统测试。第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page10Boehm给出的一些成本数据系统类型阶段成本(%)需求/设计实施测试控制系统卫星系统操作系统科学系统商务系统463433444420201726283446503028第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page114.原型模型原型(Prototype)法是在20世纪80年代初,在总结和归纳结构化分析与设计方法开发软件项目的基础上,改进结构化系统分析与设计的过于繁琐、开发周期长、见效慢等缺点,借助第4代程序开发语言而产生的一种项目开发方法。这种方法是借助先进的软件开发工具根据用户提出的软件需求定义,快速建立一个软件系统的“原型”,向用户展示待开发软件的全部或部分功能,在征求用户对原型软件的意见后,反复进行修改、完善、提高和确认,最终实现项目的目标。第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page12(1)渐进原型模型图用户提出系统要求识别归纳用户需求快速建立开发原型修改模型重新设计或选择模型评价模型确定模型,完成并交付模型满意模型不满意模型不可行渐进原型模型是从软件开发系统概念开始,根据软件需求定义,快速建立一个软件系统“原型”的生命周期模型。第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page13(2)渐进原型模型的基本过程原型建立通常是软件从最显著的方面开始,向用户展示待开发系统的全部或者部分功能(通常是完成的部分);然后根据用户对原型的反馈信息,反复进行修改、完善、提高和确认,直到开发者和用户都认为原型已经“足够好”;最终实现项目目标,完成结尾工作,交付作为最终产品的原型。第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page14(3)渐进原型模型的特点直观、形象,更多地遵循了人们认识事物的规律,因而更容易被人们接受。采用模拟的手段,缩短了用户和系统分析、设计人员之间的距离。在整个系统开发过程中反馈是及时的,标准是统一的,可及时地暴露问题,确保系统实现的正确性。充分利用了新一代的软件工具,使得系统开发和运行的效率都大大提高。第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page15(4)原型法的应用的软件支撑环境要有一个方便灵活的关系数据系统。要有一套完整的程序生成软件。要有一个与数据库对应的、灵活方便的数据字典。有一个可以快速抽象或者能够容易提炼的原型。第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page165.螺旋模型风险分析风险分析风险分析风险分析原型1原型2原型3可操作原型建模模拟评价软件需求需求确认操作概念需求计划开发计划软件产品设计设计确认与验证集成与测试计划详细设计编码单元测试集成测试验收测试实现确定下阶段目标、约束条件风险分析过程迭代开始开发、验证软件产品制定下阶段计划评审累计成本构造原型评价方案螺旋模型示意图第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page17(1)螺旋模型说明1988年Boehm提出“基于风险”的螺旋模型螺旋模型主要由4个部分组成:需求定义、风险分析、实现和评审螺旋模型是这4个部分组成的迭代模型,软件开发的过程每迭代一次,螺旋线就增加一周,系统产生一个新的版本,而软件开发的时间和成本又有新的投入。螺旋模型中的显著特点是在每个固定阶段对项目的风险进行评估。第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page18(2)螺旋模型的迭代每次迭代都包括以下六个步骤:(1)确定下一阶段的目标、方案的约束条件;(2)风险分析、评估及解决;(3)为该系统构造合适的原型;(4)评价方案;(5)开发、验证软件产品;(6)制定下一阶段计划,交付给下一步骤,开始新的迭代过程。第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page19例1质量螺旋模型(1)目标尽可能提高软件产品质量约束在三年内完成、没有大规模的投资、公司标准不会发生大的变化可选方案重用已经有的注册软件、引入正式的需求和合格证明、采用新的测试和检验工具风险提高质量可能会在很大程度上提高成本、新的方法可能会导致现有员工的流失风险解决办法详细调查、驾驭项目、对潜在重用组件的调查、对可得到的支持工具进行评价、对员工培训和激励进行研究第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page20例1质量螺旋模型(2)目标尽可能提高软件产品质量后果对正规方法、经验的限制难以提高软件质量公司可得到的工具支持是有限的可得到能重用的组件,但几乎没有可重用的工具支持计划更详细的调查重用方案开发支持工具原型探索组件合格计划行动投资将来12个月开发第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page21例2软件产品螺旋模型(1)目标获得软件产品约束在一年内完成必须支持现在软件产品的类型总成本要低于¥1000000可选方案购买现存的信息恢复软件购买数据库并且采用这种数据库的查询语言开发软件产品开发一个特殊目的的软件产品风险在约束条件内可能获得不了这些软件产品软件产品功能可能不合适第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page22例2软件产品螺旋模型(2)目标获得软件产品风险解决办法用开发软件产品的原型来明确需求委托顾问调查现存信息恢复系统的情况放松时间限制后果信息恢复系统灵活性(可移植性)差不能满足确认的需求采用DBMS开发的原型可能会提高整个系统特殊目的软件产品的开发成本可能会很高计划应用现有DBMS提高系统原型和用户接口,开发软件产品行动投资将来12个月开发第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page236.编码修正模型使用编码修正模型,一般是从一个大致的想法开始工作,可能有一个正式的规范,也可能没有;然后结合使用一些无论如何都称不上规范的设计、编码、调试和测试方法,来完成产品开发。编码修正模型有两点好处:①不需要什么成本。不需要在除了纯粹编码工作以外的项目规划、文档编制、质量保证、标准实施或任何其他活动中花费时间。②它只需要极少的专业知识。第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page247.为项目选择最快速的生命周期(1)为项目选择最有效的生命周期模型,通常可以思考以下问题:(1)在项目开始的时候,开发者和用户对需求的理解是否充分?在项目进行过程中,对需求的理解有可能出现改变吗?(2)开发者对系统的整体框架的理解是否充分?是否有可能在项目进展过程中对系统框架进行重大改变?(3)可靠性需求有多大?(4)需要在项目中为未来的版本提前进行多少计划和设计?第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page257.为项目选择最快速的生命周期(2)(5)项目要承受多大的风险?(6)是否被迫预先确定进度?(7)需要具备在进展过程中进行变更的能力吗?(8)需要在项目整个进展过程中提供给用户可视的进展情况吗?(9)需要在项目整个进展过程中提供给管理者可视的进展情况吗?(10)需要多少经验和技巧来成功地使用这种生命周期模型?第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page263.2IT软件项目生命周期中各阶段任务根据前面对IT软件项目各个主要模型生命周期的分析,可以将一般的软件项目开发过程详细划分为以下6个主要阶段:(如图3.6所示)项目开发准备阶段调查研究阶段项目分析阶段项目设计阶段项目实施阶段维护与评价阶段第3章IT软件项目的生命周期辽宁工程技术大学软件学院软件项目管理Page27图3.6软件项目的开发阶段供决策参考提出可行性分析修改意见项目咨询人员项目开发准备阶段调查研究阶段项目分析阶段项目设计阶段项目实施阶段维护与评价阶段项目咨询