概要设计,详细设计之间的关系是什么?
楼主lanying(蓝鹰)(问个不休)2004-08-12 19:22:06 在 软件工程/管理 / 管理版 提问
我的看法:
概要设计只说明系统有多少个模块,各模块之间的接口和个模块本身的功能
详细设计说明某个具体模块如何实现,粒度应该比程序略高一些
但是问题来了,各个模块之间是有层次关系的,也有先后逻辑关系。这就说明,在概要设计中,还必须考虑模块的实现细节,否则,你怎么知道这个模块下面要划分子模块?你怎么知道各子模块的调用顺序?
这就说明,概要设计和详细设计是重叠进行的,而软件工程书上说的确是顺序进行的,不知道是不是我的理解有问题。
举个例子,例如排序程序,如果设计2个模块:
一个主模块用于排序
子模块用于交换2个变量,主模块调用子模块
但是子模块是怎么设计出来的呢?肯定是你先想到了用冒泡等排序方式的时候需要交换数据,这已经考虑了主模块足够多的细节,似乎属于“详细设计”了,但是目前进行的是概要设计,这就产生了我所说的重叠的情况。
1 楼qingrun(青润)回复于 2004-08-12 19:56:38 得分 20
你的看法有点问题。
概要设计是对需求分析的一个进一步细化。不是一个简单的模块性的描述。
概要设计阶段就要把一些考虑到的最大的技术难点做一次突破,因此我认为,概要设计实现的是对需求的进一步细化,也就是需求数字化的第一个实际步骤,同时部分需求较为稳定的模块要做先期的开发,技术最难的模块要做技术探索,逐渐推进。
2 楼spgoal(敏捷的狗狗)回复于 2004-08-12 21:31:59 得分 0
如果从需求分析直接跳到详细设计,中间没有一个过渡的过程,出现问题的几率会大很多,软件开发需要按部就班,最简单的按部就班就是按照传统的过程走一次,现在还搞迭代开发,其实也是一步一步走,使软件不断的完善。
楼主说的例子,在概要设计阶段,你就可以对排序的算法进行选择,分析其优劣性,概要设计结束时,基本上就已经确定用什么算法了,那么在详细设计时就可以专注与这个算法的具体实现