设计说明书的框架见表22-3 。
软件设计的最终目标是要取得最佳方案。“最佳”是指在所有候选方案中,就节省开发费用、降低资源消耗、缩短开发时间的条件,选择能够赢得较高的生产率、较高的可靠性和可维护性的方案。在整个设计的过程中,各个时期的设计结果需要经过一系列
的设计质量的评审,以便及时发现和及时解决在软件设计中出现的问题,防止把问题遗留到开发的后期阶段,造成后患。
(1)可追溯性:即分析该软件的系统结构、子系统结构,确认该软件设计是否覆盖了所有己确定的软件需求,软件每一成分是否可追溯到某一项需求。
(2)接口:即分析软件各部分之间的联系,确认该软件的内部接口与外部接口是否已经明确定义。模块是否满足高内聚和低耦合的要求。模块作用范围是否在其控制范围之内。
(3)风险:即确认该软件设计在现有技术条件下和预算范围内是否能按时实现。
(4)实用性:即确认该软件设计对于需求的解决方案是否实用。
(5)技术清晰度:即确认该软件设计是否以一种易于翻译成代码的形式表达。
(6)可维护性:从软件维护的角度出发,确认该软件设计是否考虑了方便未来的维护。
(7)质量:即确认该软件设计是否表现出良好的质量特征。
(8)各种选择方案:看是否考虑过其他方案,比较各种选择方案的标准是什么。
(9)限制:评估对该软件的限制是否现实,是否与需求一致。
(10)其他具体问题:对于文档、可测试性、设计过程等进行评估。
在这里需要特别注意:软件系统的一些外部特性的设计,例如软件的功能、一部分性能以及用户的使用特性等,在软件需求分析阶段就已经开始。这些问题的解决,多少带有一些“怎么做”的性质,因此有人称之为软件的外部设计。
McGlanghlin给出在将需求转换为设计时判断设计好坏的三条特征:
(1)设计必须实现分析模型中描述的所有显式需求,必须满足用户希望的所有隐式需求。
(2)设计必须是可读、可理解的,使得将来易于编程、易于测试、易于维护。
(3)设计应从实现角度出发,给出与数据、功能、行为相关的软件全貌。
以上三点就是软件设计过程的目标。为达到这些目标,必须建立衡量设计的技术标准。
(1)设计出来的结构应是分层结构,从而建立软件成分之间的控制。
(2)设计应当模块化,从逻辑上将软件划分为完成特定功能或子功能的构件。
(3)设计应当既包含数据抽象,也包含过程抽象。
(4)设计应当建立具有独立功能特征的模块。
(5)设计应当建立能够降低模块与外部环境之间复杂连接的接口。
(6)设计应能根据软件需求分析获取的信息,建立可驱动、可重复的方法。
软件设计过程根据基本的设计原则,使用系统化的方法和完全的设计评审来建立良好的设计。
设计说明书检查表见表22-4。
各省软考办 | ||||||||||