软件开发流程-需求调研阶段
2014-04-24 15:47:15 访问:
一、需求分析-简介
需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件危险和评估项目代价,最终造成开发打算的一个庞杂过程。(这个和我在微软休会到的又不太一样,微软的需求分析大多是市场职员和用户帮助小组的人去评估用户的接收水平,这一点也可以理解,由于公司的性质有基本差异)在这个进程中,用户确实是处在主导位置,需求分析工程师和名目经理要负责收拾用户需求,为之后的软件设计打下基础。
需求分析阶段停止后,要求得到:
1.SRS文档(SystemRequirementSpecification)
2.DRM文档
3.AcceptancePlan
从狭义上理解:需求分析包括需求的获取、分析、规格说明、变革、验证、管理的一系列需求工程。
狭义上理解:需求分析指需求的分析、定义过程。
二、需求分析-起因
需求分析就是分析软件用户的需求是什么.如果投入大批的人力,物力,财力,时光,开发出的软件却没人要,那所有的投入都是徒劳.假如费了很大的精神,开发一个软件,最后却不满足用户的要求,从而要从新开发过,这种返工是让人痛心疾首的.(信任大家都有领会)比方,用户需要一个forlinux的软件,而你在济南软件开发前期疏忽了软件的运行环境,忘了向用户讯问这个问题,济南森普,而想当然的以为是开发forwindows的软件,当你含辛茹苦地开发完成向用户提交时才发明出了问题,那时候你是欲哭无泪了,痕不得找块豆腐一头撞逝世.
需求分析之所以重要,就因为他具备决议性,方向性,策略性的作用,他在济南软件开发的过程中存在举足轻重的地位.大家必定要对需求分析拥有足够的器重.在一个大型软件系统的开发中,他的作用要远弘远于程序设计.
三、需求分析-义务
简言之,需求分析的任务就是解决"做什么"的问题,就是要全面地舆解用户的各项要求,并精确地表白所接受的用户需求.
四、需求分析-过程
需求分析阶段的工作,可以分为四个方面:问题识别,分析与综合,制定规格说明,评审.
1.问题辨认
就是从系统角度来懂得软件,断定对所开发系统的综合要求,并提出这些需求的实现前提,以及需求应当到达的尺度.这些需求包含:功能需求(做什么),机能需求(要达到什么指标),环境需求(如机型,操作系统等),可靠性需求(不产生故障的概率),保险保密需求,用户界面需求,资源使用需求(软件运行是所需的内存,CPU等),软件本钱耗费与开发进度需求,预先估量以后系统可能达到的目标.
2.分析与综合
逐渐细化所有的软件功能,找出系统各元素间的接洽,接口特征和设计上的限度,剖析他们是否满意需要,剔除分歧理局部,增添须要部门.最后,综合成系统的解决计划,给出要开发的系统的具体逻辑模型(做什么的模型).
3.制订规格仿单
即编制文档,描写需求的文档称为软件需求规格说明书.请留神,需求分析阶段的结果是需求规格说明书(好象软考曾经考过这个问题),向下一阶段提交.
4.评审
对功能的准确性,完整性和清楚性,以及其它需求给予评估.评审通过才可进行下一阶段的工作,否则重新进行需求分析。
五、需求分析-方法
需求分析的方法有良多.这里只强调原型化方法,其它的方法如:构造化方法,动态分析法等??素来没用过这些方法)在此不探讨.原型化方法是非常主要的(是软考等常考的常识点).原型就是软件的一个早期可运行的版本,它实现了目标系统的某些或全部功能.
原型化办法就是尽可能快地建造一个毛糙的系统,这系统实现了目的系统的某些或全体功能,然而这个系统可能在可靠性,界面的友爱性或其余方面上存在缺点.建造这样一个系统的目标是为了考察某一方面的可行性,如算法的可行性,技巧的可行性,或考察是否知足用户的需求等.如,为了考核是否满意用户的要求,能够用某些软件工具疾速的建造一个原型系统,这个系统只是一个界面,而后听取用户的看法,改良这个原型.当前的目标系统就在原型系统的基本上开发.
原型重要有三品种型(软考考过):探索型,实验型,进化型.探索型:目的是要弄明白对目标系统的要求,肯定所盼望的特性,并探讨多种方案的可行性.实验型:用于大范围开发和实现前,考察方案是否适合,规格解释是否可靠.进化型:目的不在于改进规格阐明,而是将系统建造得易于变更,在改进原型的过程中,逐步将原型进化成最终系统。
在应用原型化方式是有两种不同的策略:废弃策略,追加策略.放弃策略:先建造一个功效简略而且品质请求不高的模型体系,针对这个系统重复进行修正,构成比拟好的思维,据此设计出较完全,正确,一致,牢靠的终极系统.系统结构实现后,本来的模型系统就被废弃不必.摸索型跟试验型属于这种策略。
追加策略:先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的中心,然后通过一直地裁减修改,逐步追加新要求,发展成为最终系统。进化型属于这种策略.