怎么写好软件概要设计(软件概要设计详细设计)
概要设计说明书
1简介1.1目的
这部分要描述文档的目的。应该指明读者。
1.2范围1.2.1软件名称
对软件命名
1.2.2软件功能
解释软件产品将完成或不完成的功能(可以直接描述也可以参考相关文档)
1.2.3软件应用
描述软件的应用领域(可直接描述也可以参考其他软件文档)
2第0层设计描述2.1软件系统上下文定义
本节描述待开发软件系统与外部实体的关系,可以使用系统结构图来描述系统结构和交互关系。
外部实体属性描述只限于软件设计和描述相关的属性。考虑到描述的完整性,可参考相关软件实体文档,如OS程序员手册。
2.2设计思路(可选)2.2.1设计可选方案
对本软件系统的几种设计方案进行分析、比较,并确定所采用的方案。
2.2.2设计约束
1.遵循标准
描述本软件所遵循的标准、规范
2.硬件限制
描述本软件系统实现的硬件限制
3.技术限制
描述本软件的技术限制
2.2.3其他
描述其他有关的设计考虑
3第一层设计描述3.1系统结构
如果本文档是针对增强开发/小特性的设计,继承了原有的系统结构,那么应拷贝原有的系统结构说明,如系统结构图和相应的文字说明,然后在一层设计中明显标识出新增功能在原有系统结构中的位置(属于原来哪一个模块的新增功能,与原有各模块之间有什么交互)。在后续的业务流程说明、模块分解描述、依赖性描述和接口描述中,如果与本次增强开发/小特性无关的,可以不再重复描述,如果有关联的,应该拷贝原有的设计说明,在此基础上再说明更改的内容。
3.1.1系统结构描述
这里要描述软件系统的总体结构,可以使用结构图、层次分解图或包图来描述,并应说明系统结构划分的原则(例如,基于标准、协议所规定的体系结构,来自于分析模型的结果,或者基于原有体系结构的结果)。对于使用分析模型的体系结构,应说明分析类的职责及相互关系。
3.1.2业务流程说明
描述系统架构模块/分析类之间的动态交互,来说明用例模型中的典型用例场景,以体现系统功能是如何实现的。建议采用Sequence图、Collaboration图等来描述。
3.2分解描述
本节描述系统中的子系统和模块。
3.2.1模块/子系统1描述
不要直接写“模块/子系统1”,用简短的词语命名模块/子系统。
按照以下格式描述:
1.简介
2.功能列表
3.2.2数据设计
怎么写代码做软件
本节描述系统中的数据结构。
外部数据实体不必描述。
1.数据实体1描述
按照以下格式描述:
标识:
类型:
目的:
3.3依赖性描述
本节描述系统中的子系统,数据结构,模块,进程等设计实体间的关系。
依赖关系描述可以使用文字,结构图,(交互)事务图。
3.4接口描述
本节描述软件系统中设计实体(如子系统,模块,进程)的接口.
I接口描述可以使用接口文件,参数表。
对于外部实体只有同被描述软件相关的接口才需描述。
接口可以是函数调用、事件、消息、信号等。
3.4.1模块/子系统1的接口描述
对每个接口按照以下格式描述:
名称:(接口名称)
说明:(对接口的简短说明)
定义:(接口原型定义,说明接口类型及相关参数)
4第二层设计描述
L1中定义的每个模块的进一步设计在下面的章节进行描述。对层次比较多的模块,可以增加设计层次,最终要说明对应于最小分解模块的具体设计类(包括其public属性和public方法)。
对每个模块重复使用下述的格式。
4.1模块1名称
不要直接写“模块1名称”,用简短的词语命名模块。
如果本文档是针对增强开发/小特性的设计,继承了原有的二层模块结构,那么应拷贝原有的模块结构说明,如包图/类图和相应的文字说明,然后在二层设计中明显标识出新增功能在原有模块结构中的位置(属于原来哪一个子模块/设计类的新增功能,与原有各子模块/设计类之间有什么交互)。在后续的功能实现说明和设计类定义中,如果与本次增强开发/小特性无
关的,可以不描述,如果有关联的,应该拷贝原有的设计说明,在此基础上再说明更改的内容。对更改的设计类应该给出类的完整定义,再标识出更改的属性和方法。
4.1.1模块设计描述
描述模块分解,例如每个子模块的功能定义。定义出具体的设计类,用类图来描述其相互关系,并说明所采用的设计模式。