扇出和扇入

在软件设计中,扇入和扇出的概念是指应用程序模块之间的层次调用情况。 按照结构化设计方法,一个应用程序是由多个功能相对独立的模块所组成。 

扇入:是指直接调用该模块的上级模块的个数。扇入大表示模块的复用程序高。 

扇出:是指该模块直接调用的下级模块的个数。扇出大表示模块的复杂度高,需要控制和协调过多的下级模块;但扇出过小(例如总是1)也不好。扇出过 大一般是因为缺乏中间层次,应该适当增加中间层次的模块。扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。 

设计良好的软件结构,通常顶层扇出比较大,中间扇出小,底层模块则有大扇入。 


一个模块调用其他模块的个数,称为该模块的扇出。扇出越大,设计该模块时需要考虑的问题就越多,因而复杂性越高。 

为了控制模块的复杂性,一个模块的扇出不宜过大,一般认为不要超过7。如果发现某个模块的扇出较大(如图 4.38(a)),可以考虑重新分解(例如改为图 4.38(b)的方案)。

 

一个模块被其他模块调用的个数,称为该模块的扇入。扇入大些,一般不会影响问题的复杂性,而且扇入越大,说明该模块的复用性越好


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在软件模块结构中,基本术语和启发式设计策略如下: 1. 深度(Depth):指软件模块调用链的深度,即一个模块被其他模块所调用的层数。 2. 宽度(Breadth):指软件模块的耦合度,即一个模块调用其他模块的数量。 3. 扇出(Fan-out):指一个模块调用其他模块的数量。 4. 扇入(Fan-in):指调用一个模块的其他模块数量。 5. 调用(Call):指一个模块调用另一个模块。 6. 判断调用(Conditional Call):指一个模块在特定条件下调用其他模块。 7. 数据信息(Data Information):指模块之间传递的数据。 8. 控制信息(Control Information):指模块之间传递的控制信息,例如函数参数、返回值等。 启发式设计策略: 1. 控制深度和宽度:控制模块调用链的深度和宽度,避免出现过于复杂的模块调用关系。 2. 最小化扇出扇入:降低耦合度,减少模块间的相互依赖。 3. 提高模块独立性:模块功能应该尽可能独立,避免出现一个模块对其他模块的依赖过大。 4. 调用高内聚模块:尽可能调用高内聚的模块,避免在一个模块中实现过多的功能。 5. 避免循环调用:避免出现模块之间的循环调用,否则会导致程序死循环。 6. 增加数据信息传递的可读性和可维护性:模块之间传递数据时,应该尽可能使用明确的变量名,避免出现混淆和错误。 7. 考虑控制信息的传递:模块之间传递控制信息时,应该尽可能使用明确的函数参数和返回值,避免出现混淆和错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值