模块设计之“模块”与“模块化”
模块设计之“模块”与“模块化”
模块泛指软件系统的功能部件。在软件的体系结构设计完成之际,我们就已经确定了所有模块的功能,并且把模块安放在体系结构的恰当位置上。
每个模块都具有特定的、明确的功能(否则不能成为模块)。人们在设计模块时应当尽量使模块的功能独立,因为功能独立的模块可以降低开发、测试、维护的代价。但是功能独立并不意味着模块是绝对孤立的。所有的模块应当能够被集成为一个系统,所以模块之间必定要交流信息、相互配合。
模块类似于我们玩“搭积木”游戏:我们用积木搭成一个房子,每块积木可以被看成是一个模块,它们都是整个系统(房子)的一个部分,并且有特定的功能;各个积木之间还有豁口,可以组合,如同各个模块之间的接口,同时各个积木又是相互独立的。
“模块化“(Modularization)是指,将系统分解为一系列功能模块,然后逐一实现这些模块,最后把所有的模块集成为原来的系统。这样做的好处是能够大大降低系统的开发难度。
再比如组装计算机,我们去电子商场买到了组装计算机所用的各个模块(主板、内存、CPU、显卡、声卡、机箱、键盘、鼠标、显示器),然后把它们组装在了一起。把计算机分成一个个的模块,使得类似于我们这样的普通用户也可以对计算机进行简单的维修(最起码可以换某一个部件)。这种好处是显而易见的。
是否将系统分解得越细,得到的功能模块越多越好呢?不是的。虽然这样做可以使实现模块的代价更低,但是把功能模块集成为原来系统的代价却增大了很多,得不偿失,所以一个系统的模块数量不能过多也不能过少。那么多少算是恰如其分呢?不知道,要靠设计师的判断。
转载于:https://www.cnblogs.com/myjavait/archive/2009/03/20/2142574.html
模块设计之“模块”与“模块化”相关推荐
- 多应用多平台支付模块设计-基础模块开篇
近来,欲将三方支付平台对接入笔者框架内,简化,后期业务功能的开发. 为满足此功能的可扩展性,欲定义"订单业务接口"."支付方式接口"规则. 当,用户下单时,根据 ...
- java class 静态模块_Java API 最佳设计实践:在模块化和非模块化 Java 环境中使用...
了解在设计 Java API 时应该运用的一些 API 设计实践.这些实践通常很有用,而且可确保 API 能在诸如 OSGi 和 Java Platform Module System (JPMS) ...
- C++ 开发者怒了:这个无用的模块设计最终会害死 C++!
2018 年年底,C++ 标准委员会历史上规模最大的一次会议在美国 San Diego 召开,讨论了哪些特性要加入到 C++20 中.其中,Modules 便是可能进入 C++ 20 的一大重要特性: ...
- 使用Verilog语言描述计数器——脉动计数器;脉动计数器具有减法计数功能。采用模块设计和行为级设计方法。
使用Verilog语言描述计数器--脉动计数器. 内容说明: 本次设计的计数器属于脉动计数器.使用Verilog语言设计,并且设计方法采用模块设计和简单的行为级设计.会有这两种设计的对比测试.最后,会 ...
- BetaFlight模块设计之八:GPS任务分析
BetaFlight模块设计之八:GPS任务分析 GPS任务 gpsUpdate函数分析 gpsNewData函数分析 gpsNewFrame函数分析 onGpsNewData 函数分析 基于Beta ...
- java毕业设计——基于java+JSP+sqlserver的Smart系统-题库及试卷管理模块设计与实现(毕业论文+程序源码)——学生信息管理系统模板2
基于java+JSP+sqlserver的Smart系统-题库及试卷管理模块设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+JSP+sqlserver的Smart系统-题库及试卷 ...
- JS模块化——模块暴露与模块引入
1. 引言 最近在研究前端框架,但发现好多JavaScript知识不是很了解,很是苦恼,下面就来研究一下JavaScript的模块化,先理解几个概念和模块化的进化过程. 2. 模块化 2.1 什么是模 ...
- 大力发展先进制造业和装备制造业-高端数控机床(组合机床和立柱移动式三坐标及其基础模块和功能模块规划设计图册技术)
前言: 原大连组合机床研究所工作,主要从事组合机床和柔性组合机床及其自动线.高端多坐标自动换刀数控机床等研发和设计. 历任技术员.工程师.高级工程师和室主任等职,曾获国家科技攻关中作出突出贡献重大成果 ...
- Windows平台RTMP/RTSP直播推送模块设计和使用说明
开发背景 好多开发者一直反馈,Windows平台,做个推屏或者推摄像头,推RTMP或者RTSP出去,不知道哪些功能是必须的,哪些设计是可有可无的,还有就是,不知道如何选技术方案,以下是基于我们设计的W ...
最新文章
- ubuntu安装KVM
- 使用GitHub Pages搭建博客
- SAP WORK FLOW
- leetcode 42 接雨水 单调栈
- NoHttp开源Android网络框架1.0.0之架构分析
- SQL68 牛客每个人最近的登录日期(三)
- MySQL错误ERROR 1786 (HY000)解决
- Android使用PDFviewer渲染PDF文件
- 整人电脑BAT小程序源码大全
- linux集群pbs管理,PBS-Torque集群部署
- PPT基础(一)怎么把图片设置为背景
- 顺丰科技运维开发工程师二面面经
- Python日期时间差的计算(天/小时/分钟)及timedelta函数的使用(附python代码)
- GDAL/OGR 地理要素样式
- 树莓派3b连接并调试华为ME-909s-821 4G模块
- Qt写的超级方便的编码转换器、加解密AES、RSA、MD5、SHA、网页编码
- 《趣谈网络协议》学习笔记DAY15
- 友盟推送 php demo,友盟推送,php简单代码
- 当OpenCV遇上Origami
- win2008 r2 文件服务器资源管理器,Windows2008FSRM文件服务器资源管理器配置.docx