项目管理人员继续教育论文第1页共5页项目需求分析摘要:需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。需求分析在IT项目中具有十分重要的作用。IT项目的需求分析不仅是项目的开端,也是确保项目成功的基石。本文从IT项目的需求定义、重要性、过程、方法等层面来了解IT项目的需求分析。关键词:项目需求分析定义过程方法一、需求的定义和重要性(一)需求的定义软件需求是(1)用户解决问题或达到目标所需条件或权能(Capability)。(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能。(3)一种反映上面(1)或(2)所述条件或权能的文档说明。当然了,软件需求也分为了业务需求、用户需求、软件系统需求。(二)需求的重要性需求是产品的根源,需求工作的优劣对于产品的影响最大。就像一条河流,如果源头被污染了,那么整条河流就被污染啦。因此来说软件需求分析特别重要。在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中的一个简单步骤,但在过去十多年中越来越多的人认识到它是整个过程中最最关键的一个过程。只有通过软件需求分析,才能把软件功能和性能的总体概念描述为具体的软件需求规格说明,从而奠定软件开发的基础。许多大型应用系统的失败,最后均归结到需求分析的失败:要么获取需求的方法不当,使得需求分析不到位或不彻底,导致开发者反复多次地进行需求分析,致使设计、编码、测试无法顺利进行;要么客户配合不好,导致客户对需求不确认,或客户需求不断变化,同样致使设计、编码、测试无法顺利进行。安全表明,要修正在产品付诸应用后所发现的一个需求的缺陷,将比在需求阶段改正这个错误要多付出大约高达百倍的成本,约有80%的IT项目失败源于项目管理人员继续教育论文第2页共5页需求分析不当所致。只有一个详细的、全面的、具体的需求分析,项目才能顺利、快速的完成。二、需求分析的过程需求分析阶段的工作,可以分为四个方面:调研、分析与综合、定义、评审。调研就是收集需求,细化整理并转化为客户需求。而调研的一般步骤是:制定需求调研计划;确定交流角色和方式;准备规范文件和问卷;组织考察、交流和讨论活动;形成需求调研记录。分析与综合逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分。最后,综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型)。定义即编制文档,描述需求的文档称为软件需求规格说明书。请注意,需求分析阶段的成果是需求规格说明书,向下一阶段提交。评审对功能的正确性,完整性和清晰性,以及其它需求给予评价。评审通过才可进行下一阶段的工作,否则重新进行需求分析。三、需求分析的方法需求分析的方法有很多。这里主要介绍结构化方法、面向对象分析法、原型化方法,其他的分析方法就不讲述了。(一)结构化分析法结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。结构化分析的步骤如下:(1)通过对用户的调查,以软件的需求为线索,获得当前系统的具体模型(2)去掉具体模型中非本质因素,抽象出当前系统的逻辑模型项目管理人员继续教育论文第3页共5页(3)根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型(4)完善目标系统并补充细节,写出目标系统的软件需求规格说明(5)评审直到确认完全符合用户对软件的需求结构化分析的常用工具:1、数据流图(DFD-DataFlowDiagram)数据流图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。建立数据流图步骤如下:(1)由外向内:先画系统的输入和输出,然后再画系统的内部(2)自顶向下:顺序完成顶层、中间层、底层数据流图(3)逐层分解2、数据字典(DD-DataDictionary)数据字典是结构化分析方法的核心。数据字典是对所有与系统相关的数据元素的一个有组织的列表,以及精确严格的定义,使用户和系统分析员对输入、输出、存储和中间结果有共同的理解。数据字典的作用是对数据流图(DFD)中出现的被命名的图形元素的确切解释,通常数据词典包含的信息有:名称、别名、何处使用/如何使用、内容描述、补充信息等。3、判定树使用判定树进行描述时,应先从问题定义的文字描述中分清哪些是判定条件,哪些是判定结论,根据描述材料中的连接词找出判定条件之间的从属关系、并列关系、选择关系,根据它们构造判定树。4、判定表判定表和判定树似是而非,当数据流图中的加工要依赖于多个逻辑条件的取值,即完成该加工的一组动作是由于某一组条件取值的组合而引发的,使用判定表描述比较适宜。判定由四部分组成:(1)基本条件;(2)条件项;(3)基本动作;(4)动作项(二)面向对象分析法项目管理人员继续教育论文第4页共5页面向对象分析法主要是讲了动态模型方法。动态模型是描述与操作时间和顺序有关的系统特征、影响更改的事件、事件的序列、事件的环境以及事件的组织。动态模型是借助顺序图、协作图、状态图和活动图来描述系统的。动态模型的每种作用图都有助于理解系统的行为特征。对于开发人员来说,动态建模具有明确性、可视性和简易性的特点。顺序图:用于描述执行系统功能的各个角色之间相互传递信息的顺序关系,显示跨越多个对象的系统控制流程。协作图:用于描述相互合作的对象间的交互关系和链接关系。活动图:用于对一个系统的动态方面建模。活动图是描述交互关系的一种方式,着重体现对象的工作流程。状态图:通常是对类描述的补充,它说明该类的对象所有可能的状态以及那些事件将导致状态的改变。大量成功的软件工程实践了动态模型的补助性,而动态模型的优越性使得该方法被广泛接受。动态建模的优势性列举如下:1:如同建筑物或永恒的建筑模型可显示施工场地的结构和设计一样,动态模型使用户和开发人员能更容易地理解构思中的系统。2:建模有助于解释状态的更改,并且借助每个状态图和时序图可降低系统的复杂度。3:借助于动态模型,可监视构思中的系统是否存在任何类型的缺陷,如果在开发开始后才发现这些缺陷,则可能需要付出昂贵的代价。4:维护模型比维护系统容易得多,成本也降低了很多。(三)原型化法原型化方法是十分重要的。原型就是软件的一个早期可运行的版本,它实现了目标系统的某些或全部功能。原型化方法就是尽可能快地建造一个粗糙的系统,这系统实现了目标系统的某些或全部功能,但是这个系统可能在可靠性,界面的友好性或其他方面上存在缺陷。建造这样一个系统的目的是为了考察某一方面的可行性,如算法的可行性,技术的可行性,或考察是否满足用户的需求等。如,为了考察是否满足用户的要求,项目管理人员继续教育论文第5页共5页可以用某些软件工具快速的建造一个原型系统,这个系统只是一个界面,然后听取用户的意见,改进这个原型。以后的目标系统就在原型系统的基础上开发。原型主要有三种类型:探索型,实验型,进化型。探索型:目的是要弄清楚对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性。实验型:用于大规模开发和实现前,考核方案是否合适,规格说明是否可靠。进化型:目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统。在使用原型化方法是有两种不同的策略:废弃策略,追加策略。废弃策略:先建造一个功能简单而且质量要求不高的模型系统,针对这个系统反复进行修改,形成比较好的思想,据此设计出较完整、准确、一致、可靠的最终系统。系统构造完成后,原来的模型系统就被废弃不用。探索型和实验型属于这种策略。追加策略:先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的核心,然后通过不断地扩充修改,逐步追加新要求,发展成为最终系统。进化型属于这种策略。结语:通过本文你已经了解了软件开发需求分析的重要性和软件分析的过程方法,并知道了几种分析方法的工具,对需求分析的认知有很大作用。最后在这里只能说需求分析是软件开发的重中之重,如果要开发好的软件必须要有好的需求分析。参考文献:[1]《系统分析与设计方法》(SystemAnalysisandDesignMethods,fifthEdition),JeffreyL.等著,高等教育出版社,2001年6月。[2]《UML面向对象设计基础》,MeilirPage-Jones著,包晓露等译,人民邮电出版社,2001年4月第1版。[3]《统一软件开发过程》,IvarJacobson,JamesRumbaugh,GradyBooch著,周伯生译,机械工业出版社,2002年1月。