本人刚接触项目管理不久,为公司写了一篇《项目开发过程管理》的文章,文章中有很多内容来自网络,并加上自己的理解及文字,于是就产生了这篇文章。文章肯定有很多不合理的地方,或者不合标准的地方,希望各位前辈批评指正。以下附原文:

项目开发过程管理

1、项目立项

项目立项过程:

1) 项目经理将确定的《需求说明书》及《立项单》交给相关部门的负责人签字确认。
2) 立项通过后,项目经理将《需求说明书》交给开发负责人,并由开发负责人进入需求分析流程。

2、需求分析

需求分析就是分析软件用户的需要的是什么,就是要让开发人员全面地理解用户的各项要求,并准确地表达所接受的用户需求。


需求分析的过程:

1) 需求获得:由项目经理把《需求说明书》交给开发负责人

2) 讨论需求:需求讨论的目的是让开发人员准确的知道这个项目要做的是什么,开发负责人组织开发人员讨论《需求说明书》,明确需求的组成内容,逐步细化需求提到的所有功能,并分析他们是否满足需求,综合成系统的解决方案

3) 需求修订:需求修订应该是一个不断重复的过程,这个过程有可能出现在需求分析中,也有可能出现在系统设计或者是编码开发过程中,越在项目开发流程靠前的阶段发现问题,对项目开发的影响也就越小,有些问题只有在设计或者编码阶段才会被发现,或者是在设计和编码阶段产生了需求变更,每次需求修订产生的《需求说明书修订稿》都要由项目经理、需求提出者以及开发负责人3方签字确认。

3、项目计划

项目计划的目标是为项目负责人提供一个框架使之能合理地估算软件项目开发所需的资源 、经费和开发进度,并控制软件项目开发过程按此计划进行。项目经理及开发负责人需要在公司建立的项目管理平台上对项目资源及进度进行计划和控制。

项目计划过程

1) 资源确定:项目经理确定项目资源,包括:人员、硬件、软件以及其他的相关资源
2) 进度安排:项目经理确定项目里程碑任务安排,里程碑任务以界面操作可见性为标准;开发负责人根据项目里程碑任务,细化成开发任务,每个开发任务最长周期不能超过一天
这个过程中产生的文档有:项目计划说明书.doc 

4、系统设计

在需求明确之后、准备开始编码之前,要做系统设计,系统设计对后面的开发、测试、实施、维护工作起到关键性的影响。系统设计的主要目的是:将软件系统需求转换为未来系统的设计,明确系统构架,使软件适合于实施环境。系统设计分为两部分:概要设计和详细设计。

系统设计流程:

1) 规范制定:由开发负责人制定本项目的开发规范,包括:代码体系、接口规约、命名规则。 
2) 概要设计:开发负责人和相关开发人员共同完成业务流程设计、模块数据处理流程设计及用户界面设计。
3) 详细设计:开发负责人和相关开发人员共同完成接口设计和数据库设计。
在这个过程中产生的文档包括:业务及数据流程图、接口设计文档、美工界面、数据库设计文档。

5、开发编码

开发编码是软件开发的最终实现阶段,受项目计划及系统设计的约束。

开发编码流程:

1) 开发人员根据需求及系统设计完成编码任务
2) 开发人员在开发过程中,需要对每个模块、类、方法、字段做详细说明注释以及修改注释
3) 开发负责人及时明确开发人员在开发过程中遇到的疑问,对开发的关键点进行代码跟踪审核,确保实现方式的正确性
4) 开发负责人根据详细的开发计划跟踪项目进度,向项目经理汇报每天的开发情况。


6、测试

软件产品的质量是软件市场竞争中获得成功的关键,软件测试是保证软件质量的手段,它是需求分析,设计和编码的最后复审。

a) 单元测试

单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。

单元测试的流程:

3) 开发人员编写测试用例
4) 开发人员编写测试代码
5) 根据测试用例运行测试程序,根据结果写测试报告。
这个过程中涉及的文档有:测试用例、测试报告。


b) 集成测试

集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。

集成测试的流程

1) 设计集成测试用例和测试过程
2) 编写测试程序或者测试脚本
3) 执行测试并记录测试结果


c) 确认测试

确认测试是验证软件的功能和性能及其它特性是否与用户的要求一致。对商品化软件的品质从功能、性能、可靠性、易用性等方面作全面的质量检测,帮助软件企业找出产品存在的问题,出具相应的产品质量报告。

确认测试的流程

1) α测试:α测试是指软件开发公司组织内部人员模拟各类用户行对即将面市软件产品(称为α版本)进行测试,试图发现错误并修正。α测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的 用户操作方式。经过α测试调整的软件产品称为β版本。

2) β测试:β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,并要求用户报告异常情况、提出批评意见。然后软件开发公司再对β版本进行改错和完善。

3) 配置复审:确认测试的另一个重要环节是配置复审。复审的目的在于保证软件配置齐全、分类有序,并且包括软件维护所必须的细节。