⑴ 需求分析有哪两种主要分析方法
从系统分析出发,可将需求分析方法大致分为功能分解方法、结构化分析方法、信息建模法和面向对象的分析方法。
(1)功能分解方法。
将新系统作为多功能模块的组合。各功能义可分解为若干子功能及接口,子功能再继续分解。便可得到系统的雏形,即功能分解——功能、子功能、功能接口。
(2)结构化分析方法。
结构化分析方法是一种从问题空间到某种表示的映射方法,是结构化方法中重要且被普遍接受的表示系统,由数据流图和数据词典构成并表示。此分析法又称为数据流法。其基本策略是跟踪数据流,即研究问题域中数据流动方式及在各个环节上所进行的处理,从而发现数据流和加工。结构化分析可定义为数据流、数据处理或加工、数据存储、端点、处理说明和数据字典。
(3)信息建模方法。
它从数据角度对现实世界建立模型。大型软件较复杂;很难直接对其分析和设计,常借助模型。模型是开发中常用工具,系统包括数据处理、事务管理和决策支持。实质上,也可看成由一系列有序模型构成,其有序模型通常为功能模型、信息模型、数据模型、控制模型和决策模型。有序是指这些模型是分别在系统的不同开发阶段及开发层次一同建立的。建立系统常用的基本工具是E—R图。经过改进后称为信息建模法,后来又发展为语义数据建模方法,并引入了许多面向对象的特点。
信息建模可定义为实体或对象、属性、关系、父类型/子类型和关联对象。此方法的核心概念是实体和关系,基本工具是E-R图,其基本要素由实体、属性和联系构成。该方法的基本策略是从现实中找出实体,然后再用属性进行描述。
⑵ 需求分析有哪些方法
三种需求分析的方法:结构化分析方法、面向对象的分析方法、面向问题域的分析方法。
结构化的分析方法是传统的分析法,它的好处是在需求阶段可以不需要精确地定义系统,只需要根据业务框架确定系统的功能范围,以及每个功能的处理逻辑和业务规则,功能需求规格书等。因为不需要精确描述,因此描述系统的方式比较灵活多样,可以采用图表、示例图、文字等等方式来描述系统。在系统开发以前,一般还可以采用更为直观的原型系统方式和最终用户进行交流和确认,因此对业务需求的要求会低一些,业务需求阶段的周期相对容易控制;通过业务全景图,最终用户也能了解系统的功能;通过功能活动图和业务规则的描述,也可以相对精确地描述业务系统;因为没有严格的标记语言,可以采用适当的篇幅描述适当的系统。当然,这种方法的缺点也是明显的,分析人员和业务人员之间可能缺乏共同语言,机器不能识别业务需求书,在设计阶段还需要继续和用户确认一部分功能。
面向对象的分析方法的最大好处是在需求阶段,就能够非常精确地描述一个系统,采用程序语言的方式和最终用户交流(最终用户必须要熟悉这种语言),能够在项目一开始就发现很多问题,避免在开发的过程中出现需求的反复,而且在系统设计和开发阶段不需要最终用户参与。在实施上,一般可以采用场景、业务功能等方式来描述,比较适合于业务流程环节多的系统,或者软件产品的开发。但是,我们也要看到,在现实中,绝大多数的应用系统都很难在需求阶段就可以被精确地抽象化定义,所以这种方法的缺点和困难也是显而易见的:首先,用户要非常清楚地知道最终的业务系统应该是什么样,或者采用一种抽象的方式能够确定最终的应用系统;其次,因为最终用户不需要参与设计和开发阶段的工作,所以双方确定业务需求的过程也会比较长;同时,因为是精确描述,因此描述系统的语言是非常逻辑化的,一般通过某种方式可以使机器识别业务需求,采用这种方式写的业务需求是非常格式化的,一方面描述一个系统需要的信息非常多,可能使需求说明的篇幅非常长,不便于理解和阅读;另外由于通过抽象的方式来推演最终系统的运行方式,对业务人员的要求非常高。
⑶ 需求分析的步骤有哪些
一、需求识别
需求人员在此步骤应该分析需求类别、需求复杂度和需求价值用来确定需求实施的优先级。
1.需求类别确认:
需求类别包含流程类需求、统计分析类需求、接口类需求,一个需求可能为某一类型需求,也可能包含多类需求。
确认需求类别后应对每类需求的数量进行初步分析(比如流程类需求包含几个流程、统计分析类需求包含几个报表、接口类需求包含几个接口)。
2.需求复杂度分析:
一般需求受理工作量在1-5人天的需求复杂度低,工作量在5-15人天的需求复杂度中,工作量在15人天以上需求复杂度高。(工作量表示需求受理全过程需求人员需要付出的工作量)。
3.价值分析:
需求人员收到需求后应根据收集需求内容初步分析需求痛点/目标、需求复杂度、业务重要程度确定需求价值,需求价值分析
二、业务流程/统计查询/接口分析
针对流程类需求必须进行业务流程分析,统计查询和接口类需求可不进行详细的流程分析。
1.业务流程分为部门级、组织级和岗位级
部门级流程关注脉络需要分析涉及哪些具体岗位、执行活动、每个活动之间的关联关系,它是需求分析的主线条,也是流程分析的主要产物。
组织级流程关注宏观一般不会直接绘制,是对部门级流程的概括和抽象。
岗位级流程关注每个业务活动的执行步骤属需求细节范畴,在流程分析阶段不要过度进入细节。
2.需求识别阶段确认的流程均为部门级流程
需求人员在进行流程分析应遵循如下方法:
(1)业务流程确认:
一个流程为一个业务事件,一般是外部角色发起或系统内部主动发起(比如时间事件或状态事件),发起后会触发一系列业务活动。
(2)角色及业务活动确认:
流程图中的每个泳道都必须对应到角色,每个角色对应多个业务活动。需求人员在确认业务活动时一定要保证活动的粒度,一个业务活动一定是由一个角色完成且每个业务活动都是有价值的活动。
比如项目输入项目名称是一个执行步骤,这个动作没有价值,项目经理查询项目信息就是一个业务活动。
在需求描述时针对线下活动或新增活动应该应标识区分。
(3)业务活动间关系及数据确认:
确定所有业务活动的前后置关系,并明确流程间的传递的数据实体。
(4)流程整体瓶颈分析:
一般若某个角色业务活动工作量较大,或流程涉及高级领导,一般都会造成瓶颈,这种情况需求人员应想办法分散工作量提出流程优化建议。
3.针对统计查询类需求及接口类需求,按照上述业务活动确定原则分析、确定角色,并明确每个角色所执行的业务活动即可。
三、数据实体分析
针对流程类需求需要分析各业务活动传递的数据实体,统计分析类需求需要分析统计查询条件和查询展现两类数据实体、接口类需求需要分析接口传递数据实体,具体分析包含如下内容:
1.明确数据实体:
确认需要分析的所有数据实体,明确哪些为系统原有实体、哪些为新增实体、哪些为改造实体。
2.明确所有数据实体间关系:
实体间关系包含(1对1、1对多、多对多),另外需要分析数据实体变更是否需要保留版本,实体删除(逻辑删除、物理删除)是否影响其它数据实体。
3.明确数据实体字段:
针对新增数据或改造数据实体需要明确新增字段的名称、字段类型、是否必填、字段取值方式(人工输入、系统自动继承自其它数据实体、系统自动计算需要明确计算公式)。
4.数据权限分析:
需要分析不同角色在数据权限方面的差异,若涉及纵向多级用户,要说明对于集团/省/地市用户的数据隔离。
四、角色及使用场景分析
一般来说每个业务活动是对用户使用场景的抽象,每个业务活动可能包含多个场景,分析使用场景时应按照业务活动为主线逐个进行分析,每个业务活动分析时应包含如下内容:
1.明确活动执行角色。
2.明确活动执行的前置条件和后置条件。
3.明确不同场景:
一个业务活动可能包含正常的使用场景、备选使用场景和异常使用场景;
4.明确每个场景的执行步骤:
描述执行步骤时应使用简单的语法,主语明确语义易于理解,每个步骤不应该在任何一方(执行角色、系统)停留两部以上,重点描述如何交互。
5.业务规则和约束:
明确在每个业务活动下应遵循的业务规则和约束,这里一般是与业务流程相关的行为规则(比如项目周期时长超过90天必须提交二级领导审批),或与数据实体相关的数据规则(需求交接单拒收时候必须填写拒收原因,且拒收原因不能超过500字)。
五、系统功能分析
⑷ 需求分析常用方法都有哪些,请举例说明
问卷调查法,是指设计方就用户需求中的一些个性化的、需要进一步明确的需求或问题,通过采用向用户问卷调查表的方式,达到彻底弄清项目需求的一种需求获取方法。 这种方法适合于设计方和建设方、使用方都清楚项目需求的情况。因为建设方和使用方都清楚项目的需求,需要双方进一步沟通的需求或问题就比较少,通过采用这种简单的问卷调查方法就能使问题得到较好的解决。显然对于乐百氏集团这样规模庞大的公司,简单的问卷调查是不能够满足准确获得需求的需要的。会议讨论法,是指设计方和用户相关人员召开若干次需求讨论会议,达到彻底弄清项目需求的一种需求获取方法。这种方法适合于设计方不清楚用户的详细业务需求,但使用方清楚项目需求的情况。因为使用方清楚项目的需求,他们能准确地表达出他们的需求,而设计方有专业的需求,而我们有专业的软件开发经验,经过回忆讨论交流之后,能够对用户的需求进行准确描述和把握。这个方法对于准确的获得乐百氏公司的需求是一种不错的选择。在本案例中系统的设计人员也是这么做的,他们通过和乐百氏项目组经理的讨论,很快了解了乐百氏的运作过程的数据。界面原型法,是指设计方根据自己所了解的用户需求,描画出应用系统的功能界面后与用户进行交流和沟通,通过“界面原型”这一载体,达到双方逐步明确项目需求的一种需求获取的方法。这种方法比较适合于设计方和用户都不是非常清楚项目需求、只是大概了解用户需求的情况。因为设计方和用户方都不能非常准确的描述出客户的需求,因此此时就更需要借助于一定的“载体”来加快对需求的挖掘和双方对需求理解
⑸ 做需求分析的典型方法及优缺点
摘要 你好,关于你的问题我认为三种需求分析的方法:结构化分析方法、面向对象的分析方法、面向问题域的分析方法。
⑹ 项目需求分析的分析方法
需求分析的方法有很多.这里只强调原型化方法,其它的方法如:结构化方法,动态分析法等(个人认为,对初学者不必深究这些方法,实际上我也从来没用过这些方法)在此不讨论.
原型化方法是十分重要的(是软考等常考的知识点).原型就是软件的一个早期可运行的版本,它实现了目标系统的某些或全部功能.
原型化方法就是尽可能快地建造一个粗糙的系统,这系统实现了目标系统的某些或全部功能,但是这个系统可能在可靠性,界面的友好性或其他方面上存在缺陷.建造这样一个系统的目的是为了考察某一方面的可行性,如算法的可行性,技术的可行性,或考察是否满足用户的需求等.如,为了考察是否满足用户的要求,可以用某些软件工具快速的建造一个原型系统,这个系统只是一个界面,然后听取用户的意见,改进这个原型.以后的目标系统就在原型系统的基础上开发.
原型主要有三种类型(软考考过):探索型,实验型,进化型.探索型:目的是要弄清楚对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性.实验型:用于大规模开发和实现前,考核方案是否合适,规格说明是否可靠.进化型:目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统。
在使用原型化方法是有两种不同的策略:废弃策略,追加策略.废弃策略:先建造一个功能简单而且质量要求不高的模型系统,针对这个系统反复进行修改,形成比较好的思想,据此设计出较完整,准确,一致,可靠的最终系统.系统构造完成后,原来的模型系统就被废弃不用.探索型和实验型属于这种策略。
追加策略:先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的核心,然后通过不断地扩充修改,逐步追加新要求,发展成为最终系统。进化型属于这种策略.
⑺ 需求分析有哪几个步骤
一、需求获取阶段
在需求获取阶段,需要做好收集和管理两件事。
这些需求既有产品经理主动挖掘的,也有从用户、运营、业务方、领导等渠道被动获取的,无论哪个渠道来的需求,都需要有一个正式的地方进行管理,也就是我们通常所说的需求池。
不过,对于多方关注的重点需求,通过需求池来向各方同步就不太合适了:
一是因为需求池内容太多、太杂,向业务方、领导汇报的时候会有很多干扰信息,难以快速抓住重点;
二是因为需求池里面可能有些需求不适合完全公开。
这时我们就需要使用《事项跟踪表》来单独跟进,形式上用Excel、PPT都可以。
而放在《事项跟踪表》里的需求,也要在需求池里记录下来,即需求池是做全量需求管理的,《事项跟踪表》是做重点需求跟进、汇报的。
二、需求分析阶段
1. 分析内容
需求分析主要从需求要素、定位、分解、优先级四个方面进行。
1)需求要素分析
需求要素分析是从需求本身出发,不考虑其他因素。
这些要素包括:内容、用户/角色、频次、价值、场景-动机、强度六个方面,这些要素的含义大家应该都比较清楚了,这里说一下分析各个要素的目的是什么:
分析需求内容,是为了弄清楚需求是什么;
分析需求用户/角色,是为了弄清楚需求为谁服务;
分析需求频次、强度,是为了弄清楚需求对用户的重要性、紧迫程度;
分析需求场景-动机,是为了弄清楚需求真伪、用户目的,更深入的理解需求;
分析需求价值,是为了弄清楚需求值不值得做。
2)定位分析
需求的定位分析是分析需求对产品当前阶段目标的意义。
分析需求的定位,有以下两个目的:
一是作为优先级排期的判断条件之一,如果需求与产品当前阶段的目标密切相关,则需要作为高优先级上线;
二是为了框定需求范围。每个需求的实现程度都有深有浅,可以很简单,也可以很复杂,了解了需求之于产品的定位,就能判断需求要做到什么程度。如果一个需求对产品很重要,那就需要做得很丰富,如果只是辅助需求,则需要适当轻量。
3)需求分解
原始需求的颗粒度往往较粗,不利于后续的分析、设计、开发等工作,所以我们需要对这些颗粒度较粗的原始需求进行分解,分解为一个个完整、独立、可实现的子需求。
4)优先级分析
优先级分析是以拆解后的子需求为单位进行的,根据各类优先级的判断方法、原则,初步评估各个子需求的上线顺序及时间。
2. 常见问题
需求分析应该是大家从入行那天就知道要做的事,但大多数同学在做需求分析时会犯以下三个比较常见的错误。
1)缺乏系统性
这是在分析中最常见的问题,即很多同学在分析需求时没有系统性的框架,导致很多方面没有分析到、考虑到,从而对需求认识不全面。
2)缺乏深度
对需求某些要素认识比较浅,不够细致深入,例如在分析需求的用户时,没有对用户分层、切片,对各个分层的用户也缺乏足够的了解,导致对用户只有一个笼统、模糊的认识,最后自然无法深入进去。
不过分析是否有深度的定义其实很难把握,也缺乏明确的判断标准,需要随着分析者思维能力的提升、信息量的提升来加强。
⑻ 需求分析方法主要包括哪些
结构化的分析方法是传统的分析法,它的好处是在需求阶段可以不需要精确地定义系统,只需要根据业务框架确定系统的功能范围,以及每个功能的处理逻辑和业务规则,功能需求规格书等。因为不需要精确描述,因此描述系统的方式比较灵活多样,可以采用图表、示例图、文字等等方式来描述系统。在系统开发以前,一般还可以采用更为直观的原型系统方式和最终用户进行交流和确认,因此对业务需求的要求会低一些,业务需求阶段的周期相对容易控制;通过业务全景图,最终用户也能了解系统的功能;通过功能活动图和业务规则的描述,也可以相对精确地描述业务系统;因为没有严格的标记语言,可以采用适当的篇幅描述适当的系统。当然,这种方法的缺点也是明显的,分析人员和业务人员之间可能缺乏共同语言,机器不能识别业务需求书,在设计阶段还需要继续和用户确认一部分功能。
面向对象的分析方法的最大好处是在需求阶段,就能够非常精确地描述一个系统,采用程序语言的方式和最终用户交流(最终用户必须要熟悉这种语言),能够在项目一开始就发现很多问题,避免在开发的过程中出现需求的反复,而且在系统设计和开发阶段不需要最终用户参与。在实施上,一般可以采用场景、业务功能等方式来描述,比较适合于业务流程环节多的系统,或者软件产品的开发。但是,我们也要看到,在现实中,绝大多数的应用系统都很难在需求阶段就可以被精确地抽象化定义,所以这种方法的缺点和困难也是显而易见的:首先,用户要非常清楚地知道最终的业务系统应该是什么样,或者采用一种抽象的方式能够确定最终的应用系统;其次,因为最终用户不需要参与设计和开发阶段的工作,所以双方确定业务需求的过程也会比较长;同时,因为是精确描述,因此描述系统的语言是非常逻辑化的,一般通过某种方式可以使机器识别业务需求,采用这种方式写的业务需求是非常格式化的,一方面描述一个系统需要的信息非常多,可能使需求说明的篇幅非常长,不便于理解和阅读;另外由于通过抽象的方式来推演最终系统的运行方式,对业务人员的要求非常高。
⑼ 需求分析的主要方法是
目前,软件需求的分析与设计方法较多,一些大同小异,而有的则基本思路相差很大。从开发过程及特点出发,软件开发一般采用软件生存周期的开发方法,有时采用开发原型以帮助了解用户需求。在软件分析与设计时,自上而下由全局出发全面规划分析,然后逐步设计实现。
从系统分析出发,可将需求分析方法大致分为功能分解方法、结构化分析方法、信息建模法和面向对象的分析方法。
(1)功能分解方法。
将新系统作为多功能模块的组合。各功能义可分解为若干子功能及接口,子功能再继续分解。便可得到系统的雏形,即功能分解——功能、子功能、功能接口。
(2)结构化分析方法。
结构化分析方法是一种从问题空间到某种表示的映射方法,是结构化方法中重要且被普遍接受的表示系统,由数据流图和数据词典构成并表示。此分析法又称为数据流法。其基本策略是跟踪数据流,即研究问题域中数据流动方式及在各个环节上所进行的处理,从而发现数据流和加工。结构化分析可定义为数据流、数据处理或加工、数据存储、端点、处理说明和数据字典。
(3)信息建模方法。
它从数据角度对现实世界建立模型。大型软件较复杂;很难直接对其分析和设计,常借助模型。模型是开发中常用工具,系统包括数据处理、事务管理和决策支持。实质上,也可看成由一系列有序模型构成,其有序模型通常为功能模型、信息模型、数据模型、控制模型和决策模型。有序是指这些模型是分别在系统的不同开发阶段及开发层次一同建立的。建立系统常用的基本工具是E—R图。经过改进后称为信息建模法,后来又发展为语义数据建模方法,并引入了许多面向对象的特点。
信息建模可定义为实体或对象、属性、关系、父类型/子类型和关联对象。此方法的核心概念是实体和关系,基本工具是E-R图,其基本要素由实体、属性和联系构成。该方法的基本策略是从现实中找出实体,然后再用属性进行描述。
(4)面向对象的分析方法。
面向对象的分析方法的关键是识别问题域内的对象,分析它们之间的关系,并建立三类模型,即对象模型、动态模型和功能模型。面向对象主要考虑类或对象、结构与连接、继承和封装、消息通信,只表示面向对象的分析中几项最重要特征。类的对象是对问题域中事物的完整映射,包括事物的数据特征(即属性)和行为特征(即服务)
⑽ 需求分析的方法
原型法:获取一组基本需求之后,快速构造出一个能够反映客户需求的初始系统原型。
让用户看到未来系统的概貌,以便判断哪些功能是符合要求的,哪些还需要改进。
按照信息的流向、结构和内容三个方面将现有的需求分析建模方法划分为结构化分析方法,Jackson分析方法和面向对象分析方法。
通过E-R图提供表示实体、属性和联系的方法,描述显示世界中的概念模型,不涉及这些实体在系统中的实现方法。
通过数据流图描述逻辑模型,表示数据在系统内的变化;分层表示信息流和功能的细节。
行为建模采用动态分析方法,直观地分析系统的动作,最常用的动态分析方法包括状态迁移图,时序图和Petri网。
状态迁移图通过描述状态以及导致系统改变状态的事件来表示系统的行为,指明了系统如何在状态间移动。