在读完构建之法这本书后,对软件开发的整个流程有了一定的认识。在典型的软件开发流程中,从一个项目的立项到最后项目的发布,其经过了多个步骤,以此来确保项目的顺利进行。在典型开发流程瀑布模型中,为了获取软件需求,需要用常用的获取需求的方法和步骤来。而对于竞争性需求,我们需要NABCD框架来分析和获取,即需求、做法、好处、竞争和推广。对于软件功能的定位和优先级,即杀手功能、外围功能、必要需求和辅助需求,通常采用四象限方法。为了更加深入的理解用户需求,通常需要采用典型用户和场景的方法。在软件开发过程中存在两种类型的说明书:软件功能说明书和软件技术说明书,其中软件功能说明书主要用来说明软件的外部功能和用户交互情况,而软件技术说明书则用来说明软件内部的设计规范。而为了将用户的需求变成可以直接进行的开发工作并源源不断地实现这些需求,需要功能驱动的设计。软件开发的生命周期中,在不同阶段需要使用不同的测试方法,比如在远景和计划阶段进行测试计划和测试设计说明书,同时收集用户对非功能测试的需求,在开发阶段需要单元测试,功能和场景测试,建立回归测试基准,探索式测试,集成测试,同时开展非功能性的测试,在稳定阶段需要进行验收测试。为了让整个软件开发的工作更加高效,需要设置PM职位,以此来协调软件开发工作中除了开发和测试之前的一切事情。而在软件稳定和发布阶段,可以使用软件按时发布的招数:DCR与ZBB,针对出现的不同问题,可以有不同的解决方案,以便于软件的正常发布,RTW最终发布版本。而为了保证软件的质量,需要达到一定的CMMI等级。