【0.3 软件需求】之【需求建模语言入门】
需求建模语言入门
项目经常因为需求的缺失、不完整或者不明确而受到困扰。错误的需求实践普遍存在,所以大部分项目注定会失败。需求没做好是许多项目失败的根源。
定义RML
RML(需求建模语言)是为建立需求视觉模型而专门设计的语言,它便于企业管理、业务和技术等项目干系人使用。
人脑的限制
在20世纪50年代,认知心理学家乔治米勒发现,人类只能记住和处理7加或减2项内容,这通常称为“米勒魔数”。
图比文字更容易理解
可以想象地图比路径描述有用得多,或者PPT演示中,多用图表而非列表。
需求模型
需求模型组织和展示了大量信息,帮助你发现缺失的信息,并给出上下文细节。最重要的是模型可以从视觉上进行分组,使你能够通过短期记忆能力快速分析大量截然不同的信息。
为什么不用RML
它缺少有关需求与业务价值的模型,缺少从最终用户的角度展示系统结构的模型。它在技术上过于复杂使得业务项目干系人难以掌握。UML用于描述系统的技术设计和结构,顶多在建模方面对UML进行翻新改造以支持业务收益、用户操作和业务规则。
一个层面的需求是对另一个层面的设计
不要用“什么”与“如何作用”的关系来区别“需求”和“设计”。
确定业务的实际需要
用户要求是不是需求,关键要看业务项目干系人是否真正需要它。要对请求作出判断,它是否真正是需求,用户是否真的需要。
定义需求
需求是企业需要在解决方案中实现的。因此,需求可以包括功能性需求、非功能性需求、业务规则,甚至包括许多人传统上所称的设计。
功能性需求是一个解决方案所提供的行为或功能而不加任何限定词。业务规则表示在修改功能性需求时必须满足的条件语句,包括但不限于什么时候该功能可以用以及允许谁执行该功能。非功能性需求是任何不属于功能性的需求(包括业务规则)。
假设是做决策时所依据的真实陈述。假设包括对未来的任何预测或预报。假设对于需求非常关键,因为这些假设会不断被引用。
需求模型不等于游戏的结束
模型的价值在于以某种方式帮助组织所有的需求,以便很容易看出需求有缺失、无关或不正确的情况。
创建的所有模型都应该纳入项目的全部需求中。文字需求和可视化需求共同描绘出待建的解决方案的全景。