51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2467|回复: 1
打印 上一主题 下一主题

[转贴] 【经验】如何做一个软件需求分析师?优秀的需求分析师有什么样的品质?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2017-8-10 13:55:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
转自知乎

用户 小五哥:
首先得明白软件需求分析师在软件过程中所处的位置。
我们知道软件过程大概可以分为启动、需求、设计、开发、测试、部署和维护。很明显,需求分析员是在需求阶段上启到承上启下的作用。
其次,软件需求分析师在需求阶段需要做哪些事。
接收需求定义,捕获客户的需求、分析建模、编写规格书和确认。最终的目的就是提供一份完整的,无错误的、无二义性的、可测试的软件需求规格书做为下一阶段即启动设计的输入。
最后,软件需求分析师在整个实施过程中还需要做哪些事。
在软件需求规格书给到一阶段后,必不可少的要进行需求讲解,让技术、开发、测试更好地工作。(题外话,有人说要进行需求讲解的话,这个规格说明书肯定有问题。这种说法不太赞同)在测试阶段需要做需求验证,接收分析用户反馈的问题并有目的的修改。
很显然,从上文我们可以看出来软件需求分析师要具备的品质有:
1、沟通能力;
2、文档编写能力;
3、软件分析建模能力;
4、团队精神……


用户 何明璐:
这个问题很大,这篇不想再去重复一个合格的软件需求分析人员的关键点。

我原来对软件需求的定义或描述更多是偏于对现实世界的定义,而对软件架构的描述为现实到实现之间的第一层抽象。在这里纠正一下即:用户需求是对现实世界的定义,而软件系统需求是现实到实现的第一层抽象,即业务建模和软件系统用例建模。在原来的软件工程里面我们更多谈到的一个词是系统分析员,我现在将其拆分为了软件需求BA和系统架构SA两个角色。而实际上一个真正优秀的软件需求人员必须具备两方面的能力。

从软件需求在整个软件生命周期中的定位来看,其上接业务,下接设计和技术。从这个概念上来讲软件需求人员必须具备业务和技术两个方面的能力。                                       

对于业务,首先要解决的是对业务的理解,然后才是在理解后业务的形式化表达和业务建模能力。而对业务如何理解,最核心的仍然是顶层的流程建模和分析能力,底层的业务活动和规则清晰的描述能力。
在这里里面涉及到流程梳理和定义能力,业务单据和对象的抽取和定义能力,业务规则的清晰阐述能力,和流程配套的相关的岗位角色,交互等描述能力。要知道在这块往往并不需要太多的IT背景和软件工程的知识,
更多的是对业务的熟悉,对流程管理和分析方法的了解。上面一步的业务更多的是属于顶层方面的内容,而第二个层面往往会过渡到系统软件需求层面的内容,在这里我们更加强调的是类似面向对象的用例分析和建模的方
法,这包含了业务用例和系统用例分析和建模,是一种很好的形式化的方式来定义和描述业务的方法。包括从流程分析转入到用例,单个具体的用例分析和建模,每个用例详细的基本流,扩展流,业务规则,参与角色,
界面原型,业务对象和对象属性等各个方面内容的描述,要知道我们做用例建模的目的是能够按用例驱动的核心,平滑的转入架构设计中去,因此用例分析建模已经不是简单的描述现实世界的问题,已经涉及到业务或用户
需求到系统需求的第一层抽象转换。

要做好需求的第二步的事情,那么单纯的只有业务背景就不足够的,必须还具备相应的IT和软件工程的技术背景。这个背景往往并不是说要做过多久的软件设计开发,但是只是是做过,通过软件开发你能够很清楚的知道一个软件从需求调研和分析开始,最终是如何形成一个软件系统的。这个背景知识可以更加方便我们去考虑用例建模,去认识到为何要采用这种方式去用例建模,真正理解用例中每个描述点如何影响到最终业务系统的实现。        

没有技术背景很难真正成为一个优秀的软件需求分析师,最多也就是一个业务需求分析师。要知道,当你进行用户需求调研后,往往收集到的都是一个个的用户需求点,而一个软件需求分析员要做的是最终将这些需求实现为一个完整的业务系统。这里面就涉及到业务模块的划分,模块间的分析,需求层面的复用能力分析,各种性能,可靠性,安全等非功能性需求。这些更加已经是一个完全的系统分析方面的内容,或者说软件需求已经会兼顾部分软件架构设计的内容,因此作为一个软件需求人员更加需要去了解业务组件化,服务化,软件模块集成,复用等方面的技术内容。也需要去了解涉及到UCD,交互设计方面的内容,这些都是形成一个高质量的软件业务系统的重要输入。                                       
一个优秀的软件需求人员既不应该因为具备技术和开发背景而导致在需求分析和建模中的各种程序员思维,也不应该完全抛弃技术单纯的去描述业务不管实现的难易度。软件需求人员衔接了最终用户和内部的设计开发,是两者之间重要的沟通和协同桥梁。各种沟通和人际关系处理技巧,各种软技能的要求更是必不可少的,在此不再展开去描述。                                                                                                                                一个优秀的软件需求人员不存在是否能做新领域的软件需求的问题,因为最终真正有用的需求分析的方法论和模式,去理解和熟悉业务和快速形式化描述和建模的方法,有不断的实践总结出来的快速理解业务的能力。                                
                        
               
                                       
                        
               
                                         
                        
               
        





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-25 19:57 , Processed in 0.061160 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表