【1】划分功能模块遵循的原则:
1.高内聚、低耦合:
内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。
耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
例子:货币系统中分为月卡和普通货币,这两个模块之间几乎没有任何联系,符合低耦合性;月卡模块内则没必要单独划分UI和功能这两个,这两个功能之间联系非常紧密,符合高内聚性。
2.重整体、轻局部:
从功能整体来观察模块的构成、模块的逻辑、模块的覆盖范围;划分模块时不要纠结某些具体的细节,从而导致模块划分不清晰(某个点跟许多模块都有联系,不应该过分思考它应该属于哪个模块,从未影响写用例的时间;从整体上大致勾画出一个模块,具体的细节点在细化模块的时候再具体分析)。
例如:货币系统可以划分为UI、购买与领取、特殊情况等大模块,再对每个大模块进行分拆细分模块(无需关注某个具体的细节)。
【2】划分方法:
1、功能流程法:将功能的基本流程划分出来,根据流程的每个大环境进行模块划分,然后再细化和查漏补缺。
举例:就ATM机取款功能进行模块划分。
插卡环节-密码登陆环节-输入金额环节-取走钱币环节-取卡环节
(不应该纠结具体的细节,例如:密码的编写值等等,重整体、轻局部)
2、层次划分法:按照逻辑层次逐层细化出模块的过程(比较适用于UI划分、大的系统模块划分)
例子:就Dota这款游戏进行模块划分
3、类型划分法:按照功能包含内容的不同类型进行划分(适用于功能种类相对独立,关联度较低的情况)。
举例:兵种测试和道具测试
【3】注意事项
1、划分原则比划分方法更重要。
2、划分完毕后需要结合文档重新梳理,确保模块清晰、覆盖完整。
3、一个功能有时候需要多种划分方法结合进行划分。
4、不同的划分适用不同的场景,具体场景具体分析。