在前期写了两篇关于CBB的文章,有很多朋友看后进行了深入的讨论,其中,关于如何进行模块化设计有了更深的思考,这里结合在汉捷咨询实践经验,总结下文,以作抛砖引玉,欢迎有兴趣的朋友继续进行深入讨论。
CBB几个定义
在分享前,我们先做几个定义,确定彼此的概念一致,达成共识,这是讨论的基础。
01、什么是模块:
在硬件开发中的模块指一种装配好的硬件功能单元,可以和其他部件一起使用、组合或更换。在软件编程中的模块,以功能块为单位进行程序设计,最后通过模块选择和组合构成最终产品。由此可见,通俗讲模块就是已开发完成的实现某个(或多个)功能的单元。
02、什么是模块化:
是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程,从而获得效率与质量的操作手段。
03、什么是模块化设计:
是一种设计理论与实践。为了取得产品系列开发的最佳效益,从系统分解、组件封装的观点出发,研究产品(或系统)的构成形式。或者说,将系统功能划分为离散的、可扩展和可重复使用的模块。
为什么要进行“模块化设计”
也就是“模块化设计”的好处。
1)便于提取和应用CBB,促进技术共享
提高效率:设计、测试、工艺、生产、维护;
减低成本:设计成本、生产成本、采购成本、维护成本;提升产品质量稳定性;
2)有利于开展异步并行开发,缩短产品开发周期
模块化设计过程
3.1 总体框图
从上图可见,步骤二、三是具体开发模块的过程,这在各个创新性的企业中研发部门都会将之实现,这里就不赘述了。我们重点关注第一步:系统总体设计。
3.2 系统总体设计
系统的总体设计,主要分以下几个步骤:
1)功能分解
2)模块差异分析
3)通用件提取与应用规划
4)专用模块提取
5)选配件提取与应用规划
6)接口与协议设计
3.2.1 功能分解
输入:《需求规格》。
输出:《总体方案》。其核心是系统的设计规划,包括系统架构、接口/界面、集成协议及测试标准等,识别出可模块化的常见的功能/组件。
基本原则:高内聚,松耦合。
3.2.2 模块差异分析
从产品平台下的产品系列的角度,分析模块是否可以共用,确定模块类别。并完成下表——《模块类别分析表》
3.2.3 通用件提取与应用规划
设计上基本类似的模块可由统一的CBB来实现。注意:通用件、选配件都可以是CBB。以XXPC机为例,完成下表——《通用件分析表》
图片
3.2.4 专用模块提取
专用模块只是适合该产品(单产品),各企业研发部门都有类似开发经验,按黑盒设计产品功能,并分配产品需求即可,这里不展开讨论。
3.2.5 选配件提取与应用规划
选配件有相似的功能和结构,但因技术或成本原因无法做成一个CBB时,要重点考虑接口统一。如3.2.3 XXPC机示例,显示器、硬盘就是选配件,并完成下表——《选配件分析表》
3.2.6 接口与协议设计
在进行此步骤时,汉捷咨询建议注意掌握两个原则:
简化原则:无论是装配/物理连接,还是信号/逻辑连接,接口都尽可能简单。
统一原则:统一的接口将大大减少模块的数量。
根据产品实际情况,完成下表——《接口与协议分析表》。(以XXPC机为例)
小结
以上汉捷咨询顾问简单介绍了产品模块化设计的过程,重点还是在第一步“系统总体设计”。我们只有认真地分析,确实想好如何设计产品系列的“通用模块”、“选配模块”,才能真正受益于“模块化设计”的好处。这个思考与分析的过程恰恰是我们很多企业不具备的能力,我们企业研发人员往往上来就急于设计实现,对于模块在产品系列中的价值很少考虑。因此才会出现不断重复设计,产品稳定性没有保障,产品降成本成为口号,产品开发周期长,开发效率低等问题。我们常说“成本是设计出来的”,希望大家能好好体会这句话的真正含义。
【相关文章】
·浅析产品开发中的测试活动
·产品开发流程存在的六大主要问题