
作为一名产品人,掌握高阶技能“拆组挂”在需求分析与软件设计过程中至关重要。本文将详细解读如何通过“拆解”将复杂需求细分为共性与个性部分,通过“组合”整合要素,以及通过“挂接”实现灵活的系统开发。在此,我向《大话软件工程——需求分析与软件设计》的作者李鸿君表示致敬,他的书中内容给了我很多启示。
在需求分析环节,我们常常面临企业中的各种需求描述,如何筛选和解析这些需求是一个难题。应用结构化的分析工具如UML等可以理清思路。作者李鸿君将拆解过程划分为共性和个性两大类别,这是一个通用的方法,帮助我们更好地理解需求的本质。共性部分是我们容易借鉴前人经验的内容,而个性部分则需要我们进一步澄清,也是未来开发的重点。以业务与管理为例,我们需要分清哪些是业务活动,哪些是管理活动,这对于后续的设计和开发至关重要。
软件设计的过程看似神秘,实则有规律可循。在企业管理软件中,各种软件背后都可以抽象出共性部分,即要素、逻辑、模型。以要素为例,当我们对每个要素进行拆分到可设计的最细粒度时,就可以利用组合工具进行整合。不同的要素之间可能存在共同的细粒度要素,我们可以将其抽象出来并组合到需要的地方。这种设计理念有点像房间里的开关插座,所有房间都需要用电,电器则通过插座接电。物料资料就是这样的一个组合要素。
到了开发环节,挂接的概念显得尤为关键。我们不能简单地将审批流和业务流融合在一起,否则会给后续的系统调整带来麻烦。一个灵活的ERP系统应该有独立的审批流组件,这样才能适应企业的架构变化。系统开发的重点是将设计环节中的设计要素做成可独立存在的“零件”,并设计出一套零件之间的挂接“机制”。比如审批流这样的零件就可以随时被其他业务环节使用和调整。真正做到这一点,我们就能真正实现随需应变、随时应变的目标。
