软件方法(业务建模和分析)----阅读笔记2
人体的需求和设计 如果需求和设计不分,利润就会缩水。从需求直接映射设计,会导致功能分解,得到重复代码。如果从设计出发来定义需求,会得到一大堆假的“需求”。拿自古以来就有的一个系统“人体”来举例。人体对外的功能是会走路,会跑步,会跳跃,会举重,会投掷,会游泳……但是设计人体的内部结构时,不能从需求直接映射到设计,得到“走路子系统”、“跑步子系统”、“跳跃子系统”……人体的“子系统”是“呼吸子系统”、“消化子系统”、“血液循环子系统”、“神经子系统”、“内分泌子系统”…… 确实如此,人体的子系统是各个模块,当你需要完成某个动作时是调用各个模块共同完成的。例如你想跑步就需要“呼吸子系统”“,血液循环子系统”,“神经子系统”和“消化子系统”等等共同合作。而不是你要完成什么动作就需要有什么子系统,那样就会出现一大堆的假的需求。所以应该是这样的: “人体的“子系统”中很多是不能从需求直接映射出来的,需要设计人员的想象力。水店老板要雇一个送水工(即租用一个人肉系统),他只要求这个工人能跑能扛工资低就行,管他体内构造是心肝脾肺肾还是一块电路板。同样,也不能从设计推导出需求——因为人有心肝脾肺肾,所以人的用例是“心管理”、“肝管理”。送水工能这样找工作吗:“老板,我有心脏管理功能,你请我吧!” 很多时候我们说“本系统分为八大子系统……”,其实说的是“本系统的功能需求分为八大需求包……”