1.5.1 系统分解的目的和意义
在开发复杂度较高的系统时,最困难的往往是对其进行管理。系统分解是一种应对系统复杂性的方法。由系统的定义可知,系统的复杂性由系统的三要素决定:组件、外部环境、结构关系。组件数量越多,外部环境越复杂,内部的结构关系越复杂,那么系统的复杂度也越高。对于复杂系统的设计和管理,最好的方式就是将其分解为复杂度较低的子系统,再将子系统不断分解,直到分解为可以被设计、被验证和被管理的较小的、基本独立的系统,思路如图1-9所示。系统分解是整个开发活动中难度最大,也是最重要的环节。
系统分解的目的是便于管理和实现功能,而从哪个视图对系统进行分解则体现了组织对各个视图内容的重视程度。
系统的分解过程也是组织内部人员分工的过程:在将大系统分解为可以被掌握和管理的小系统的同时完成组织内部的分工。从这个角度来讲,系统分解过程中既完成了系统边界的划定,也完成了个人或团队之间工作边界与职责的划定。
图1-9 系统分解过程
对于电子电气架构设计而言,系统分解是设计工作的重要前提。而系统分解中最复杂的事情可能就是划分系统边界了。曾获得麦克阿瑟天才奖的多纳拉·H.梅多斯在《系统思维》一书中说:“不存在单独的系统,世界是一个整体。如何划分系统边界取决于讨论的目的。”可以毫不夸张地说:系统分解是一门艺术,完全取决于进行分解的目的。
良好的系统分解将大大提升组织的运行效率和系统的开发效率。尽可能提高子系统的内聚程度并减少子系统之间的耦合,可以减少系统开发过程中人力资源的消耗,并能通过有效降低系统复杂度来保证系统的质量并控制开发成本。正如亚当·斯密在《国富论》中所论述的,“有了分工,同等数量的劳动者就能完成比过去多得多的工作量,其原因有三:第一,劳动者的技巧因业专而日进;第二,由一种工作转到另一种工作,通常须损失不少时间,有了分工,就可以免除这种损失;第三,许多简化劳动和缩减机械性劳动的发明,使一个人能够做许多人的工作。”
随着时代的变迁与技术的更新,各个组织对系统的分解方式也在不断进行着相应的变革。