# 3.2 项目流程 一个项目从提出到结束,包含以下几个主要流程: * 需求分析 * 需求分析评审 * 预研 * 设计 * 设计评审 * 实施 * 测试 * 验收和移交 在提出项目的最初阶段,甲方会对项目提出需求,但甲方的需求通常是不明确的,因此需要乙方进行需求分析。需求分析应包括: * 功能分析 * 性能分析 * 安全和稳定性分析 需求分析是个反复的过程,通常要跟甲方或其他相关人员进行沟通。在完成了需求分析后,需要跟甲方进行需求分析评审,以确认乙方对需求分析的正确性。 需求分析和需求分析评审是个反复进行的工作。在完成需求分析后,我们对整个项目进行研究,可能某些技术是当前不具备的,或某些可能的设计是需要验证的,此时需要进行预研。在预研阶段,将会验证整个项目的技术可行性,并且评估技术风险。 在预研通过后,设计人员就可以根据需求分析结果和预研结果完成项目的设计。设计分为: * 总体设计 * 模块设计 * 接口设计 * 界面设计 * 通讯设计 * 算法设计 * 安全设计 整体是由模块构成的,模块间通过接口进行交互。模块可能不止一个层次,某模块可能由多个子模块构成。 在完成设计后,应由有经验的人员和甲方参与评审,针对设计中的缺陷或不足提出修改建议。因此设计和设计评审也是一个往复的过程。 当设计评审通过之后,就可以进入项目实施阶段。对于软件而言就是编码实现的过程。 测试是为了验证项目实施的正确性。对于软件项目,就是验证软件的功能、性能、稳定性和可靠性是否满足需求分析。 软件测试分为: * 单元测试(单体测试) * 集成测试 * 稳定性测试 * 健壮性测试 * 安全测试 * 产品测试 其中,单元测试不是一个完全独立的过程。单元测试通常贯穿在项目实施阶段,每完成一组单元程序的开发后,通常就会进行一遍单元测试。 一旦产品通过了最后的产品测试,就可以开始编写用户使用手册等说明文档,之后将文档和产品一并移交给甲方。至此,一个项目的生命周期结束。