软件项目开发工作流程

软件项目开发工作流程

 

1 软件项目

1.1 软件项目的基本目标

l 付出较低的开发成本

l 达到要求的软件功能

l 取得较好的软件性能

l 开发的软件易于移植

l 需要较低的维护费用

l 能按时完成开发工作,及时交付使用

1.2 软件项目的流程

对于一个新项目,从可行性研究到产品交货整个生存阶段将经历如下十大流程:

u 项目可行性研究阶段

u 立项阶段

u 需求分析阶段

u 开发策划阶段

u 设计阶段

u 编码实现阶段

u 测试阶段

u 验收阶段

u 产品交付使用

u 维护阶段

kick off:参与项目的资源确定,里程碑目标以及大致时间点

2 项目组基本组成及岗位职责

新项目立项时会成立项目组,不同的项目组成员有不同的职责,一个项目组成员也可以身兼多职,但不可身兼全职。

u 项目负责人:负责项目的管理、组织、对技术、进度、质量全面负责。

u 质量保证人员:负责质量保证工作计划的落实和软件的质量保证。

u 配置管理人员:负责本项目的配置管理工作,对本项目的文档、程序是否符合规程文件的要求进行形式化的检查。

u 分析人员:主要负责本项目的需求分析工作。

设计人员:主要负责本项目的设计工作;(UI设计师、软件工程师、项目负责人、架构师)

u 软件工程师:主要负责本项目的设计、按照设计要求及编码规范进行编码、编写相关设计文档。

u 测试人员:负责单元测试、组合测试和总装测试工作。

u 产品经理:协助进行产品研制计划制定、产品发布与产品推广等,在产品开发中,充分代表用户的利益,提供建议,负责在产品功能与出品日期二者之间的权衡;负责产品市场营销、产品销售和市场推广过程。(通常由营销部门或中试部门人员担任)

3 软件开发流程

3.1 可行性研究阶段

     如果是公司自主开发项目,可行性研究通常是由公司技术负责人根据公司产品规划和市场需求,在要开展新项目前通过部门负责人指定人员进行的前期调研工作,可行性研究负责人员对产品的市场需求、技术发展、市场定位、功能需求、经济效益、进度需求、风险分析等进行可行性研究,提供产品立项建议,拟制可行性研究报告,由部门负责人指定营销部门配合可行性分析人员,技术负责人协助安排。可行性分析完毕后由公司对可行性研究报告进行评审,评审通过后,进行立项工作。

如果是系统集成部外接的系统集成项目,在系统集成部与客户签订合同之前,均应对将签项目进行资源、技术、市场的可行性分析,可行性分析通过后、签订合同前公司领导组织相关人员对合同条款进行评审,评审通过后,组织进行立项工作。

本阶段提交的文档:项目可行性研究任务书(技术负责人或部门负责人下达)

                                    项目可行性研究报告(可行性研究人员编写)

                                    系统集成项目合同

质量记录:可行性分析评审报告

3.2 立项阶段

      可行性分析评审通过后,由开发部门经理下达立项任务,指定相关人员填写立项申请报告报批。报批通过后,由部门经理与技术负责人协商,下达开发任务书,经技术负责人审核确认后,报公司批准。批准立项后项目进度应以立项申请报告中的阶段进度为准,如果进度要调整,需填写进度调整申请报告报批。

本阶段提交的文档:项目立项申请报告

                                    开发任务书

3.3  需求分析阶段

承办单位根据交办单位提出的技术要求和相应的软件任务书以及其它有关文件,与交办单位协作,确定详细的软件需求,该阶段完成的软件需求规格说明经审定和批准后将作为整个软件开发工作的基础列入配置管理的基线,在本阶段可利用快速原型法使比较含糊的具有不确定性的软件需求(主要是功能)明确化。能给本公司开发的软件需求基线确定提供一个讨论、进一步完善的基础。在本阶段,由产品经理负责,其他人员配合,编写产品规格说明书,此说明书面向最终用户和领导,主要描绘产品的形状以及功能、性能、功能特性、性能特性。由项目经理负责编写系统技术方案书,描述公司初次使用的技术的详细解决方案。本阶段完毕后对需求分析进行评审,出具需求分析评审报告。

本阶段提交的文档:软件需求规格说明书。

                                    原型分析说明书

                                    产品规格说明书

系统技术方案书

质量记录:   需求分析评审报告

提交的软件:     产品的原型(注:如果时间有限,可以只编写原型分析说明书而不作原型)

3.4 开发策化阶段

根据项目要求和软件需求,由配置人员配合项目经理编写本项目的质量保证计划、配置管理计划和项目综合计划。在配置管理计划中,应列明本项目需提交的各阶段文档的名称。在制定计划时,应为计划、设计、测试、改错、再测试、变更、以及编制文档留出足够的时间。不应使用突击的办法来完成项目。 

本阶段涉及的文档:软件质量保证计划

                                    配置管理计划

项目综合计划

3.5 设计阶段

3.5.1 概要设计

根据软件需求规格说明建立软件总体结构和模块间的关系,确定各模块功能,定义各功能模块的接口,设计全局数据库和数据结构,在概要设计明确后,可以对综合计划进一步细化,填写项目进度预计。概要设计需经过评审。

本阶段涉及的文档:产品概要设计说明书(包含UI设计、原型图设计)

                                    数据库设计说明

项目进度预计

质量记录:        评审报告

3.5.2 详细设计

      对概要设计中产生的功能模块进行过程描述设计,设计功能模块的内部细节,包括算法和数据结构,为编写源代码提供必要的说明。详细设计需要经过评审。

本阶段涉及的文档:软件详细设计说明书

                                    测试计划

质量记录:        评审报告

3.5.3 设计规范

有迹可寻: 设计所反映的内容都能在需求文档中找到出处;

l 15%~25%: 设计占用整体项目的时间;

暴露: 本次设计的核心技术点必须暴露;

l 5%: 如果后续实现中设计改动超过5%,必须通知之前设计评审参与人员,不能擅自修改核心设计,如果未通知,需要背负全责;

3.6 编码实现阶段

   根据软件详细设计说明、对各程序模块进行编码、调试、静态分析和单元测试,验证程序单元与设计说明的一致性;包含程序人员自测功能。

本阶段涉及的文档:项目进度月报

                                    项目周计划和周总结

                                    项目开发人员周计划

                                    工作日志

                                    每周例会记录

配置项更改申请单 

程序部署文档   

3.6.1 编码要求

l 编码必须符合伪代码的逻辑,编码应该多次测试,慢步前进。

l 注意编码的版本控制。

l 编码应该尽量保持优美的逻辑和语法使用。

l 编码的变量命名应该特别注意。

l 每一次的编码应该最低按照一个函数单元,即最小编码单位是一个函数,一旦决定编码,就至少完成一个

l 函数单元,或者取消本次函数的编写。

l 每个函数的完成,都必须要达到伪代码对此函数的定义和解释,注意高内聚和低耦合的问题。

l 如果没有高内聚,要适当拆分逻辑和代码。

l 如果没有低耦合,要适当抽象代码,合并其他同类函数。

3.7 测试阶段

3.7.1 软件单元测试

     按详细设计的结构,根据软件单元测试计划,依照将经过单元测试的底层程序单元逐步组装成子项目直到开发项目的过程,对软件进行测试。

本阶段涉及的文档:测试计划

                                    测试用例

                                   测试问题报告单

3.7.2 组装测试

根据软件需求规格说明书中定义的全部功能和性能要求及组装测试计划,对软件进行组装测试,以确定整个软件是否满足软件需求,是否可以提交总装测试。

软件组装测试计划(含测试用例设计)的编制工作和软件组装测试环境的研制、组建工作,应从软件需求分析阶段起与软件开发同步展开。

本阶段涉及的文档:测试计划

                                    测试用例

                                    测试问题报告单

3.8  验收交付

对完成中试的软件进行检查、审查和评审,确定软件是否达到了软件任务书的要求。验收通过的软件可以向软件交办单位交付。项目经理及项目组人员应在此阶段完成项目总结,项目经理提交项目开发总结报告,项目组成员提交个人工作总结报告。

本阶段涉及的文档:验收报告

                                   项目开发总结报告

                                   个人工作总结报告

3.9 软件维护

对软件的维护包括针对软件运行过程中发现的问题而进行的改正性维护,针对不同任务对软件提出不需求而进行的改善性维护,以及可能出现的由于软件运行环境的改变而进行的适应性维护。

本阶段涉及的文档:软件问题汇总表

                                     维护报告

4 项目开发文件的审批

可行性研究报告及立项申请、项目开发计划及项目开发总结、确认计划及确认报告、验收计划及验收报告由技术负责人审批。

       项目组人员编写的其他文件由项目经理审批。

5 各阶段共同的任务要求

5.1 编写文档

在软件开发过程的各个阶段,都要求完成相应的文档编写工作。本文档的前面部分已给出了在软件自上而下周期各个阶段中的文档编制情况。软件文档从形式上来看,大致可分为两类:

u 开发过程中填写的各种图表,称为工作表格;

u 应编制的技术资料或技术管理资料,称为文档或文件。

      按照文档产生和使用的范围,软件文档大致可分为三类:

u 开发文档:这类文档是在软件开发过程中,作为软件开发人员前一阶段工作成果的体现和后一阶段工作依据的文档。包括软件需求说明书、数据库设计说明书、概要设计说明书、详细设计说明书、可行性研究报告、项目开发计划。

u 管理文档:这类文档是在软件开发过程中,由软件开发人员制定的需提交人员的一些工作计划或工作报告。使管理人员能够通过这些文档了解软件开发项目安排、进度、资源使用和成果等。包括项目开发计划、测试计划、测试报告、开发进度月报、项目周计划周总结及项目开发总结等。

u 用户文档:这类文档是软件开发人员为用户准备的有关该软件使用、操作、维护的资料。包括用户手册、操作手册、维护修改建议、软件需求说明书。

u 项目各阶段完毕后需把本阶段相关文档列表向总工办移交。

5.2 验证与评审

    软件评审是保证软件产品质量的重要手段,必须纳入软件开发过程,并把评审通过作为一个软件阶段完成的标志,进而转入下一个开发阶段。软件评审包括有正式评审(即评审)、内部评审两种形式。正式评审是软件项目组上级技术主管主持的评审。内部评审以由项目负责人组织、开发人员相互检查为基本方式。

    就整个软件开发过程而言,至少要进行可行性分析、软件需求评审、设计评审、软件验证和确认评审、管理评审等五个方面的评审和检查工作。

猜你喜欢

转载自www.cnblogs.com/zhangxuetao/p/12965025.html