全部科目 > 系统架构设计师 >
2011年下半年 下午试卷 论文
第 4 题
知识点 需求获取   软件需求   项目干系人   需求获取技术  
 
 
论软件需求获取技术及应用
软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。软件需求获取是一个确定和理解不同的项目干系人的需求和约束的过程。需求获取是否科学、准备充分,对获取的结果影响很大,这是因为大部分用户无法完整地描述需求,而且也不可能看到系统的全貌。因此,掌握各种不同的需求获取技术,并且熟练地在实践中运用它,并与用户有效合作,是十分重要的。
 
问题:4.1   请围绕“需求获取技术及应用”论题,依次从以下三个方面进行论述。
1.简要叙述你参与管理和开发的软件项目以及你在其中所承担的主要工作。
2.详细说明目前有哪些比较常用的需求获取技术?说明每种需求获取技术的基本方法。
3.详细论述在你参与分析和开发的软件项目中所采取的需求获取技术以及选取这些技术的原因,并说明需求获取的具体实施步骤。




 
 
 
知识点讲解
· 需求获取
· 软件需求
· 项目干系人
· 需求获取技术
 
        需求获取
        在需求获取的过程中,主要解决需求调查的问题。要想做好需求调查,必须清楚地了解3个问题:
        (1)What:应该搜集什么信息。
        (2)Where:从什么地方搜集这些信息。
        (3)How:用什么机制或者技术来搜集这些信息。
               要捕获的信息
               从宏观的角度来看,要获取的信息包括三大类:一是与问题域相关的信息(如业务资料、组织结构图、业务处理流程等),二是与要求解决的问题相关的信息,三是用户对系统的特别期望与施加的任何约束信息。
               信息的来源
               除了要明确地知道我们需要什么方面的信息,还要知道它们可以从哪里获得。而通常情况下,这些你需要的信息会藏于客户、原有系统、原有系统用户、新系统的潜在用户、原有产品、竞争对手的产品、领域专家、技术法规与标准里。
               面对这么许多种可能,在具体实践中该从何下手呢?其实也很简单,首先从人的角度来说,应该首先对项目干系人进行分类,然后从每一类项目干系人中找到1或2名代表;而对于文档、产品而言,则更容易有选择地查阅。
               在制定需求获取计划的时候,我们可以列出一个表格,第1列是我们想了解的信息,第2列是信息可能的来源,这样就能够建立起一一对应的关系,使得需求获取工作更加有的放矢,也更加高效。
               需求捕获技术
               当我们知道需要去寻找什么信息,并且也找到了信息的来源地,接下来就需要选择合适的技术进行需求获取了。
               (1)用户访谈。用户访谈是最基本的一种需求获取手段,其形式包括结构化和非结构化两种,结构化是指事先准备好一系列问题,有针对地进行;非结构化则是只列出一个粗略的想法,根据访谈的具体情况发挥。最有效的访谈是结合这两种方法进行。用户访谈具有良好的灵活性,用较宽广的应用范围,但是也存在着许多困难,诸如客户经常较忙,你难以安排到时间;面谈时信息量大,记录较为困难;沟通需要很多技巧,同时需要分析员有足够的领域知识;另外,在访谈时会遇到一些对于组织来说比较机密和敏感的话题。因此,这看似简单的技术,也需要分析人员拥有足够多的经验和较强的沟通能力。
               (2)用户调查。用户访谈时最大的难处在于很多关键的人员时间有限,不容易安排过多的时间;而且客户面经常较广,不可能一一访谈。因此,我们就需要借助用户调查,通过精心设计要问的问题,然后下发到相关的人员手里,让他们填写答案。这样就可以有效地克服前面提到的两个问题。但是与用户访谈相比,用户调查最大的不足就是缺乏灵活性;而且双方未见面,分析人员无法从他们的表情等其他动作来获取一些更隐性的信息;还有就是客户有可能在心理上会不重视一张小小的表格,不认真对待从而使得反馈的信息不全面。因此较好的做法是将这两种技术结合使用。具体来说,就是先设计问题,制作成为用户调查表,下发填写完后,进行仔细的分组、整理、分析,以获得基础信息,然后再针对这个结果进行小范围的用户访谈,作为补充。
               (3)现场观摩。对于许多较为复杂的流程和操作而言,是比较难以用言语表达清楚的,而且这样做也会显得很低效。因此,针对这一现象,分析团队可以就一些较复杂、较难理解的流程、操作采用现场观摩的方法来获取需求。具体来说,就是走到客户的工作现场,一边观察,一边听客户的讲解,甚至可以安排人员跟随客户工作一小段时间。这样就可以使得分析人员更加直观地理解需求。
               (4)阅读历史文档。这种方式也称为“文档考古”。对于一些数据流比较复杂的,工作表单较多的项目,有时是难以通过语言,或者通过观察来了解需求细节的。这个时候就可以借助于阅读历史文档的方法,对历史存在的一些文档进行研究,从中获得所需的信息。这个方法的主要风险是历史的文档可能与新系统的流程、数据有一些不吻合的地方,并且还可以承载一些原有系统的缺陷。要想有效地避免和发现这些问题,就需要分析人员能够运用自己的聪明才智,将其与其他需求捕获技术结合对照。还有一个负面因素就是,这些历史的文档中记载的信息有可能涉及客户的商业秘密,因此对数据信息的保密也是分析人员基本的职业道德。
               (5)联合讨论会。这是一种相对来说成本较高的需求获取方法,但也是十分有效的一种。它通过联合各个关键客户代表、分析人员、开发团队代表一起,通过有组织的会议来讨论需求。通常该会议的参与人数为6~18人,召开时间为1~5小时。在会议之前,应该将与讨论主题相关的材料提前分发给所有将要参加会议的人。在会议开始之后,首先应该花一些时间让所有的与会者互相认识,以使交流在更加轻松的气氛下进行。会议的最初,就是针对所列举的问题进行逐项专题讨论,然后对原有系统、类似系统的不足进行开放性交流,第三步则是大家在此基础上对新的解决方案进行一番设想,在过程中将这些想法、问题、不足记录下来,形成一个要点清单。第四步就是针对这个要点清单进行整理,明确优先级,并进行评审。这种联合讨论会将会起到群策群力的效果,对于一些问题最有歧义的时候、对需求最不清晰地领域都是十分有用的一种技术。而且最大的难度就是会议的组织,要做到言之有物,气氛开放,否则将难以达到预想的效果。
               需求捕获的策略
               在整个需求过程中,需求捕获、需求分析、需求定义、需求验证四个阶段不是瀑布式的发展,而且应该采用迭代式的演化过程。也就是说,在进行需求捕获时,不要期望着一次就将需求收集完,而且应该捕获到一些信息后,进行相应的需求分析,并针对分析中发现的疑问和不足,带着问题再进行有针对性的需求捕获工作。
 
        软件需求
        在进行需求获取之前,首先要明确需要获取什么,也就是需求包含哪些内容。软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。通常,这些需求包括功能需求、性能需求、用户或人的因素、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密需求、可靠性需求、软件成本消耗与开发进度需求等,并预先估计以后系统可能达到的目标。此外,还需要注意其他非功能性的需求。具体内容如下。
        (1)功能需求。
        (2)性能需求。
        (3)用户或人的因素。
        (4)环境需求。
        (5)界面需求。
        (6)文档需求。
        (7)数据需求。
        (8)资源使用需求。
        (9)安全保密要求。
        (10)可靠性要求。
        (11)软件成本消耗与开发进度需求。
        (12)其他非功能性要求。
               需求分析的任务
               需求分析主要是确定待开发软件的功能、性能、数据、界面等要求。具体来说有下面几点。
               (1)确定软件系统的综合要求,包括系统界面、功能、性能、安全性、保密性、可靠性、运行等方面的要求。
               (2)分析软件系统的数据要求,包括基本数据元素、数据元素之间的逻辑关系、数据量、峰值等。
               (3)导出系统的逻辑模型,在结构化方法中可用数据流图来描述;在面向对象分析方法中可以用类模型来描述。
               (4)修正项目开发计划。
               (5)如有必要,可开发一个原型系统以验证用户的需求。
               软件需求的分类
               下面介绍软件需求的分类。
               (1)功能需求。所开发的软件必须具备什么样的功能。
               (2)非功能需求。它是指产品必须具备的属性或品质,如可靠性、性能响应时间、容错性和可扩展性等。
               (3)设计约束。其也称为限制条件、补充规约,这通常是对解决方案的一些约束说明。
               软件需求分析方法
               需求分析方法由对软件的数据域和功能域的系统分析过程及其表示方法组成。它定义了表示系统逻辑视图和物理视图的方式。大多数的需求分析方法是由数据驱动的,数据域具有数据流、数据内容和数据结构3种属性。通常一种需求分析方法总要利用其中一种或几种属性。
 
        项目干系人
        定义
        项目干系人(Project Stakeholder),也称为利害相关者,是积极参与项目,或其利益因项目的实施或完成而受到积极或消极影响的个人或组织,他们还会对项目的目标和结果产生影响。项目管理团队必须明确项目的干系人,确定其需求,然后对这些需求进行管理和施加影响,确保项目取得成功。
        干系人对项目的影响
        包括积极的影响和消极的影响。项目管理团队不仅要关注积极的项目干系人,也不能忽略消极项目干系人。项目关键干系人包括:
        .项目经理(Project Manager)
        .顾客/客户(Customer/User)
        .执行组织(Performing Organization)
        .项目团队成员(Project Team Members)
        .项目管理团队(Project Management Team)
        .出资人(Sponsor)
        .有影响力的人(Influencers)
        .项目管理办公室(PMO)
 
        需求获取技术
        充分了解网络应用系统需求是做好需求分析的关键。需求分析人员在与用户交流和观察工作流程获取初步需求时,采取一定的技术和技巧可以快速、准确地获取初步需求。
               向用户提出问题的原则
               在访谈或会议前,分析人员应该按照一定原则精心准备一系列问题,通过用户对问题的回答获取有关信息,逐步理解用户对目标网络的要求,这些原则是:
               (1)问题应该是循序渐进的,即首先关心一般性、整体性问题,然后再讨论细节性问题。
               (2)所提出的问题不应限制用户的回答,尽量让用户在回答过程中自由发挥,这就要求在组织问题时尽量客观、公正。
               (3)逐步提出的问题在汇总后应能反映网络需求或其子需求的全貌,并覆盖用户对目标网络系统或其子系统在功能、性能等方面的要求。细节问题可以留待后期设计阶段解决。
               收集需求的方法
               网络规划设计师在收集需求时,必须向用户反馈求得确认,需要上下文无关的内容,需要良好的沟通技巧。一般可从全局、个人和团队的角度来考虑收集需求的方法。从全局的角度出发,可以这样收集需求:
               (1)检查现有的网络状况、网络软件使用情况。
               (2)调查其他公司在构建类似网络系统时所使用的方法、取得的效果。
               (3)实地参观相似网络系统。
               这种收集方法的好处在于,有利于需求分析人员熟悉新系统的情况,了解最起码的网络系统需求;而缺点是,由于注意力放在以前的工作上,可能会引起对未来的改进工作的忽略。
               获取用户需求的常用方法如下:
               (1)采访:采访至少要有需求分析人员和一个用户一起讨论网络系统的需求。需求采访的目的是收集信息,最好通过有趣的方式进行。
               (2)观察:观察是需求分析人员到特定地点,观察问题领域涉及的人、机器的活动。通过观察,需求分析人员可以得到问题领域的第一手资料。
               (3)问卷及调查:问卷是从大量人群收集信息的反馈表。一对一的交谈加上观察可能是收到需求最常用的方法,但这个方法耗时较长,不太方便。
               (4)建立原型以得到潜在用户的反馈。这里的原型是指在实验室内搭建一个相对较小、模拟的网络环境。
               产生歧义性的原因
               在记录需求的时候,要避免出现需求歧义性。需求歧义性的三个主要来源是遗漏的需求、含糊的措辞、新加的成分。需求分析人员有责任在最终需求分析规格说明文档中消除需求歧义性。
               分析人员不能被动地接受用户关于网络系统及项目背景的需求,而是要结合自己的网络设计经验,主动剔除不合理的、目光短浅的用户需求,从发展角度考虑问题,提出相应的方案。需求的获取是有章可循的,不能盲目进行。采用科学的需求获取技术可以快速、准确地获取需求,避免不必要的重复工作。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有