《软件需求最佳实践》——对需求的认识

迭代和瀑布过程

瀑布风格:基于活动来分解项目,做需求分析、设计、编码、测试,为期一年的项目可能要做两个月的分析阶段,然后是四个月的设计阶段,接着是三个月的编码阶段,最后是三个月的测试阶段。

迭代风格:根据功能子集来分解项目,可能把一年分解为三个月的迭代,在第一次迭代中,处理四分之一的需求,并对这四分之一做完整的软件生命周期:分析、设计、编码、测试。在第一次迭代结束后,你拥有了一个做了四分之一所需功能的系统,然后,你再做第二个迭代,这样在六个月结束后,你就拥有了一个完成一半功能的系统。每一个迭代产生的已测试、已集成的代码,代码都尽可能接近于产品级质量。

或者可以将两者杂化,先用瀑布风格完成需求分析和设计,后面的编码和测试按照迭代的风格进行。

一、软件需求的概念

软件需求照字面意思来说,就是因为某种需求需要开发软件,但是这个需求是什么呢,按照书上给的含义是业务需求和用户需求以及软件需求,其中业务需求指的是从业务角度描述的指导软件开发的高层需求,为了解决企业中什么问题,或者抓住外部环境带来的机会发展,比如现在互联网行业发达,有部分传统行业也和互联网行业挂钩,比如家电行业,现在和互联网结合在一起,进入物联网行业,发展能能家电;用户需求指的是用户需要用这个软件完成什么任务,怎么完成,通过用户访谈,调研还有用户场景的模拟获取,具体涉及到软件如何去执行。

二、为什么要有需求分析师这个岗位

我看过一幅漫画,是不同眼中的人听到客户的描述后再将其展示出来的图像,客户只是想要一个在荡在树上的秋千,但是因为每个人的职位不同,关注点就会不同,那么对需求信息的理解也就会发生很大变化,从而导致信息的内容发生改变,而这个问题产生的最大原因就是沟通失真,恰巧,现在开发行业容易出现项目延期,程序员叫苦不迭,也是因为需求不完整或者需求不到位,没有完整的捕获到客户的需求,所以不断进行修改,那么程序员的任务量就会加重,,不仅造成项目推迟超出预算,而且影响公司的口碑。

需求分析师其实就是程序员与客户之间沟通的桥梁,在深厚的业务基础上,了解客户的问题,然后将客户的需求转换成软件需求,找到合适的解决方式。

三、需求分析师主要做什么

需求管理(需求获取,需求分析,需求规格书写,需求验证,需求变更)

需求分析师需要做的事情有:

1、需求定义,项目背景点分析,问题时什么,确定相关人员和用户,针对不同层级的用户记性划分,然后对每类用户的特点进行分析。

2、需求的捕获,有一点很重点,一定要主动获取需求,不要等待别人来说,可以通过调研,访谈等方式,要善于问为什么。

3、需求分析和建模,获取了多种需求,而在相应的用户身上肯定认为自己的需求是最重要的,那么需求人员就需要将所有的需求统一起来,分析是为什么要这么做,有没有更好的解决方式,可不可以进行转换,进行优先级排序,在整个过程中,可以使用UML建模语言帮助你进行分析,比如流程图——搞清楚每个业务事件的过程,类图——了解业务术语间的关系,用例图——确定不同角色的任务。

4、软件需求规格说明书的书写。

5、需求的验证和评审。

6、界面原型绘制,如果是静态的,可以使用visio,如果强调交互,可以使用axure。

四、需求分析师的基本技能有什么

软技能:良好的沟通能力(引导客户,与客户沟通,与开发人员沟通,与测试沟通),逻辑分析能力(业务事件的逻辑),写作能力(软件需求说明书,用户说明书)

硬技能:业务经验,软件技能包括编程语言和原型的绘制

五、需求分析后的产出是什么

1、原型图

2、软件需求规格说明书(后面简称说明书)。重点说一些软件说明书,不同的企业对于说明书的要求可能不一样,但是不管是哪个企业,在说明书中都要包括以下几方面

(一)文档概述

        编写目的

        背景

        专业词汇定义

(二)整体说明

让读者读整个软件系统的需求有一个框架性认识。主要包括产品总体效果,产品功能,用户特征等

         用例模型

         假设与依赖关系

(三)具体需求

         用例描述

         补充需求

你可能感兴趣的:(《软件需求最佳实践》——对需求的认识)