📄 200603062220345.html
字号:
<html>
<head><title>需求分析</title></head>
<center><h1>需求分析</h1></center>
<div><P align=right><FONT color=#f70938><FONT face=黑体><a href="200604112229525.html" tppabs="http://www.itisedu.com/phrase/200604112229525.html" target="_new">中科永联</a>高级技术培训中心(</FONT><FONT face=黑体>www.itisedu.com</FONT><FONT face=黑体>)<IMG src="200632719944705.jpg" tppabs="http://www.itisedu.com/manage/Upload/image/200632719944705.jpg" border=0></FONT></FONT></P>
<P><FONT face=Verdana> <a href="200603062220345.html" tppabs="http://www.itisedu.com/phrase/200603062220345.html" target="_new">需求分析</a>是指理解用户<a href="200603101518295.html" tppabs="http://www.itisedu.com/phrase/200603101518295.html" target="_new">需求</a>,就<a href="200604232134205.html" tppabs="http://www.itisedu.com/phrase/200604232134205.html" target="_new">软件</a>功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。(这个和我在微<a href="200604232134505.html" tppabs="http://www.itisedu.com/phrase/200604232134505.html" target="_new">软体</a>验到的又不太一样,微软的需求分析大多是市场人员和用户协助小组的人去评估用户的接受程度,这一点也可以理解,因为公司的性质有根本差别)在这个过程中,用户的确是处在主导地位,需求分析工程师和项目经理要负责整理用户需求,为之后的软件设计打下基础。需求分析阶段结束后,要求得到:1.SRS文档(System Requirement Specification); 2.DRM 文档;3.Acceptance Plan.</FONT></P>
<P><FONT face=Verdana> 从广义上理解:需求分析包括需求的获取、分析、规格说明、变更、验证、管理的一系列<a href="200603282310205.html" tppabs="http://www.itisedu.com/phrase/200603282310205.html" target="_new">需求工程</a>。</FONT></P>
<P align=center><IMG src="2006327191029479.jpg" tppabs="http://www.itisedu.com/manage/Upload/image/2006327191029479.jpg" border=0> </P>
<P><FONT face=Verdana> 狭义上理解:需求分析指需求的分析、定义过程。</FONT></P>
<P><FONT face=Verdana><STRONG>一、为什么要需求分析</STRONG></FONT></P>
<P><FONT face=Verdana> 需求分析就是分析软件用户的需求是什么.如果投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳.如果费了很大的精力,开发一个软件,最后却不满足用户的要求,从而要重新开发过,这种返工是让人痛心疾首的.(相信大家都有体会)比如,用户需要一个for linux的软件,而你在<a href="200603282233345.html" tppabs="http://www.itisedu.com/phrase/200603282233345.html" target="_new">软件开发</a>前期忽略了软件的运行环境,忘了向用户询问这个问题,而想当然的认为是开发for windows的软件,当你千辛万苦地开发完成向用户提交时才发现出了问题,那时候你是欲哭无泪了,痕不得找块豆腐一头撞死.</FONT></P>
<P><FONT face=Verdana> 需求分析之所以重要,就因为他具有决策性,方向性,策略性的作用,他在软件开发的过程中具有举足轻重的地位.大家一定要对需求分析具有足够的重视.在一个大型<a href="200602281706245.html" tppabs="http://www.itisedu.com/phrase/200602281706245.html" target="_new">软件系统</a>的开发中,他的作用要远远大于<a href="200602281641255.html" tppabs="http://www.itisedu.com/phrase/200602281641255.html" target="_new">程序设计</a>.</FONT></P>
<P><FONT face=Verdana><STRONG>二、需求分析的任务</STRONG></FONT></P>
<P><FONT face=Verdana> 简言之,需求分析的任务就是解决"做什么"的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求.</FONT></P>
<P><FONT face=Verdana><STRONG>三、需求分析的过程</STRONG></FONT></P>
<P><FONT face=Verdana> 需求分析阶段的工作,可以分为四个方面:问题识别,分析与综合,制订规格说明,评审.</FONT></P>
<P><FONT face=Verdana><STRONG> 问题识别</STRONG><BR> 就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准.这些需求包括:功能需求(做什么),性能需求(要达到什么指标),环境需求(如机型,<a href="200602281634075.html" tppabs="http://www.itisedu.com/phrase/200602281634075.html" target="_new">操作系统</a>等),可靠性需求(不发生故障的概率),安全保密需求,用户界面需求,资源使用需求(软件运行是所需的内存,CPU等),软件成本消耗与开发进度需求,预先估计以后系统可能达到的目标.</FONT></P>
<P><FONT face=Verdana><STRONG> 分析与综合</STRONG><BR> 逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分.最后,综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型).</FONT></P>
<P><FONT face=Verdana><STRONG> 制订规格说明书</STRONG><BR> 即编制文档,描述需求的文档称为<a href="200603061756235.html" tppabs="http://www.itisedu.com/phrase/200603061756235.html" target="_new">软件需求</a>规格说明书.请注意,需求分析阶段的成果是需求规格说明书(好象<a href="200604020905295.html" tppabs="http://www.itisedu.com/phrase/200604020905295.html" target="_new">软考</a>曾经考过这个问题),向下一阶段提交.</FONT></P>
<P><FONT face=Verdana> <STRONG> 评审</STRONG><BR> 对功能的正确性,完整性和清晰性,以及其它需求给予评价.评审通过才可进行下一阶段的工作,否则重新进行需求分析。</FONT></P>
<P><FONT face=Verdana><STRONG>四、需求分析的方法</STRONG></FONT></P>
<P><FONT face=Verdana> 需求分析的方法有很多.这里只强调原型化方法,其它的方法如:<a href="200602281749185.html" tppabs="http://www.itisedu.com/phrase/200602281749185.html" target="_new">结构化方法</a>,动态分析法等(个人认为,对初学者不必深究这些方法,实际上我也从来没用过这些方法)在此不讨论.</FONT></P>
<P><FONT face=Verdana> 原型化方法是十分重要的(是软考等常考的知识点).原型就是软件的一个早期可运行的版本,它实现了目标系统的某些或全部功能.</FONT></P>
<P><FONT face=Verdana> 原型化方法就是尽可能快地建造一个粗糙的系统,这系统实现了目标系统的某些或全部功能,但是这个系统可能在可靠性,界面的友好性或其他方面上存在缺陷.建造这样一个系统的目的是为了考察某一方面的可行性,如算法的可行性,技术的可行性,或考察是否满足用户的需求等.如,为了考察是否满足用户的要求,可以用某些<a href="200602282117345.html" tppabs="http://www.itisedu.com/phrase/200602282117345.html" target="_new">软件工具</a>快速的建造一个原型系统,这个系统只是一个界面,然后听取用户的意见,改进这个原型.以后的目标系统就在原型系统的基础上开发.</FONT></P>
<P><FONT face=Verdana> 原型主要有三种<a href="200603051002565.html" tppabs="http://www.itisedu.com/phrase/200603051002565.html" target="_new">类型</a>(软考考过):探索型,实验型,进化型.探索型:目的是要弄清楚对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性.实验型:用于大规模开发和实现前,考核方案是否合适,规格说明是否可靠.进化型:目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统。</FONT></P>
<P><FONT face=Verdana> 在使用原型化方法是有两种不同的策略:废弃策略,追加策略.废弃策略:先建造一个功能简单而且质量要求不高的模型系统,针对这个系统反复进行修改,形成比较好的思想,据此设计出较完整,准确,一致,可靠的最终系统.系统构造完成后,原来的模型系统就被废弃不用.探索型和实验型属于这种策略。</FONT></P>
<P><FONT face=Verdana> 追加策略:先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的核心,然后通过不断地扩充修改,逐步追加新要求,发展成为最终系统。进化型属于这种策略.</FONT></P><FONT face=Verdana>
<P><FONT face=Verdana><STRONG>五、需求分析的20条法则</STRONG>(本节摘自<FONT face=Verdana><a href="200602281725525.html" tppabs="http://www.itisedu.com/phrase/200602281725525.html" target="_new">软件工程</a>专家网)<BR></FONT></FONT></P>
<P><FONT face=Verdana> 客户与开发人员交流需要好的方法。下面建议20条法则,客户和开发人员可以通过评审以下内容并达成共识。如果遇到分歧,将通过协商达成对各自义务的相互理解,以便减少以后的磨擦(如一方要求而另一方不愿意或不能够满足要求)。 </FONT></P>
<P><FONT face=Verdana><STRONG>1、 分析人员要使用符合客户语言习惯的表达 </STRONG><BR> 需求讨论集中于业务需求和任务,因此要使用术语。客户应将有关术语(例如:采价、印花商品等采购术语)教给分析人员,而客户不一定要懂得<a href="200603021438435.html" tppabs="http://www.itisedu.com/phrase/200603021438435.html" target="_new">计算机</a>行业的术语。 </FONT></P>
<P><FONT face=Verdana><STRONG>2、分析人员要了解客户的业务及目标 </STRONG><BR> 只有分析人员更好地了解客户的业务,才能使产品更好地满足需要。这将有助于开发人员设计出真正满足客户需要并达到期望的优秀软件。为帮助开发和分析人员,客户可以考虑邀请他们观察自己的<a href="200603110944215.html" tppabs="http://www.itisedu.com/phrase/200603110944215.html" target="_new">工作流</a>程。如果是切换新系统,那么开发和分析人员应使用一下目前的旧系统,有利于他们明白目前系统是怎样工作的,其流程情况以及可供改进之处。</FONT></P>
<P><FONT face=Verdana><STRONG>3、 分析人员必须编写软件需求报告 </STRONG><BR> 分析人员应将从客户那里获得的所有信息进行整理,以区分业务需求及规范、功能需求、质量目标、解决方法和其他信息。通过这些分析,客户就能得到一份“需求分析报告”,此份报告使开发人员和客户之间针对要开发的产品内容达成协议。报告应以一种客户认为易于翻阅和理解的方式组织编写。客户要评审此报告,以确保报告内容准确完整地表达其需求。一份高质量的“需求分析报告”有助于开发人员开发出真正需要的产品。 </FONT></P>
<P><FONT face=Verdana><STRONG>4、 要求得到需求工作结果的解释说明 </STRONG><BR> 分析人员可能采用了多种图表作为文字性“需求分析报告”的补充说明,因为工作图表能很清晰地描述出系统行为的某些方面,所以报告中各种图表有着极高的价值;虽然它们不太难于理解,但是客户可能对此并不熟悉,因此客户可以要求分析人员解释说明每个图表的作用、符号的意义和需求开发工作的结果,以及怎样检查图表有无错误及不一致等。 </FONT></P>
<P><FONT face=Verdana><STRONG>5、 开发人员要尊重客户的意见 </STRONG><BR> 如果用户与开发人员之间不能相互理解,那关于需求的讨论将会有障碍。共同合作能使大家“兼听则明”。参与需求开发过程的客户有权要求开发人员尊重他们并珍惜他们为项目成功所付出的时间,同样,客户也应对开发人员为项目成功这一共同目标所做出的努力表示尊重。 </FONT></P>
<P><FONT face=Verdana><STRONG>6、 开发人员要对需求及产品实施提出建议和解决方案 </STRONG><BR> 通常客户所说的“需求”已经是一种实际可行的实施方案,分析人员应尽力从这些解决方法中了解真正的业务需求,同时还应找出已有系统与当前业务不符之处,以确保产品不会无效或低效;在彻底弄清业务领域内的事情后,分析人员就能提出相当好的改进方法,有经验且有创造力的分析人员还能提出增加一些用户没有发现的很有价值的系统特性。 </FONT></P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -