如何撰写软件详细设计内容?
1 引言
1.1 编写目的
说明编写详细设计方案的主要目的。
说明书编制的目的是说明一个软件系统各个层次中的每个程序(每个模块或子程序)和数据库系统的设计考虑,为程序员编码提供依据。
如果一个软件系统比较简单,层次很少,本文件可以不单独编写,和概要设计说明书中不重复部分合并编写。
方案重点是模块的执行流程和数据库系统详细设计的描述。
1.2 背景
应包含以下几个方面的内容:
A. 待开发软件系统名称;
B. 该系统基本概念, 如该系统的类型、从属地位等;
C. 开发项目组名称。
1.3 参考资料
列出详细设计报告引用的文献或资料,资料的作者、标题、出版单位和出版日期等信息,必要时说明如何得到这些资料。
1.4 术语定义及说明
列出本文档中用到的可能会引起混淆的专门术语、定义和缩写词的原文。
2 设计概述
2.1 任务和目标
说明详细设计的任务及详细设计所要达到的目标 。
2.1.1 需求概述
对所开发软件的概要描述, 包括主要的业务需求、输入、输出、主要功能、性能等,尤其需要描述系统性能需求。
2.1.2 运行环境概述
对本系统所依赖于运行的硬件,包括操作系统、数据库系统、中间件、接口软件、可能的性能监控与分析等软件环境的描述,及配置要求。
2.1.3 条件与限制
详细描述系统所受的内部和外部条件的约束和限制说明。包括业务和技术方面的条件与限制以及进度、管理等方面的限制。
2.1.4 详细设计方法和工具
简要说明详细设计所采用的方法和使用的工具。如HIPO图方法、IDEF(I2DEF)方法、E-R图,数据流程图、业务流程图、选用的CASE工具等,尽量采用标准规范和辅助工具。
3 系统详细需求分析
主要对系统级的需求进行分析。首先应对需求分析提出的企业需求进一步确认,并对由于情况变化而带来的需求变化进行较为详细的分析。
3.1 详细需求分析
包括:
- 详细功能需求分析
- 详细性能需求分析
- 详细资源需求分析
- 详细系统运行环境及限制条件分析
3.2 详细系统运行环境及限制条件分析接口需求分析
包括:
- 系统接口需求分析
- 现有硬、软件资源接口需求分析
- 引进硬、软件资源接口需求分析
4 总体方案确认
着重解决系统总体结构确认及界面划分问题。
4.1 系统总体结构确认
对系统组成、逻辑结构及层次进行确认,对应用系统、支撑系统及各自实现的功能进行确认,细化集成设计及系统工作流程,特别要注意因软件的引进造成的系统本身结构和公司其他系统的结构变化。包括:
Ÿ 系统组成、逻辑结构及层次确认
Ÿ 应用系统结构确认
Ÿ 支撑系统结构确认
Ÿ 系统集成确认
Ÿ 系统工作流程确认
4.2 系统详细界面划分
4.2.1 应用系统与支撑系统的详细界面划分
应用系统与支撑系统之间的界面包括系统主服务器与其他服务器的服务范围及访问方式,网络及数据库对应用系统的支撑方式,全局数据的管理与存取方式等。
4.2.2 系统内部详细界面划分
系统各功能之间的界面包括覆盖范围,模块间功能调用涉及到的系统模块及方法,全局数据格式,系统性能要求等。
5 系统详细设计
5.1 系统结构设计及子系统划分
对系统的组成及逻辑结构进行设计前确认。
划分系统功能模块或子系统(如果有或者有必要,特别是大型的软件系统)。
5.2 系统功能模块详细设计
按结构化设计方法,在系统功能逐层分解的基础上,对系统各功能模块或子系统进行设计。此为详细设计的主要部分之一。
用层次图描述系统的总体结构、功能分解及各个模块之间的相互调用关系和信息交互,用IPO图或其他方法描述各模块完成的功能。 以上建议采用HIPO图进行功能分解与模块描述,更高的要求建议采用IDEF0方法进行功能模型设计。
详细设计应用系统的各个构成模块完成的功能及其相互之间的关系,用IPO或结构图描述各模块的组成结构、算法、模块间的接口关系,以及需求、功能和模块三者之间的交叉参照关系。
每个模块的描述说明可参照以下格式:
模块编号:
模块名称:
输入:
处理:
算法描述:
输出:
其中处理和算法描述部分主要采用伪码或具体的程序语言完成。
对详细设计更高的要求建议用IDEF0图进行各功能模块的设计。
如果对软件需进行二次开发(包括功能扩展、功能改造、用户界面改造等),则相应的设计工作应该设立子课题完成。
5.3 系统界面详细设计
系统界面说明应用系统软件的各种接口。整个系统的其他接口(如系统硬件接口、通讯接口等)在相应的部分说明。
5.3.1 外部界面设计
根据系统界面划分进行系统外部界面设计,对系统的所有外部接口(包括功能和数据接口)进行设计。
5.3.2 内部界面设计
设计系统内部各功能模块间的调用关系和数据接口。
5.3.3 用户界面设计
规定人机界面的内容、界面风格、调用方式等,包括所谓的表单设计、报表设计和用户需要的打印输出等设计。此部分内容可能比较多。
6、数据库系统设计
此数据库设计可单独成册,尤其对大型的数据库应用系统,即有一个单独的《数据库设计说明书》。
6.1设计要求
6.2 信息模型设计
确定系统信息的类型(实体或视图),确定系统信息实体的属性、关键字及实体之间的联系,详细描述数据库和结构设计,数据元素及属性定义,数据关系模式,数据约束和限制。
6.3 数据库设计
6.3.1 设计依据
说明数据被访问的频度和流量,最大数据存储量,数据增长量,存储时间等数据库设计依据。
6.3.2 数据库种类及特点
说明系统内应用的数据库种类、各自的特点、数量及如何实现互联,数据如何传递。
6.3.3 数据库逻辑结构
说明数据库概念模式向逻辑模式转换所采用的方法论及工具,完成数据库概念模式向逻辑模式的转换。详细列出所使用的数据结构中每个数据项、记录和文件的标识、定义、长度及它们之间的相互关系。此节内容为数据库设计的主要部分。
6.3.4 物理结构设计
列出所使用的数据结构中每个数据项的存储要求、访问方法、存取单位和存取物理关系等。建立系统程序员视图,包括:
Ÿ 数据在内存中的安排,包括对索引区、缓冲区的设计;
Ÿ 所使用的外存设备及外存空间的组织,包括索引区、数据块的组织与划分;
Ÿ 访问数据的方式方法。
6.3.5 数据库安全
说明数据的共享方式,如何保证数据的安全性及保密性。
6.3.6 数据字典
编写详细的数据字典。 对数据库设计中涉及到的各种项目,如数据项、记录、系、文卷模式、子模式等一般要建立起数据字典,以说明它们的标识符、同义名及有关信息。
7 信息编码设计
7.3 代码结构设计
确认信息分类编码总体方案,进行分类代码结构设计。
7.4 代码编制
按代码结构编制信息代码
如何撰写软件详细设计内容?相关推荐
- ASPICE SWE3之——模型生成软件详细设计1 配置
目录 1.导出模型软件详细设计的配置: 2.导出的详细设计报告的内容: 前言 同C代码通过工具生成软件详细设计,模型开发也可通过工具导出详细设计. MATLAB有单独用于生成软件详细设计的工具包Sim ...
- ASPICE SWE3之——模型生成软件详细设计2 注释格式
目录 前言 注释层级 注释方式 注释格式 功能层(顶层): 时间计划层: 控制流层: 前言 前篇已经说到,使用Matlab的print功能导出模型详细设计,相关的配置.若想生成的详细设计内容完整,格式 ...
- ASPICE SWE3之——C代码生成软件详细设计1 Doxygen配置
目录 1 前言 2 Doxygen简介 2.1 什么是Doxygen 2.2 安装Doxygen及辅助软件 2.3 Doxygen的配置 1 前言 前面已经单独一篇文章讲了,若想通过Doxygen工具 ...
- ASPICE SWE3之——C代码生成软件详细设计2 注释格式
写软件详细设计文档,一般多为有ASPICE要求,写文档真的很费时间,没有要求真的不想写. Doxygen工具就提供了一种通过给代码注释的方式,导出详细设计文档,至于导出什么内容,主要取决于注释的内容. ...
- repo-话说软件详细设计工具
repost 4 https://blog.csdn.net/tang_huan_11/article/details/8043481 在软件设计是需要写软件详细说明书,设计此文档的时候,肯定少不了工 ...
- 你不能错过的文章撰写软件
关注"心仪脑"查看更多脑科学知识的分享. 关键词:资源推荐.写文软件 抛开我们常用的WPS和OFFICE不说,现在的写作工具是越来越人性化了,就差实现人工智能.当我们辛辛苦苦做完实 ...
- 大连计算机office办公,大连办公office软件学习内容
大连办公office软件学习内容,迪派教育新班开课啦 Word:文档的基本操作.文本的编辑与设置.文章的排版及布局. 插入(艺术字.图片.剪切画.自选图形.图表)等对象.设置图片 格式.页面设置及文档 ...
- 五、软件详细设计说明书-模板
五.软件详细设计说明书 1.引言 1 1.1编写目的 1 1.2项目背景 1 1.3定义 2 1.4参考资料 2 2.总体设计 2 2.1需求概述 2 2.2软件结构 2 3.程序描述 2 3.1功能 ...
- 软件详细设计说明书 模板
软件详细设计说明书 1 引言 1.1 编写目的:阐明编写详细设计说明书的目的,指明读者对象. 1.2 项目背景:应包括项目的来源和主管部门等. 1.3 定义:列出本文档中所用到的专门术语的定义和缩写词 ...
- 软件详细设计包含哪些内容??
目录 1基本内容 基本内容详细设计 详细设计的主要任务是设计每个模块的实现算法.所需的局部数据结构.详细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明易懂. 传统软件开发方法的详 ...
最新文章
- 华润网络签约神策数据 数据赋能打造跨行业综合移动服务生态圈
- 使用BeetleX在Linux下部署.NET多站点服务
- assubclass_Java类class asSubclass()方法及示例
- 通过隐藏Nginx和PHP版本号防止黑客攻击
- 简单数据策略帮助LinkedIn提高企业服务收入
- 【word自带的公式编辑】如何删除公式里面的空行or对齐公式
- 剑指Offer_编程题(用两个栈实现队列/旋转数组的最小数字(O(n) + 二分O(lgn))/斐波那契数列/跳台阶)
- (二)史玉柱:我的营销心得有感------主要关注网络游戏策划
- python抓取豆瓣电影
- Unity Live2D SDK的使用方法(二)——播放动画
- 我的人生哲学(三十六岁版)
- DVWA靶机-文件上传漏洞(File Upload)
- python通信技术_一起学Python:网络通信过程
- cdq分治 学习笔记
- 两相编码器的FPGA驱动
- 优衣库46万客户信息遭泄露,这些年,你的信息还被谁泄露过?
- cdma2000解析_LTE和CDMA2000互操作方案分析
- JS中的$().each
- App地推活动需要做哪些准备 - Xinstall
- 古老计算机的显卡,老电脑换卡还能战三年 低价位显卡盘点
热门文章
- 基于Springboot+vue开发实现自行车租赁管理系统
- VMWareStation10 密钥
- python绘制缓和曲线_CAD中如何绘制缓和曲线
- android版usb转网线驱动,usb网线转换器驱动下载
- Java中常见的几种数组排序方法
- Java数组 排序算法和常见异常
- UTP网线和FTP网线,哪一种更适合超六类布线?
- SMB/CIFS--NetBOIS/Browser/NBNS 协议
- grads插值_GrADS中填色标尺cbarn用法
- 江西科技师范大学泰豪校区计算机专业,扎心了!比取经还艰难的大学路,南昌居然占了这么多……...