1、软件生命周期 软件生命周期规定了一个项目软件开发的过程框架,包括:1、项目的阶段划分;2、各个过程域的活动在阶段内的配置(即阶段内所需完成的活动);3、阶段产出物及其状态。 软件生命周期模型是组织定义的标准软件生命周期,各项目在实施的过程中可以选择最适合本项目情况的模型并在此基础上依据项目特点进行裁剪,定义项目的生命周期过程。 目前已定义的生命周期模型包括: 瀑布模型 迭代模型 瀑布型生命周期模型1. 简介瀑布型生命周期模型是一种严格按照需求-设计-实施-交付四个阶段进行软件开发的模型,并且在各个阶段结束时要经过严格的评审,只有当能够确认一个阶段的开发成果是正确的时才能够进行下一阶段的开发。在
2、瀑布模型的四个阶段中,除了分别完成其本阶段所定义的活动之外,都必须进行项目管理、质量保证、配置管理和测试活动,这四个活动的过程贯穿整个瀑布型软件生命周期。2. 结构项目启动需求设计实施部署测试项目管理质量保证配置管理项目关闭运行维护退役变更的需求需求阶段设计阶段实施阶段交付阶段研发活动工程活动3. 阶段3.1 需求阶段3.1.1 目标需求阶段的目标是为了确保与客户在系统的工作内容和范围(即系统“要做什么”和“不做什么”)方面达成一致,并建立需求的基线,为项目开发计划的进一步细化提供基础。3.1.2 主要活动需求阶段的主要活动包括: 需求获取:搜集客户的需要、期望、约束和接口,分析业务特性,形成
3、用户需求 需求分析:对所有候选的需求进行分析,形成软件的功能需求,并排列优先级 需求评审:客户(或客户的代表)、高级经理和项目组共同评审需求文档,并达成一致意见 建立需求基线 定义系统的用户界面 完成系统测试计划 调整和细化对项目规模、工作量、成本的估计 根据收集的需求重新分析和评估项目的风险,并制定相应的规避和缓减策略 完成WBS(Work Breakdown Structrue,工作分解结构),写入SDS,并细化设计阶段的SDS 完成设计阶段的SQAP3.1.3 产出物需求阶段的产出物包括(灰色部分为演进的产出物,白色部分为新增产出物):产出物描述所有者状态需求说明书Software Re
4、quirement Description收集、分析和定义系统的高层次需要和特性(业务需求)描述客户和目标用户的需要以及这些需要存在的原因,但不包括如何满足这些需要的详细情况(用户需求)系统分析员客户(客户代表)、高级经理ReviewBaselined需求规格说明书SRS:Software Requirement Specification描述开发任务(即系统需要实现的功能)描述待开发系统的技术要求描述待开发软件的运行环境系统分析员客户(客户代表)、高级经理Review Baselined用户界面原型可以是一份说明书文档,或者是一组界面图片,也可以是一组用例模型或一个软件原型系统分析员Base
5、lined系统测试计划STP:System Test Plan描述系统应进行哪些测试(功能测试、性能测试等)测试的环境、测试过程以及测试验收的标准测试工程师项目组ReviewBaselined软件开发日程表完成WBS,修订对工期的估计架构阶段的详细日程表项目经理高级经理ReviewBaselinedSQAP设计阶段将进行的SQA活动及日程安排SQA工程师项目组Review3.2 设计阶段3.2.1 目标设计阶段的目标主要是对待开发系统的构架进行分析和设计,并建立系统构架的基线,以便为之后的实施工作提供一个稳定的基础。3.2.2 主要活动总体设计阶段的主要活动包括: 完成系统构架设计 完成数据库
6、设计 选择组件:对构成软件的组件进行评估,制定自制/外购/复用决策,以便有把握地确定项目的成本和进度 完成组件间的交互通信的设计(即接口设计) 设计评审:相关技术专家评审设计方案,尽可能地发现错误和漏洞,以尽量减少设计的缺陷 建立设计基线 完成对项目进度、成本的估计 根据软件构架重新分析和评估项目的主要技术风险,并制定相应的规避和缓减策略 确定实施方案(分为几次迭代顺序实现或几个增量并行实现),完成实施阶段的SDS(若为迭代方案,则只需要第一次迭代的详细时间安排) 完成实施阶段的SQAP3.2.3 产出物设计阶段的产出物包括(灰色部分为需演进的产出物,白色部分为新增产出物):产出物描述所有者状
7、态总体设计说明书GDS:General Design Specification软件构架各组件的实施策略组件间接口构架设计员Baselined数据库设计说明书/数据库模型DBDS:DB Design Specification / DBMDL:DB Model数据库设计数据库设计员Baselined软件开发日程表实施阶段(第一次迭代)的详细日程表项目经理BaselinedSQAP实施阶段将进行的SQA活动及日程安排SQA工程师项目组Reviewed编码规范项目经理项目组Reviewed备选产出物描述状态培训材料如果系统具有复杂的用户界面,可能需要培训材料项目组Review3.3 实施阶段3.3
8、.1 目标实施阶段的目标是生成可交付的软件产品。3.3.2 主要活动实施阶段可以根据已建立的系统构架分为几次迭代实现,或分为几个增量并行实现,每个迭代或增量的主要活动包括: 制定该设计单元实施其需求的细节,即确定该单元应该“怎么做” 评审该单元的详细设计 编码实现 代码审查 单元测试 集成已实现的单元 集成测试 建立该单元实施的基线 如果是迭代方案,则还包括调整和细化下一次迭代的SDS当整个系统的集成完成(包括系统的安装程序)之后还需要进行: 系统测试 实施评审:高级经理、项目经理、发布经理、SQA工程师共同评审系统测试报告,确保实施的系统足够正确、稳定,并能够满足客户需求3.3.3 产出物实
9、施阶段的产出物包括:产出物描述所有者状态详细设计文档各单元的详细设计设计员通过审查Baselined源代码Source Code实施员通过审查和测试Baselined单元测试记录测试数据、测试代码、测试报告实施员项目经理、SQA工程师Reviewed能显示该单元经过充分测试且无Bug系统/子系统集成报告集成所用的方法、过程集成的结果集成发现的问题报告集成员项目经理、SQA工程师Reviewed问题报告均已关闭可交付的软件可安装、配置和运行的软件集成员正确集成,并通过系统测试Baselined系统测试报告测试对象、测试方法、测试结果测试工程师高级经理、项目经理、发布经理、SQA工程师Review
10、ed软件开发日程表交付阶段的详细日程表(又称为发布计划)项目经理BaselinedSQAP交付阶段将进行的SQA活动及日程安排SQA工程师项目组Review3.4 交付阶段3.4.1 目标交付阶段的重点是确保用户可以正确使用软件。3.4.2 主要活动交付阶段的主要活动包括: 完成最终用户的支持材料(安装手册、操作指南、培训材料等) 在用户现场进行Beta测试(如果可能的话),获得用户反馈,并基于反馈调整产品 制作产品发布版,并创建发布声明 完成与发布相关的工程,如接入、商业包装和生产、销售介绍、现场人员培训等 使最终用户可以正确使用产品(包括安装、培训或其它支持活动) 发布评审:根据产品验收标
11、准对交付基线进行评估,确保将发布的内容能够满足客户要求3.4.3 产出物发布/部署阶段的产出物包括:产出物描述所有者状态用户文档安装手册用户指南培训材料其它用户要求的文档发布经理已完成并通过评审Baselined发布声明发布软件的简介发布时间,发布版本,发布的内容、范围已知的问题与解决的计划(如果有的话)发布经理客户、高级经理、发布经理、SQA工程师ReviewedBaselined发布产品包包括可交付软件、发布声明和用户文档的准备交付给客户的软件包一般要求为光盘(特殊情况可采取其它形式)发布经理已通过Beta测试Baselined产品维护计划(如果需要的话)对产品进行后续维护的策略以及将进行的活动发布经理客户、高级经理ReviewedBaselined