time 
设为首页】【收藏本站
当前位置: 主页 > 软件工程 > 需求工程 > 需求分析 > 横切竖割话需求

横切竖割话需求

时间:2009-12-07 22:44 点击:534次 字体:[ ]




        软件架构强调的是整体,而整体性的设计决策必须基于对需求的全面认识;

  软件架构应该是稳定的,而遗漏了重要需求的架构设计面临的是返工的命运。

  一言以蔽之,全面认识需求,是生产出高质量软件所必须的“第一项修炼”。

  作为一个软件架构师,也不应对所有需求“胡子眉毛一把抓”,而是应全面认识需求——分门别类地将需求梳理清楚。

  下图所展示的“需求空间分割图”揭示了全面认识需求的要求。要全面认识需求,意味着我们必须从不同级别来考察需求:组织级、用户级、开发级,还要对每个级别考虑不同类型的需求:功能需求、质量属性、约束。

横切竖割话需求_www.fengfly.com 
 

  一方面,需求是分层次的。一个成功的软件系统,对客户高层而言能够帮助他们达到业务目标,这些目标就是客户高层眼中的需求;对实际使用系统的最终用户而言,系统提供的能力能够辅助他们完成日常工作,这些能力就是最终用户眼中的需求;对开发者而言,有着更多用户没有觉察到的“需求”要实现……

  关注需求层次的实践意义在于,在需求之间建立起“可跟踪性”,避免因遗漏需求而造成软件“达不到要求”,也避免开发人员一厢情愿地为用户“制造”没有实际意义的无用功能。理解了需求分层的道理,软件人员在听到客户方的老板说“需求就是我希望这套软件能帮我赚更多的钱”时,就不会觉得好笑了,因为他知道这可能就是创建这套软件系统的商业目标,并会对其他需求和设计产生影响。

  另一方面,需求应该被分为不同的类型。例如,一个网上书店系统的功能需求可能包括“浏览书目”、“下订单”、“跟踪订单状态”、“为书籍打分”等,质量属性需求包括“互操作性”和“安全性”等,而“必须运行于Linux平台之上”属于约束性需求之列。实践一再表明,忽视质量属性和约束性需求,常常导致架构设计最终失败。

  总之,通过需求分类,将有助于全面认识需求、分门别类地把握需求、设计出高质量的软件架构。

  全面认识需求还有一层含义,那就是应当在深思熟虑之后做出合适的需求权衡和取舍。一方面,众多质量属性需求之间往往会有冲突,我们必须权衡。另一方面,如果通过复杂设计所支持的变化根本不会发生,那么这种过度设计(Overengineering)就造成了资源的浪费并增加了开发难度。有人主张不要预测未来,本书并不同意,本书认为应当有依据地支持未来变化,对变化的判断应该来自对需求及需求背景的深刻把握。



本文地址 : http://www.fengfly.com/plus/view-160406-1.html
标签: 设计 软件 认识 横切 需求 全面
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: