文档介绍:如何保证软件设计的质量软件在没有发布之前的开发过程主要分为需求分析、设计、编码和验证四个阶段,最终的软件质量与这四个阶段的各自质量之间的关系是:最终的软件质量=需求分析质量+设计质量+编码质量+验证质量即,最终的质量来自于各阶段质量之总和,只要其中一个环节质量是差,则产品的整体质量都将是差。由此看来每一个阶段的质量都起着决定性的作用。对于如何保证软件设计的质量来说,可以先从软件设计意义来说。设计是什么?有人说设计是人类的思想,也有人说设计是模型,也有人说设计是规划人们完成工作的步骤。在敏捷开发社区里直接指出设计就是源代码!其实上面所说的设计概念都只提到设计本身的某一个方面。总结定义如下:设计是人类为了完成某一项任务而对该任务的实现进行不同程度的抽象,这样使人类在有限的智力范围内更容易、更优美、更便捷的实现任务目标。“思想”是一种对任务实现方法的抽象,“模型”是对任务实现结果的抽象,“规划的步骤”是对任务实现过程的抽象,“程序源代码”也是任务实现结果的一种抽象(这种抽象度比UML模型更低)。其实只有“可以部署到客户环境中的可执行系统”才是任务的主要结果,也即软件产品。因而,我们主要保证质量的产品就是:“可以部署到客户环境中的可执行系统”。设计的目的是降低任务的复杂度,对目标系统进行不通层次抽象,把系统易变、复杂的部分进行分离,解除不必要的偶合,使系统在满足功能需求的同时保证系统的可修改性、可重用性、可靠性、易用性、性能等非功能需求。对于实现的系统很小、很简单,并且已经有成功的实现经验和案例,可以不需要做更高抽象层次的设计,源代码本省就是一种很精确的设计;对于中大规模的系统,或拥有复杂逻辑的系统,一般需要采用比源代码更高一级抽象层次的设计,比如UML类设计图等等来描述高层设计;如果系统非常复杂庞大、开发周期很长、开发成员众多,那就需要一个更加有条理、更加规范和严谨的设计抽象来保证工作的有序和协调了,同时需要更多的设计层次来降低系统的复杂性。是不是只要做了设计,就能确保软件产品的质量达到要求呢?大家知道这是不可能的!但设计能从架构或结构方面促使系统的质量达到要求,系统细节问题是不能靠设计保证的,这需要严格的测试过程。良好的设计能促进软件产品的质量提高,低劣的设计直接造成软件产品的质量低劣。所以说,为了保证开发出来的软件产品达到既定的质量要求或指标,我们需要根据这些质量要求,选择促进软件产品到达这些质量要求的设计策略,采用业界多年已经验证的设计原则和模式(比如大家熟知的著名的‘开闭原则’等等),进行恰当的抽象,创造出优良的设计结果。同时在做这些设计的时候,也需要对设计进行复审,使其保证设计的方向不会偏离目标。世界没有包治百病的灵丹妙药,软件也没有万能的解决办法,只有不断改进我们解决问题的思想、方法和过程,良好软件设计就是我们在提升软件质量方面一个重要的法宝!软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案。软件设计把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。将问题或事物分解并模块化使得解决问题变得容易,分解的越细模块数量也就越多,它的副作用就是使得设计者考虑更多的模块之间耦合度的情况。设计阶段是通过设计方法找出软件实现更好的方法,注