软件需求分析(软件需求分析报告范文)

更新时间:2023-02-28 21:24:10 阅读: 评论:0

软件需求分析

需求分析就是对客户提出的“要求”或者“需求”进行深入细致地调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么,为系统设计、系统完善和系统维护提供依据。

需求分析是项目计划阶段非常重要的环节,该环节决定了需要“实现什么”,为下一步如何去“实现”提供了明确的方向。

进行需求分析需要做到以下几点:

(一)需求获取:在准备阶段,我们首先要确定需求获取的目标及范围,根据你的目标来选择对应的方式获取需求。

(二)需求分类:一般情况下,我们会根据对象的不同,将需求分为业务需求、用户需求、功能需求等。

(三)需求筛选:有些需求是伪需求,有些需求则不具备实现价值,我们可以通过真实性、价值性、可行性三个维度来筛选需求,过滤掉虚假的、不可行的、没有价值、价值不大或投入产出比不理想的需求。

(四)需求提炼:对剩下的需求进行提炼,目的在于从获取的表面需求中提炼出客户的本质需求。找出“为什么要做”比“做什么”更重要。

(五)需求优先级排序:挖掘到客户的真实目的后,我们需要根据不同维度的需求归类方法,如KANO模型分析法、投入产出比ROI等,对其进行归纳整理并排出优先级,帮助产品有条理地安排开发秩序,避免盲目排序。

(六)产出需求文档:通过以上的分析,我们需要将收集到的需求进行分析、汇总、归类,输出产出需求文档,为接下来的工作做好铺垫。

以上是对需求分析的一些理解和思路,做好需求分析工作之后,就可以对可实现的需求进行落地方案的跟进。


软件需求的分析方法

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


软件需求分析4个步骤

一、需求分析理论

软件需求涉及功能性问题非常广,我们用抽象化理论分析,可以划分各个功能域,用不同的数字代替,软件——S,功能域——A1、A2……An

S={A1、A2、……An}

但是功能域B又存在若干问题P1、P2……Pm组成,并且每个功能对应于子系统中的一个软构件,可以表示为-B={P1、P2、……Pm}

功能G有若干个行为F1、F2、……Fj,每个行为对应于软件构件中的实现方法

G={F1、F2……Fj}

一个软件包含了所有功能的集合,同时包含了实现所以功能的所有方法和算法描述。需求分析是依据用户动机,经过需求问题识别,进行分析、消除分驰和综合,编写用户故事,评审;形成用户需求与设计同步,设计满足用户需求目标。

需求开发方法贯穿这个产品生命周期,利用不同的开发方法论进行挖掘需求,帮助用户找到问题,梳理问题,判断产品实现功能的正确性、一致性和完整性,促使用户在软件设计启动之前进行周密的、全面的思考软件产品功能,用商业化行为解决需求与现实中存在的矛盾,解决用户需求与商业化产品功能融合,解决规范和个性化需求。
二、软件需求开发的目标

1、对实现的软件做一个全面的描述,帮助用户找到问题矛盾解决用户场景痛点,帮助用户在进行产品规划时做到周密,全面产品定位需求

2、了解和描述软件实现所需的全部信息,为产品设计、确认和验证提供一个基准

3、为软件产品管理人员进行软件产品成本评估和编辑软件开发计划书提供保障

需求开发-软件功能需求、软硬接口、非功能性需求、设计约束、反向需求、阅读支持信息。

软件需求分析尽量提供软件实现功能需求的全部信息,使软件设计人员和测试人员不在需要和需求方进行接触,保证需求分析的一致性和完整性。

三、软件功能需求

描述软件功能实现注意——

1、功能需求的完整性和一致性

2、功能描述的无异议和可追踪

3、功能描述清洗和功能可测试

四、软硬接口

1、人机接口

2、硬件接口

3、软件接口

4、通讯接口
五、非功能性需求

1、运行环境

2、时间需求

3、处理容限、精度、异常处理机制等

4、可靠性要求、可维护性、安全性

软件需求分析的内容是

需求分析也称为软件需求分析、系统需求分析或需求分析工程等,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。
需求分析的内容是针对待开发软件提供完整、清晰、具体的要求,确定软件必须实现哪些任务。具体分为功能性需求、非功能性需求与设计约束三个方面。
信管网致力于为广大信管从业人员、爱好者、大学生提供专业、高质量的课程和服务,解决其考试证书、技能提升和就业的需求。
信管网软考课程由信管网依托10年专业软考教研倾力打造,官方教材参编作者和资深讲师坐镇,通过深研历年考试出题规律与最新大纲,深挖核心知识与高频考点,为学员考试保驾护航。面授、直播&录播,多种班型灵活学习,满足不同学员考证需求,降低课程学习难度,使学习效果事半功倍。

如何进行软件需求分析

何进行软件需求分析,简而言之不是几句话可以描述清楚的,这里给你一些方法功能参考。

首先,在进行软件需求分析之前,得有一份软件说明书或者软件需求规格说明书,因为这个是我们进行需求分析的对象。但是这个需求规格书写的质量怎么样,实际上是决定了软件项目的进度、成本甚至成败的?为什么这么说呢?因为当前软件开发这个行业最大的问题是需求质量低下,这个导致了项目成本至少增加了30%以上,这也是为什么软件这个行业有钱的公司不多的主要原因。或者说能做出一份有质量的需求规格说明书将体现这个企业的挣钱能力,但现实是绝大多数企业都像人月神话中描述的一样:一步一步踏入了泥潭。。。由于这个工作产品如此重要,因此通过过个步骤来保证它的质量:需求策划、获取、分析、确认以及后期需求管理,尤其是变更管理。如果想了解具体的每个步骤的详细内容可以联系我。
其次,如果需求规格说明书有了,我们怎么分析呢?在具体说明分析方法之前,首先我们要明确一个问题:需求分析到底是在分析什么?其目的是什么?其实我们绝大多数的需求工程师都不太清楚或者不能明确的回答这些问题,从而导致他们花费了大量的时间来写用例(ur ca),写了很多关系复杂甚至连需求人员都看不明白或者越看越糊涂的东西,因为他们认为这样后续的开发、测试人员就能开明白了,事实上是这样的吗?根本不是,如果是的话,我们的软件行业中的绝大多数企业活的普遍不那么悲惨了。。。回到软件开发,我们来想一下,我们开发这个东西给谁用?是自己吗???如果是自己事情就简单了,因为需求都在自己脑子里面了,就算不完整起码也不会缺多少,但问题正好相反,99.999999%的情况下我们是为别人或者说我们的用户开发的,也就是说需求其实是在客户的脑子了,而不是我们的脑子里!!!我们的首要目的应该是如何通过一套完整的套路把需求从客户的脑子里面传输到我们的脑子里面,然后按照规格化(这个是另外一个重点)的方式把它按照说明书一样描述出来让后续人员能够看得清清楚楚、明明白白,这个步骤是最关键的一环,因为我们的绝大多数客户都不会写需求规格说明书,所以这个任务落在我们的身上。那么我们到底都问什么不会丢需求呢?这个是有一套方法和模板来指导需求人员和UI工程师(调研时就需要画原型,可以稍微想一下这么做的好处)来获取完整的需求。只有这样,才能获取有质量的需求。
那么说了这么多,分析到底是干什么的呢?分析就是需求人员首先自己要系统的检查一下需求来保障需求的质量,记住不是保证,是保障,它就像软件开发中的评审或测试一样,是保障产品的质量进行的检查活动,它们不能保证质量,只是保障作用。就像我们考试一样,你认真的答完题了,还是需要认真的检查一遍,因为这个是人的天性之一。那么问题来了,怎么进行检查或者从哪些方面进行检查呢?我推荐的策略是先外后内、先系统后模块、先功能后非功能、先业务后属性,通过整套方法下来可以帮我们查到不少之前遗漏、写错、或者矛盾的地方,当然也包括可能不是客户需要的needs,只是expectation。这个工作比获取要简单一些,但是是一个繁杂的活,要逐项逐项的检查每一个需求的内容以保障需求的质量。到底检查哪些内容呢?这个太多了,就不罗列了。

如何进行软件需求分析

软件需求分析免费下载

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

提取码:qoyw

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


本文发布于:2023-02-28 18:56:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/167759065049456.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:软件需求分析(软件需求分析报告范文).doc

本文 PDF 下载地址:软件需求分析(软件需求分析报告范文).pdf

标签:需求   软件   分析报告   范文
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|