本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。在任何软件或系统开发的初始阶段必须先完全掌握用户需求,以期能将紧随的系统开发过程中哪些功能应该落实、采取何种规格以及设定哪些限制优先加以定位。系统工程师最终将据此完成设计方案,在此基础上对随后的程序开发、系统功能和性能的描述及限制作出定义。
软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的“源程序清单”。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。
软件实现的根据是计算机语言。时至今日,计算机语言发展为算法语言、数据库语言、智能模拟语言等多种门类,在几十种重要的算法语言中,c&c++语言日益成为广大计算机软件工作人员的亲密伙伴,这不仅因为它功能强大、构造灵活,更在于它提供了高度结构化的语法、简单而统一的软件构造方式,使得以它为主构造的sde数据库的基础成分——子程序库的设计与建设显得异常的方便。
软件需求工具,包括需求建模工具和需求追踪工具。软件设计工具,用于创建和检查软件设计,因为软件设计方法的多样性,这类工具的种类很多。软件构造工具,包括程序编辑器、编译器和代码生成器、解释器和调试器等。软件测试工具,包括测试生成器、测试执行框架、测试评价工具、测试管理工具和性能分析工具。软件维护工具,包括理解工具(如可视化工具)和再造工具(如重构工具)。软件配置管理工具,包括追踪工具、版本管理工具和发布工具。软件工程管理工具,包括项目计划与追踪工具、风险管理工具和度量工具。软件工程过程工具,包括建模工具、管理工具和软件开发环境。软件质量工具,包括检查工具和分析工具。