前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >概要设计和详细设计说明书的区别

概要设计和详细设计说明书的区别

作者头像
全栈程序员站长
发布于 2022-06-27 13:09:08
发布于 2022-06-27 13:09:08
1.2K0
举报

大家好,又见面了,我是你们的朋友全栈君。

1.需求分析–产生软件功能规格说明书,需要确定用户对软件的需求,要作到明确、无歧义。不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作(概要设计)。

2.概要设计–产生软件概要设计说明书,说明系统模块划分、选择的技术路线等,整体说明软件的实现思路。并且需要指出关键技术难点等。

3.详细设计–产生软件详细设计说明书,对概要设计的进一步细化,一般由各部分的担当人员依据概要设计分别完成,然后在集成,是具体的实现细节。理论上要求可以照此编码。

概要设计与详细设计的区别

概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。同时,还要设计该项目的应用系统的总体数据结构数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。

详细设计阶段就是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。

概要设计阶段通常得到软件结构图

详细设计阶段常用的描述方式有:流程图、N-S图、PAD图、伪代码等

概要设计和详细设计

软件设计中,大家经常问到的一个问题是:概要设计应该怎样一个概要法,详细设计应该怎样一个详细法?

这个问题在公司内部经常有人问。现在陈述一下。

我们公司的研发流程是瀑布型的,这个模型中的分析、设计阶段是基于经典的结构化方法。

结构化设计方法的基本思路是:按照问题域,将软件逐级细化,分解为不必再分解的的模块,每个模块完成一定的功能,为一个或多个父模块服务(即接受调用),也接受一个或多个子模块的服务(即调用子模块)。模块的概念,和编程语言中的子程序或函数是对应的。

这样一来,设计可以明显地划分成两个阶段:

概要(结构)设计阶段:把软件按照一定的原则分解为模块层次,赋予每个模块一定的任务,并确定模块间调用关系和接口。 详细设计阶段:依据概要设计阶段的分解,设计每个模块内的算法、流程等。 概要设计阶段:

在这个阶段,设计者会大致考虑并照顾模块的内部实现,但不过多纠缠于此。主要集中于划分模块、分配任务、定义调用关系。模块间的接口与传参在这个阶段要定得 十分细致明确,应编写严谨的数据字典,避免后续设计产生不解或误解。概要设计一般不是一次就能做到位,而是反复地进行结构调整。典型的调整是合并功能重复的模块,或者进一步分解出可以复用的模块。在概要设计阶段,应最大限度地提取可以重用的模块,建立合理的结构体系,节省后续环节的工作量。

概要设计文档最重要的部分是分层数据流图、结构图、数据字典以及相应的文字说明等。以概要设计文档为依据,各个模块的详细设计就可以并行展开了。 详细设计阶段:

在这个阶段,各个模块可以分给不同的人去并行设计。在详细设计阶段,设计者的工作对象是一个模块,根据概要设计赋予的局部任务和对外接口,设计并表达出模块的算法、流程、状态转换等内容。这里要注意,如果发现有结构调整(如分解出子模块等)的必要,必须返回到概要设计阶段,将调整反应到概要设计文档中,而不 能就地解决,不打招呼。详细设计文档最重要的部分是模块的流程图、状态图、局部变量及相应的文字说明等。一个模块一篇详细设计文档。 概要设计文档相当于机械设计中的装配图,而详细设计文档相当于机械设计中的零件图。文档的编排、装订方式也可以参考机械图纸的方法。

我们公司对模块的认识和传统定义有所不同,认为是较大的软件功能单元才可以称作模块。这种认识使大家对概要设计和详细设计的分工产生了混乱的理解,降低了文档的可用性,应该予以纠正。

概要设计中较顶层的部分便是所谓的方案。方案文档的作用是在宏观的角度上保持设计的合理性。

有的项目采用面向对象的分析、设计方法。可能在概要设计、详细设计的分工上疑问更多。其实,面向对象的分析、设计方法并没有强调结构化方法那样的阶段性,因此一般不引入概要、详细设计的概念。如果按照公司的文档体系,非要有这种分工的话,可以将包的划分、类及对象间的关系、类的对外属性、方法及协作设计看做 概要设计;类属性、方法的内部实现看做详细设计。

概要设计和详细设计的区别与联系

软件设计采用自顶向下、逐次功能展开的设计方法,首先完成总体设计,然后完成各有机组成部分的设计。

根据工作性质和内容的不同,软件设计分为概要设计和详细设计。概要设计实现软件的总体设计、模块划分、用户界面设计、数据库设计等等;详细设计则根据概要设计所做的模块划分,实现各模块的算法设计,实现用户界面设计、数据结构设计的细化,等等。

概要设计是详细设计的基础,必须在详细设计之前完成,概要设计经复查确认后才可以开始详细设计。概要设计,必须完成概要设计文档,包括系统的总体设计文档、以及各个模块的概要设计文档。每个模块的设计文档都应该独立成册。 详细设计必须遵循概要设计来进行。详细设计方案的更改,不得影响到概要设计方案;如果需要更改概要设计,必须经过项目经理的同意。详细设计,应该完成详细设计文档,主要是模块的详细设计方案说明。和概要设计一样,每个模块的详细设计文档都应该独立成册。

概要设计里面的数据库设计应该重点在描述数据关系上,说明数据的来龙去脉,在这里应该结合我们的一下结果数据,说明这些结果数据的源点,我们这样设计的目的和原因。详细设计里的数据库设计就应该是一份完善的数据结构文档,就是一个包括类型、命名、精度、字段说明、表说明等内容的数据字典。 概要设计里的功能应该是重点在功能描述,对需求的解释和整合,整体划分功能模块,并对各功能模块进行详细的图文描述,应该让读者大致了解系统作完后大体的结构和操作模式。详细设计则是重点在描述系统的实现方式,各模块详细说明实现功能所需的类及具体的方法函数,包括涉及到的sql语句等。

概要设计只说明系统有多少个模块,各模块之间的接口和个模块本身的功能 详细设计说明某个具体模块如何实现,粒度应该比程序略高一些

软件的概要设计,主要是建立软件系统的整体架构,也就是我们在盖房子时候,需要先将房子的整个架子构建起来。

软件的详细设计,主要是将软件系统的各个部分的具体设计方法、逻辑、功能采用文字方式进行表述。这样在实现过程中,Coding人员原则上严格按此进行代码实现即可。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133070.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月9,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
【画图】某基因在人肺组织功能预测分析
现在已经有明确的实验证明,跟SARS病毒一样,新冠状病毒2019-nCoV与宿主细胞的ACE2受体结合[1]。上次教程已经给大家演示了,GTEx数据库有人各组织中基因表达谱数据,下载整理这个数据可以绘制出ACE2受体在人体组织中的表达量情况。
Chris生命科学小站
2023/02/28
2430
【画图】某基因在人肺组织功能预测分析
【画图】如何画火山图?
如果你不喜欢敲代码可以按照下面的链接在线完成 2分钟!使用小站工具,就能用鼠标点出火山图和GSEA图~回复:我要测试。领取测试数据玩起来吧~
Chris生命科学小站
2023/02/28
7390
【画图】如何画火山图?
【画图】如何批量做基因表达相关分析
【画图】与COVID-19/SARS-CoV-2/2019-nCoV病毒结合ACE2基因的表达在人肺组织中与那些基因表达相关?
Chris生命科学小站
2023/02/28
4141
【画图】如何批量做基因表达相关分析
生信技能树GEO数据挖掘直播配套笔记
二代测序(RNA_seq):如果是counts 可选择limma的voom算法或者edgeR或者DESeq2。 如果是FPKM或TPM可选择limma,注意:edgeR和DESeq2只能处理count注意:count做差异分析计算上下调,FPKM或TPM进行下游可视化
生信技能树
2022/06/08
2.1K0
生信技能树GEO数据挖掘直播配套笔记
生信技能树Day9 GEO数据挖掘 差异分析
用户11064093
2024/04/21
3120
【画图】如何批量展现基因表达相关性?
现在已经有明确的实验证明,跟SARS病毒一样,新冠状病毒2019-nCoV与宿主细胞的ACE2受体结合[1]。上次教程已经给大家演示了,GTEx数据库有人各组织中基因表达谱数据,下载整理这个数据可以绘制出ACE2受体在人体组织中的表达量情况以及可能的功能有哪些。
Chris生命科学小站
2023/02/28
4900
【画图】如何批量展现基因表达相关性?
单细胞测序—标准分析流程(4)—GSEA与GSVA
https://github.com/rcastelo/GSVA/issues/172
sheldor没耳朵
2024/09/05
1.1K0
单细胞测序—标准分析流程(4)—GSEA与GSVA
scRNA分析|单细胞GSVA + limma差异分析-celltype分组?样本分组?
单细胞数据完成差异分析后,可以根据结果进行后续的GO ,KEGG,GSEA富集分析,推荐使用clusterProfiler-R包,可参考 R|clusterProfiler-富集分析 clusterProfiler|GSEA富集分析及可视化 。
生信补给站
2023/08/25
2.1K0
scRNA分析|单细胞GSVA + limma差异分析-celltype分组?样本分组?
RNAseq数据 | 下载GEO中的FPKM文件后该怎么下游分析
Oncogenic lncRNA downregulates cancer cell antigen presentation and intrinsic tumor suppression不过不需要看文章,大家只需要做差异分析即可,这个时候需要注意的是,作者提供的是RPKM值表达矩阵!
生信技能树
2022/06/08
1.9K0
RNAseq数据 | 下载GEO中的FPKM文件后该怎么下游分析
GEO
用户10667093
2023/07/24
2950
GEO数据挖掘4
这里需要使用差异比较用到的limma包,在使用这个包进行分析之前,需要准备三个矩阵 * 表达矩阵 * 分组矩阵 * 差异比较矩阵
火星娃统计
2020/09/15
1.1K0
GEO数据挖掘4
基因集富集分析(GSEA)及其可视化
基因集富集分析(Gene Set Enrichment Analysis, GSEA)是是一种计算方法,用于确定事先定义的一组基因是否在不同的样品中差异表达。
青青青山
2022/07/04
7.6K0
基因集富集分析(GSEA)及其可视化
新GEO
1.Entrez gene ID:我们一般说的Gnen ID即Entrez gene ID,是用一串数字表示的(在NCBI里面用)
用户10758803
2024/03/10
2910
GEO数据挖掘7
GSVA分析,gene Set Variation Analysis,被称为基因集变异分析,是一种非参数的无监督分析方法,用来评估芯片核转录组的基因集富集结果。 思路
火星娃统计
2020/09/15
1.5K0
GEO数据挖掘7
单细胞测序流程(单细胞rna测序)
咱们在上一个课程中进行了GO圈图绘画,但是我富集分析并不只是有GO,kegg通路的富集分析可以看到基因发挥的作用,在生物体中的重要性。
全栈程序员站长
2022/07/31
1.6K0
单细胞测序流程(单细胞rna测序)
R|clusterProfiler-富集分析
简单总结clusterProfiler包进行GO、KEGG的富集分析方法,结果输出及内置的图形展示。
生信补给站
2020/08/06
2.2K0
药物预测之差异基因为什么不行
现在可以尝试一下理解药物预测的原理啦,首先呢在前面的教程 药物预测之相关性为什么不行,我们发现简简单单的表达量相关性居然都可以勉勉强强得到还算是合理的结果啊!现在让我们一起看看差异基因能不能进行药物预测!
生信技能树
2021/10/12
1.5K0
使用R语言下载TCGA数据库癌症基因表达数据小例子
上面遇到的问题今天找到了解决办法:可以使用SummarizedExperiment包中的函数assay()函数将表达矩阵提取出来;colData()函数好像是获得一些样本信息
用户7010445
2020/03/03
2.8K0
单细胞转录组基础分析七:差异基因富集分析
单细胞测序技术是近年最大的生命科学突破之一,相关文章频繁发表于各大顶级期刊,然而单细胞数据的分析依然是大家普遍面临的障碍。本专题将针对10X Genomics单细胞转录组数据演示各种主流分析,包括基于Seurat的基础分析、以及基于clusterProfiler、Monocle、SingleR等R包的延伸分析。不足之处请大家批评指正,欢迎添加Kinesin微信交流探讨!
生信技能树jimmy
2020/09/04
11.7K1
单细胞转录组基础分析七:差异基因富集分析
富集分析-KEGG/GO
是系统分析基因功能、基因组 信息数据库,它有助于研究者把基因及表达信息作为一个整体 网络进行研究,以“理解生物系统的高级功能和实用程序资源库”著称。
用户10412487
2023/03/28
2.8K0
相关推荐
【画图】某基因在人肺组织功能预测分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档