Parnas方法(信息隐藏原则)

标签:
软件设计parnas方法信息隐藏 |
分类: 软件过程改进 |
Parnas 方法(信息隐蔽原则)
将程序设计成模块化的结构是有许多优点的,这将提高程序的质量(易理解、易维护等),将使系统易于开发(多个人可以并行工作)。但模块化的效果同划分模块的标准是密切相关的。Parnas提出了一个以信息隐蔽为原则的划分模块的方法。
软件的一个特点是不断地需要修改,在整个软件生命期中,用户的要求会发生变化,软件系统的操作也会变化,这些变化都需要程序系统本身做出相应的修改,这里需要考虑的问题是: 如何将系统适当地划分成模块,使得这些变化尽量对程序结构的影响小一些。
Parnas方法以信息隐蔽为原则,使用该方法时应首先列出一些可能发生变化的因素,在模块设计时,将可能发生变化的因素隐含在某些模块的内部,使其他模块与这些因素无关。这样,当这些因素发生变化时,只需要修改某个模块就够了,而其他模块均不受该因素的影响。也就是说,在设计模块结构时,将某个因素隔离在某个模块内部,使这个因素的变化不致于传播到所在模块的边界之外。
经验证明,数据结构往往有易于发生变化的因素,用户目前要求系统的输入输出具有某种格式,将来又可能要求使用其他格式。Jackson方法主要特点是程序结构要反映出数据的结构,而Parnas方法在这一点上与Jackson方法是相反的,Parnas方法正好指出了Jackson方法的弱点。如果数据结构发生了变化,则按Jackson方法设计的整个程序结构都可能改变。
Parnas方法与SD方法是相似的,将有关信息隐藏在模块的内部,就是将模块作为一个黑盒,使其他模块不了解这个模块的内部信息,这同模块之间要相对独立、块间联系要小等想法是一致的。
Parnas方法对模块的划分提出了深刻的见解,但遗憾的是它没有给出明确的工作步骤,所以这一方法一般作为其他方法的补充手段,例如,同SD方法结合起来使用,同Jackson方法结合使用。这一模块划分原则在面向对象方法的类构造中得到了充分体现和发展。