甘肃民族师范学院函授《软件工程》学习课程-设计优化

院校:甘肃民族师范学院继续教育 发布时间:2021-04-24 13:31:21

    设计优化

    结构化设计的结果是生成设计文档中的系统结构图。由于在设计过程中,不同的设计人员在进行同一个设计时,可能得出不同的系统结构图,这使得初始系统结构图往往带有一定的个性,需要对系统结构图进一步细化和改进。人们在长期的实践中探索出了一些原则和方法,可以用来优化系统结构图,提高软件设计的质量。

    1.模块功能的完善化

    一个完整的功能模块,不仅应能完成指定的功能,而且还应能告诉使用者完成任务的状态,以及不能完成的原因。也就是说,一个完整的模块应当由两部分构成: 一是执行规定的功能部分,二是错误处理部分。良好的模块在不能完成指定的功能时,要回送出错标志,向它的调用者报告出错的原因及相应的解决方法。

    2.消除系统结构中的重复功能,改善软件结构

    在对系统结构中的模块进行划分或合并时,应尽量提高模块独立性。主要包括提高模块间的内聚性,降低耦合性,简化模块间的接口,以及少用全局性数据和控制信息等。

    在得出系统的初始结构图之后,应当审查分析这个结构图。如果发现几个模块的功能有相似之处,可以进行以下改进:完全相似。如果几个模块在结构上完全相似,可能只是在数据类型上不一致,可以采取完全合并的方法,将几个模块合并成一个模块,并在数据类型的描述上和变量的定义上加以改进。

    3.模块的大小要保持适中

    模块的大小可以用模块中所含语句的行数来衡量。限制模块的大小是减少复杂性的手段之一,因而要求把模块的大小限制在-定的范围之内。通常规定其语句行数在50-100左右,最多不超过500行,最好在30-60行之间,能在一张打印纸内,以便于阅读和管理。过长的模块往往是分解不充分的表现,会增加理解的难度:模块过小又会使模块之间的联系变得复杂,增大系统在模块调用时的开销。力争降低模块接口的复杂程度模块接口复杂是软件发生错误的个主要原因。 应该仔细设计模块接口,使得信息传递简单并且和模块的功能一致。接口复杂或不一致(即看起来传递的数据之间没有联系)是紧耦合成低内聚的征兆,应该重新分析这个模块的独立性。

    4. 设计单入口单出口的模块

    这条规则警告软件工程师不要使模块间出现内容耦合。当从项部进入模块并且从底部退出来时,软件是比较容易理解的,因此也是比较容易维护的。

    5.模块功能应该可以预测

    模块的功能应该能够预测,但也要防山止模块功能过分局限。

    如果一个模块可以当作一个黑盒子,也就是说,只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。带有内部“存储器”的模块的功能可能是不可预测的,因为它的输出可能取决于内部存储器(例如某个标记)的状态。由于内部存储器对于上级模块而言是不可见的,所以这样的模块既不易理解又难以测试和维护。

    如果一个模块只完成一个单独的子功能,则呈现高内聚:但是,如果一个模块任意限制局部数据结构的大小,过分限制在控制流中可以做出的选择或者外部接口的模式,那么这种模块的功能就过分局限,使用范围也就过分狭窄了。在使用过程中将不可避免地需要修改功能过分局限的模块,以提高模块的灵活性,扩大它的使用范围,但是在使用现场修改软件的代价是很高的。

    以上列出的这些规则多数是经验规律,对改进设计,提高软件质量,往往有重要的参考价值。