获取需求的方法有哪些途径
软件开发生命周期包含需求、设计、编码和测试四个过程阶段,其中需求过程是第一个也是最重要的一个阶段。
软件需求包括三个不同的层次:业务需求,说明了提供给客户和产品开发商的新系统的利益,反映了组织机构或客户对系统、产品高层次的目标要求,它们将在项目视图与范围文档中予以说明;用户需求,描述了用户使用系统必须要完成的任务,这在使用实例文档或方案脚本说明中予以说明;功能需求和非功能需求,定义了开发人员必须实现的软件功能,使得用户能顺利完成他们的任务,从而满足了业务需求。
软件需求过程包括了5个主要活动:需求获取、需求分析和确认、编写需求规格说明书、需求验证和需求管理。
需求获取 需求的收集、分析、细化、核实并组织的步骤,并将它编写成文档。
这个活动包括了编写项目视图和范围文档、用户群分类、选择用户代表、建立核心队伍、确定使用实例、召开联合会议、分析用户工作流程、确定质量属性、检查问题报告和需求重用10个具体任务,文章将在后面进行详细的阐述。
需求分析 根据需求获取中得到的需求文档,分析系统实现方案。
这个活动需要完成下面几个任务: 1、绘制关联图,用于定义系统与系统外部实体间的边界和接口的简单模型; 2、创建开发原型,当开发人员或用户不能明确某些需求时,开发一个系统原型,这样使得许多概念和可能发生的事更为直观明了; 3、分析可行性,在允许的成本、性能要求下,分析每项需求实施的可行性,明确每项需求实现相联系的风险,包括与其它需求的冲突,涉及各类用户的利益平衡,对外界因素的依赖和技术障碍; 4、确定需求优先级:分析方法来确定使用实例、系统特性或单项需求实现的优先级别,以优先级为基础确定产品版本将包括哪些特性或哪类需求; 5、为需求建立模型,为需求建立图形分析模型是软件需求规格说明极好的补充说明,可以为系统需求从多个角度建模; 6、编写数据字典,创建数据字典数据字典是对系统用到的所有数据项和结构的定义,以确保开发人员使用统一的数据定义; 7、应用质量功能调配,将系统特性、属性与对客户的重要性联系起来,提供了一种分析方法以明确哪些是客户最为关注的特性。
编写需求规格说明书 需求开发的最终成果是客户和开发小组对将要开发的产品达成一致协议,这一协议就是通过文档化的需求规格说明书来体现。
需求规格说明书包括项目视图和范围文档说明了系统的业务需求,而使用实例文档则说明了用户需求。
这个活动需要完成下面几个任务: 1、采用模版,在你的组织中要为编写软件需求规格说明书等文档定义一种标准模板,该模板为记录系统需求和各种其它与需求相关的重要信息提供了统一的结构; 2、指明需求来源,为了让所有项目风险承担者明白需求规格说明书中为何提供这些功能需求,要能追溯每项需求的来源,来源可能是一种使用实例或其它客户要求,也可能是某项更高层系统需求、业务规范、政府法规、标准或别的外部来源,这些来源应该记录在需求的跟踪能力矩阵中; 3、为每项需求注上标号,为了需求的可跟踪性和可修改性的质量标准,必须唯一确定每个软件需求,为制定一种惯例来为需求规格说明书中的每项需求提供一个独立的可识别的标号或记号; 4、记录业务规范,是指关于系统的操作原则,比如谁能在什么情况下采取什么动作,将这些编写成需求规格说明书中的一个独立部分,或一独立的业务规范文档; 5、创建需求跟踪能力矩阵,建立一个矩阵把每项需求来源、定义与实现、测试它的设计和代码部分联系起来,这样有利于需求的管理和需求变更影响范围的评估。
如何进行软件需求分析
1.概念需求的定义包括从用户角度(系统的外部行为),以及从开发者角度(一些内部特性)来阐述需求.关键的问题是一定要编写需求文档.我曾经目睹过一个项目中途更换了所有的开发者,客户被迫与新的需求分析者坐到一起.系统的分析人员说:"我们想与你谈谈你的需求."客户的第一反应便是:"我已经将我的要求都告诉你们前任了,现在我要的就是给我编一个系统".百事通而实际上,UGGs,需求并未编写成文档,因此新的分析人员不得不从头做起.所以如果只有一堆邮件、会谈记录或一些零碎的未整理的对话,你就确信你已明白用户的需求,那完全是自欺欺人.需求的另外一种定义认为需求是"用户所需要的并能触发一个程序或系统开发工作的说明".有些需求分析专家拓展了这个概念:"从系统外部能发现系统所具有的满足于用户的特点、功能及属性等".这些定义强调的是产品是什么样的,而并非产品是怎样设计、构造的.而下面的定义则从用户需要进一步转移到了系统特性:需求是指明必须实现什么的规格说明.它描述了系统的行为、特性或属性,是在开发过程中对系统的约束.从上面这些不同形式的定义不难发现:并没有一个清晰、毫无二义性的"需求"术语存在,真正的"需求"实际上在人们的脑海中,这个人们主要是指客户,但一般情况下,用户并不能描述自己的需要,只就需要系统分析人员根据用户的自己语言的描述整理出相关的需要再进一步和客户核对.系统分析员和客户需要确保所有项目风险承担者在描述需求的那些名词的理解上务必达成共识.任何文档形式的需求(例如如下将要描述的需求规格说明书)仅是一个模型,一种描述.2.需求分析的任务开发软件系统最为困难的部分就是准确说明开发什么.最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口.同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难.目前,国内产品的庞杂,一家企业可能有几个系统并立运行,它们之间接口是系统开发人员最头痛的问题.对于商业最终用户应用程序,企业信息系统和软件作为一个大系统的一部分的产品是显而易见的.但是对于我们开发人员来说,并没有编写出客户认可的需求文档,我们如何知道项目于何时结束?而如果我们不知道什么对客户来说是重要的,那我们又如何能使客户感到满意呢?然而,即便并非出于商业目的的软件需求也是必须的.例如库、组件和工具这些供开发小组内部使用的软件.当然你可能偶尔勿需文档说明就能与其他人意见较为一致,但更常见的是出现重复返工这种不可避免的后果,而重新编制代码的代价远远超过重写一份需求文档的代价,这些血的教训正在国内的软件开发者身上发生.近来,我遇到一个开发小组开发包括代码编辑器在内的一套内部使用的计算机辅助软件.不幸的是,当他们开发完这个工具后,发现这个工具不能打印出源代码文件,使用者当然希望有这个功能.结果这个小组只好手工抄写源代码文档以供代码检查.这说明那怕需求明确无误并构思准确,如果我们没有编写文档,软件达不到期望目标也只能是咎由自取了.相反的情况,我曾见一个要集成到"错误跟踪系统"中的简单界面写了一页需求说明.而操作系统系统管理员在为处理脚本时发现简单的一张需求清单竟是如此有用.他们依据需求对系统进行测试时,此系统不仅非常清晰地实现了所有必需功能,而且未发现任何错误.事实上,需求文档在开发过程中一直起指导作用.3.需求分析过程可把整个软件需求工程研究领域划分为需求开发和需求管理两部分更合适,如图4-1所示:图4-1 需求工程域的层次分解示意图需求开发可进一步分为:问题获取、分析、编写规格说明和验证四个阶段.这些子项包括软件类产品中需求收集、评价、编写文档等所有活动.需求开发活动包括以下几个方面:确定产品所期望的用户类别.获取每个用户类的需求.了解实际用户任务和目标以及这些任务所支持的业务需求.分析源于用户的信息以区别用户任务需求、功能需求、业务规则、质量属性、建议解决方法和附加信息.将系统级的需求分为几个子系统,并将需求中的一部份分配给软件组件.了解相关质量属性的重要性.商讨实施优先级的划分.将所收集的用户需求编写成文档和模型.评审需求规格说明,确保对用户需求达到共同的理解与认识,并在整个开发小组接受说明之前将问题都弄清楚.需求管理需要"建立并维护在软件工程中同客户达成的合同" .这种合同都包含在编写的需求文档与模型中.客户的接受仅是需求成功的一半,开发人员也必须能够接受他们,并真正把需求应用到产品中.通常的需求管理活动包括:定义需求基线(迅速制定需求文档的主体).评审提出的需求变更、评估每项变更的可能影响从而决定是否实施它.以一种可控制的方式将需求变更融入到项目中.使当前的项目计划与需求一致.估计变更需求所产生影响并在此基础上协商新的承诺,这种承诺具体体现在项目解决方案上.让每项需求都能与其对应的设计、源代码和测试用例联系起来以实现跟踪.在整个项目过程中跟踪需求状态及其变更情况.以上几点说...
获取顾客需求信息的方法有哪些?
设备工程监理服务顾客的需求信息包括准备实施的项目基本情况、需要提供设备工程监理服务或其他有关服务的可能性、顾客关注的主要问题及对监理单位的期望和要求等等。
获取的方法主要有两种: (1)调查 要获取顾客需求信息,必须从市场调查入手。
其一般程序是: 1)及时收集与本单位服务范围相适应的项目信息,特别是招标信息。
2)筛选信息。
对收集到的信息,结合本单位的资源情况作出初步或重点选择。
3)跟踪。
对选择的目标顾客通过上门沟通等多种途径获取进一步的需求和期望信息。
4)分析。
对已经收集到的顾客需求信息进行分析、评价、提炼并形成文件——“服务提要”或“监理大纲”。
(2)发掘 由于设备监理制度实施的时间不长,对提高建设项目管理水平,降低项目风险,提高质量等方面的作用,社会认识程度有限。
因此,设备工程监理单位应通过宣传、沟通等多种形式去发掘顾客对设备工程监理服务的潜在需求。
手机只有一个软件需要获取root权限,不动系统有什么方法吗?
网上查到的方法有WIN7拥有管理员权限的使用方法:1.右键单击“计算机”,进入“管理”找到“用户和组”2.找到administrators,右键调出属性,把“该账户已禁用”前面的勾去掉。
回桌面3.新建“记事本”,copy 如下内容:Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\runas]@="管理员取得所有权""NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\*\shell\runas\command]@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F""IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"[HKEY_CLASSES_ROOT\exefile\shell\runas2]@="管理员取得所有权""NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\exefile\shell\runas2\command]@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F""IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"[HKEY_CLASSES_ROOT\Directory\shell\runas]@="管理员取得所有权""NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\Directory\shell\runas\command]@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t""IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"然后另存为win7获取管理员权限.reg,后缀名必须是 .reg将另存成的注册表信息导入,这样就获得了WIN7管理员权限了。
在文件夹上单击右键就会出现 “管理员取得所有权”
与用户沟通获取需求的方法
软件需求的定义:(1)用户解决问题或达到目标所需的条件或能力。
(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。
(3)一种反映上面(1)或(2)所描述的条件或权能的文档说明。
实通俗的讲,“需求”就是用户的需要,它包括用户要解决的问题、达到的目标、以及实现这些目标所需要的条件,它是一个程序或系统开发工作的说明,表现形式一般为文档形式。
需求工程的定义:需求分析的过程,也叫做需求工程和需求阶段,它包括了需求开发和需求管理两个部分。
需求开发是指从情况收集、分析和评价到编写文档、评审等一系列产生需求的活动,分为四个阶段:情况获取、分析、制订规格说明和评审。
这四个阶段不一定是遵循线性顺序的,他们的活动是相互独立和反复的。
需求管理是软件项目开发过程中控制和维持需求约定的活动,它包括:变更控制、版本控制、需求跟踪、需求状态跟踪等工作。
需求开发与管理的一些方法:(1)绘制关联图:绘制系统关联图是用于定义系统与系统外部实体间的界限和接口的简单模型。
(2)可行性分析:在允许的成本、性能要求下,分析每项需求实施的可行性,提出需求实现相关风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍。
(4)系统原型:当用户自身对有的需求不十分清楚时,我们可以建立一个系统原型,用户通过评价原型更好地理解所要解决的问题。
。
(5)图形分析模型:绘制图形分析模型是编制软件需求规格说明重要手段。
它们能帮助分析人员理清数据、业务模式、工作流程以及他们之间的关系,找出遗漏、冗余和不一致的需求。
这样的模型包括数据流图、实体关系图、状态变换图、对话框图、对象类及交互作用图。
(6)数据字典:数据字典是对系统用到的所有数据项和结构的定义,以确保开发人员使用统一的数据定义。
在需求阶段,数据字典至少应定义客户数据项,确保客户与开发小组是使用一致的定义和术语。
需求管理的方法主要包括以下一些方面:1)确定需求变更控制过程。
制定一个选择、分析和决策需求变更的过程,所有的需求变更都需遵循此过程。
2)进行需求变更影响分析。
评估每项需求变更,以确定它对项目计划安排和其它需求的影响,明确与变更相关的任务并评估完成这些任务需要的工作量。
通过这些分析将有助于需求变更控制部门做出更好的决策。
3)建立需求基准版本和需求控制版本文档。
确定需求基准,这是项目各方对需求达成一致认识时刻的一个快照,之后的需求变更遵循变更控制过程即可。
每个版本的需求规格说明都必须是独立说明,以避免将底稿和基准或新旧版本相混淆。
4)维护需求变更的历史记录。
将需求变更情况写成文档,记录变更日期、原因、负责人、版本号等内容,及时通知到项目开发所涉及的人员。
为了尽量减少困惑、冲突、误传,应指定专人来负责更新需求。
5)跟踪每项需求的状态。
可以把每一项需求的状态属性(如已推荐的,已通过的,已实施的,或已验证的)保存在数据库中,这样可以在任何时候得到每个状态类的需求数量。
6)衡量需求稳定性。
可以定期把需求数量和需求变更(添加、修改、删除)数量进行比较。
过多的需求变更"是一个报警信号",意味着问题并未真正弄清楚。
4.需求分析评价标准(1)清晰:目前大多数的需求分析采用的仍然是自然语言,自然语言对需求分析最大的弊病就是它的二义性,所以开发人员需要对需求分析中采用的语言做某些限制。
例如尽量采用主语+动作的简单表达方式。
需求分析中的描述一定要简单,千万不要采用疑问句、修饰这些复杂的表达方式。
除了语言的二义性之外,注意不要使用行话,就是计算机术语。
需求分析最重要的是和用户沟通,可是用户多半不是计算机的专业人士,如果在需求分析中使用了行话,就会造成用户理解上的困难。
(2)完整:需求的完整性是非常重要的,如果有遗漏需求,则不得不返工,在软件开发过程中,最糟糕的事情莫过于在软件开发接近完成时发现遗漏了一项需求。
但实际情况是,需求的遗漏是常发生的事情,这不仅仅是开发人员的问题,更多发生在用户那里。
要做到需求的完整性是很艰难的一件事情,它涉及到需求分析过程的各个方面,贯穿整个过程,从最初的需求计划制定到最后的需求评审。
(3)一致:一致性是指用户需求必须和业务需求一致,功能需求必须和用户需求一致。
在需求过程中,开发人员需要把一致性关系进行细化,比如用户需求不能超出预前指定的范围。
严格的遵守不同层次间的一致性关系,就可以保证最后开发出来的软件系统不会偏离最初的实现目标。
(4)可测试:一个项目的测试从什么时候开始呢?有人说是从编码完成后开始,有人说是编码的时候同时进行单元测试,编码完成后进行系统测试,这些结论都不完全正确。
实际上,测试是从需求分析过程就开始了,因为需求是测试计划的输入和参照。
这就要求需求分析是可测试的,只有系统的所有需求都是可以被测试的,才能够保证软件始终围绕着用户的需要,保证软件系统是成功的。
软件需求分析在软件工程中的作用,有哪些软件需求分析的方法。
软件工程中包含需求、设计、编码和测试四个阶段,其中需求工程是软件工程第一个也是很重要的一个阶段,需求分析是要决定“做什么,不做什么”。
在一个软件项目中,软件需求包括三个不同的层次-业务需求、用户需求和功能需求-也包括非功能需求:业务需说明了提供给客户和产品开发商的新系统的最初利益,反映了组织机构或客户对系统、产品高层次的目标要求。
软件开发,能否获得成功,最重要的是需求分析的工作。
因此,软件需求分析能力和水平,对软件项目至关重要。
一般的分析方法和步骤如下:⑴首先调查组织机构情况 包括了解该组织的部门组成情况,各部门的职能等,为分析信息流程作准备。
⑵然后调查各部门的业务活动情况 包括了解各个部门输入和使用什么数据,如何加工处理这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么。
⑶协助用户明确对新系统的各种要求 包括信息要求、处理要求、完全性与完整性要求。
⑷确定新系统的边界 确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。
由计算机完成的功能就是新系统应该实现的功能。
常用的调查方法有: ⑴跟班作业 通过亲身参加业务工作来了解业务活动的情况。
这种方法可以比较准确地理解用户的需求,但比较耗费时间。
⑵开调查会 通过与用户座谈来了解业务活动情况及用户需求。
座谈时,参加者之间可以相互启发。
⑶请专人介绍。
⑷询问 对某些调查中的问题,可以找专人询问。
⑸设计调查表请用户填写 如果调查表设计得合理,这种方法是很有效,也很易于为用户接受的。
⑹查阅记录 即查阅与原系统有关的数据记录,包括原始单据、账簿、报表等。
通过调查了解了用户需求后,还需要进一步分析和表达用户的需求。
分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。
如何系统的进行用户需求分析
1.概念需求的定义包括从用户角度(系统的外部行为),以及从开发者角度(一些内部特性)来阐述需求.关键的问题是一定要编写需求文档.我曾经目睹过一个项目中途更换了所有的开发者,客户被迫与新的需求分析者坐到一起.系统的分析人员说:"我们想与你谈谈你的需求."客户的第一反应便是:"我已经将我的要求都告诉你们前任了,现在我要的就是给我编一个系统".百事通而实际上,UGGs,需求并未编写成文档,因此新的分析人员不得不从头做起.所以如果只有一堆邮件、会谈记录或一些零碎的未整理的对话,你就确信你已明白用户的需求,那完全是自欺欺人.需求的另外一种定义认为需求是"用户所需要的并能触发一个程序或系统开发工作的说明".有些需求分析专家拓展了这个概念:"从系统外部能发现系统所具有的满足于用户的特点、功能及属性等".这些定义强调的是产品是什么样的,而并非产品是怎样设计、构造的.而下面的定义则从用户需要进一步转移到了系统特性:需求是指明必须实现什么的规格说明.它描述了系统的行为、特性或属性,是在开发过程中对系统的约束.从上面这些不同形式的定义不难发现:并没有一个清晰、毫无二义性的"需求"术语存在,真正的"需求"实际上在人们的脑海中,这个人们主要是指客户,但一般情况下,用户并不能描述自己的需要,只就需要系统分析人员根据用户的自己语言的描述整理出相关的需要再进一步和客户核对.系统分析员和客户需要确保所有项目风险承担者在描述需求的那些名词的理解上务必达成共识.任何文档形式的需求(例如如下将要描述的需求规格说明书)仅是一个模型,一种描述.2.需求分析的任务开发软件系统最为困难的部分就是准确说明开发什么.最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口.同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难.目前,国内产品的庞杂,一家企业可能有几个系统并立运行,它们之间接口是系统开发人员最头痛的问题.对于商业最终用户应用程序,企业信息系统和软件作为一个大系统的一部分的产品是显而易见的.但是对于我们开发人员来说,并没有编写出客户认可的需求文档,我们如何知道项目于何时结束?而如果我们不知道什么对客户来说是重要的,那我们又如何能使客户感到满意呢?然而,即便并非出于商业目的的软件需求也是必须的.例如库、组件和工具这些供开发小组内部使用的软件.当然你可能偶尔勿需文档说明就能与其他人意见较为一致,但更常见的是出现重复返工这种不可避免的后果,而重新编制代码的代价远远超过重写一份需求文档的代价,这些血的教训正在国内的软件开发者身上发生.近来,我遇到一个开发小组开发包括代码编辑器在内的一套内部使用的计算机辅助软件.不幸的是,当他们开发完这个工具后,发现这个工具不能打印出源代码文件,使用者当然希望有这个功能.结果这个小组只好手工抄写源代码文档以供代码检查.这说明那怕需求明确无误并构思准确,如果我们没有编写文档,软件达不到期望目标也只能是咎由自取了.相反的情况,我曾见一个要集成到"错误跟踪系统"中的简单界面写了一页需求说明.而操作系统系统管理员在为处理脚本时发现简单的一张需求清单竟是如此有用.他们依据需求对系统进行测试时,此系统不仅非常清晰地实现了所有必需功能,而且未发现任何错误.事实上,需求文档在开发过程中一直起指导作用.3.需求分析过程可把整个软件需求工程研究领域划分为需求开发和需求管理两部分更合适,如图4-1所示:图4-1 需求工程域的层次分解示意图需求开发可进一步分为:问题获取、分析、编写规格说明和验证四个阶段.这些子项包括软件类产品中需求收集、评价、编写文档等所有活动.需求开发活动包括以下几个方面:确定产品所期望的用户类别.获取每个用户类的需求.了解实际用户任务和目标以及这些任务所支持的业务需求.分析源于用户的信息以区别用户任务需求、功能需求、业务规则、质量属性、建议解决方法和附加信息.将系统级的需求分为几个子系统,并将需求中的一部份分配给软件组件.了解相关质量属性的重要性.商讨实施优先级的划分.将所收集的用户需求编写成文档和模型.评审需求规格说明,确保对用户需求达到共同的理解与认识,并在整个开发小组接受说明之前将问题都弄清楚.需求管理需要"建立并维护在软件工程中同客户达成的合同" .这种合同都包含在编写的需求文档与模型中.客户的接受仅是需求成功的一半,开发人员也必须能够接受他们,并真正把需求应用到产品中.通常的需求管理活动包括:定义需求基线(迅速制定需求文档的主体).评审提出的需求变更、评估每项变更的可能影响从而决定是否实施它.以一种可控制的方式将需求变更融入到项目中.使当前的项目计划与需求一致.估计变更需求所产生影响并在此基础上协商新的承诺,这种承诺具体体现在项目解决方案上.让每项需求都能与其对应的设计、源代码和测试用例联系起来以实现跟踪.在整个项目过程中跟踪需求状态及其变更情况.以上几点说...
洞洞我拭使