专栏首页java工会详细设计写些啥

详细设计写些啥

什么是详细设计

详细设计是相对概要设计而言的,是瀑布开发流程的一个重要环节,在概要设计的高层设计的基础上,从逻辑上实现了每一模块的功能,是编码阶段的主要参考资料,是从高层到低层、逐步精化思想的具体实现。

详细设计文档的内容包括各个模块的算法设计, 接口设计, 数据结构设计,交互设计等。必须写清楚各个模块/接口/公共对象的定义,列明各个模块程序的各种执行条件与期望的运行效果,还要正确处理各种可能的异 常。

为什么要做详细设计

在开发过程中,由需求及设计不正确、不完整所导致的问题是项目进度拖延、失败的一个主要因素,而软件系统的一个 重要特性就是需求和设计的不断构建和改进,在写详细设计文档过程中, 详细设计实际上是对系统的一次逻辑构建,可以有效验证需求的完整性及正确性。

如果不写详细设计文档,一般就从概设直接进入编码阶段,这时开发人员所能参考的资料就是需求规格说明书及页面原 型、数据库设计等,不能直接进行开发,需要进行信息的沟通,把页面原型不能体现的设计讲清楚,这样既容易遗忘,也容易发生问题,详细设计文档可以作为需求 人员、总体设计人员与开发人员的沟通工具,把静态页面无法体现的设计体现出来,包含整体设计对模块设计的规范,体现对设计上的一些决策,例如选用的算法, 对一些关键问题的设计考虑等等,使开发人员能快速进入开发,提高沟通效率,减少沟通问题。

对于系统功能 的调整,后期的维护,详设文档提供了模块设计上的考虑、决策,包括模块与整体设计的关系、模块所引用的数据库设计、重要操作的处理流程、重要的业务规则实 现设计等等信息,提供了对模块设计的概述性信息,阐明了模块设计上的决策,配合代码注释,可以相对轻松读懂原有设计。

应该如何写详细设计文档

详细设计的主要任务是设计每个模块的实现算法、所需的局部数据结构。详细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明易懂。 传 统软件开发方法的详细设计主要是用结构化程序设计法。详细设计的表示工具有图形工具和语言工具。图形工具有程序流程图、PAD(Problem Analysis Diagram)图、NS(由 Nassi和 Shneidermen开发,简称 NS)图。语言工具有伪码和 PDL(Program Design Language)等。

主要任务:

1.为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述;

2.确定每一模块使用的数据结构;

3.确定模 块接口的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及模块输入数据、输出数据及局部数据的全部细节。 在详细设计结束时,应该把上述结果写入详细设计说明书,并且通过复审形成正式文档。交付给下一阶段(编码阶段)的工作依据。

4.要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试,模块的测试用例是软件测试计划的重要组成部分,通常应包括输入数据,期 望输出等内容。

详细设计的工具:

1.图形工具。利用图形工具可以把过程的细节用图形描述出来。

2.表格工具可以用一张表来描述过程的细节,在这张表中列出了各种可能的操作和相应的条件。

3.语言工具用某种高级语言(称之为伪码)来描述过程的细节。

< <详细设计说明书> > 规范 1 引言 1.1 编写目的:阐明编写详细设计说明书的目的,指明读者对象。 1.2 项目背景:应包括项目的来源和主管部门等。 1.3 定义:列出本文档中所用到的专门术语的定义和缩写词的愿意。 1.4 参考资料:   ● 列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源   ●项目经核准的计划任务书、合同或上级机关的批文;项目开发计划;需求规格说明书;概要设计说明书;测试计划(初稿);用户操作手册   ● 文档所引用的资料、软件开发的标准或规范。 2 总体设计 2.1 需求概述 2.2 软件结构:如给出软件系统的结构图。 3 程序描述 3.1 逐个模块给出以下说明:   ● 功能   ● 性能   ● 输入项目   ● 输出项目 3.2 算法:模块所选用的算法。 3.3 程序逻辑:详细描述模块实现的算法,可采用:标准流程图;PDL语言;N-S图;判定表等描述算法的图表。 3.4 接口   ● 存储分配   ● 限制条件 3.5测试要点:给出测试模块的主要测试要求

本文分享自微信公众号 - java工会(javagonghui)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 全栈很屌?什么是全栈工程师

    三哥
  • 厉害的程序员到底用不用 IDE,如果不用,为什么?

    首先需要知道为什么开发IDE,有一个很强大的集成开发环境对于一个小菜程序员来说真的是事半功倍。你用大白天的时间去很实在地敲一大堆代码,最后发现别人用一个好一些的...

    三哥
  • DOC文档注释,让你的代码如此清晰。

    三哥
  • 软件开发生命周期的五个阶段

    一个软件从定义,开发,运行维护,直到最终要经历一个时期的过程 ,这个时期称为软件的生命周期 系统软件生命周期一般为分析,设计,实现和测试与维护这几个阶段,

    北京锐智互动
  • 【强力推荐】将任何格式的文档免费转换为高质量PDF文件的软件

    本人珍藏,强力推荐!!!这个软件不但体积非常小(仅4M),而且是完全免费的。安装后能快速、批量将所有的Office文档,包括但不限于Word、Excel、PPT...

    半夜喝可乐
  • 大数据时代律师行业的三大变革

    大数据文摘
  • Nginx模块之Filter解析

    过滤模块简介 执行时间和内容 过滤(filter)模块是过滤响应头和内容的模块,可以对回复的头和内容进行处理。它的处理时间在获取回复内容之后,向用户发送响...

    用户1263954
  • 基于OEA框架的客户化设计(三) “插件式”DLL

        本篇主要描述GIX4项目中如何把单独的模块设计为一个“插件”,如何把它组装到系统中。至于为什么加引号,之后会有说明。 原理     在基于产品线开发时,...

    用户1172223
  • Python基础知识

    要求:从键盘获取自己的年龄,判断是否大于或者等于18岁,如果满足就输出“哥,已成年,网吧可以去了”

    DataScience
  • nginx0.1.0之http模块初始化源码分析(5)

    继续http模块的分析,这次分析的是init_module钩子函数的执行。http模块各子模块的init_module钩子主要做的事情是两个,一个就是注册pha...

    theanarkh

扫码关注云+社区

领取腾讯云代金券