需求模式:定义一种特定类型需求的方法。需求模式应用于单个需求,一次帮助定义一个单一需求。使用需求模式的好处:第一,需求模式提供指导:建议包含哪些信息、提出忠告、提醒常见缺陷以及指出其他应该考虑的问题。第二,需求模式节省时间:不需要从开头开始写每一个需求,因为模式给予了合适的出发点,以及开发的基础。第三,需求模式促进同种类型需求的一致性。其中提供指导是最有价值的。节省定义的时间和增加一致性固然很好,但是合理的指导可以获得更好的需求,避免后续工作中的巨大麻烦。

需求模式提供的指导通常比只是“比如说这样”更深入。它可以深入洞察即将发生的问题。它可以帮助提出问题。在一些情况下,它可以引导编写一个(或多个)非常不同于第一印象的需求。解答一个大问题经常引出很多很小的问题。需求模式针对大问题给出答案以及化为更小的问题。

一些需求模式要求或者鼓励定义一些额外需求:包括跟随性需求:扩展最初需求的需求,以及系统级普遍性需求:支撑模式本身的需求。这样可以检查每一个需求是否需要额外支撑需求,以及是否已经定义了他们。

模式有不同的详细程度和价值。一些类型的需求可以定义得非常详细,它们的实例几乎一样。其他类型的需求虽然有一些普遍有价值的东西,但是这些需求如此多变甚至不能描述应该表达什么。这些变化是正常的。模式只需要证明自己是有价值的;它不必做模式可能做的所有的事。另一方面,反复遇到一种特别需求并不意味这种需求模式自然而然就有价值。如果很难概括这种需求的共性,就很难指导怎样定义这种类型的需求。

需求模式需要描述什么时候使用模式以及基于模式如何编写需求。它还可以提示如何实现以及如何测试这种需求。每个需求模式包含如下的要素:1)基本细节2)适用性3)讨论4)内容5)模板6)实例7)额外需求8)开发考虑9)测试考虑。

需求模式可以自由使用其他领域中的基础架构。但是最好避免相互依赖,所以如果一个领域依赖另一个领域,那么后一个领域就不应该依赖前一个领域——如果可以避免的话。一个基础架构也可以依赖另一个基础架构。每个基础架构概述分成下列小节:1)目的 解释基础架构存在的理由,以及扮演的角色。2)调用需求 关于系统与基础架构如何交互的需求定义的建议——基础架构必须提供这些功能给系统——以及系统期望的其他的能力。需要的功能可以被看作是基础架构提供给调用者的接口。3)实现需求 为了使基础架构站得住脚所需要的一些特性的想法。这些是比较简短的,只是在定义基础架构时提醒一些需要考虑的可能的主要功能域。

当几个需求模式有共同的特性,可以建立一个需求模式组,用于描述它们共同的方面,而不必在每个模式中重复。一个需求模式组不是一个需求模式:不能建立这种类型的需求。但是一个组可以包含下列出现在需求模式定义中的任何部分:“额外需求”、“开发需求”和“测试需求”。包括哪一部分而省略其他部分的原则是是否有一些事情值得说。任何时候如果某一部分出现在了需求模式组里,模式的相应部分应该包含一个注释,提醒参考需求模式组。

领域和需求模式组的区别在于领域中的模式共有一个主题,而在模式组中的模式有共同的细节特性。一个组中的模式不一定属于同样的领域。

当使用一个需求模式时,应该描述建立这种类型需求的需要知道的所有事。但是一个模式可能会因为一些原因引用其他模式。需求模式之间的关系存在两种基本类型:1)引用 一个需求模式可以在定义中提到另一个模式。2)扩展 一个需求模式以另外一个模式为基础开发。在面向对象的术语中,这是继承关系。除了扩展另外一个模式,需求模式可以扩展为需求模式组。

保持最初的需求,但是分割成多个部分,使他们变成附加需求,这就是提炼主要需求。每个提炼需求应该定义一个特别的方面。每个提炼应该定义它依赖的需求。

转载于:https://www.cnblogs.com/BUANG/p/4901490.html

02《软件需求模式》相关推荐

  1. 关于《那些年啊,那些事——一个程序员的奋斗史》——24提到的鼻炎治疗方法

    在<那些年啊,那些事--一个程序员的奋斗史>--24中有提到用清水治疗鼻炎的方法,很多朋友在留言或email都有问到这问题,在此一并做个回答.         简单说说norains的鼻炎 ...

  2. 《那些年啊,那些事——一个程序员的奋斗史》十四(完结)

    125 距离离职交接的一个月时间还剩几天,本来应该是平淡无事的,却没想到最后还是波澜四起.昨天下班前,公司突然停了电.这本是件普通得不能再普通的事情,可没想到过了一会来电了,或许是波峰电压太大,或许是 ...

  3. 《那些年啊,那些事——一个程序员的奋斗史》——128 (终章)

    周五,如约而至.张文香果然没有被邀请,武总自然也是被排除之列,来的都是平时大家谈得比较来的.几个月不见,小黑和小蓝还是老样子,但精神相比以前是好多了:麦吉则没什么太大的变化,倒是陈莉胖了不少,颇有一番 ...

  4. 关于 那些年啊,那些事——一个程序员的奋斗史 ——24提到的鼻炎治疗方法

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 在<那些年啊 ...

  5. 关于 那些年啊 那些事 一个程序员的奋斗史 24提到的鼻炎治疗方法

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 在< ...

  6. 《那些年啊,那些事——一个程序员的奋斗史》——79

    旧的4.3'主板是废弃了,新的带CMMB的板子开始了.对于新的板子来说,其实只是在旧的板子上做改动,比如删掉蓝牙模块啊,去掉视频输入啊等:最大的不同,只是根据Telechips的原理图增加CMMB部分 ...

  7. 那些年啊,那些事——一个程序员的奋斗史 ——23

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow "开会咯 ...

  8. 《那些年啊,那些事——一个程序员的奋斗史》——23

    "开会咯!"黄华中在研发部嚷了一下,让大家到外面的会议桌去.说起来,自从段伏枥来到这公司以来,已经差不多有好几个月,却连一个会都没有开过,甚至是小一点的内部会议都没有.为什么突然间 ...

  9. 《那些年啊,那些事——一个程序员的奋斗史》——117

    这段时间段伏枥在折腾.NET Micro Framework的时候,终于体会到什么叫举步维艰了.因为这玩意没有操作系统做支撑,直接是操作硬件,有时候出问题了,根本就不知道是如何引起的. 比如说,在移植 ...

  10. 《那些年啊,那些事——一个程序员的奋斗史》——38

    自从会见了律师之后,时间又过了一周,期间还是和往常没什么两样,段伏枥依然还是赶最后一班公交,周六还是依然需要加班.不过,经过王健的努力,这板子终究还是跑起来了.不过,这跑起来的概念也就是能够进入Win ...

最新文章

  1. 企业级IT运维平台的发展趋势与规划要点
  2. VC++ CopyFile函数使用方法
  3. 【LTE】LTEMIMO系统的MATLAB仿真
  4. sql item_map
  5. openwrt安装编译
  6. 【LeetCode】105#从前序与中序遍历序列构造二叉树
  7. 详细分析图像形态学操作
  8. 从电子工程师到研发经理到老板的多面人生
  9. 新研究表明 深层神经网络的功能存在局限性
  10. vb6.0服务器组件安装失败,win10安装vb6.0总是失败怎么办?win10 vb6.0安装不了的解决办法...
  11. android 组件重用,Android提高显示布局文件的性能,使用include标签重用layouts
  12. 数字图像处理之数字图像频率空间
  13. 计算机毕业设计Java大学生旅游拼团网站(源码+系统+mysql数据库+lw文档)
  14. python 操作excel排序_python操作excel[转]
  15. 【一句日历】2019年8月
  16. 关于NFT的版权的保护认证
  17. 如何修改Oracle VM virtualbox虚拟机的屏幕大小
  18. Web应用服务器tomcat
  19. android 高德地图定位圈,android ------ 实现高德定位并获取相应信息 ( 最新版高德SDK 和 Android SDK版本)...
  20. 哈希算法(Hash函数)简单介绍

热门文章

  1. 每日互动方毅:数据可用不可拥,让数据价值流转数据不流转|爱分析访谈
  2. <初识数据结构+算法实现>数据结构(C语言版)
  3. Apollo6.0安装教程
  4. 分析淘宝网络框架tbnet
  5. RMSE 和 STD 的区别
  6. converge和gtsuite联合仿真
  7. CocoaPods安装方法2022年最新版
  8. 压缩感知高斯测量矩阵matlab,压缩感知matlab
  9. mysql复合主键做外键,mysql – 使用复合主键作为外键
  10. Codeup墓地-2070