|
要谈系统设计,我们首先要明确什么是"设计",什么是"系统".
什么是"系统"?
个人认为,所谓"系统"都具有特定方向的功能----比如汽车的操控系统具有改变运动速度大小,在2维面上改变前进\后退方向,操纵结果反馈等种种功能(当然这些功能还可以进一步细分).一个系统就是若干"子功能"的集合,并且这些"子功能"之间都具有一定的联系----我把这个联系概括为:为同一个"设计目的"提供支撑.在汽车操控系统的例子中,这个"设计目的"就是让驾驶者能够控制汽车在2维面上运动的各个参数.
什么又是"设计"?
恐怕有些人看到这个问题会很不屑----设计不就是创造新的东西么?
但我们为什么要"创新"呢?仅仅就为了与众不同吗?
我们如何去创新呢?闭目冥思+思想碰撞+天马行空的想象就可以创新吗?
如果星爷某片中的太阳能手电(有光就亮,没光的时候就不亮),出现在现实生活中,恐怕大家都会付之一笑.但很多人在设计时确实是在创造"太阳能手电"这样的东西.所以我认为,为了避免无聊的盲目创新,设计应当是有一个明确的目标来进行导向的,而不仅仅依靠天马行空的YY.
综合上述,我对"系统设计"的定义:先寻找一个大的设计目标,再围绕这个目标逐步确立出一个合适的功能集合,最后让这个集合中的各个元素按需要的方式整合起来的过程.
这种大的设计目标(我把它称为"设计宗旨)通常很容易得到,比如:要赚钱\要好玩\要方便...等等.但这种目标只能告诉你一个大的方向,具体的目的并不十分明确,因此你很难直接通过这些目标得到你设计的系统中需要哪些功能.
那么我们究竟应该如何确定一个系统要有哪些功能呢?我的答案是----进行目标分解.何谓目标分解?
目标分解是一个发散性思维+反向检验的过程----根据最初的大目标开始思考:有那些方法可以达到这个大目标,把这些方法罗列出来,然后反向检查这些方法是否对达到大目标有所帮助?效率如何?对这些方法做一个初步的评估,删除效率低的(当然,你也可以把这个反向检验的过程放到后面再做,视个人思维习惯而定).然后再把保留下来的这些方法作为几个新的目标,对这些新目标分别重复以上过程,直到得出足够明确,单一的目标.
目标分解的过程中,广度方面,越全面越好;深度方面,越细致越好----当然,这依赖于你能够花费在这上面的时间以及你发散思维的能力.
下面以一个虚构的任务系统为例,大致演示下这样的目标分解过程 注意:下图仅仅是一个演示例子,并非实例!图片较大,请耐心等待)
其中红色内容表示,已经足够细,可以提取为功能的目标.
|
-
|