软件设计是一个将需求转变为软件陈述(表达)的过程。有两个基本步骤:
第一步是初步设计(Preliminary design) ,关注于如何将需求转换成数据和软件框架。
第二步是 详细设计(Detail design),将框架逐步精细化为具体的数据结构和软件的算法表达。
在软件开发的标准过程中,软件的详细过程包括了5个阶段。在5个阶段中,将产出多份文件,下面就来看一看每个阶段需要编写的文件及其主要内容吧:
1、需求分析阶段
整个周期中其他阶段的基础。在此阶段,所有利益相关者(包括客户、产品负责人等)都会去收集与待开发软件相关的信息。对此,项目经理和相关方会频繁召开会议。尽管此过程可能比较耗时。
软件需求说明书: 软件需求说明书让用户和软件开发方对软件的初始特点形成相同的理解,使之成为整个开发工作的基础。需求说明书的内容包括功能、性能的说明。
数据要求说明书:数据要求说明书为整个开发过程提供关于被处理数据的描述和数据采集要求的技术信息。
初步用户手册:用户手册使用非专门术语语言,充分描述软件系统所具有的功能及基本的使用方法。用户(或潜在用户)通过本手册可以快速了解软件的用途,并且能确定在什么情况下,如何使用它。
2、设计阶段
这个阶段将设计出软件蓝图。负责软件高级设计的开发人员将组成设计团队,并通过由上个阶段产生文档,来指导设计过程,并最终完成满足要求的体系结构。内容通常包括用户界面、用户流程、通信设计等方面在内的基础要素
概要设计说明书:概要设计说明书又称系统设计说明书,这里所说的系统是指程序系统。编制的目的是说明对程序系统的设计考虑,包括程序系统的基本处理流程、程序系统的组织结构、模块划分.功能分配、接口设计。运行设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。
详细设计说明书:详细设计说明书又叫程序设计说明书。说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,如果一个软件系统比较简单,层次很少,文件可以不单独编写,有关内容合并入概要设计说明书。
数据库设计说明书:数据库设计说明书对设计中的数据库的所有标识、逻辑结构和物理结构作出具体的设计规定。
测试计划初稿:这里所说的测试,主要指整个程序系统的组装测试和确认测试。文件提供一个对该软件的测试计划,包括对每项测试活动的内容、进度安排、设计考虑、测试数据的整理方法及评价准则。
3、实现阶段
开发人员或工程师通过处理设计的需求构建和实现软件。一个人也可以由一个大型团队来执行,具体取决于项目的规模。
后端开发人员负责构建数据库结构和其他必要组件。最后,由前端开发人员根据设计去构建用户界面,并按需与后端进行对接。
模块开发卷宗(开始编写):模块开发卷宗是在模块开发过程中逐步编写出来的,每完成一个模块或一组密切相关的模块的复审时编写一份,应该把所有的模块开发卷宗汇集在一起。编写的目的是记录和汇总低层次开发的进度和结果,以便于对整个模块开发工作的管理和复审,并为将来的维护提供非常有用的技术信息。
操作手册:操作手册向操作人员提该软件每一个运行的具体过程和有关知识,包括操作方法的细节。
4、测试阶段
测试人员协同开发团队在此阶段开展测试工作。测试既可以与开发同时进行,也可以在开发阶段结束时再开展。
模块开发卷宗(此阶段内必须完成)
测试分析报告:测试分析报告把组装测试和确认测试的结果、发现及分析写成文件加以记载。
项目开发总结报告:项目开发总结报告总结项目开发工作的经验,说明实际取得的开发结果以及对整个开发工作的各个方面的评价。
5、运行与维护阶段
部署软件,来方便用户使用了。此阶段部署团队需要通过遵循若干流程,来确保部署流程的成功。
开发进度月报:及时向有关管理部门汇报项目开发的进展和情况,以便及时发现和处理开发过程中出现的问题。一般地,开发进度月报是以项目组为单位每月编写的。如果被开发的软件系统规模比较大,整个工程项目被划分给若干个分项目组承担,开发进度月报将以分项目组为单位按月编身。
软件设计要素
软件设计包括软件的结构设计,数据设计,接口设计和过程设计。
结构设计:定义软件系统各主要部件之间的关系。
数据设计:将模型转换成数据结构的定义。
接口设计:软件内部,软件和操作系统间以及软件和人之间如何通信。
过程设计:系统结构部件转换成软件的过程描述。
软件概要设计说明书标准模板
通用的软件概要设计说明书国家有标准。例如概要设计说明书(GB8567-88)包括如下内容:
1引言
1.1编写目的
1.2背景
1.3定义
1.4参考资料
2总体设计
2.1需求规定
2.2运行环境
2.3基本设计概念和处理流程
2.4结构
2.5功能器求与程序的关系
2.6人工处理过程
2.7尚未问决的问题
3接口设计
3.1用户接口
3.2外部接口
3.3内部接口
4运行设计
4.1运行模块组合
4.2运行控制
4.3运行时间
5系统数据结构设计
5.1逻辑结构设计要点
5.2物理结构设计要点
5.3数据结构与程序的关系
6系统出错处理设计
6.1出错信息
6.2补救措施
6.3系统维护设计