软件详细设计文档模板(最全面)资料.doc
-_文档编号文档编号版本版本A1密级密级商密 A项目名称项目名称XxXx 系统系统研发生产中心研发生产中心项目来源项目来源XxXxx x 系统系统 详细设计说明书详细设计说明书(内部资料 请勿外传)编编 写:写:日日 期:期:检检 查:查:日日 期:期:审审 核:核:日日 期:期:批批 准:准:日日 期:期:XX 公公司司版权所有版权所有 不得复制不得复制文档变更记录文档变更记录-_序号序号变更(变更(+/-)说明)说明作者作者版本号版本号日期日期批准批准12-_目 录1. 引言 .41.1 编写目的和范围 .41.2 术语表 .41.3 参考资料 .41.4 使用的文字处理和绘图工具 .42. 全局数据结构说明 .52.1 常量 .52.2 变量 .52.3 数据结构 .53. 模块设计 .53.1 用例图 .53.2 功能设计说明 .53.2.1 模块 1 .53.2.2 模块 2 .64. 接口设计 .74.1 内部接口 .74.2 外部接口 .74.2.1 接口说明 .74.2.2 调用方式 .85. 数据库设计 .86. 系统安全保密设计 .86.1 说明 .86.2 设计 .86.2.1 数据传输部分 .86.2.2 IP 过滤分部.86.2.3 身份验证部分 .87. 系统性能设计 .98. 系统出错处理 .9-_-_1. 引言1.1 背景此文档的背景1.2 编写目的和范围说明写这份详细设计说明书的目的。 本详细设计说明书编写的目的是说明程序模块的设计考虑,包括程序描述、输入/输出、 算法和流程逻辑等,为软件编程和系统维护提供基础。本说明书的预期读者为系统设计人 员、软件开发人员、软件测试人员和项目评审人员。1.3 术语表定义系统或产品中涉及的重要术语,为读者在阅读文档时提供必要的参考信息。序号术语或缩略语说明性定义1PMProject Manager,项目经理21.4 参考资料列出有关资料的名称、作者、文件编号或版本等。参考资料包括: a需求说明书、架构设计说明书等; b本项目的其他已发表的文件; c引用文件、资料、软件开发标准等。 资料名称作者文件编号、版本资料存放地点1.5 使用的文字处理和绘图工具文字处理软件:编写设计文档使用的文字处理软件,如 RedOffice 绘图工具:使用的 UML 工具,如 Rose、Jude、Visio-_2. 设计概述2.1 任务和目标2.1.1 需求概述2.1.2 运行环境概述2.1.3 条件与限制2.1.4 详细设计方法和工具3. 系统详细需求分析主要对系统级的需求进行分析。首先应对需求分析提出的企业需求进一步确认,并对 由于情况变化而带来的需求变化进行较为详细的分析。3.1 详细需求分析3.1.1 详细功能需求分析3.1.2 详细性能需求分析3.1.3 详细资源需求分析3.1.4 详细接口需求分析3.1.5 详细系统运行环境及限制条件分析4. 总体方案确认着重解决系统总体结构确认及界面划分问题。-_4.1 系统总体结构确认对系统组成、逻辑结构及层次进行确认,对应用系统、支撑系统及各自实现的功能进 行确认,细化集成设计及系统工作流程,特别要注意因软件的引进造成的系统本身结构和 公司其他系统的结构变化。包括:4.1.1 系统组成、逻辑结构及层次确认4.1.2 应用系统结构确认4.1.3 支撑系统结构确认4.1.4 系统集成确认4.1.5 系统工作流程确认4.2 系统详细界面划分4.2.1 应用系统与支撑系统的详细界面划分应用系统与支撑系统之间的界面包括系统主服务器与其他服务器的服务范围及访问方 式,网络及数据库对应用系统的支撑方式,全局数据的管理与存取方式等。4.2.2 系统内部详细界面划分系统各功能之间的界面包括覆盖范围,模块间功能调用涉及到的系统模块及方法,全 局数据格式,系统性能要求等。5. 全局数据结构说明本章说明本程序系统中使用的全局数据常量、变量和数据结构。5.1 常量包括数据文件名称及其所在目录,功能说明,具体常量说明等。-_5.2 变量本章说明本程序系统中使用的全局数据常量、变量和数据结构。5.3 数据结构包括数据结构名称,功能说明,具体数据结构说明(定义、注释、取值)等。6. 系统详细设计6.1 功能结构图6.2 系统结构设计及子系统划分对系统的组成及逻辑结构进行设计前确认。 划分系统功能模块或子系统(如果有或者有必要,特别是大型的软件系统) 。6.3 系统功能模块详细设计按结构化设计方法,在系统功能逐层分解的基础上,对系统各功能模块或子系统进行 设计。此为详细设计的主要部分之一。 用层次图描述系统的总体结构、功能分解及各个模块之间的相互调用关系和信息交互, 用 IPO 图或其他方法描述各模块完成的功能。 以上建议采用 HIPO 图进行功能分解与模块 描述,更高的要求建议采用 IDEF0 方法进行功能模型设计。 详细设计应用系统的各个构成模块完成的功能及其相互之间的关系,用 IPO 或结构图 描述各模块的组成结构、算法、模块间的接口关系,以及需求、功能和模块三者之间的交 叉参照关系。 每个模块的描述说明可参照以下格式: 模块编号: 模块名称: 输入: 处理: 算法描述: 输出: 其中处理和算法描述部分主要采用伪码或具体的程序语言完成。 对详细设计更高的要求建议用 IDEF0 图进行各功能模块的设计。 如果对软件需进行二次开发(包括功能扩展、功能改造、用户界面改造等) ,则相应的 设计工作应该设立子课题完成。-_6.4 系统界面详细设计系统界面说明应用系统软件的各种接口。整个系统的其他接口(如系统硬件接口、通 讯接口等)在相应的部分说明。6.4.1 外部界面设计根据系统界面划分进行系统外部界面设计,对系统的所有外部接口(包括功能和数据 接口)进行设计。6.4.2 内部界面设计设计系统内部各功能模块间的调用关系和数据接口。6.4.3 用户界面设计规定人机界面的内容、界面风格、调用方式等,包括所谓的表单设计、报表设计和用 户需要的打印输出等设计。此部分内容可能比较多。7. 开发和测试生产环境说明7.1 开发环境7.2 测试及产品环境- Development evnironment: programming lanuague, databaseVs 2010 - svn - iss 6.1 + - mysql/sql server 2005/2008 - .net framwork 4.0- Testing 10. 数据库设计详见xxx 数据库设计说明书 如果数据库设计内容比较少,则直接在此处描述。11. 系统安全保密设计11.1 说明例如:由于存在与外部系统的接口,所以需要考虑访问安全的问题.11.2 设计例如:分为数据传输部分,IP 过滤部分,身份验证部分.章节可补充11.2.1 数据传输部分例如:在部分数据传递的时候,考虑以 https 协议,需要在部署的时候作相关处理.-_11.2.2 IP 过滤分部例如:可在系统前端通过 Filter 实现,该 Filter 实现对该地址访问的 IP 过滤作用.可 信任 IP 地址通过 xml 文件进行配置.11.2.3 身份验证部分例如:对信任的用户,颁发身份验证码,通过该标识进行身份识别.12. 系统性能设计13. 系统出错处理例如:为了在系统出现异常情况下给用户以明确的提示,可采用两种方式予以提示: 1使用 Javascript 的 alert()函数直接提示,这主要在输入或修改的情况下使用; 2使用统一的错误界面提示,该界面对应于 errorpage.jsp 页面。错误界面样式如下 图所示:错误提示:返回“错误提示内容”错误提示界面14. 设计和开发规范【可以列表方式列出设计开发的参考文档的索引,内容较少/关键内容可以章节方式填写】-_14.1 数据库设计规范【参见XXXX 数据库设计规范】14.2 .NET 编码规范特别强调:详细请参见ASP.Net 文档规范这里只做简单阐述,如有变动,会及时同事整个项目组相关人员。(1) 不要给类名加前缀。使用 PascalCasing 风格,不使用匈牙利命名法 。 (2) 要用名词词组来给类型命名。使用 PascalCasing 风格 。 (3) 类名少用缩写,不要使用下划线字符 (_)。 (4) 基类 CBase 的文件名为:FileBase.cs;(5) 泛型类命名:考虑用 T 来命名参数类型 ,类如:public class List。(6) 接口(Interface)命名规范和类命名规范相同,唯一区别是 接口在名字前加上“I”前缀。(7) 枚举命名:以复数结尾,表明这是一个枚举,例如:Enum ColorButtons (8) 结构命名:表明这是一个结构体,例如:Structure CustomerInfoRecord '以 Record 结尾除使用工具直接生成的类外,其它所有类的功能要有注释,即使只是一个数据对象;非常见功能的 API 必须要有功能描述的注释。独立的要被应用其他功能所调用的模块的接口和公共 API 的注释要完备,即包括功能说明、参数和返回值说明。其它情况的 API 的注释尽量完备,但不强制要求。一次性的流打开后必须关闭和释放。一般地,在流打开后,都有一个 try catch-_语句,务必加上 finally 块释放流资源。即使 IF,While 是单语句,也要使用“ ”来划分程序块。不要有完全为调试使用的日志信息,如 xxxx.info(“1”);如要使用,在调试完成后请及时删除。一些常识性代码,不需要写没必要的注释。不要用工具生成没用的注释。14.3 代码目录结构系统架构目录结构设计图,如下:结构说明:作用范围包名描述-_Images存放图片ScriptsJquery 以及样式表等Scripts/jquery-easyui-1.2.6jquery-easyui 包数字为版本Scripts/jquery-ui-1.8.20jquery-ui 包数字为版本Scripts/jthok-ui自定义的 js 格式文件整个程序 ContentScripts/themesIcon 格式图片以及样式Controllers./Controller控制器处理来自浏览器的输入,并返回相应页面给用户。 Data./Data放自定义的 json 文件Models./Models存放模型Scripts./Scripts引入的各种外部 js 文件Views./Views存放各种类型的试图Global.asax./Global.asax注意定义路由规则等Web.config./Web.config配置文件