Page 26 - 计算机应用软件开发技术研究
P. 26
计算机应用软件开发技术研究
Research on Computer Application Software Development Technology
外部耦合:一组模块都访问同一全局简单变量(而不是同一全局数据结
构),且不通过参数表传递该全局变量的信息,则称为外部耦合。
控制耦合:若一模块明显地把开关量、名字等信息送入另一模块,控制另一
模块的功能,则为控制耦合。
标记耦合:若两个以上的模块都需要其余某一数据结构子结构时,不使用其
余全局变量的方式而是用记录传递的方式,即两模块间通过数据结构交换信息,
这样的耦合称为标记耦合。
数据耦合:若一个模块访问另一个模块,被访问模块的输入和输出都是数据
项参数,即两模块间通过数据参数交换信息,则这两个模块为数据耦合。
非直接耦合:若两个模块没有直接关系,它们之间的联系完全是通过主模
块的控制和调用来实现的,则称这两个模块为非直接耦合。非直接耦合独立性
最强。
上面仅是对耦合机制进行的一个分类。可见,一个模块与其他模块的耦合
性越强则该模块的模块独立性越弱。原则上讲,模块化设计总是希望模块之间的
耦合表现为非直接耦合方式。但是,由于问题所固有的复杂性和结构化设计的原
则,非直接耦合往往是不存在的。
耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。
在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,
应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,
这样有利于提高模块的独立性。
(三)软件设计的发展方向
软件开发过程是随着开发技术的演化而随之改进的。从早期的瀑布式
(Waterfall)的开发模型到后来出现的螺旋式的迭代(Spiral)开发,以后来开始
兴起的敏捷开发方法(Agile),他们展示出了在不同的时代软件产业对于开发
过程的不同的认识以及对于不同类型项目的理解方法。
注意区分软件开发过程和软件过程改进之间的重要区别。例如,像
ISO15504、ISO9000、CMM、CMMI 这样的名词阐述的是一些软件过程改进框
架,他们提供了一系列的标准和策略来指导软件组织如何提升软件开发过程的质
量、软件组织的能力,而不是给出具体的开发过程的定义。
“敏捷开发”(Agile Development)是软件工程的一个重要的发展。它强调
·14·

