导航:首页 > 研究方法 > 需求工程图形化分析方法

需求工程图形化分析方法

发布时间:2022-05-06 22:51:25

㈠ 软件需求分析有哪些方法

软件需求分析免费下载

链接:https://pan..com/s/1qNBwqvbRS5ziBSIeanLQAQ

提取码:qoyw

需求分析也称为软件需求分析、系统需求分析或需求分析工程等,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。

㈡ 怎样将"用户需求分析"图表化

看你们的要求是什么?如果需要图形,一般用UML进行需求分析设计。也可以选择专业的需求分析工具,比如trufun bacon需求管理工具,根据你的需求条目,自动生成图表视图!

㈢ 需求分析怎么

10月22日 10:37 尽量把客户所持的假设解释清楚,特别是那些发生冲突的部分。从字里行间去理解以明确客户没有表达清楚但又想加入的特性或特征。Gause 和Weinberg(1989)提出使用“上下文无关问题”—这是一个高层次的问题,它可以获取业务问题和可能的解决方案的全部信息。客户对这些问题的回答诸如“产品要求怎样的精确度”或“你能帮我解释一下你为什么不同意某人的回答吗?”这些回答可以更直接地认识问题,而这是封闭(close-end)问题所不能做到的。

需求获取利用了所有可用的信息来源,这些信息描述了问题域或在软件解决方案中合理的特性。一个研究表明:比起不成功的项目,一个成功的项目在开发者和客户之间采用了更多的交流方式(Kiel and Carmel 1995)。与单个客户或潜在的用户组一起座谈,对于业务软件包或信息管理系统(MIS)的应用来说是一种传统的需求来源。直接聘请用户进行获取需求的过程是为项目获得支持和买入(buy-in)的一种方式。

尽量理解用户用于表述他们需求的思维过程。充分研究用户执行任务时作出决策的过程,并提取出潜在的逻辑关系。流程图和决策树是描述这些逻辑决策途径的好方法。

在需求获取的过程中,你可能会发现对项目范围的定义存在误差,不是太大就是太小。如果范围太大,你将要收集比真正需要更多的需求,以传递足够的业务和客户的值,此时获取过程将会拖延。如果项目范围太小,那么客户将会提出很重要的但又在当前产品范围之外的需求。当前的范围太小,以致不能提供一个令人满意的产品。需求的获取将导致修改项目的范围和任务,但作出这样具有深远影响的改变,一定要小心谨慎。

正如经常所说的,需求主要是关于系统做什么,而解决方案如何实现是属于设计的范围。这样说虽然很简洁,但似乎过于简单化。需求的获取应该把重点放在“做什么”上,但在分析和设计之间还是存在一定的距离。你可以使用假设“怎么做”来分类并改善你对用户需求的理解。在需求的获取过程中,分析模型、屏幕图形和原型可以使概念表达得更加清楚,然后提供一个寻找错误和遗漏的办法。把你在需求开发阶段所形成的模型和屏幕效果看成是方便高效交流的概念性建议,而不应该看成是对设计者选择的一种限制。

需求获取讨论会中如果参与者过多,就会减慢进度。人数大致控制在5到7人是最好的。这些人包括客户、系统设计者、开发者和可视化设计者等主要工程角色。相反地,从极少的代表那里收集信息或者只听到呼声最高、最有舆论影响的用户的声音,也会造成问题。这将导致忽视特定用户类的重要的需求,或者其需求不能代表绝大多数用户的需要。最好的权衡在于选择一些授权为他们的用户类发言的产品代表者,他们也被同组用户类的其它代表所支持。

没有一个简单、清楚的信号暗示你什么时候已完成需求获取。当客户和开发者与他们的同事聊天、阅读工业和商业上的文献及在早上沐浴时思考时,他们都将对潜在产品产生新的构思。你不可能全面收集需求,但是下列的提示将会暗示你在需求获取的过程中的返回点。

1. 如果用户不能想出更多的使用实例,也许你就完成了收集需求的工作。用户总是按其重要性的顺序来确定使用实例的。

2. 如果用户提出新的使用实例,但你可以从其它使用实例的相关功能需求中获得这些新的使用实例,这时也许你就完成了收集需求的工作。这些新的使用实例可能是你已获取的其它使用实例的可选过程。

3. 如果用户开始重复原先讨论过的问题,此时,也许你就完成了收集需求的工作。

4. 如果所提出的新需求比你已确定的需求的优先级都低时,也许你就完成了收集需求的工作。

5. 如果用户提出对将来产品的要求,而不是现在我们讨论的特定产品,也许你就完成了收集需求的工作。

以上知识大致上讨论需求分析应该如何做,实际上对于需求分析的方法有很多很多,已经形成了一定的理论,当然这种理论比较偏向与方法学,而方法学的应用主要还是要靠个人。所以,大家在实际应用的时候,不妨结合自己的实际,有选择性的采用一些方法,那你就是成功的。
用例在需求分析中的使用

多年来,分析者总是利用情节或经历来描述用户和软件系统的交互方式,从而获取需求(McGraw and Harbison 1997)。Ivar Jacobson(1992)把这种看法系统地阐述成用例(用例)的方法进行需求获取和建模。虽然用例来源于面向对象的开发环境,但是它也能应用在具有许多开发方法的项目中,因为用户并不关心你是怎样开发你的软件。而最重要的,用例的观点和思维过程带给需求开发的改变比起是否画正式的用例图显得更为重要。注意用户要利用系统做什么远远强于询问用户希望系统为他们做什么这一传统方法。

用例的重要功能是用画用例图的功能来鉴别和划分系统功能。它把系统分成角色(actor)和用例(用例)。角色(actor)表示系统用户能扮演的角色(role)。这些用户可能是人,可能是其他的计算机一些硬件或者甚至是其它软件系统,唯一的标准是它们必须要在被划分进用例的系统部分以外。它们必须能刺激系统部分并接收返回。用例描述了当角色给系统特定的刺激时系统的活动。这些活动被文本描述。它描述了触发用例的刺激的本质,输入和输出到其他活动者,和转换输入到输出的活动。用例文本通常也描述每一个活动在特殊的活动线时可能的错误和系统应采取的补救措施。

这样说可能会非常复杂,其实一个用例描述了系统和一个角色(actor)的交互顺序。用例被定义成系统执行的一系列动作,动作执行的结果能被指定角色察觉到。用例可以:

· 用例捕获某些用户可见的需求,实现一个具体的用户目标。

· 用例由角色激活,并提供确切的值给角色。

· 用例可大可小,但它必须是对一个具体的用户目标实现的完整描述。在UML中,用例表示为一个椭圆。

角色是指用户在系统中所扮演的角色。其图形化的表示是一个小人。在某些组织中很可能有许多角色实例(例如有很多个销售员),但就该系统而言,他们均起着同一种作用,扮演着相同的角色,所以用一个角色表示。一个用户也可以扮演多种角色。例如,一个高级营销人员既可以是贸易经理,也可以是普通的营销人员;一个营销人员也可以是售货员。在处理角色时,应考虑其作用,而不是人或工作名称,这一点是很重要的。

我们使用不带箭头的线段将角色与用例连接到一起,表示两者之间交换信息,称之为通信联系。角色触发用例,并与用例进行信息交换。单个角色可与多个用例联系;反过来,一个用例可与多个角色联系。对同一个用例而言,不同角色有着不同的作用:他们可以从用例中取值,也可以参与到用例中。需要注意的是角色在用例图中是用类似人的图形来表示,尽管执行的,但角色未必是人。例如,角色也可以是一个外界系统,该外界系统可能需要从当前系统中获取信息,与当前系统有进行交互。

一个用例可能包括完成某项任务的许多逻辑相关任务和交互顺序。因此,一个用例是相关的用法说明的集合,并且一个说明(scenario)是用例的实例。这种关系就像是类和对象的关系。在用例中,一个说明被视为事件的普通过程(normal course),也叫作主过程,基本过程,普通流,或“满意之路” (happy path)。在描述普通过程时列出执行者和系统之间相互交互或对话的顺序。当这种交互结束时,执行者也达到了预期的目的。

在用例中的其它说明可以描述为可选过程(alternative coruse)。可选过程也可促进成功地完成任务,但它们代表了任务的细节或用于完成任务的途径的变化部分。在交互序列中,普通过程可以在一些决策点上分解成可选过程,然后再重新汇成一个普通过程。

角色类和角色实例

软件产品最终是给一些用户来使用的,而用户之间的差异是非常大的。造成差异的原因包括了对计算机的认知程度的不同,使用习惯的不同,在软件目标组织中所处的地位不同,地理位置不同,业务熟练程度不同。

不同的用户都有自己一系列的功能需求和非功能需求。对电脑熟练程度不同的人可能就会有不同的要求,熟练程度低的用户可能希望有一个友好的界面,熟练程度高的用户可能更希望有快捷键或宏的操作以提高工作效率。考虑到用户的差异性,将用户分类并研究用户类的行为特征是非常有必要的。所以在做具体的需求之前,先将用户分局行为和特点进行分类,对于研究、收集用户的需求是非常有帮助的。

可以利用一个简单的表格列出一些原始的分类,然后不断的完善这个表格。确认你的分类之间没有交集。并充分描述用户分类的行为,目的,要求等。在企业分析中,比较常见的分类可能包括,供应商,客户,部门等。

就像C++中的类和对象一样,我们把分析出的用户分类称为“角色类”,把实际的用户称为“角色实例”。在得到用户分类之后,最重要的就是要选出用户代表,用户代表不仅仅是在需求阶段中参与项目,还必须对项目的全过程负责。用户代表能够代表用户分类的需求。抓住用户代表的需求就大致把握住了用户类的需求。当然,需求分析还是需要在用户中做大规模的调查的,只是要把重点放在用户代表上。

确保和用户直接进行沟通!大家有没有玩过传话的游戏,可能看过。一群人排成一列,一句话从排头挨个向后传,到最后,那句话已经是面目全非了。所以,一定要保证项目组能够直接和用户接触。

对于和用户直接沟通这一点,一般的针对特定企业的应用系统当然是不成问题,可是如果是开发行业软件,和用户直接沟通就成为一件几乎是不可能的事情。在这种情况下,一般有几种解决的办法:

做大规模的市场调查,针对你的目标市场做市场调查,并根据统计学的理论建立你的数学模型。这部分的工作效果最好,其性质有些象一些游戏公司会发布一些Demo版的游戏。可是对于一般的企业来说,这项工作费时费力,高昂的成本往往使大家知难而退。我的意见是,方法是非常好的,但是可以采用折衷的办法,例如选取有代表性的企业,为特定企业制作一个较小的版本并收集反馈意见等。这涉及到很多市场营销的内容,并不是我的专业所长,这里就不多弄斧了。
聘请行业专家,一个行业专家往往可以在项目需求方面发挥极为重要的作用。一个行业专家往往都有大量的行业经验和行业的人际关系网络。在产品的设计方面,这个行业专家提供很多宝贵的意见。在目前很多的软件的开发过程中都采用了这种方式。行业专家有两种:一种是在这个行业中有很深的资历,但是对软件技术并不熟悉;第二种是开发过同类软件的软件专家,这种人在开发同类软件过程中已经积累了大量的项目经验,并且具有软件开发的知识。这种方式是获取需求的最好的方式。 分析对比同类软件,微软在开发Office、Visual Studio的时候,也是参照了Lotus和Borland的成熟产品。这种方式的特点在于成本很低,比较适合和其他的方式配合使用。但是,要注意自己有没有触犯专利法。

需求的冲突

有的时候,虽然已经将用户分类并选出了用户代表。但是需求的来源众多,往往会发生需求之间自相矛盾的事情。需求从四面八方收集来后,人们难以解决冲突,澄清模糊之处以及协调不一致之处。某些人还要对不可避免要发生的范围问题单独作出决定。在项目的早期阶段,你必须决定谁是需求问题的决策者。如果不清楚谁有权并且有责任来作出决策,或者授权的个人不愿意或不能作出决策,那么决策者的角色将自然而然地落在开发者身上。这是一个非常糟糕的选择,因为开发者通常没有足够多的信息和观点来作出业务上的决策。

在软件项目中,谁将对需求作出决策的问题并没有统一的正确答案。分析员有时听从呼声高的或来自最高层人物的最大的需求。即便使用用户代表这一手段,必须解决来自不同用户类的相冲突的需求。通常,应尽可能由处于公司底层的人作出决策,因为他们与问题密切相关,并能得到关于这些问题的广泛信息。

如果不同的用户类有不一致的需求,那么必须决策出满足哪一类用户的需求更为重要。了解可能使用产品的客户种类的信息和他们的用法与产品的业务目标的关系如何,将有助于你决定哪一个用户类所占份额最大。

当开发者想象中的产品与客户需求冲突时,通常应该由客户作出决策。然而,不要陷到“客户总是对的”的陷阱中去,对他们百依百顺。现实中,客户并不总是对的。客户总是持有自己的观点,开发者必须理解并尊重这一观点。

用例

在具体的需求过程中,有大的用例(业务用例),也有小的用例。主要是由于用例的范围决定的。用例像是一个黑盒,它没有包括任何和实现有关或是内部的一些信息。它很容易就被用户(也包括开发者)所理解(简单的谓词短语)。如果用例不足以表达足够的信息来支持系统的开发,就有必要把用例黑盒打开,审视其内部的结构,找出黑盒内部的Actor和用例。就这样通过不断的打开黑盒,分析黑盒,再打开新的黑盒。直到整个系统可以被清晰的了解为止。

为什么要采用这种分析方法呢?计算机系统除了在与外界系统、人员有一系列的交互,在系统内部也往往存在着复杂的交互。因此,在系统建模时,除了描述系统与外界的交互,同时还要描述系统内部的交互。传统的MIS系统中,系统与外界的交互较多。典型的,如ATM取款机:存在着大量的用户与ATM,ATM与其它系统的交互。而电信领域的系统,与外界的交互较少。例如,系统的输入可能仅仅是从交换机上采集信息,然后由系统进行处理。系统的复杂逻辑包含在系统内部处理的流程上,而非与外部系统的交互。建模主要任务是表达系统内部的交互。

用例图适于表达交互,之所以上面使用了电信系统,是因为用例最早来自于Ericsson的交换机系统。当时,还是Ericsson雇员的Jacobson初步建立了用例图的概念,并于1994年提出了OOSE方法,其最大特点是面向用例(Use-Case),并在用例的描述中引入了外部角色的概念。用例的概念是精确描述需求的重要武器,比较适合支持商业工程和需求分析。随着用例的发展,用例被大量的用于对功能进行描述。每个用例代表了系统与外部ACTOR的交互。可以采取顺序图来表达用例的具体操作程序。ACTOR用于确定系统的边界。

ACTOR、用例可以从不同的层次来描述信息。采用该原则的原因有:

1. 需求并不是在项目一开始就很明确,往往是随着项目的推进,逐渐细化。

2. 人的认知往往具有层次的特性。从粗到细、从一般到特殊。采用不同的层次来描述,适于认知的过程。

使用用例开发系统的一般过程

在开发过程的初始阶段,可以根据具体的项目特点,制订开发各个视图之间的关联原则,指导规范。在开发的过程中,视图的组织原则应不断进行维护、更新。

识别ACTOR来识别系统与外界交互的实体。ACTOR具有特定领域的特征,例如:交换机(采集系统)、97信息系统等。在系统层次的ACTOR确定了系统的边界。

识别用例。同ACTOR一样,用例具有不同层次。对较为概括的USECASE,需要细化。注:系统开发需要一定的规则来确定,如何来分解用例;可能基于原有系统的经验,或是参考现有资料。

当用例细化到可以被理解的层次。需要基于用例进行下一步的开发。如前面提到的,用例主要用来描述交互。因此,存在交互的实体和交互的细节。交互的实体采用类图来描述;而交互的细节,采用顺序图来描述。

当系统复杂到一定层次时,类图和顺序图可能不能足以描述其复杂程度。在该情况下,需要使用状态图来辅助阐述。状态图和顺序图之间使用事件联结在一起。它们之间的一致性问题,目前UML和ROSE没有提供解决方案。相对折衷的方法是使用事件的命名规范强制一致性。

可以说,之前说的所有的东西都是为了能够导出用例在需求中的作用。用例是从用户的角度看待系统,而不是基于程序员的角度。这样的话,用例驱动的系统能够真正做到以用户为中心,用户的任何需求都能够在系统开发链中完整的体现。用户和程序员间通过用例沟通,避免了牛头马嘴的尴尬局面。 从前,系统开发者总是通过情节来获取需求,是问用户希望系统为他做什么。在Jacobson发明了用例的概念之后,需求获取就变成问用户要利用系统做什么。这是立场不同导致的结果。用户通常并不关心系统是如何实现的(也有少数可爱的技术狂是例外)。对他们来说,更重要的是要达到他的目的。相反的,大部分的程序员的工作习惯就是考虑计算机应该如何实现用户的要求。所幸的是,用例方法能够调和双方的矛盾,因为虽然用例是来源于用户,服务于用户,但是它同样可以用于开发的流程。当系统的开发过程都是基于用例的,用用例获取需求,用用例设计,用用例编码,用用例测试的时候。这个开发过程就是用例驱动的。 用例和用例文档

《软件需求》一书中提到了几种方法来确定用例:

· 首先明确执行者和他们的角色,然后确定业务过程,在这一过程中每一个参与者都在为确定用例而努力。

· 确定系统所能反映的外部事件,然后把这些事件与参与的执行者和特定的用例联系起来。

· 以特定的说明形式表达业务过程或日常行为,从这些说明中获得用例,并确定参与到用例中的执行者,有可能从现在的功能需求说明中获得用例。如果有些需求与用例不一致,就应考虑是否真的需要它们。

用例代表了用户的需求,在你的系统中,应该直接从不同用户类的代表或至少应从代理那里收集需求。用例为表达用户需求提供了一种方法,而这一方法必须与系统的业务需求相一致。分析者和用户必须检查每一个用例,在把它们纳入需求之前决定其是否在项目所定义的范围内。基于“用例”方法进行需求获取的目的在于:描述用户需要使用系统完成的所有任务。在理论上,用例的结果集将包括所有合理的系统功能。在现实中,你不可能获得完全包容,但是比起我所知道的其它获取方法,基于用例的方法可以为你带来更好的效果。

当使用用例进行需求获取时,应避免受不成熟的细节的影响。在对切合的客户任务取得共识之前,用户能很容易地在一个报表或对话框中列出每一项的精确设计。如果这些细节都作为需求记录下来,他们会给随后的设计过程带来不必要的限制。你可能要周期性地检查需求获取,以确保用户参与者将注意力集中在与今天所讨论的话题适合的抽象层上。向他们保证在开发过程中,将会详尽阐述他们的需求。在一个逐次详细描述过程中,重复地详述需求,以确定用户目标和任务,并作为用例。然后,把任务描述成功能需求,这些功能需求可以使用户完成其任务,也可以把它们描述成非功能需求,这些非功能需求描述了系统的限制和用户对质量的期望。虽然最初的屏幕构思有助于描述你对需求的理解,但是你必须细化用户界面设计。

建立用例文档。在每一次的需求获取之后,都会生成很多未整理的需求,你必须将它们组织成用例文档。使用诸如模板的技术能够提高你的速度和需求的复用性。一个用例文档可以使用表格来组织,主要的要素包括了用例标识号、用例名称、父用例标志号、创建者、创建时间、审核者、修订记录、角色、说明、先决条件、请求结果、优先级、普通过程、可选过程、例外、非功能需求、假设、注释和问题。

虽然列举出了这么多的属性,但是实际中使用的属性这要看你的团体而定,看项目的大小而定。把大量的时间花在用例的描述上是没有意义的。用户需要的是一个软件系统,并不是一大堆的用例说明。

㈣ 需求分析有哪两种主要分析方法

从系统分析出发,可将需求分析方法大致分为功能分解方法、结构化分析方法、信息建模法和面向对象的分析方法。
(1)功能分解方法。
将新系统作为多功能模块的组合。各功能义可分解为若干子功能及接口,子功能再继续分解。便可得到系统的雏形,即功能分解——功能、子功能、功能接口。
(2)结构化分析方法。
结构化分析方法是一种从问题空间到某种表示的映射方法,是结构化方法中重要且被普遍接受的表示系统,由数据流图和数据词典构成并表示。此分析法又称为数据流法。其基本策略是跟踪数据流,即研究问题域中数据流动方式及在各个环节上所进行的处理,从而发现数据流和加工。结构化分析可定义为数据流、数据处理或加工、数据存储、端点、处理说明和数据字典。
(3)信息建模方法。
它从数据角度对现实世界建立模型。大型软件较复杂;很难直接对其分析和设计,常借助模型。模型是开发中常用工具,系统包括数据处理、事务管理和决策支持。实质上,也可看成由一系列有序模型构成,其有序模型通常为功能模型、信息模型、数据模型、控制模型和决策模型。有序是指这些模型是分别在系统的不同开发阶段及开发层次一同建立的。建立系统常用的基本工具是E—R图。经过改进后称为信息建模法,后来又发展为语义数据建模方法,并引入了许多面向对象的特点。
信息建模可定义为实体或对象、属性、关系、父类型/子类型和关联对象。此方法的核心概念是实体和关系,基本工具是E-R图,其基本要素由实体、属性和联系构成。该方法的基本策略是从现实中找出实体,然后再用属性进行描述。

㈤ 软件工程中常用的需求分析的方法有哪些

一、过滤需求的方法
做后端系统,要学会的第一个技能就是砍需求。也就是过滤需求。

这不是一个贬义词,反而是体现后端产品价值判断的基础。

过滤需求的方法,就是通过一定的手段判断需求是否是伪需求,应该被过滤掉。

1. 用户场景模拟法
后端产品的出发点就是帮助业务用户,因此在调研需求的时候要模拟业务的场景,分析业务用户提到的需求是否能解决他的问题。

如果不能帮助用户,那么这个需求就可能是伪需求。

以下面的案例说明:

背景:“货到付款”类型的订单会因为缺货而无法发出,如果超过一定的时间,客服就会跟顾客沟通,帮顾客取消订单。

需求:由于这种订单的数量还是蛮多的,逐个取消太费时间,因此业务用户要求在“缺货订单”列表页增加“批量取消订单”按钮。

分析:调研到业务操作场景,是先找到该类缺货订单,然后和顾客沟通,顾客同意删除,才进行删除。也就是逐个沟通确认,再逐个取消订单的,所以“批量取消订单”无法被有效使用。

因此,该需求是个伪需求,应该被过滤掉。

2. 功能归属分析
专门的系统做专职功能,有助于合理的产品体系建设。

因此需求调研的时候,可以通过系统的定位,判断需求是否应该在该系统完成。

如果不属于该系统范畴,那么直接说服需求方更换方案。以

下面的案例说明:

背景:CRM系统(顾客关系管理系统)有一个顾客标签生成功能,就是根据顾客的消费行为数据,自动对应关联上标签,如优质顾客、高潜力顾客、欺诈顾客等。

需求:业务用户提出需求,除了做上述的基础标签之外,还要做出英语版本的标签(就是把标签文案翻译成英文),这样欧美员工可以在英语版本的系统下使用。

分析:调研到翻译之后的标签不是在CRM系统使用的,而是给到SMS(客服系统)使用的。

所以应该由SMS根据CMS提供的基础标签数据,自己做二次的衍生。

之所以这样,首先是为了避免未来更多语言版本的扩展需求或更多系统提出类似的需求;

其次,CRM系统已经完成了“接力赛”的第一棒,创造了基础数据,那么其他系统要特殊化使用,完全可以自行进行特殊化处理,无需耦合回CRM系统。

结论:案例的需求本身是真需求,并且实现上也没难度,但是该功能的定位超出了本系统范畴,专门系统做专职功能,化衍生需求应该在下游执行。

否则,耦合性过高只会增加系统的复杂程度,难以维护和扩展。

二、拆分和聚合的方法
1. 拆分需求法
业务用户提出一个需求,很可能只是短短的一段话。

但是不要高兴太早,可能这一句话暗含了很多线索,因此要善于拆分:

先找他要解决的核心问题,再围绕核心点,理清前、后、左、右、上、下的旁系需求点。

每个需求点再当做一个子需求进行调研,最后再聚合在一起。

以下面的案例说明:

背景:订单业务的类型很多,订单退货之后需要创建售后单据,但是因为数量大,所以花费很多人力,且手动创建有出错的风险。

需求:业务提出的需求是“增加退货订单自动创建售后单的功能”,这是个一句话需求。

该一句话需求,其实包含了多种具体的订单类型和场景,那么我们就要拆分调研,拆分的维度比如:

自营订单、第三方订单、货到付款订单、先款后货订单、部分退货订单、完全退货订单、服装事业部订单、电子事业部订单等,其中每一个维度就相当于一个小需求。

这里不一一展开。

2. 聚合需求法
拆分法是对单个需求分解成若干小需求进行调研,聚合法相反,是找到许多个相互关联的小需求的共性,然后统筹成一个大需求去完成。例如:

由于业务用户分散在不同的部门,各自为政,于是张三、李四可能都对一个业务流程有相同的需求,或者对同一个功能有相同的优化期望,结果俩人分别提了需求过来。那么产品经理就要找到二者背后的相关性和交叉区。

然后统筹规划,聚合在一起当作一个需求来调研,最终输出一个整体的需求调研结果。

三、利用辅助功能调研需求
调研产品现有功能,可以用来确认原有功能的逻辑,或者确定新需求方案是否可行。

比如业务用户需要更新一个功能,为了避免更新出错或遗漏,产品经理需要知道修改前和修改后是否会能正常运行。

最基础的办法就是自己设计一个测试用例,记录操作方式、状态变化、数据流向等。看看下面的例子:

背景:从销售网站获取到OMS系统(订单管理系统)的订单信息中带着顾客的邮箱。顾客下完单,可能会在销售网站修改邮箱,而此时已经获取到OMS的历史订单中的邮箱是不变的。

需求:顾客若在销售网站修改邮箱,要求已获取到OMS的该顾客的订单中的邮箱也要同步修改。

分析:需求是很明白的,也有它的意义,但有风险。

因为我们知道订单信息贯穿于整个订单流转过程中,牵扯到订单编辑、审核、取消、配货、发货等,而这些环节跳转的触发条件可能就是某个信息更新(这里面就可能包括有邮箱更新)。

因此,更新邮箱是否会影响流程中的某些环节,一时间很难准确知道。

于是,我们可以采用预测试的方式,设计测试用例,在测试机运行一些订单,观察各个环节邮箱变更的影响,然后收集起来分析对策。

测试法就像是探雷一样,主要用来解决未知风险点。这个方式的重点是记录和分析操作前状态、操作位点、操作后状态、操作后触发的连锁反应、数据流向等。

四、“拔萝卜带出泥”的方式调研需求
调研需求时,产品经理要拔萝卜带出泥,挖掘用户没看到的需求点和价值。

举例说明:

背景:公司入驻到销售平台后,销售平台会对入驻的店铺的违规行为进行罚款。

需求:业务用户提出需求,将销售平台的罚款数据抓取到订单系统,关联订单数据,以便进行人工分析。

分析:

第一步,先拆分需求,确定什么是罚款数据,总共有哪些罚款种类,需要对接哪些罚款种类,罚款数据与订单系统关联方式是什么,是否都能关联到,关联不到怎么办,销售平台是否已经提供了公用的罚款接口,Token(请求权限)如何获取,抓取频率怎么样,数据增长幅度多大,获取之后做哪些展示和搜索,用户权限怎么设置,需要和订单系统做哪些交互,该需求的价值是什么……

第二步,挖掘需求:是否需要作分析功能,分析功能的规则是什么;是否需要做监控和预警,是否需要指派负责人;其他业务人员是否也有类似需求,其他平台是否也有类似需求……

通过“拔萝卜带出泥”的方式,连带出更多需求点。将上述调研结果重新组装起来,得到一个系统化的完整需求。

罗列出需求要点和对应的验收目标,这样使得需求具象化,同时又不会遗漏细节,内部充实,外部闭环,并且进行了价值挖掘,做成控制阈值、预警、责任人分派、趋势分析、损失分析等高价值的功能,超出业务的预期。

㈥ 如何进行软件需求分析

软件需求分析免费下载

链接:https://pan..com/s/1qNBwqvbRS5ziBSIeanLQAQ

提取码:qoyw

需求分析也称为软件需求分析、系统需求分析或需求分析工程等,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。

㈦ 需求工程的推荐方法

需求工程包括需求开发和管理,而需求开发又包括这几个过程:需求获取,需求分析,需求规格说明和需求验证。需求获取和分析包括发现,分类和组织需求、需求的优先级排序、协商需求以及形成需求文档。需求验证的方法包括评价需求、原型设计和生成测试用例。在需求开发之前,还需要有一个知识培训的过程,需求工程也是一个项目工程,因此也包括了项目的管理。对于这些过程,有以下方法可以采用。 需求分析员培训:需求分析员应该具有良好的交流沟通能力,同时理解产品,并掌握了需求工程的技能。
用户培训:用户也应该接受需求工程知识的培训,让他们理解需求的重要性,知道如何准确的描述需求,需求的风险性等。
开发人员培训:开发人员应该对用户的应用领域有一个基础的了解,明白客户的业务活动,术语,产品目标等 需求包括业务需求,用户需求和功能需求以及非功能需求,在需求开发之前,我们需要先定义好需求开发的过程,形成文档,内容包括:需求开发的步骤,每一个步骤如何实现,如何处理意外情况,如何规划开发资源等
需求获取包括以下方法和技能:
项目范围确定:开需求开发前期,我们应该获取用户的业务需求,定义好项目的范围,使得所有的涉众对项目有一个共同的理解。
用户确定:确定用户群和分类,对用户组进行详细描述,包括使用产品频率,所使用的功能,优先级别,熟练程度等等。对每一个用户组确定用户的代言人。对于大型项目,我们需要先确定中心客户组,中心客户组的需求具有高级别的优先级,需要先实现的核心功能。
用例确定:与用户代表沟通,了解他们需要完成的任务,得到用例模型。同时根据用例导出功能需求。用例描述应该采用标准模板。
系统事件和响应:业务事件可能触发用例,系统事件包括系统内部的事件以及从外部接受到信息,数据等等,或者一个突发的任务。
获取方法:召开需求讨论会议,观察用户的工作过程,采用问答式对话,采用诱发式需求诱导等等。检查完善:问题报告和补充需求建议 需求分析是对用户的需求获取之后的一个粗加工过程,需要对需求进行推敲和润色以使所有涉众都能准确理解需求。分析过程首先需要对需求进行检查,以保证需求的正确性和完备性,然后将高层需求分解成具体的细节,创建开发原型,完成需求从需求获取人员到开发人员的过渡。
绘制关联图:关联图确定系统和外部的交互。划分了系统的范围和界限,构建了系统对外的接口。
原型开发:对于敏捷方法,推荐完成一个界面的原型,一个初步的系统实现,通过原型,让所有涉众对开发的项目有了一个初步的映像,同时可以提供对需求的检验。
需求优先级别:采用分析的方法确定产品的功能,用例和单项需求的优先级别,以优先级为基础,确定各项功能和需求都包括在哪个版本中,在项目开发过程中,需求的优先级别根据实际情况进行调整。
需求建模:图形分析模型对需求描述更加抽象。主要可以采用UML的建模分析。
数据字典创建:建立系统中所用到的数据项和结构的定义,数据字典可以使参与项目开发的每一个人都使用统一的定义。
子系统:建立系统的结构,同时将需求分配到各个子系统和模块中。 SRS应该是一个作为涉众对系统的统一理解。
采用SRS模板:定义一种标准模板

㈧ 在需求分析阶段常用的图形工具有哪三种

在需求分析阶段常用的图形工具有层次方框图、IPO图和Warnier图。

1、层次方框图:

层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。

描绘一家计算机公司全部产品的数据结构可以用层次方框图表示:公司的产品由硬件、软件和服务3类产品组成,软件产品又分为系统软件和应用软件,系统软件又进一步分为操作系统、编译程序和软件工具等。

2、IPO图:

IPO图是输入、处理、输出图的简称,它是由美国IBM公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。

3、Warnier图:

Warnier图和层次方框图类似,Warnier图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。

用Warnier图可以表明信息的逻辑组织,也就是说,它可以指出一类信息或一个信息元素是重复出现的,也可以表示特定信息在某一类信息中是有条件地出现的。

(8)需求工程图形化分析方法扩展阅读:

需求分析阶段图形工具的使用原则:

1、侧重表达理解问题的数据域和功能域。对新系统程序处理的数据,其数据域包括数据流、数据内容和数据结构。而功能域则反映它们关系的控制处理信息。

2、需求问题应分解细化,建立问题层次结构。可将复杂问题按具体功能、性能等分解并逐层细化、逐一分析。

3、建立分析模型。模型包括各种图表,是对研究对象特征的一种重要表达形式。通过逻辑视图可给出目标功能和信息处理间关系,而非实现细节。由系统运行及处理环境确定物理视图,通过它确定处理功能和数据结构的实际表现形式

参考资料来源:网络-需求分析

㈨ 软件需求分析中的图形化分析有哪些

软件需求分析中可以用到UML建模的用例图,活动图,类图,序列图等。

其中用例图作为软件需求分析的最核心图形。

更多UML框图的使用方法和使用案例可以参考trufun.net上的资料。

㈩ 软件需求的分析方法

软件需求分析方法大体分为如下四类:结构化方法、面向对象方法、面向控制方法和面向数据方法。限于篇幅,将主要从结构化方法和面向对象方法以及RUP三个方面进行简要的探讨。 面向对象(Object Oriented, OO)的方法把分析建立在系统对象以及对象间交互的基础之上,使得我们能以3个最基本的方法框架——对象及其属性、分类结构和集合结构来定义和沟通需求。面向对象的问题分析模型从3个侧面进行描述,即对象模型(对象的静态结构)、动态模型(对象相互作用的顺序)和功能模型(数据变换及功能依存关系)。需求工程的抽象原则、层次原则和分割原则同样适用于面向对象方法,即对象抽象与功能抽象原则是一样的,也是从高级到低级、从逻辑到物理,逐级细分.每一级抽象都重复对象建模(对象识别)一动态建模(事件识别)一功能建模(操作识别)的过程,直到每一个对象实例在物理(程序编码)上全部实现为止。
面向对象需求分析(OORA)利用一些基本概念来建立相应模型,以表达目标系统的不同侧面。尽管不同的方法所采用的具体模型不尽相同,但都无外乎用如下五个基本模型来描述软件需求:
整体—部分模型:该模型描述对象(类)是如何由简单的对象(类)构成的。将一个复杂对象(类)描述成一个由交互作用的若干对象(类)构成的结构的能力是OO途径的突出优点。该模型亦称聚合模型。
分类模型:分类模型描述类之间的继承关系。与聚合关系不同,它说明的是一个类可以继承另一个或另一些类的成分,以实现类中成分的复用。
类—对象模型:分析过程必须描述属于每个类的对象所具有的行为,这种行为描述的详细程度可以根据具体情况而定。既可以只说明行为的输入、输出和功能,也可以采用比较形式的途径来精确地描述其输入、输出及其相应的类型甚至使用伪码或小说明的形式来详细刻画。
对象交互模型:一个面向对象的系统模型必须描述其中对象的交互方法。如前所述,对象交互是通过消息传递来实现的。事实人对象交互也可看作是对象行为之间的引用关系。因此,对象交互模型就要刻画对象之间的消息流。对应于不同的详细程度,有不同的消息流描述分析,分析人员应根据具体馆况而选择。一般地,一个详细的对象交互模型能够说明对象之间的消息及其流向,并且同时说明该消息将激活的对象及行为。一个不太详细的对象交互模型可以只说明对象之间有消息,并指明其流向即可。还有一种状况就是介于此两者之间。
状态模型:在状态模型中,把一个对象看作是一个有限状态机,由一个状态到另一状态的转变称作状态转换。状态模型将对象的行为描述成其不同状态之间的通路。它也可以刻画动态系统中对象的创建和废除,并称由对象的创建到对象的废除状态之间的退路为对象的生存期。
状态模型既可以用状态转换因的图形化手段,又可用决策表或称决策矩阵的形式来表。 RUP(Rational Unified Process)是Rational公司开发和维护的过程产品。RUP是工程化的软件开发过程,它提供了在开发机构中分派任务和责任的纪律化方法。RUP不仅仅是一个简单的过程,而是一个通用的过程框架,可用于各种不同类型的软件系统、各种不同的应用领域、各种不同类型的组织、各种不同的功能级别以及各种不同的项目规模。RUP的突出特点可以由以下三个关键词来体现——用例驱动、以构架为中心、迭代和增量的。这些是RUP所特有的,也是同等重要的。构架提供了一种结构来指导迭代过程中的工作,而用例则确定了目标井驱动每次迭代的工作。
进行需求分析的基础是要获得用户的需要,为了完成这一工作,必须建立业务模型,通过描述业务规则、业务逻辑,明确业务过程并对其进行规范、优化。对于一个系统,在建立业务模型时,应从3个方面来描述其特性:功能、行为、数据,对应于这些特性。 基于上述分析可知,结构化分析方法与面向对象分析方法的区别主要体现在两个方面:
* 将系统分解成于系统的方式不同。前者将系统描述成一组交互作用的处理,后者则描述成一组交互作用的对象。
* 子系统之间的交互关系的描述方式不一样。前者加工之间的交互是通过不太精确的数据流来表示的,而后者对象之间通过消息传递交互关系。
因此,面向对象软件需求分析的结果能更好地刻画现实世界,处理复杂问题,对象比过程更具有稳定性,便于维护与复用。

阅读全文

与需求工程图形化分析方法相关的资料

热点内容
螃蟹的清洗方法视频 浏览:146
株洲方特年卡使用方法 浏览:545
地磅秤的认识方法和技巧 浏览:216
花岗岩石材桌子安装方法 浏览:951
被子床单不晒有什么方法 浏览:916
常用的hiv检测方法有自我检测吗 浏览:532
厕所堵塞风水解决方法 浏览:354
仰卧起坐板使用方法 浏览:859
如何控制自己不做梦的方法 浏览:729
计算机常用单位的换算方法有 浏览:494
天正套坐标最简单方法步骤视频 浏览:872
两岁宝宝快速入睡方法 浏览:747
垂盆草种植方法 浏览:556
笔记本爆盘解决方法 浏览:161
led树灯连接方法 浏览:855
高压线检测方法设备 浏览:574
教学策略是对教学方法的执行错在哪里 浏览:479
急性前列腺炎佳治疗方法 浏览:833
薄膜电容放大器检测方法 浏览:401
植物洗发上色的方法有哪些 浏览:246