软件研发类项目模块化管理包括:1. 层次分明;2. 抽象与细分;3. 组成独立;4. 面向数据结构(面向接口);5. 高内聚,低耦合。其中,层次分明可以简单理解为设计一个结构合理的树状菜单。
可以简单理解为设计一个结构合理的树状菜单。
抽象:只考虑要解决的问题(用户需求),不考虑实现方法;
细分:强调对需求的逐步分解,分解时仅较上一部分增加少量的细节。
例:
用户想要实现在线报销的功能,那我们就给他做一个“报销软件”,这个“报销软件”就是抽象出来的实体;
接下来要对“报销软件”进行名列前茅次分解:报销信息填写、发票识别与验真、审批;
第二次分解“发票识别与验真”:发票信息录入、发票真伪性验证、发票是否已用验证;
第三次分解“发票是否已用验证”:历史已用发票查询、历史已用发票编号对比……
在软件工程领域也被成为“信息隐蔽”,意思是在设计和确定模块时,使一个模块内包含信息(流程或数据),对于不需要这些信息的其他模块来说是不能访问的。
也就是说,除了必要的接口,尽量减少模块间、分系统、子系统间的逻辑依赖,这样在后期维护升级时,就可以避免干涉其他不相关的部分。
例:
“报销单”包含单据编号、单据类型、单据金额、提交人、提交日期等信息,但“财务分析”模块只需要用到单据金额、提交日期两项数据,那么就只允许“财务分析”模块通过接口调用的方式访问这两项数据,其他数据一概不能访问。
软件系统一般由逻辑(算法)和信息两部分构成,信息又分为内容和数据;逻辑是构建软件功能的骨架,内容和数据是血肉,其中以数据尤为重要。
假如要实现软件模块化且模块之间相互独立,必须要先抛弃逻辑(实现方法),因为有逻辑就代表这两个模块谁也离不开谁,就不能称之为独立。
如果这两个模块必须要关联在一起,但又不允许它们在逻辑上互相干涉,那么较好的办法就是为它们内部包含的数据进行抽象化,形成标准化接口,以数据调用的形式实现两个模块间的互相协作。
这里要解释一下,其实“高内聚,低耦合”才是软件开发的内在要求,“模块化设计”只是实现“高内聚,低耦合”的其中一种方法。
“高内聚”最精准的体现是“面向对象开发”,它的意思是从功能角度来衡量模块间的联系,也就是说一个好的内聚模块应当只做一件事;
“低耦合”的精准体现是“面向接口开发”,意思是从软件结构角度衡量各个模块之间的联系,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块需要调用的接口数量和次数;极端的低耦合是不需要任何接口,但一般很少见。
“高内聚,低耦合”是判断软件设计好坏很重要的一个标准,关于如何达到这一要求,本文不作重点介绍,大家可以自己查查资料简单了解一下。
延伸阅读:
1、模块之间互相隔离,实现故障隔离。
2、一个模块一个分支,不会引发代码冲突。
3、具有良好的复用性。
4、方便维护,多版本部署,可以在运行时同时部署某个模块的新旧版本,进行AB TEST。
当然,这也是根据企业规模决定是否要进行模块化开发。如果公司具有一定的研发实力,开发人员比较多,可以进行模块化开发,如果公司只有几个编程人员,模块化开发还是要慎重考虑。
最后建议,企业在引入信息化系统初期,切记要合理有效地运用好工具,这样一来不仅可以让公司业务高效地运行,还能最大程度保证团队目标的达成。同时还能大幅缩短系统开发和部署的时间成本。特别是有特定需求功能需要定制化的企业,可以采用我们公司自研的企业级低代码平台:织信Informat。 织信平台基于数据模型优先的设计理念,提供大量标准化的组件,内置AI助手、组件设计器、自动化(图形化编程)、脚本、工作流引擎(BPMN2.0)、自定义API、表单设计器、权限、仪表盘等功能,能帮助企业构建高度复杂核心的数字化系统。如ERP、MES、CRM、PLM、SCM、WMS、项目管理、流程管理等多个应用场景,全面助力企业落地国产化/信息化/数字化转型战略目标。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们微信:Informat_5 处理,核实后本网站将在24小时内删除。版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系邮箱:hopper@cornerstone365.cn 处理,核实后本网站将在24小时内删除。