第11章-软件需求工程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第11章软件需求工程在计算机发展的初期,软件规模不大,软件开发所关注的是代码编写,需求分析很少受到重视。后来,软件开发引入了生命周期的概念,需求分析成为其第一阶段。随着系统规模的扩大,需求分析与定义在整个系统开发与维护过程中越来越重要,直接关系到系统的成功与否。人们也逐渐认识到需求分析活动不再仅限于系统开发的最初阶段,而是贯穿于系统开发的整个生命周期。于是,形成了软件工程的子领域——软件需求工程。软件需求工程是包括创建和维护软件需求文档所必需的一切活动的过程,可分为需求开发和需求管理两大工作。需求开发包括需求获取、需求分析、编写需求规格说明书(需求定义)和需求验证四个阶段。在需求开发阶段需要确定软件所期望的用户类型,获取每种用户类型的需求,了解实际的用户任务和目标,以及这些任务所支持的业务需求。同时还包括分析源于用户的信息,对需求进行优先级分类,将所收集的需求编写成为需求规格说明书和需求分析模型,以及对需求进行评审等工作;需求管理通常包括定义需求基线、处理需求变更和需求跟踪等方面的工作。这两个方面是相辅相成的,需求开发是主线,是目标;需求管理是支持,是保障。11.1软件需求概述软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。根据IEEE的软件工程标准词汇表,软件需求是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。1.需求的层次简单地说,软件需求就是系统必须完成的事以及必须具备的品质。需求是多层次的,包括业务需求、用户需求和系统需求,这三个不同层次从目标到具体,从整体到局部,从概念到细节。(1)业务需求。业务需求是指反映企业或客户对系统高层次的目标要求,通常来自项目投资人、购买产品的客户、客户单位的管理人员、市场营销部门或产品策划部门等。通过业务需求可以确定项目视图和范围,项目视图和范围文档把业务需求集中在一个简单、紧凑的文档中,该文档为以后的开发工作奠定了基础。有关项目范围管理的详细知识,将在20.3节中介绍。(2)用户需求。用户需求描述的是用户的具体目标,或用户要求系统必须能完成的任务。也就是说,用户需求描述了用户能使用系统来做些什么。通常采取用户访谈和问卷调查等方式,对用户使用的场景(scenarios)进行整理,从而建立用户需求。有关需求获取方法的详细知识,将在11.2节中介绍;有关场景的详细知识,将在12.3节中介绍。(3)系统需求。系统需求是从系统的角度来说明软件的需求,包括功能需求、非功能需求和设计约束等。功能需求也称为行为需求,它规定了开发人员必须在系统中实现的软件功能,用户利用这些功能来完成任务,满足业务需要。功能需求通常是通过系统特性的描述表现出来的,所谓特性,是指一组逻辑上相关的功能需求,表示系统为用户提供某项功能(服务),使用户的业务目标得以满足;非功能需求是指系统必须具备的属性或品质,又可细分为软件质量属性(例如,可维护性、可维护性、效率等)和其他非功能需求。有关质量属性的详细知识,将在20.7.1节中介绍;设计约束也称为限制条件或补充规约,通常是对系统的一些约束说明,例如,必须采用国有自主知识产权的数据库系统,必须运行在UNIX操作系统之下等。2.质量功能部署质量功能部署(QualityFunctionDeployment,QFD)是一种将用户要求转化成软件需求的技术,其目的是最大限度地提升软件工程过程中用户的满意度。为了达到这个目标,QFD将软件需求分为三类,分别是常规需求、期望需求和意外需求。(1)常规需求。用户认为系统应该做到的功能或性能,实现越多用户会越满意。(2)期望需求。用户想当然认为系统应具备的功能或性能,但并不能正确描述自己想要得到的这些功能或性能需求。如果期望需求没有得到实现,会让用户感到不满意。(3)意外需求。意外需求也称为兴奋需求,是用户要求范围外的功能或性能(但通常是软件开发人员很乐意赋予系统的技术特性),实现这些需求用户会更高兴,但不实现也不影响其购买的决策。意外需求是控制在开发人员手中的,开发人员可以选择实现更多的意外需求,以便得到高满意、高忠诚度的用户,也可以(出于成本或项目周期的考虑)选择不实现任何意外需求。11.2需求获取需求获取是一个确定和理解不同的项目干系人的需求和约束的过程。需求获取是一件看上去很简单,做起来却很难的事情。需求获取是否科学、准备充分,对获取出来的结果影响很大,这是因为大部分用户无法完整地描述需求,而且也不可能看到系统的全貌。因此,需求获取只有通过系统分析师与用户的有效合作才能成功。系统分析师必须建立一个对问题进行彻底探讨的环境,而这些问题与将要开发的系统有关。让用户明确了解,对于某些功能的讨论并不意味着即将在系统中实现它。作为一名系统分析师,掌握各种不同的需求获取技术,并且熟练地在实践中运用它,是十分必要的。10.2.3节介绍了诸多的详细调查方法,这些调查方法都可以用在需求获取中,本节就一些最常用的需求获取技术进行展开讨论。11.2.1用户访谈用户访谈是最基本的一种需求获取手段,其形式包括结构化和非结构化两种。结构化是指事先准备好一系列问题,有针对地进行;而非结构化则是只列出一个粗略的想法,根据访谈的具体情况发挥。最有效的访谈是结合这两种方法进行,毕竟不可能把什么都一一计划清楚,应该保持良好的灵活性。为了进行有效的用户访谈,系统分析师需要在三个方面进行组织,分别是准备访谈、主持访谈和访谈的后续工作。1.准备访谈每一次成功的访谈都需要精心的准备。在准备访谈过程中,首先也是最重要的步骤是确定访谈的目的,其次是确定访谈中应该包括哪些用户。这两个步骤结合得非常紧密,因此通常一起完成。参加访谈的用户数量取决于访谈的目的。通常,最好限制参加访谈的人数。例如,一次超过3个用户的访谈有可能使得讨论时间变长,这在有时候可能会适得其反。在很多情况下,系统分析师每次只和一个用户进行访谈,这对中小规模的项目尤其适用。准备访谈的第三步是为访谈准备一些详细的问题。系统分析师可以根据已经获得的表格和报表写出一些具体的问题,并作好笔记。问题可以分为开放式问题和封闭式问题两类。所谓开放式问题,就是类似于“你如何完成这项功能”的问题,鼓励用户与系统分析师对问题进行讨论和说明;所谓封闭式问题,就是类似于“你每天处理多少张表格”的问题,可以用来获得具体的事实。一般而言,开放式问题有助于开始对问题进行讨论,并且鼓励用户说明所有的业务过程和业务规则细节。准备访谈的最后一步是作出最终的访谈安排,并把这些安排通知所有参加者。具体的时间和地点应该事先征求被访谈者的同意。如果可能的话,应尽量选择一个安静的地点以避免外界干扰。每个参加者都应该知道访谈的目的,而且在适当的时候,参加者也应该有机会预览一下将要访谈的问题或材料。另外,值得注意的是,系统分析师应该在访谈之前进行一些领域相关的知识培训,充分阅读相关材料,以保证自己有较专业的理解与认识,让用户能够信任自己。2.访谈过程在具体访谈时,系统分析师及项目组成员一定要准时到达。可能的话,尽量早到一点。在访谈的过程中,要做好以下几项工作:(1)限制访谈时间。当确定了访谈目的并准备好了问题之后,访谈的时间应该控制在90分钟左右。如果访谈需要更多的时间来覆盖一些其他的问题,比较好的方法是中断本次访谈,并安排另一次访谈,因为举行几次比较短的访谈要比举行一次马拉松式访谈的效果要好得多。一系列访谈提供了收集各种材料的机会,这些材料将在随后的过程中被不断细化。在几次比较短的访谈后,系统分析师和被访谈者都将获得对系统的较好理解。(2)寻找异常和错误情况。系统分析师要找机会问一些类似于“如果„„那会怎么样”的问题,要有意识地去确定所有的特殊情况,并与用户深入探讨。(3)深入调查细节。除了寻找意外情况外,系统分析师必须进行深入调查,以确保获得对过程和规则的完全理解。(4)认真作好记录。主要包括本人记录、第三人记录或者是录音/录像的形式。如果采用录音/录像的方式,应该征得被访谈者的同意。这种方法虽然看上去比较有效,不容易丢失信息,但容易让被访谈者感到紧张,也会给后面的整理工作带来一定的工作量和难度。因此,手写笔记是一个好主意,好的笔记不仅为下一次访谈的成功奠定基础,而且也为建立分析模型提供了基础。在访谈时,系统分析师一定要注意措词得当,充分尊重用户。否则,将会破坏访谈的气氛,从而使访谈的效率大打折扣。在访谈时,一定要注意保持轻松的气氛,在说话、提问时应该尽量采用易于理解和通俗化的语言,避免使用IT专业术语。3.访谈的后续工作后续工作的首要任务是吸收、理解和记录访谈所获得的信息。通常,系统分析师通过构造业务过程的模型来记录访谈的细节,和项目组其他成员一起复查访谈中发现的结果,然后在一天或至多两天内记录下结果。在访谈过程中,系统分析师可能会问一些用户回答不上来的问题,不要丢失或遗忘这些问题,这是非常重要的。根据需要进一步详细说明的问题或者访谈中错过的信息,系统分析师可以生成一张新的问题列表,为下一次访谈作好准备。另外,为了维持用户的友好和信任关系,应该送给他们一份总结了访谈内容的备忘录。其中需要提到被访谈者对项目的贡献,并给他们机会澄清可能在访谈期间得出的任何错误回答。4.用户访谈的优缺点总的来说,用户访谈具有良好的灵活性,有较宽广的应用范围。但是,也存在着许多困难,例如,用户经常较忙,难以安排时间;面谈时信息量大,记录较为困难;沟通需要很多技巧,同时需要系统分析师具有足够的领域知识等。另外,在访谈时,还可能会遇到一些对于企业来说比较机密和敏感的话题。因此,这看似简单的技术,也需要系统分析师具有丰富的经验和较强的沟通能力。11.2.2问卷调查用户访谈最大的难处在于很多关键人员时间有限,不容易安排过多的时间。而且,如果用户较多,不可能一一访谈。因此,就需要借助问卷调查,通过精心设计调查表,然后下发到相关的人员手中,让他们填写答案。这样,就可以有效地克服用户访谈方法中存在的问题。1.调查表的制作问卷调查表使系统分析师可以从大量的项目干系人处收集信息,甚至当项目干系人在地理上分布很广时,他们仍然能通过问卷调查表来帮助获取需求。一张好的问卷调查表要花费大量的时间来进行设计与制作,包括确定问题及其类型、编写问题、设计问卷调查表的格式三个重要活动。(1)确定问题及其类型。与用户访谈一样,问卷调查表上使用的基本问题有开放式问题和封闭式问题。但不同的是,问卷调查表的问题必须非常清楚,组织顺序必须有说服力,必须能够预见用户可能的回答。(2)编写问题。在具体问题的编写中,要注意使用“用户的语言”,不要使用含糊的词语,但也要避免过度明确的问题,保持问题的简短,避免措词上的偏向。(3)设计问卷调查表的格式。一份精心设计的、恰当的问卷调查表,能帮助用户克服不愿意回答问题的情形。设计调查表的格式时,应该提供足够的空白空间让用户填写表格。对用户重要的问题放在最前面,内容相似的问题放在一起。例如,表11-1是一个关于某在线教育平台系统的调查表的例子,其中包含了常见的各种问题类型。表11-1调查表示例第一部分:根据一个典型的值班工作情况,回答下列问题。1.网友报名参加一门课程的学习,需要多少个电话?2.有多少个电话仅仅询问关于课程的信息,而无购买行为?3.有多少网友在在线客服的交谈中取消了订单?……第二部分:请根据您的同意或者反对的强烈程度,在下列表格中适当的数字上画上圆圈。项目非常同意强烈反对大量的课程介绍性材料是对销售有帮助的1234567查看顾客的课程学习历史记录,对销售是有帮助的1234567……第三部分:请写下您的意见或建议。1.您觉得现在的在线教育平台存在哪些问题?2.您认为新系统应该具有哪些功能?……2.问卷调查的优缺点与用户访谈相比,问卷调查可以在短时间内,以低廉的代价从大量的回答中收集数据;问卷调查允许回答者匿名填写,大多数用户可能会提供真实信息;问卷调查的结果比较好整理和统计。问卷调查最大的不足就是缺乏灵活性,其他缺点还有:(1)双方未见面,系统分析

1 / 41
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功