信息产业培训网
[当前位置]:首页--专家点评--温昱RSS订阅按钮

横切竖割话需求

http://www.miiceic.org.cn   2008-8-28 10:31:39   中程在线   浏览数:
关键字:横切 竖割 需求

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

 

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

 

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

 

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

 

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

 

  

 

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

 

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

 

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

 

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

 

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

来源:中程在线
相关连接
最新评论
*以下网友发言不代表中程在线网站的观点和看法
    我要评论

    请您注意
    1、遵守中华人民共和国的各项有关法律规定
    2、承担一切因您的行为而导致的法律责任
    3、本网留言管理人员有权删除其管辖留言内容
    4、您在本网的留言本网有权在网站内转载和引用
    5、参与本留言即表明您已经阅读并接受上述条款
    我爱研发网中电华信阿里西西JAVA爱好者北京英才网全球大学查询网
    中国人的网站导航中国电脑论坛信息产业部新浪科技搜狐IT信息产业部电子教育与考试中心
    IT世界网软件项目交易网中国软件交易网国信培训网亚远景科技....[更多]
    关于我们 | 网站地图 | 周边住宿 | 行车路线 | 联系我们 | 网站律师 | 意见反馈 | 虚位以待 | 友情链接
    中程在线(北京)科技有限公司 版权所有
    总 部:北京市海淀区青东商务楼A座西四层
    企业培训部:010-52636110 52636106 就业培训部:010-68716925 68716926
    邮 件:training@miiceic.org.cn
    京ICP备06053134号
    Copyright © 2005-2008 Miiceic.org.cn All Rights Reserved