概要设计与详细设计分别要做什么
概述
概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调⽤关系,每个模块的功能等等。同时,还要设计该项⽬的应⽤系统的总体数据结构和数据库结构,即应⽤系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。
数据库设计说明书编写目的详细设计阶段就是为每个模块完成的功能进⾏具体的描述,要把功能描述转变为精确的、结构化的过程描述。
概要设计阶段通常得到软件结构图
详细设计阶段常⽤的描述⽅式有:流程图、N-S图、PAD图、伪代码等
概要设计和详细设计
在软件设计中,⼤家经常问到的⼀个问题是:概要设计应该怎样⼀个概要法,详细设计应该怎样⼀个详细法?
这个问题在公司内部经常有⼈问。现在陈述⼀下。
我们公司的研发流程是瀑布型的,这个模型中的分析、设计阶段是基于经典的结构化⽅法。
结构化设计⽅法的基本思路是:按照问题域,将软件逐级细化,分解为不必再分解的的模块,每个模块完成⼀定的功能,为⼀个或多个⽗模块服务(即接受调⽤),也接受⼀个或多个⼦模块的服务(即调⽤⼦模块)。模块的概念,和编程语⾔中的⼦程序或函数是对应的。
这样⼀来,设计可以明显地划分成两个阶段:
概要(结构)设计阶段:把软件按照⼀定的原则分解为模块层次,赋予每个模块⼀定的任务,并确定模块间调⽤关系和接⼝。
详细设计阶段:依据概要设计阶段的分解,设计每个模块内的算法、流程等。
概要设计阶段:
在这个阶段,设计者会⼤致考虑并照顾模块的内部实现,但不过多纠缠于此。主要集中于划分模块、分配任务、定义调⽤关系。模块间的接⼝与传参在这个阶段要定得⼗分细致明确,应编写严谨的数据字典,避免后续设计产⽣不解或误解。概要设计⼀般不是⼀次就能做到位,⽽是反复地进⾏结构调整。典型的调整是合并功能重复的模块,或者进⼀步分解出可以复⽤的模块。在概要设计阶段,应最⼤限度地提取可以重⽤的模块,建⽴合理的结构体系,节省后续环节的⼯作量。
概要设计⽂档最重要的部分是分层数据流图、结构图、数据字典以及相应的⽂字说明等。以概要设计⽂档为依据,各个模块的详细设计就可以并⾏展开了。详细设计阶段:
在这个阶段,各个模块可以分给不同的⼈去并⾏设计。在详细设计阶段,设计者的⼯作对象是⼀个模块,根据概要设计赋予的局部任务和对外接⼝,设计并表达出模块的算法、流程、状态转换等内容。这⾥要注意,如果发现有结构调整(如分解出⼦模块等)的必要,必须返回到概要设计阶段,将调整反应到概要设计⽂档中,⽽不能就地解决,不打招呼。详细设计⽂档最重要的部分是模块的流程图、状态图、局部变量及相应的⽂字说明等。⼀个模块⼀篇详细设计⽂档。
概要设计⽂档相当于机械设计中的装配图,⽽详细设计⽂档相当于机械设计中的零件图。⽂档的编排、装订⽅式也可以参考机械图纸的⽅法。
我们公司对模块的认识和传统定义有所不同,认为是较⼤的软件功能单元才可以称作模块。这种认识使⼤家对概要设计和详细设计的分⼯产⽣了混乱的理解,降低了⽂档的可⽤性,应该予以纠正。
概要设计中较顶层的部分便是所谓的⽅案。⽅案⽂档的作⽤是在宏观的⾓度上保持设计的合理性。
有的项⽬采⽤⾯向对象的分析、设计⽅法。可能在概要设计、详细设计的分⼯上疑问更多。其实,⾯向对象的分析、设计⽅法并没有强调结构化⽅法那样的阶段性,因此⼀般不引⼊概要、详细设计的概念。
如果按照公司的⽂档体系,⾮要有这种分⼯的话,可以将包的划分、类及对象间的关系、类的对外属性、⽅法及协作设计看做概要设计;类属性、⽅法的内部实现看做详细设计。
1.需求分析--产⽣软件功能规格说明书,需要确定⽤户对软件的需求,要作到明确、⽆歧义。不涉及具体实现⽅法。⽤户能看得明⽩,开发⼈员也可据此进⾏下⾯的⼯作(概要设计)。
2.概要设计--产⽣软件概要设计说明书,说明系统模块划分、选择的技术路线等,整体说明软件的实现思路。并且需要指出关键技术难点等。
3.详细设计--产⽣软件详细设计说明书,对概要设计的进⼀步细化,⼀般由各部分的担当⼈员依据概要设计分别完成,然后在集成,是具体的实现细节。理论上要求可以照此编码。
概要设计和详细设计的区别与联系
软件设计采⽤⾃顶向下、逐次功能展开的设计⽅法,⾸先完成总体设计,然后完成各有机组成部分的设计。
根据⼯作性质和内容的不同,软件设计分为概要设计和详细设计。概要设计实现软件的总体设计、模块划分、⽤户界⾯设计、数据库设计等等;详细设计则根据概要设计所做的模块划分,实现各模块的算法设计,实现⽤户界⾯设计、数据结构设计的细化,等等。
概要设计是详细设计的基础,必须在详细设计之前完成,概要设计经复查确认后才可以开始详细设计。概要设计,必须完成概要设计⽂档,包括系统的总体设计⽂档、以及各个模块的概要设计⽂档。每个模块的设计⽂档都应该独⽴成册。
详细设计必须遵循概要设计来进⾏。详细设计⽅案的更改,不得影响到概要设计⽅案;如果需要更改概要设计,必须经过项⽬经理的同意。详细设计,应该完成详细设计⽂档,主要是模块的详细设计⽅案说明。和概要设计⼀样,每个模块的详细设计⽂档都应该独⽴成册。
概要设计⾥⾯的数据库设计应该重点在描述数据关系上,说明数据的来龙去脉,在这⾥应该结合我们的⼀下结果数据,说明这些结果数据的源点,我们这样设计的⽬的和原因。详细设计⾥的数据库设计就应该是⼀份完善的数据结构⽂档,就是⼀个包括类型、命名、精度、字段说明、表说明等内容的数据字典。
概要设计⾥的功能应该是重点在功能描述,对需求的解释和整合,整体划分功能模块,并对各功能模块进⾏详细的图⽂描述,应该让读者⼤致了解系统作完后⼤体的结构和操作模式。详细设计则是重点在描述系统的实现⽅式,各模块详细说明实现功能所需的类及具体的⽅法函数,包括涉及到的sql语句等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论