《软件需求模式》阅读笔记02

通过上一次对《软件需求模式》前两章的阅读,我了解了需求是什么,而作为这本书的书名,我们自然就要了解什么是需求模式以及如何编写和使用需求模式。

所谓的需求模式,就是定义一种特定类型需求的方法。然而使用需求模式能够给我们带来什么好处呢?第一,需求模式提供指导:建议包含哪些信息、提出忠告、提醒常见缺陷以及指出其他应该考虑的问题;第二,需求模式节省时间:不需要从头开始写每一个需求,因为模式给予了合适的出发点,以及开发的基础;第三,需求模式促进同种类型需求的一致性。在了解了需求模式的大概的内容之后,我们需要对需求模式进行剖析。为了传达需求模式需要描述什么时候使用模式以及基于模式如何编写需求,还可以提示如何实现以及如何测试这种需求的信息,每个需求模式还包含以下的要素:(1)基本细节,就是模式声明、自己的领域、相关模式、预期使用频率、模式分类以及模式作者。(2)适用性,就是在书面情况下模式适用而在书面情况下不适用。(3)讨论,就是我们应该如何编写这种类型的需求模式和在编写的过程中需要注意的事项。(4)内容,这一块是模式的核心内容,它描述了这种类型的需求模式必须要有和额外可以有的事情。(5)模板,就是编写这类需求的一个出发点。(6)实例,使用这种模式的一个或多个典型的需求。(7)额外需求,就是这种类型的需求通常会和别的什么需求有所关联,或者是这种需求可能需要什么普遍性系统级需求。(8)开发考虑,提示如何实现这种类型的需求。(9)测试考虑,就是决定测试这种需求的时候需要记住什么。掌握了一定的需求模式的知识之后,我们再从大的方面来看待需求模式。从整个需求模式来说,我们应该把一个需求模式拆分成一些小的领域,这样来说,更能清楚地知道这类的需求到底需要我们做什么,这样更能体现一个需求模式的价值。而从不同类型的模式来看,我们需要发现不同类型的模式之间有什么相同的或者相似的地方,可以建立起引用或者扩展的相互之间的关系。所以,对于给定的系统是没有唯一的一套完美的需求模式的,这需要我们明白需求模式和方法的多样性,加深对需求模式的了解,才能更好地使用需求模式。

对需求模式有了一定的认识和了解之后,也就是说有了理论的基础之后,随之而来的当然就是实践,就是如何使用和编写需求模式。首先我们应该知道如何使用需求模式,在定义系统期间,有两种场合使用需求模式:①当定义需求时,看是否存在一个模式可以知道如何定义这种需求。②当考虑是否完全时,看是否会有遗漏什么或者要添加什么。其次,需求模式也可以在事后使用:①当评审需求规格时,模式可以帮助检查需求质量。②当评估系统的规模以及开发所需的工作量时,基于需求,使用模式可以对实现的复杂性有更准确的感觉。③当实现需求时,模式可以使你更深刻地理解需求的意图。④当测试需求的时候,用于建议测试这种需求的方法。使用需求模式可以让需求更容易阅读,更容易与同类型的其他需求比较,可以判断是否有遗漏,也可以使得编写需求更容易,其实总结一下就是能给读者带来更多的信息。最后,我们应该思考,应该如何编写需求模式,书中就给出了十五个步骤:1.是否有足够的价值2.建立模式的骨架3.编写模式的“适用性”部分4.收集需求实例5.检查需求实例6.描述需求可能包含的信息7.编写需求模板8.编写剩下的“讨论”和“内容”部分9.开发潜在的额外需求实例的列表10.确定额外需求的候选主题11.编写“额外需求”部分12.编写“开发考虑”部分13.编写“测试考虑”部分14.是否值得15.评审模式。这样就算是对需求模式的内在方面有了更深入的了解。

今天的学习阅读,让我从外而内,从面到点,对需求模式有了一个深入地了解,从学习什么是需求模式到学习如何使用需求模式,再到如何编写需求模式,从中我体会到了需求模式所带来的好处,也为之后学习不同类型的需求模式打好了基础。

时间: 2024-08-06 19:46:17

《软件需求模式》阅读笔记02的相关文章

《构建之法》阅读笔记02

<架构之美>阅读笔记02 今天,我读了<架构之美>第三.四章,第三章主要讲伸缩性架构设计,书中说设计系统架构时,要确保系统在伸缩时的弹性,根据书中的介绍我对系统伸缩性的理解是每个网站在不同时期都会有不同的访问量,有时会很多,有时会较少,当较多的人访问你的系统时,你可能需要数量较多的设备来满足用户与系统的交互,但当访问的用户越来越少时,系统伸缩性如果不够好,很多设备就会被浪费,不能够与系统分离,这对于软件开发者是不可取的.Darkstar项目就是由Sun公司实验室承担的一个将在架构的

《用户故事与敏捷开发》阅读笔记02

 <用户故事与敏捷开发>阅读笔记02       这周读了<用户故事与敏捷开发>的第四至七章,第四章讲述的是如何搜集故事,也就是如何正确的去找到用户需求.作者明确指出"引用"和"捕捉"是不合用的.所谓"引用"和"捕捉",我想是通过用户对功能的表述,开发人员从中获取需求信息吧.如果是这种方法来获取需求,正如作者所说,用户不会知道所有的需求,所以只靠着这方法是远远不够的.对于故事编写的数量以及程度,作者认为

ijkplayer阅读笔记02

ijkplayer阅读笔记02 1.在这一章主要介绍音视频解码和显示线程的创建和启动,直接贴代码如下: IjkMediaPlayer_prepareAsync{ ijkmp_prepare_async_l{ ijkmp_change_state_l(mp, MP_STATE_ASYNC_PREPARING); msg_queue_start(&mp->ffplayer->msg_queue); SDL_CreateThreadEx(&mp->_msg_thread, mp

《需求分析与系统设计》阅读笔记02

在对于<需求分析与系统设计>第一章的阅读中我知道一个项目的成型的大致流程,一个软件的生命周期以及在不同的阶段我们应该采用什么样的方法.在不同的生命周期阶段当中我们应该做些什么,应该注意什么.对于一个软件的开发的方法. 对于第二.三章的精读之后了解到学习对象技术的主要困难在于缺乏明确的出发点和清晰的研究途径.没有像我们曾经了解的自顶向下或自底向上的一种学习方法.学习面向对象技术是一种“从中间出发”的方法.对于一个对象,我们首先要先确认实例对象,并且区分实例对象和类对象.那么关于对象呢,我们需要掌

《构建之法阅读笔记02》

这次主要对<构建之法>的第四章“两人合作”作一次阅读笔记. 首先是代码规范问题. 我过去对于代码规范问题并没有做到注意.在编程中,许多变量和函数的命名都非常的简单而没有实际的意义.而且编程时不注意对齐缩进.很多时候也不加注释,导致对这些简单的变量名称不熟悉. 这样做会使得很多人读代码费劲,甚至是自己都要花时间再次阅读懂自己的代码.而且很多没必要的注释也会使得注释失去意义.当自己再次在原基础上编程时,可能要重新编程等问题. 因此,通过阅读“代码规范”,我找到一些解决方法.代码的风格要简明.易读.

&lt;&lt;需求分析与系统设计&gt;&gt;读书笔记之一

<<需求分析与系统设计>>这本书论述了软件分析和设计的迭代增量式过程,讨论软件分析与设计的原理,方法和技术,并特别关注了设计阶段,对软件体系结构的内容进行了很大的扩充.本书强调对象技术与统一建模语言UML在企业信息系统开发中的应用,并讨论了使用web技术和数据库技术进行开发的方法.这本书集中在面向对象软件开发上,统一建模语言用于捕捉建模的人工制品,主要论述用逐步细化的方式进行开发,并且在整个开发生命周期中都是用UML这种建模语言.系统分析师,设计师和程序员使用同一种语言和工具,但有

&lt;&lt;需求分析与系统设计&gt;&gt;读书笔记之三

终于把<需求分析与系统设计>读完了,感受很多,虽然理解还不是透彻,但还是学到了不少知识.在软件需求规格说明中,需要用图形和其他形式化模型来说明需求,为了完整地说明一个系统,有必要采取多种模型.UML提供了许多集成化的建模技术来辅助系统分析师来完成这项工作.规格说明的过程是迭代增量式的.对成功的建模来说,使用case工具是必须的.需求规格说明产生三种模型:状态模型,行为模型,状态变化模型.需求规格说明涉及需求确定期定义的客户需求进行严格的建模,重点放在那些系统将要提供的所期望的服务上.在规格说明

《UML大战需求分析》阅读笔记02

软件应能真正的对客户的工作提供帮助,只有客户使用并真正对其有用才能说我们做的软件成功了.客户从开始提出需求时到后期的工作过程中,需求总是不停变化的,所以这就需要需求人员对需求领先于客户.所以活用UML进行结构和行为建模,帮助我们更好的认识客户业务和做好业务流程再造工作.UML进行需求分析的过程: 搞清楚系统的目标和范围 找出该系统的所有关键涉众列出他们要解决的问题 分析业务,确认问题,发掘真正问题 针对问题,提出系统的特性 针对特性,提出系统的用例细化功能需求非功能需求 类图是用的最多的UML图

代码大全阅读笔记02

继续阅读代码大全这本书,感觉是好厚好难啃啊.刚刚开始读不久到了作者说把主要精力集中于构建活动,可以大大提高程序员的生产率.我想就一个项目来说,思路和设计是站着主导的地位的,你如果不能把思路理清,可能随时都有可能卡在那里,而一旦灵感来了,你就会想泉涌一样的来思路,我们也算是做了一个小的项目的了,虽然很low吧,但是好歹也算有点体会.我们总是在设计的时候会走投无路,不知所措,以至于每一次开始时都是没有思路起手都只能积压在那里,实在是不知道该怎么做.我觉得 P28 的那个食物链的例子更有说服力,健康的

人月神话阅读笔记02

贵族专制.民主政治和系统设计 本章主要是围绕着: 1.如何得到概念的完整性. 2.这样的观点是否要有一位杰出的精英,或者说是结构设计师的贵族专制,和一群创造性天分和构思被压制的平民编实现人员? 3.如何避免结构设计师产出无法实现.或者是代价高昂的技术规格说明,使大家陷入困境? 4.如何才能实现与实现人员就技术说明的琐碎细节充分沟通,以确保设计整备正确的理解并精确的整合到产品中? 就第一个问题文章是介绍的编程系统的目的是使计算机更加容易使用.对于功能,能够用最简洁的方式来指明事情的系统是最好的,对