正交性是软件开发中常遇到的一个词。其意义代码的偶合性要低,修改一个模块,不会影响另一个模块。
正交性的意义在于,如果代码满足正交性,可以提高生产率和降低风险。
满足正交性的代码,修改一个模块,不会对其他模块有影响,只需要测试1个模块就可以了,如果模块间
有影响,测试用例就和影响的范围相关,其数目可能远远超过1个模块的测试用例。
硬件设计也应该有正交性。比如挂在总线上的模块,最好都有一个bridge模块,把总线上的操作都转换为
SRAM接口的时序操作。当更改总线后,只需要修改bridge模块就可以了,其他设计不用修改。
硬件设计中,怎么根据正交性的原则来划分模块呢?
1,根据通用性/特殊性划分
如挂在 AHB上的uart和挂在APB上的uart.通过性是都是实现uart的功能,特殊性是总线接口不一样,所以
把总线接口从uart的功能实现中分出来,两者之间的接口要按照通用性设计,不和总线类型相关
2. 根据偶合性划分
降低各个模块间的偶合性,减少各个模块之间的交互.且接口简洁明了.
如果两个模块间相互的依赖关系很强,且多次交互才能完成1件事情,那这样的模块划分就不是一个好的划分