结构推理 软件设计的基本原理是什么?
【正确答案】要设计好的软件结构,必须要有一定的标准准则,根据经验,总结出了以下设计原理。
   (1)模块与模块化。解决一个复杂的问题,最有效的方法是把问题分解成几部分,然后再分别考虑。软件系统中,用什么来实现这些分解的“部分”呢?就是用模块,模块是可以组合、可以分解或者更换的元素。模块有功能、有接口、有运行环境,这是它的外部特征,这些特征外部模块可以“看到”。模块也有外部模块,不需要知道的内部特性,即内部的数据及处理过程。把复杂的问题划分成模块的过程称为“模块化”。
   (2)抽象。抽象是划分模块过程中的思维原则,设计人员不可能一下就把系统划分成很详细的模块,要自顶向下,逐步求精。开始分解的时候考虑主要的方面。如:主要的功能、主要的数据、主要的行为,这就是抽象,然后再逐步加细。由抽象到具体的结果,产生的软件结构必然是层次结构,这种结构具有可理解性。
   (3)信息隐蔽。应用“抽象”确定软件模块,应用信息隐蔽定义对模块的过程细节及局部数据的存取限制来提高模块的独立性。信息隐蔽是指模块将内部处理细节和内部数据用某种手段“隐蔽”起来,即外部模块不能随便访问它们,模块之间仅仅交换为完成系统功能所必需的信息。信息隐蔽为软件系统的修改、测试及以后的维护带来好处。
   (4)模块的独立性。模块独立性是模块化、抽象和信息隐蔽的直接产物。每个模块只要完成独立的功能,与其他模块联系最少,则模块的独立性就强。衡量模块独立性有两个定性标准。
   ①耦合性:指软件结构中模块之间相互的依赖程度。耦合性越高的模块,其独立性越差。影响模块问耦合程度最主要的因素是模块间信息传递的复杂性。
   ②内聚性:内聚性是度量一个模块功能强度的一个相对指标,表现在模块内部各组成部分执行功能组合在一起的相关程度。各成分(数据、语句、段等)之间都紧密相关于同一功能,模块的内聚性就高,显然独立性则强。
【答案解析】