软件模块化的设计原则

软件模块化的设计通常用聚合(聚合是对模块功能相对强度的度量)和祸合(祸合是对一个软件结构内不同模块之间互相关联程度的度量)的概念来衡量模块间的独立性和模块间的关联性,在设计模块时,我们将遵循如下的软件模块化设计的原则:

操作方法

  • 01

    1、设计时应该力求做到模块的高聚合(顺序聚合、功能聚合),通常中等程度的聚合(过程聚合、通信聚合)也是可以采用的,而且效果和高聚合相差不多。但是,低聚合(偶然聚合、逻辑聚合、时间聚合)效果很差,一般都不采用。

  • 02

    2、在祸合方式上力求降低模块间接口的复杂性。模块间接口的复杂性包括模块的接口方式、接口信息的结构和数量。接口方式不采用直接引入(内容祸合),而采用调用方式(如过程语句调用方式)。接口信息通过参数传递且传递信息的结构尽量简单,不用复杂参数结构(如过程、指针等类型参数),参数的个数也不宜太多,如果太多,则说明模块的功能过于庞大复杂,可考虑降低其复杂性。

  • 03

    3、尽可能改进软件结构提高模块独立性。设计出软件的初步结构以后,应试审查分析这个结构,通过模块分解或合并,力求降低祸合提高聚合。如图2.5所示,若其中B、C、D之间存在内容祸合,可将它们合并为一个模块BCD,若E、F中有一个公共的子功能,可将该子功能独立成一个模块,这样就可以改进结构。

  • 04

    4、尽量减少高扇出结构,特别当深度增加时,力求扇入,避免软件的瀑布式结构。深度表示软件结构中控制的层数,扇出是对某一模块直接控制的模块数目的度量,扇入则是对某一给定模块被多少个模块直接控制的度量。 扇出过大意味着模块越复杂,需要控制和协调过多的下级模块,扇出过小也不好。经验表明,一个设计得好的典型系统的平均扇出通常是3或4(扇出的上限通常是5~9)。一个模块的扇入表明有多少个上级模块直接调用它,扇入越大则共享该模块的上级模块数目越多,扇入的目的在于提高公共的实用模块的利用率,防止设计冗余。

  • 05

    5、将模块的作用域保持在其控制域内。模块的作用域定义为受该模块内一个判定影响的所有模块的集合。模块的控制域是这个模块木身及所有直接或间接从属于它的模块的集合。 为减少模块间的祸合度,应只在有调用控制关系的模块间存在控制祸合。若模块的作用域与控制域不一致,则说明存在另一个模块,与该模块无调用控制关系,但两者具有控制祸合,这样的结构使得软件难于理解、软件测试与软件维护。

  • 06

    6、模块功能应该可以预测。如果将一个模块看作黑盒子,就是说,只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。具有内部状态的模块,其输出不仅与输入有关,而且还取决于模块的当前状态,其功能是不可预测的,这就增加了模块的测试和维护难度,这条原则不是绝对的,如对于实时系统来说,针对不定时的输入,系统状态要不断发生变化,这种变化又直接影响下一个输入引起的输出。 对于这种不可避免的情况,要引起充分注意,要将相应模块做特殊处理。无论测试还是维护都把模块状态作为一个重要影响因素来考虑。

  • 07

    7、设计单入口单出口的模块。这条规则警告软件开发者不要使模块间出现内容祸合,这也是结构化程序设计的基木要求,目的在于提高软件的可理解性、可测试性和可维护性。

(0)

相关推荐

  • 设计模块化让设计新手快速入门!

    扁平化设计流行起来之后,现代简约风与之结合产生了许多视觉上以区块为主的网页设计作品.对于设计师而言,这种设计方式既时尚,又富于功能化,网站结构流畅.简单,与响应式的设计也有着天然的兼容性. 这种设计趋 ...

  • 用户界面设计原则

    用户界面设计原则 设计绝不是简单的拼合,排列甚至编辑:设计是通过阐明,简化.明确.修饰,使之庄严,有说服性,甚至带一点趣味性,来赋予其价值及意义."--保罗·兰德(Paul Rand) 1. ...

  • 【干货】5大移动端表单设计原则及案例赏析

    当我们在享受手机App为生活带来的巨大便利时,无形中已经经历了多种多样的移动表单设计形式.而表单设计又是移动应用设计中与用户产生最多交互的步骤,包括用户注册.订阅服务.用户反馈.问卷表单.买卖交易等等 ...

  • Design System 界面设计原则-视觉篇

    有正确的设计观作判断好坏的标准,并结合行之有效的设计原则作指引,才能制定出最优的设计方案. 前言 近年来,「设计规范」逐渐被「设计体系」或「设计语言」的概念重塑.基于一套架构严谨.规则统一的体系框架, ...

  • 以狗为本的设计原则

    随着生活水平的提高,狗狗的待遇也在提高,许多狗随着主人一起去旅行环游世界,相关的科技设备也在增多.为狗制造并设计属于它们的设备,似乎也不是梦想.一起看看NNG上如何以狗狗为核心的设计原则吧. 一  了 ...

  • 面向对象设计原则

    介绍面向对象设计原则 操作方法 01 单一职责原则    定义:一个对象应该只包含单一定职责,并且该职责被完整地封装在一个类中.    definition: Every object should ...

  • PPT目录页优秀设计欣赏与设计原则

    PPT目录页优秀设计欣赏与设计原则.下面我们欣赏几张优秀的PPT目录页作品. 这是比较喜欢的存在手机里的几张目录,相信这几张目录页很多小伙伴都可以很好的模仿出来,制作难度不是很大,却有着较高的颜值,原 ...

  • PPT简约设计原则

    PPT简约设计原则 极简主义可谓去芜存菁,聚焦重点.也就是说,极简主义披荆斩棘,直达目标.既然是极简主义,那么最终呈现的外观自然是简洁二字,精心思考.屡次尝试以及大量时间均融合包含在这简约中.下面,我 ...

  • 简约型PPT设计原则

    简约型PPT设计原则 一.保持一致 对于品牌标识来说,简约风格的商标就十分实用.就拿这个由 Simon McWhinnie 设计的酒吧品牌来说,标识图形及色彩采用极简风格,与其它延展元素和产品完美融合 ...