软件开发如何分析需求(软件需求分析与设计报告)

软件开发 55 0

今天给各位分享软件开发如何分析需求的知识,其中也会对软件需求分析与设计报告进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

软件工程:3.需求分析

需求分析的任务就是准确地回答“ 系统必须做什么 ”。是通过系统分析员与用户一起商定,清晰、准确、具体地描述软件产品必须具有的 功能 、 性能 、 运行环境 等要求。

用户:知道做什么,不知道怎么做。

开发人员:知道怎么做,不知道做什么。

因此,系统分析员必须和用户密切配合、充分交流信息,得出经过用户认可的系统需求。

需求分析的目的是澄清用户的需求,并把双方共同的理解明确地表达成一份书面文档—— 需求规格说明书 。

需求分析是一项软件工程活动,它包括: 需求获取 、 需求建模 、 需求规格说明 、 需求评审 。

需求分析模型 是准确地描述需求的图形化工具,主要有 实体关系图 、 数据流图 、 状态转换图 。需求分析建立起来的模型为日后软件设计人员提供了可被翻译成 数据结构 、 体系结构 、 接口 和 处理过程 设计的模型。

如上图所示,目标系统模型的建立过程分 4 步完成:

把分析的结果用正式的文档记录下来,作为最终软件配置的一个组成成分。需求规格说明为开发人员和用户提供软件开发完成时质量评价的依据。

作为需求分析阶段的复审手段,在需求分析的最后一步应该对功能的正确性、完整性和清晰性以及其他需求给予评价。

需求分析研究的对象是 用户的要求 。必须 全面理解 用户的各项要求, 准确表达 用户的要求。只有经过确切描述的软件需求才能成为软件设计的基础。

评审应由专人负责,评审组由软件开发成员、软件专家、领域专家和用户构成。

需求分析是一个不断的迭代过程。只有需求全面,准确无误,才能开发出用户满意的系统。

需求获取是软件开发工作中最重要的环节之一,其工作质量对整个软件系统开发的成败具有决定性影响。需求获取工作量大,所涉及的过程、人员、数据、信息非常多,因此要想获得真实、全面的需求必须要有正确的方法。常规的需求获取的方法有以下几种:

需求分析模型 是准确地描述系统需求的图形化工具。它可以使人们更好地理解将要建造的系统,它有助于系统分析员理解系统的信息、功能和行为,成为确定需求规格说明完整性、一致性和精确性的重要依据,奠定软件设计基础。

需求分析建模的方法有 结构化分析建模 和 面向对象分析建模 。

结构化分析导出的分析模型包括 数据模型 、 功能模型 和 行为模型 。

需求分析模型以“ 数据字典 ”为核心,描述了软件使用的所有数据对象,围绕这个核心的是“ 实体关系图 ”、“ 数据流图 ”和“ 状态转换图 ”。

具体形式如下图所示:

实体关系图(ER,Entity-Relationship Diagram) :是一种数据模型,是以实体、关系、属性三个基本概念概括数据的基本结构,从而描述 静态数据结构 的概念模型。

ER 包括三种基本元素:

关联的重数 定义了在关联的一端可以存在的数据实体实例的数量。 关联重数可以具有下列值之一:

两个数据对象之间按关联的重数有以下三种关联:

以下实体关系图描述的是教师、课程、学生三者之间的关系。

以下实体关系图描述的是出勤、职工、奖金、扣款之间的关系。

数据流图(DFD,Data flow diagram) ,是描述数据流和数据转换的图形工具,它是进行结构化分析的基本工具,也是进行软件体系结构设计的基础。

DFD 有四种元素,其基本符号如图所示:

示例,工资计算系统的顶层(0层)数据流图:

在数据流图中有时也使用 附加符号 : * 、 + 、 ⊕ ,分别表示与、或、互斥关系。

数据流图可分为不同层次,顶层(0层)DFD 称为 基本系统模型 ,可以将整个软件系统表示为一个具有输入和输出的黑匣子,其加工处理是 软件项目的名称 ,用一个圆圈表示。

DFD 中的每一个加工可以进一步扩展成一个独立的数据流图,以揭示系统中加工的细节。这种循序渐进的细化过程可以继续进行,直到最底层的 DFD 图仅描述加工的 原子过程 为止。每一层数据流图必须与它上一层数据流图的输入输出保持平衡和一致。

数据流图是在需求陈述的基础上绘制的。

这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能。

第二层数据流图——销售细化:

第二层数据流图——采购细化:

当软件系统涉及 时序关系 时需要进行 行为建模 ,由于数据流图不描述时序关系,系统的控制和事件流需要通过行为模型来描述。

在描述系统或各个数据对象的行为时,采用 状态转换图 。通过描述系统或对象的 状态 ,以及引起系统或对象状态转换的 事件 来表示系统或对象的行为。

状态转换图(STD,Status Transition Diagram) ,是描述系统状态如何响应外部事件进行转移的一种图形表示。

状态 是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。在状态图中定义的状态主要有: 初始状态 、 中间状态 和 最终状态 。

事件 是在某个特定时刻发生的事情,它是对引起系统从一个状态转换到另一个状态的外界事件的抽象。

在状态转换图中,圆圈“○”表示可得到的 系统状态 ,箭头“→”表示从一种状态向另一种 状态的转移 。箭头旁标上 事件名 。

数据字典(DD,Data Dictionary) 用来描述数据流图中的数据存储、数据加工和数据流。 数据字典与数据流图配合,能够准确、清晰地表达数据处理的要求。

对于在数据流图中每一个被命名的图形元素均加以定义 ,其内容有: 名字、别名或编号、分类、描述、定义、位置、其它。

在数据字典中,数据元素的定义可以是基本元素及其组合,数据进行自顶向下地分解,直到不需要进一步解释且参与人员都清楚其含义为止。

数据流定义实例:航班订票单的数据定义

数据元素定义实例:考试成绩的数据定义

数据文件定义实例:图书库存的数据定义

数据处理定义实例:编辑订票的数据定义

外部实体定义实例:教师的数据定义

存折=户名+所号+帐号+开户日+性质+(印密)+1{存取行}50

户名=2{字母}24

所号=“001”..“999”

帐号=“00000001”..“99999999”

开户日=年+月+日

性质=“1”..“6” 注:“1”表示普通户,“5”表示工资户等

印密=“0” 注:印密在存折上不显示

存取行=日期+(摘要)+支出+存入+余额+操作+复核

需求规格说明书(SRS,Software Requirement Specification) ,是系统分析人员在需求分析阶段完成的文档,是软件需求分析的最终结果。

它的 作用 主要是: 作为软件人员与用户之间事实上的技术合同;作为软件人员下一步进行设计和编码的基础;作为测试和验收的依据 。

SRS 必须用统一格式的文档进行描述。为了使需求分析描述具有统一的风格,可以采用已有的且能满足项目需要的模板,如中国国家标准推荐的SRS模板,也可以根据项目特点和软件开发小组的特点对标准进行适当的改动,形成自己的模板。

需求分析方法有哪些?

问题一:需求分析有哪些方法 三种需求分析的方法:结构化分析方法、面向对象的分析方法、面向问题域的分析方法。

结构化的分析方法是传统的分析法,它的好处是在需求阶段可以不需要精确地定义系统,只需要根据业务框架确定系统的功能范围,以及每个功能的处理逻辑和业务规则,功能需求规格书等。因为不需要精确描述,因此描述系统的方式比较灵活多样,可以采用图表、示例图、文字等等方式来描述系统。在系统开发以前,一般还可以采用更为直观的原型系统方式和最终用户进行交流和确认,因此对业务需求的要求会低一些,业务需求阶段的周期相对容易控制;通过业务全景图,最终用户也能了解系统的功能;通过功能活动图和业务规则的描述,也可以相对精确地描述业务系统;因为没有严格的标记语言,可以采用适当的篇幅描述适当的系统。当然,这种方法的缺点也是明显的,分析人员和业务人员之间可能缺乏共同语言,机器不能识别业务需求书,在设计阶段还需要继续和用户确认一部分功能。

面向对象的分析方法的最大好处是在需求阶段,就能够非常精确地描述一个系统,采用程序语言的方式和最终用户交流(最终用户必须要熟悉这种语言),能够在项目一开始就发现很多问题,避免在开发的过程中出现需求的反复,而且在系统设计和开发阶段不需要最终用户参与。在实施上,一般可以采用场景、业务功能等方式来描述,比较适合于业务流程环节多的系统,或者软件产品的开发。但是,我们也要看到,在现实中,绝大多数的应用系统都很难在需求阶段就可以被精确地抽象化定义,所以这种方法的缺点和困难也是显而易见的:首先,用户要非常清楚地知道最终的业务系统应该是什么样,或者采用一种抽象的方式能够确定最终的应用系统;其次,因为最终用户不需要参与设计和开发阶段的工作,所以双方确定业务需求的过程也会比较长;同时,因为是精确描述,因此描述系统的语言是非常逻辑化的,一般通过某种方式可以使机器识别业务需求,采用这种方式写的业务需求是非常格式化的,一方面描述一个系统需要的信息非常多,可能使需求说明的篇幅非常长,不便于理解和阅读;另外由于通过抽象的方式来推演最终系统的运行方式,对业务人骸的要求非常高。

问题二:项目需求分析的分析方法 需求分析的方法有很多.这里只强调原型化方法,其它的方法如:结构化方法,动态分析法等(个人认为,对初学者不必深究这些方法,实际上我也从来没用过这些方法)在此不讨论.原型化方法是十分重要的(是软考等常考的知识点).原型就是软件的一个早期可运行的版本,它实现了目标系统的某些或全部功能.原型化方法就是尽可能快地建造一个粗糙的系统,这系统实现了目标系统的某些或全部功能,但是这个系统可能在可靠性,界面的友好性或其他方面上存在缺陷.建造这样一个系统的目的是为了考察某一方面的可行性,如算法的可行性,技术的可行性,或考察是否满足用户的需求等.如,为了考察是否满足用户的要求,可以用某些软件工具快速的建造一个原型系统,这个系统只是一个界面,然后听取用户的意见,改进这个原型.以后的目标系统就在原型系统的基础上开发.原型主要有三种类型(软考考过):探索型,实验型,进化型.探索型:目的是要弄清楚对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性.实验型:用于大规模开发和实现前,考核方案是否合适,规格说明是否可靠.进化型:目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统。在使用原型化方法是有两种不同的策略:废弃策略,追加策略.废弃策略:先建造一个功能简单而且质量要求不高的模型系统,针对这个系统反复进行修改,形成比较好的思想,据此设计出较完整,准确,一致,可靠的最终系统.系统构造完成后,原来的模型系统就被废弃不用.探索型和实验型属于这种策略。追加策略:先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的核心,然后通过不断地扩充修改,逐步追加新要求,发展成为最终系统。进化型属于这种策略.

问题三:如何做好需求分析,需求调研 转载以下资料供参考

从广义上理解:需求分析包括需求的获取、分析、规格说明、变更、验证、管理的一系列需求工程。

狭义上理解需求分析指需求的分析、定义过程。

原因

需求分析就是分析软件用户的需求是什么。如果投入大量的人力,物力、财力、时间,开发出的软件却没人要,那所有的投入都是徒劳。如果费了很大的精力,开发一个软件,最后却不满足用户的要求,从而要重新开发过,这种返工是让人痛心疾首的(相信大家都有体会)。比如:用户需要一个for linux的软件,而你在软件开发前期忽略了软件的运行环境,忘了向用户询问这个问题,而想当然的认为是开发for windows的软件。当你千辛万苦地开发完成向用户提交时才发现出了问题,那时候你是欲哭无泪了,恨不得找块豆腐一头撞死。

需求分析之所以重要,就因为他具有决策性、方向性、策略性的作用,他在软件开发的过程中具有举足轻重的地位,大家一定要对需求分析具有足够的重视。在一个大型软件系统的开发中,他的作用要远远大于程序设计。

任务

简言之,需求分析的任务就是解决“做什么的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求。

过程

需求分析阶段的工作,可以分为四个方面:问题识别、分析与综合、制订规格说明、评审。

问题识别:就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准。这些需求包括:功能需求(做什么)、性能需求(要达到什么指标)、环境需求(如机型、操作系统等)、可靠性需求(不发生故障的概率)、安全保密需求、用户界面需求、资源使用需求(软件运行是所需的内存、CPU等)、软件成本消耗与开发进度需求、预先估计以后系统可能达到的目标。

分析与综合: 逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分。最后综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型)。

制订规格说明书: 即编制文档,描述需求的文档称为软件需求规格说明书。请注意,需求分析阶段的成果是需求规格说明书,向下一阶段提交。

评审: 对功能的正确性,完整性和清晰性,以及其它需求给予评价。评审通过才可进行下一阶段的工作,否则重新进行需求分析。

方法

需求分析的方法有很多,这里只强调原型化方法,其它的方法如:结构化方法、动态分析法等,从来没用过这些方法在此不讨论。

原型化方法是十分重要的,原型就是软件的一个早期可运行的版本,它实现了目标系统的某些或全部功能。

原型化方法就是尽可能快地建造一个粗糙的系统,这系统实现了目标系统的某些或全部功能。但是这个系统可能在可靠性、界面的友好性或其他方面上存在缺陷。建造这样一个系统的目的是为了考察某一方面的可行性,如算法的可行性、技术的可行性或考察是否满足用户的需求等。如:为了考察是否满足用户的要求,可以用某些软件工具快速的建造一个原型系统,这个系统只是一个界面,然后听取用户的意见,改进这个原型。以后的目标系统就在原型系统的基础上开发。

原型主要有三种类型:探索型、实验型、进化型。

探索型:目的是要弄清楚对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性。

实验型:用于大规模开发和实现前,考核方案是否合适,规格说明是否可靠。

进化型:目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统。

在使用原型化方法时有两种不同的策略:废弃策略、追加策略。

废弃策略:先建造一个功能简单而且质量要求不高的模型系统,针对这个系统反复进行修改,形成......

问题四:请问常用的需求分析方法有哪些? 结构分析方法和面向对象分析法

问题五:培训需求分析的方法有哪几种 组织资源分析

如果没有确定可被利用的人力、物力和财力资源,就难以确立培训目标。组织资源分析包括对组织的金钱、时间、人力等资源的描述。一般情况下,通过对下面问题的分析,就可了解一个组织资源的大致情况。

组织特质与环境分析

组织特质与环境对培训的成功与否也起重要的影响作用。因为,当培训规划和组织的价值不一致时,培训的效果则很难保证。组织特质与环境分析主要是对组织的系统结构、文化、资讯传播情况的了解。主要包括如下内容:

系统特质指组织的输入、运作、输出、次级系统互动以及与外界环境间的交流特质,使管理者能够系统地面对组织,避免组织分析中以偏概全的缺失。

文化特质。指组织的软硬体设施、规章、制度、组织经营运作的方式、组织成员待人处事的特殊风格,使管理者能够深入了解组织,而非仅仅停留在表面。

资讯传播特质。指组织部门和成员收集、分析和传递信息的分工与运作,促使管理者了解组织信息传递和沟通的特性。

问题六:在需求分析阶段常用的图形工具有哪三种 1. 需求分析是准确的理解用的需求将其转换成需求定义,然后由需求定义转换成形式化的功能规约。需求分析的困难表现在问题的复杂性、交流的障碍、不完备和不一致性、需求易变性。 2. 结构化分析方法是采用自顶向下逐层分解的分析策略把一个复杂的系统分解成若干小问题然后分别解决 3. 数据流即数据通过一个系统时的变化方式。输入数据首先转换成中间数据,然后转换成输出结果数据。在此期间可以从已有的数据存储(如磁盘文件或内存缓冲区)中引入附加数据。对数据进行转换是程序中应有的功能或子功能。两个转换功能之间的数据传递就确定了功能间的接口。 4. 把一个功能分解成几个子功能,并确定这些子功能与父功能的接口,就属于横向分解。 5. 把一个功能分解成几个子功能,并确定这些子功能与父功能的接口,就属于横向分解。但如果继续分解,把某些子功能又分解为小的子功能,某个小的子功能又分解为更小的子功能,这就属于纵向分解了。 6. 数据流图是用来表示系统的功能的工具它表示系统的逻辑模型描述了数据流在系统中流动的情况它是一种功能模型。

问题七:如何做需求分析 随着技术的不断发展和用户对网站功能性的需求不断提高,如今网站项目的设计已经不能再仅仅简单地利用静态Html文件来实现,与前几年网站设计由一两名网页设计师自由的创作相比,网站项目的设计和开发越来越像一个软件工程,也越来越复杂,网站项目的设计和开发进入了需要强调流程和分工的时代,建立规范的、有效的、健壮的开发机制,才能适应用户不断变化的需要,达到预期的计划目标。

网站项目管理(WPM)的含义为Web-based Project Management,即以Web 应用程序为主要表现方式的架构来进行的项目设计及管理,这样的架构中包含了浏览器、网络和Web

服务器等关键主体,主要体现在网站设计、以浏览器为客户端的Web应用程序开发(例如信息类网站、网上商店、虚拟邮局、客户关系管理。)等项目管理中。

按照笔者的经验,网站项目管理可以分为以下l六个阶段进行控制:

1. 需求分析及变更管理

2. 项目模型及业务流程分析

3. 系统分析及软件建模

4. 界面设计、交互设计及程序开发

5. 系统测试和文档编写

6. 客户培训、技术支持和售后服务

需要说明的是,这些阶段虽然具有一定的延续性,但是并非完全隔断的,例如需求变更管理和测试工作、文档编写都是贯穿整个项目过程的,许多工作时交叉进行或同时进行的。

(一)如何做好需求分析及变更管理?

业务员与客户进行的沟通,撰写需求分析报告是项目展开的基础。项目是以客户的需求为中心,而不是为技术而迁就需求。

一:让客户畅所欲言,罗列出所有的需求

让用户将所有的想法尽可能的阐述清楚,并把所有的要求罗列出来,不要遗漏。这时候不应该害怕“勾引”起客户的潜在需求而增加设计开发的工作量,从而被今后客户无止境的变更拖入泥潭,直接明白地跟客户把问题和要求一条条地列出来,把条理、归纳、分析先都扔到一边去,将用户最原始、最完整的要求准确地记录下来就完成了第一步的工作。

很明显,假如客户的需求做的都不完整,随时可能会产生意想之外的变更,甚至这个变更会破坏已经做的模型及结构,那么这个项目从开始就注定了会失败;比如站点所有的功能都实现了,本地测试起来也没有什么问题了,但是你却不知道客户的系统是要承受每天100万独立IP的访问,而你原来想当然的以为了不起就是1万独立IP访问的访问流量,稍微有经验的开发人员都会明白这样的设计是个灾难,无论是应用服务器、数据库还是程序全部要重新开发!

二:透过现象分析潜在的需求

很多情况下客户并非专业人士,在他们滔滔不绝的描述中不能指望他们帮助我们整理出重点和技术难关,这需要我们去为客户进行分析、归纳和整理,尤其是客户谈的不多却又是技术上实现难度和强度很高的地方特别值得注意。

客户往往对需求的概念是非常模糊的,大多时候给出的需求都是笼统而且尺度难以控制的,这就要求业务人员在倾听了客户的详细说明以后,帮助客户进行整理和分析,同时预测客户在开发过程中变更及今后应用中可能进行修改升级的潜在需求。

比如在为客户设计办公自动化系统的时候,也许就要为客户预留将来与他们的业务单位进行交互的通道;在设计邮件系统的时候要考虑可能会需要广告管理服务器;设计网络电子商店时今后增加库存产品进销存统计分析等等;限于时间财力的考虑,客户通常能够接受分阶段实施的开发过程,在需求分析时,提早为客户设想到今后的需求变更除了使项目开发更加顺利以外,也为今后业务的进一步深入打下......

问题八:软件需求分析的方法和工具有哪些内容 1. 问卷调查法, 开发方就用户需求中的一些个性化的、需要进一步明确的需求,通过采用向用户发问卷调查表的方式,达到彻底弄清项目需求的一种需求获取方法。这种方法适合于开发方和用户方都清楚项目需求的情况。因为开发方和建设方都清楚项目的需求,则需要双方进一步沟通的需求就比较少,通过采用这种简单的问卷调查方法就能使问题得到较好的解决

2. 会议讨论法 ,开发方和用户方召开若干次需求讨论会议,达到彻底弄清项目需求的一种需求获取方法,这种方法适合于开发方不清楚项目需求(一般开发方是刚开始做这种业务类型的工程项目)但用户方清楚项目需求的情况。因为用户清楚项目的需求,则用户能准确地表达出他们的需求,而开发方有专业的软件开发经验,对用户提供的需求一般都能准确地描述和把握

3. 界面原型法 ,开发方根据自己所了解的用户需求,描画出应用系统的功能界面后与用户进行交流和沟通,通过“界面原型”这一载体,达到双方逐步明确项目需求的一种需求获取的方法。这种方法比较适合于开发方和用户方都不清楚项目需求的情况。因为开发方和用户方都不清楚项目需求,因此此时就更需要借助于一定的“载体”来加快对需求的挖掘和双方对需求理解。这种情况下,采用“可视化”的界面原型法比较可取

软件需求分析有哪些方法

软件需求分析免费下载  

链接:

提取码:qoyw  

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

软件需求分析的步骤有哪些

一、需求分析理论

软件需求涉及功能性问题非常广,我们用抽象化理论分析,可以划分各个功能域,用不同的数字代替,软件——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、可靠性要求、可维护性、安全性

如何进行软件需求分析

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

首先,在进行软件需求分析之前,得有一份软件说明书或者软件需求规格说明书,因为这个是我们进行需求分析的对象。但是这个需求规格书写的质量怎么样,实际上是决定了软件项目的进度、成本甚至成败的?为什么这么说呢?因为当前软件开发这个行业最大的问题是需求质量低下,这个导致了项目成本至少增加了30%以上,这也是为什么软件这个行业有钱的公司不多的主要原因。或者说能做出一份有质量的需求规格说明书将体现这个企业的挣钱能力,但现实是绝大多数企业都像人月神话中描述的一样:一步一步踏入了泥潭。。。由于这个工作产品如此重要,因此通过过个步骤来保证它的质量:需求策划、获取、分析、确认以及后期需求管理,尤其是变更管理。如果想了解具体的每个步骤的详细内容可以联系我。

其次,如果需求规格说明书有了,我们怎么分析呢?在具体说明分析方法之前,首先我们要明确一个问题:需求分析到底是在分析什么?其目的是什么?其实我们绝大多数的需求工程师都不太清楚或者不能明确的回答这些问题,从而导致他们花费了大量的时间来写用例(user case),写了很多关系复杂甚至连需求人员都看不明白或者越看越糊涂的东西,因为他们认为这样后续的开发、测试人员就能开明白了,事实上是这样的吗?根本不是,如果是的话,我们的软件行业中的绝大多数企业活的普遍不那么悲惨了。。。回到软件开发,我们来想一下,我们开发这个东西给谁用?是自己吗???如果是自己事情就简单了,因为需求都在自己脑子里面了,就算不完整起码也不会缺多少,但问题正好相反,99.999999%的情况下我们是为别人或者说我们的用户开发的,也就是说需求其实是在客户的脑子了,而不是我们的脑子里!!!我们的首要目的应该是如何通过一套完整的套路把需求从客户的脑子里面传输到我们的脑子里面,然后按照规格化(这个是另外一个重点)的方式把它按照说明书一样描述出来让后续人员能够看得清清楚楚、明明白白,这个步骤是最关键的一环,因为我们的绝大多数客户都不会写需求规格说明书,所以这个任务落在我们的身上。那么我们到底都问什么不会丢需求呢?这个是有一套方法和模板来指导需求人员和UI工程师(调研时就需要画原型,可以稍微想一下这么做的好处)来获取完整的需求。只有这样,才能获取有质量的需求。

那么说了这么多,分析到底是干什么的呢?分析就是需求人员首先自己要系统的检查一下需求来保障需求的质量,记住不是保证,是保障,它就像软件开发中的评审或测试一样,是保障产品的质量进行的检查活动,它们不能保证质量,只是保障作用。就像我们考试一样,你认真的答完题了,还是需要认真的检查一遍,因为这个是人的天性之一。那么问题来了,怎么进行检查或者从哪些方面进行检查呢?我推荐的策略是先外后内、先系统后模块、先功能后非功能、先业务后属性,通过整套方法下来可以帮我们查到不少之前遗漏、写错、或者矛盾的地方,当然也包括可能不是客户需要的needs,只是expectation。这个工作比获取要简单一些,但是是一个繁杂的活,要逐项逐项的检查每一个需求的内容以保障需求的质量。到底检查哪些内容呢?这个太多了,就不罗列了。

软件开发如何分析需求的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于软件需求分析与设计报告、软件开发如何分析需求的信息别忘了在本站进行查找喔。

扫码二维码