结构化模块结构设计的特点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结构化模块结构设计的特点研究了这么久结构化模块结构设计的特点,总算发现了一些门道。
首先呢,我觉得它有很强的独立性。
这就好比搭积木,每个模块就像一块积木,它自己是一个独立的个体。
比如说一个软件里的用户登录模块,它可以单独地被开发、测试。
开发人员不需要去管其他模块的代码,只要把这个登录模块的功能做好就行,像登录时验证用户名、密码这些功能就在这个小模块里自己解决。
就算别的模块在发生变化,它只要接口不变,就还是可以稳稳地待在那儿,就像一块积木可以放在很多不同组合的积木结构里。
还有啊,这个结构化模块结构设计它具有可替换性。
我之前总是不太明白这个概念,后来我想通了。
还是用搭积木举例,假如你搭了一个房子的积木造型,突然你觉得其中一个蓝色的积木块不好看,想换个红色的,只要尺寸一样也就是接口一样,就很容易更换。
在软件这种结构化模块里也一样啊,如果发现某个模块功能有问题,或者有更好的实现方式,只要接口匹配就可以直接给它替换掉。
再来说说它的易维护性。
你想象下,一个超级复杂的大机器,它是由很多小零件按照一定结构组装起来的,如果零件都是模块化的,那要是哪个部分出问题了,很容易就找到是哪个模块的事儿对不对?就像汽车一样,如果大灯不亮了,维修人员就可以直接去检查大灯这个模块相关的线路和
部件,而不是把整个汽车全部拆开。
在软件里面,这种模块式结构要是出了个小bug,程序员能够很快缩小范围到某个特定模块去查找和修复,不用在一堆混乱的代码中大海捞针。
而且它的可重用性也很棒啊。
比如一个计算功能的模块,无论是在小项目里计算销售额,还是在大项目里计算成本啥的,如果这个计算模块写得很好,下次有类似的计算需求就可以直接拿过来用,不需要重新开发。
这就像我们家里的螺丝刀,不管是修小桌子还是大柜子,只要是拧螺丝都可以用同一把螺丝刀一样方便。
我还觉得它是有清晰的层次关系的。
就好像一个家族树一样,每个模块处在不同的层级上,有父模块和子模块这种关系。
例如一个物流系统里,整个订单模块就像是一个父模块,它下面会有发货子模块、收货子模块等等。
这样的层次关系能让整个系统的结构特别清晰明白,无论是开发的时候还是后期维护查看都很方便理解到底是哪个模块和其他模块是怎么关联的。
这里我之前有个困惑就是模块间的通信有时候在复杂的系统里好像会很麻烦。
因为每个模块可能都在自己做自己的事情,一旦要交互信息,就像两个人需要对话一样,怎样保证信息准确传达又不混乱呢?后来我发现是定义准确的接口来解决这个问题。
这就像是两个人如果提前约定好一个密码代表一种信息传递方式,那按照这个规则就可以很顺利地交流了。
总之啊,结构化模块结构设计真的很神奇,每一个特点好像都相互关联又各自发挥重要的作用。