软件需求,概要设计,详细设计(文档)怎么做,做什么.docx
写在前面
由于项目工作需要,需要提供《软件需求规格说明书》,《软件概要设计说明书》和《软件详细设计说明书》。所以这里整理学习一下相关文档需要的内容。文章并不设计对所有需求分析,概要设计和详细设计的详细描述。因为这其中的任何一点都可以单独提取出来成为软件工程学科中的一本书籍内容。
1软件设计的整体流程:
软件需求分析阶段:输出了《软件需求规格说明书》,不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作,搞清楚“要解决什么问题”。
概要设计阶段:确定软件系统的总体布局,各个子模块的功能和模块间的关系,与外部系统的关系,选择的技术路线。有一些研究与论证性的内容。并输出《软件概要设计说明书》。搞清楚“总体实现方案”
详细设计阶段:对概要设计的进一步细化,一般由各部分的担当人员依据概要设计分别完成,然后在集成,是具体的实现细节。是“程序”的蓝图,确定每个模块采用的算法、数据结构、接口的实现、属性、参数。并输出《软件详细设计说明书》。搞清楚“每个模块怎么做”
2需求分析
2.1我们为什么需要《软件需求规格说明书》?
如果需求的编写只是为了解释说明软件实现的功能,那么良好的编码结构,代码注释就可以很好的实现软件的功能说明,程序员可以将编写需求的时间节约下来进行更多功能的实现;可是,这样的情况可能更多适用于中小型项目,或者互联网项目,因为这样的项目需求不复杂,并且需求变化很快,所以研发的效率非常重要。然而,针对大型软件项目或者功能比较复杂的系统,软件研发可能是多人协作的成果,所以在信息传递过程中,我们只有提前考虑好软件需求的内容,才能正确评估开发软件所需要的时间,成本的要素,从而更好的管理项目。
2.2《软件需求规格说明书》的一般结构
正文的第一章内容是1.概述,包含
1.1.编写目的;1.2.术语与定义;1.3.参考资料;三个部分
第二章要给出该项目的标准和规范,在文档的后续内容编写中以及项目开发过程中必须遵照这个标准和规范进行。
第三章应该说明该项目的相关假设、限制和一些依赖条件,在后续系统部署的过程中可以有参考意义。
第四章“功能规格”是重点,重点介绍这个系统的角色,界面设计思路,系统的功能视图和功能点清单,以及系统的需求用例。这个内容必须详细描述,这样才能对后续的开发和测试提供指导意义。
第五章“非功能规格”要对项目的性能、安全、数据的备份恢复等内容解释解释说明,一个项目除了功能完整之外,还要考虑性能、安全等相应的要求。
第六章“附录”,是对软件需求规格说明书的一些补充说明文档,其中的“软件需求跟踪矩阵”是重点,这份文档是对后续需求的完善程度进行了严格的控制。
3概要设计
3.1《概要设计说明书》的一般结构:
总述:需求或目标(讲一下事情的起源)、环境、局限;
总体设计:从全局的角度说一下组织结构、功能、处理流程、有哪些模块、模块间的关系,运行环境等。(输出图:系统结构图,系统流程图,数据流程图,推荐在线画图工具\oProcessOn-免费在线作图,思维导图,流程图,实时协作ProcessOn-免费在线作图,思维导图,流程图,实时协作)
外部接口:总体说明外部用户、软、硬件接口(可用资源);
模块设计:每个模块“做什么”、简要说明“怎么做”(输入、输出、处理逻辑、与其它模块或系统的接口),处在什么逻辑位置、物理位置。
模块设计,可以写以下内容:
1、模块描述:说明哪些模块实现了哪些功能;
2、模块层次结构:可以使用某个视角的软件框架图来表达;
3、模块间的关系:模块间依赖关系的描述,通信机制描述;
4、模块的核心接口:说明模块传递的信息、信息的结构;
5、处理方式设计:说一些满足功能和性能的算法;
数据结构:逻辑结构、物理结构。
容灾设计:出错信息、出错处理。(可选)
监控设计:运行模块组合、控制、时间。(可选)
用户界面设计:(可选)。
安全设计:(可选)。
其它设计:(可选)。
制定规范(附录):设计原则,代码规范、接口规约、命名规则。
3.2概要设计需要注意的地方
用来评价总体设计的可行性。
用来检查设计的模块是否完整,保证每一个功能都有对应的模块来实现。
用来评估开发工作量、指导开发计划(在不写详细设计的情况下)。
概要设计阶段过于重视业务流程是个误区.
概要设计阶段过于重视细节实现是个误区.
4详细设计
4.1《详细设计说明书》的一般结构:
参考\o如何撰写软件详细设计内容?如何撰写软件详细设计内容?
引言,包含:
编写目的,背景,参考资料,术语定义及说明
设计概述,包含:任务和目标,需求概述,运行环境概述,条件与限制,详细设计方法和工具
系统详细需求分析,包含:详细需求分析,详细系统运行环境及限制条件分析接口需求分析
总体