功能模块独立的概念是功能模块化、抽象、信息隐蔽和局部化概念的直接结果。抽象是指对事物、状态或过程之间所存在的某些相似的方面集中和概括起来,而暂时忽略他们之间的差异,即考虑抽象事物的本质特征而暂时不考虑他们的细节。信息隐蔽是指再设计功能模块时使得一个功能模块内所包含的信息(过程或数据),对于不需要这些信息的功能模块来说是不能访问的。信息隐蔽原则对于以后在软件维护期间修改软件时会带来极-的好处,因为-量数据和过程是软件的其他部分所不能觉察的,因而再对某个功能模块修改时就不-会影响到软件的其他部分,所谓局部化是指把一些关系密切的软件元素在物理位置上彼此靠近。功能模块独立性是通过制定具有单一功能并且和其他功能模块没有过多联系的功能模块来实现的。
每个功能模块只涉及该软件要求的一个具体子功能,而且与软件结构的其他部分的接口是简单的。功能模块独立性好的软件接口简单,易于编制,独立的功能模块也比较容易测试和维护,限制了功能模块之间由于联系紧密而引起的修改副作用。独立性是保证软件质量的重要因素。功能模块独立性是由内聚性和耦合性两个定性指标来度量的。内聚性是度量一个功能模块内功能强度的一个相对指标。耦合性则用来度量功能模块之间的相互联系的程度。耦合是软件结构中各功能模块之间相互连接的一种度量,耦合强弱取决于功能模块间接口的复杂程度、进入或访问一个功能模块的点以及通过接口的数据。耦合有以下几种,☆内容耦合。如一个功能模块直接访问另一个功能模块的内容。
则这两个功能模块称为内容耦合。☆公共耦合。如一组功能模块都访问统一全局数据结构,则称之为公共耦合。☆外部耦合。如一组功能模块都访问统一全局数据项,则称之为外部耦合。☆控制耦合。如一功能模块明显地把开关量、名字等信息送入另一功能模块,控制另一功能模块的功能,则为控制耦合。☆标记耦合。如一组功能模块共享了某个记录,而不是简单变量,即这些功能模块都需某一数据的子结构时,就需要按该记录的结构进行操作,并通过参数表来传递记录信息,这样的耦合称之为标记耦合。☆数据耦合。如一个功能模块访问另一个功能模块,被访问的功能模块的输入和输出都是数据项参数,则这两个功能模块为数据耦合。☆非直接耦合。若两个功能模块没有直接关系。
他们之间的联系完全是通过主程序的控制和调用来实现的,便称这两个功能模块为非直接耦合,独立性-强。上面只是对耦合机制进行了一个分类。原则上讲,功能模块化设计是希望功能模块之间的耦合表现为非直接耦合方式。但是,由于问题所固有的复杂性和空间方面的考虑,有时则要根据实际情况,全面权衡,选用其它类型的耦合。内聚是从功能角度来度量功能模块内的联系,一个好的内聚功能模块应当恰好做一件事。它描述的是功能模块内的功能联系。内聚有如下的种类,☆偶然内聚。一功能模块中的代码无义其不同功能的调用。但它使该功能模块能执行不同的功能,这种功能模块称为巧合强度功能模块。☆逻辑内聚。这种功能模块把几种相关的功能组合在一起。
每次被调用时,有传送给功能模块参数来确定该功能模块应完成那一种功能。☆时间内聚。这种功能模块顺序完成一类相关功能,比如初始化功能模块,它顺序为变量置初值。☆过程内聚。如果一个功能模块内的处理元素是相关的,而且必须以特定次序执行则称为过程内聚。☆通信内聚。这种功能模块除了具有过程内聚的特点外,还有另外一种关系,则它的所有功能都通过使用公共数据而。☆顺序内聚。如果一个功能模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行,通常一个处理元素的输出数据作为下一个处理元素的输入数据,则称为顺序内聚。☆功能内聚。如果一个功能模块包括并仅包括未完成某一具体任务所必需的所有成分,或者说功能模块中所有成分结合起来是为了完成一个具体的任务。
M91A40G4L
M91A40G4Q
M91A40G4Y
M91A40GK4GE
M91A40GK4WA
M91A40GT4Q
M91A40GT4W
M91A40GV4L
M91A40GV4Q
M91A40GV4Y
M91A40S4Q
M91A40S4W
M91A40S4Y
M91A40SV4L
M91A40SV4Q
M91A40SV4W
M91A40SV4Y
M91A60S2Y
M91C60G4DU
M91C60G4L
M91C60G4Q
M91C60G4Y
M91C60GK4GE
M91C60GK4WA
M91C60GT4Y
M91C60GV4L
M91C60GV4Q
M91C60GV4Y
M91C60S4L
M91C60ST4Y
M91C60SV4L
M91C60SV4Q
M91C60SV4W
M91C60SV4Y
M91C90G4DU
M91C90G4L
M91C90G4Q
M91C90G4Y
M91C90GK4GE
M91C90GK4WA
M91C90GV4L
M91C90GV4Q
M91C90GV4Y
M91C90S2L
M91C90S2Y
M91C90S4L
M91C90S4Q
M91C90S4W
M91C90S4Y
M91C90SV4L
M91C90SV4Q
M91C90SV4W
M91C90SV4Y
M9MA40G4C
M9MA40G4JA
M9MA40GB4Y
M9MA40GK4CE1
M9MA40GK4JA
M9MA40GK4Y
M9MA40GKP4W1
M9MA40GT4Y
M9MA40S4Y
M9MC60G4C
M9MC60G4GU
M9MC60G4Y
M9MC60GB4Y
M9MC60GK4CE1
M9MC60GK4JA
M9MC60GK4Y
M9MC60GKP4W1
M9MC60GT4Y
M9MC60S4Y
M9MC90G4C
M9MC90G4JA
M9MC90GK4CE1
M9MC90GK4JA
M9MC90GK4Y
M9MC90GKP4W1
M9MC90S2Y
M9RA40G4L
M9RA40G4Q
M9RA40G4QC
M9RA40G4Y
M9RA40GB4L
M9RA40GB4Q
M9RA40GB4Y
M9RA40GK4GE
M9RA40GK4WA
M9RA40GV4L
M9RA40GV4Q
M9RA40GV4Y
M9RA40SB4L
M9RA40SB4Y
M9RA40SV4W
M9RA40SV4Y
M9RC60G4Q
M9RC60G4Y
M9RC60GB4L
M8GA20B
M8GA20M
M8GA25B