SD方法最独特的方面是提供了块间联系和块内联系这两个评价模块结构质量的标准,块间联系越少,块内联系越大,则模块的独立性就越高。在这基础上,SD方法的总原则是使每个模块执行一个功能,模块间传输数据型参量,而且使参数尽量少。
这个总原则虽是定性衡量标准,但很具体,它可成为设计阶段的中间目标,只要达到了这个中间目标,设计的最终目标(即获得易理解、易维护、可靠的高质最软件)也就达到了。
SD方法在数据流图的基础上导出程序的模块结构,其过程可分为“导出初始结构”和“改进”两步。获得最终的设计方案之后。设计人员应再次认真地审核模块说明书。在软件开发过程中这又是一个中间检查点.设计人员应争取最早地发现软件系统中的一些错误,并及时纠正。这一步的检查工作可分两个方面进行: 1、由熟悉系统说明书的人来检查模块结构是否符合系统说明书的所有要求. 2、由熟悉SD方法的人来检查是否还有可以改进的地方。
模块说明书经反复审查后,最终确定下来,写成附录A.3格式的软件设计说明书,就是设计阶段胜利完成的里程碑.然而.在大量实践中,人们也发现SD存在如下种种问题: 1、过于强调纸上设计的完善.而在相当长的时间内偏离软件实体,让人看到的是过多的书面形式的东西,如书面说明、书面图、书面的表格等。 2、软件开发周期长,通常在完成编码前,看不到任何可运行的程序或演示、实例,用户难以做到“心中有数”。 3、SA和SD相结合,但SA/SD方法又严格的分离了数据与功能间的关系.SA只考虑数据在系统中的流向.SD按系统功能划分模块。因此,有人称SD为面向功能的设计方法。相反的是数据结构会影响功能设计中的实现方法,这一点正是发展)ackson方法和面向对象方法的因素之一。
此外,SD技术符合人类从全局到局部.从抽象到具体、从粗到细的思维方法.并给出了由顶向下、逐步求精的设计技术。但SD设计技术并没有为设计者提供“顶”在何方,“下”到何处为止的设计原则.不能为设计者提供着眼点和落脚点。因此,对同一求解问题,不同设计者可能设计出完全不同的软件系统结构,这也是同类问题不同设计者难以相互借鉴的重要原因之一。