《需求工程——软件建模与分析》读书笔记三

经过一段时间课上的学习及自己课下看书,下面做了一个总结:  

     软件需求是软件开发的前提,是一个软件能够有良好前景的开端,是软件成功的必要条件。

      1.需求获取中所遇到的常见困难,如:用户和开发人员的背景不同,立场不同;普通用户缺乏概括性、综合性的表述能力;用户存在认知困境;用户越俎代庖;缺乏用户参与等等,了解这些困难对更好地了解需求获取活动的复杂性有重要意义。需求,就是获取的主要对象,是系统期望达到的目标。它主要来源于用户、客户、领域专家等相关涉众,在获取中体现为涉众的问题、期望、观点、看法和态度等。问题域描述是用来承载和解释需求的问题域特性,主要是现实世界的业务运行状况。它可以从涉众的业务描述中获得,也可以从业务运行所产生的各种数据文档中获得。环境与约束属于一种特殊的问题域特性,限定了解系统部署的环境和条件。之所以将其单独列举出来,是因为它常常在需求获取中被人们遗漏。主要来源于涉众的描述和对应用环境的观察。

     2. 信息的获取来源包括:涉众:用户,客户,领域专家,市场人员、销售人员等其他用户替代源;硬数据:登记表格、单据、报表等定量文档;备忘录、日志等定性文档;确定项目的前景与范围,在开始一个项目之初,首先要考虑的一个问题是——为什么要启动该项目?也就是说项目的目标是什么?项目的目标是系统的业务需求,在很多情况下,涉众可以清晰地表达出系统的业务需求,这时可以通过安排和涉众的面谈来明确项目的动机。但也有很多情况下,涉众无法表达他们的业务需求,或者表达的业务需求不够清晰。因此,要发现系统的业务需求,还是要从用户的问题开始。要分析涉众问题,首先要明确问题,将它们变得清晰,变得适宜进行分析。这个过程从问题和相关的背景描述开始。对涉众的高层次问题,经过问题分析之后就可以得到高层次的解决方案及系统特性,它们清晰地定义了问题解决方案的功能和边界。将所有问题的解决方案进行综合,就可以得到整个解系统的功能和边界。系统的边界通常是进行需求分析的起点,无论是结构化分析还是面向对象分析,都要从系统的边界图开始,逐一分析和细化系统与外界的交互,以保证最终产品的行为能够和环境形成互动以满足用户的需求。。

     3.软件需求获取的几个方法:面谈和问卷调查;小组讨论;情景串联;参与、观察业务流程;现有产品和竞争对手的描述文档;市场资料。在其中我们最常用的就是面谈和问卷调查。面谈和问卷调查:面谈是获取软件需求的最有用的方法之一。面谈需准备的内容:面谈对象:与系统相关的涉众,并具有代表性,保证涵盖到每个角色。如何获取涉众:谁为系统付费,购买系统?谁使用系统:谁会受到系统结果的影响,谁来监管该系统?谁来维护系统?面谈问题:需保证与背景无关,保证获取信息的公正性。问题的设计:确定访谈对象的背景:姓名、年龄、部门所处的职位、目前的工作范围目前碰到哪些问题,这些问题会对工作、生活产生什么影响?客户期待的解决方案是?解决方案的可行性分析;非功能性需求:性能?稳定性方面的要求;维护,是否有专门的维护团队?对当前的访谈结果的认同,确认后期有问题可继续联系。总结出当前优先级最高的三个问题;调查问卷无法取代面谈在需求获取阶段的作用,问卷调查的问题和答案具有一定的引导性,在某种程度上会影响结果。

  业务流程可能由于某些原因会遗漏掉重要的信息,需求分析人员可申请参与到他们具体的工作,观察、体验业务操作过程。这种亲身参与的需求分析才会更加的准确,项目的实现过程也会更加的顺利。

原文地址:https://www.cnblogs.com/kangzhijia/p/8303382.html