知乎问答-如何做一个软件需求分析师

标签: 随笔文章 | 发表时间:2013-10-30 11:32 | 作者:人月神话
出处:http://blog.sina.com.cn/cmmi
这个问题很大,这篇不想再去重复一个软件需求分析员的知识体系结构,而是挑重点来谈下成为一个合格的软件需求分析人员的关键点。

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

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

对于业务,首先要解决的是对业务的理解,然后才是在理解后业务的形式化表达和业务建模能力。而对业务如何理解,最核心的仍然是顶层的流程建模和分析能力,底层的业务活动和规则清晰的描述能力。在这里里面涉及到流程梳理和定义能力,业务单据和对象的抽取和定义能力,业务规则的清晰阐述能力,和流程配套的相关的岗位角色,交互等描述能力。要知道在这块往往并不需要太多的IT背景和软件工程的知识,更多的是对业务的熟悉,对流程管理和分析方法的了解。

上面一步的业务更多的是属于顶层方面的内容,而第二个层面往往会过渡到系统软件需求层面的内容,在这里我们更加强调的是类似面向对象的用例分析和建模的方法,这包含了业务用例和系统用例分析和建模,是一种很好的形式化的方式来定义和描述业务的方法。包括从流程分析转入到用例,单个具体的用例分析和建模,每个用例详细的基本流,扩展流,业务规则,参与角色,界面原型,业务对象和对象属性等各个方面内容的描述,要知道我们做用例建模的目的是能够按用例驱动的核心,平滑的转入到架构设计中去,因此用例分析建模已经不是简单的描述现实世界的问题,已经涉及到业务或用户需求到系统需求的第一层抽象转换。

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

没有技术背景很难真正成为一个优秀的软件需求分析师,最多也就是一个业务需求分析师。

要知道,当你进行用户需求调研后,往往收集到的都是一个个的用户需求点,而一个软件需求分析员要做的是最终将这些需求实现为一个完整的业务系统。这里面就涉及到业务模块的划分,模块间的分析,需求层面的复用能力分析,各种性能,可靠性,安全等非功能性需求。这些更加已经是一个完全的系统分析方面的内容,或者说软件需求已经会兼顾部分软件架构设计的内容,因此作为一个软件需求人员更加需要去了解业务组件化,服务化,软件模块集成,复用等方面的技术内容。也需要去了解涉及到UCD,交互设计方面的内容,这些都是形成一个高质量的软件业务系统的重要输入。

一个优秀的软件需求人员既不应该因为具备技术和开发背景而导致在需求分析和建模中的各种程序员思维,也不应该完全抛弃技术单纯的去描述业务不管实现的难易度。软件需求人员衔接了最终用户和内部的设计开发,是两者之间重要的沟通和协同桥梁。各种沟通和人际关系处理技巧,各种软技能的要求更是必不可少的,在此不再展开去描述。

一个优秀的软件需求人员不存在是否能做新领域的软件需求的问题,因为最终真正有用的需求分析的方法论和模式,去理解和熟悉业务和快速形式化描述和建模的方法,有不断的实践总结出来的快速理解业务的能力。

  青春就应该这样绽放   游戏测试:三国时期谁是你最好的兄弟!!   你不得不信的星座秘密

相关 [软件 需求分析] 推荐:

如何开展软件架构之需求分析

- - CSDN博客架构设计推荐文章
如何开展软件架构之需求分析.  在开始讨论如何开展软件架构之前,先让我们来看一张漫画. 相信大家看到这漫画的时候,总会不自主地会心一笑,客户希望得到礼物,我们却给了他一骨头. 一):未进行充分地需求分析. 解析:架构师未能初别用户群及使用环境约束因素,也许在接到项目时,他还在想着上一个为狗开发的项目,在这个项目中自然而然地认为用户是狗.

知乎问答-如何做一个软件需求分析师

- - 人月神话的BLOG
这个问题很大,这篇不想再去重复一个软件需求分析员的知识体系结构,而是挑重点来谈下成为一个合格的软件需求分析人员的关键点. 我原来对软件需求的定义或描述更多是偏于对现实世界的定义,而对软件架构的描述为现实到实现之间的第一层抽象. 在这里纠正一下即:用户需求是对现实世界的定义,而软件系统需求是现实到实现的第一层抽象,即业务建模和软件系统用例建模.

如何做需求分析

- - 人人都是产品经理
这段时间我做了两个大项目,其中一个项目算是商业模式上和使用规范上的调整,另一个项目是之前功能的重做,为什么重做我下面会说到. 关于需求分析,我认为把需求抽象成产品功能花费的时间占到了软件开发周期的40%,产品设计到评审完的时间大概是20%,也就是说实际开发之前产品团队介入的工作占据项目的60%,在需求分析阶段我有一些个人观点.

需求分析中的产品定位

- Jessica - 所有文章 - UCD大社区
看过《定位》最大的感受就是产品在诞生之前就决定了他是否能存活或成功. 就像走在商场中,面对玲琅满目的产品,你似乎很难找到一两款绝对同质化的大品牌:. 各式的服装,NIKE的衣服是运动的,但也不会和做户外运动的哥伦比亚冲突. 都是做化妆品,Fancl打出“无添加”没有防腐剂也收获了一群喜爱天然的用户…...

框计算中的需求分析概述

- Michael - 搜索研发部官方博客
框计算的目标是为用户提供基于搜索框的一站式搜索服务. 举例来说,当用户在搜索框中输入“非诚勿扰”时,系统就能明确该query有寻求电视节目视频、电影视频、查找影评、参与讨论及查看相关新闻等需求,然后将这些不同的需求分配给最优的内容资源或应用进行处理,最终精准高效地将满足这些需求的结果展现给用户. 图1展示了“框”对query“非诚勿扰”的满足情况.

需求分析挑战之旅——疯狂的订餐系统

- Bloger - 博客园-首页原创精华区
说教性质的需求分析理论,各位看了也白看,所以咱们就来一个真实个案——“订餐系统”体验一下. “订餐系统”貌似简单,但陷阱重重,各种需求分析的经典场景将会一一重现,各位做好准备接受这个挑战没有. 本文文字超过1万1千字,而且有n多图片和思考题,请准备好盒饭边吃边看吧……. 如果觉得看文章麻烦,可看本文对应的视频课程:http://www.cnblogs.com/umlonline/archive/2011/07/20/2111430.html.

产品需求分析:用户的“奶酪”不要碰

- paaboo - 所有文章 - UCD大社区
花了差不多2周时间去研究了卖猪肉的商贩,当和行业内朋友谈及这个形象的范例时,他们满是奇怪表情,因为一个做互联网产品的人,不好好做的你的产品,去研究卖猪肉商贩干什么. 先别急,我们都知道产品需求分析是一个产品经理必修课,其实就是在项目立项之后需要把抽象的产品概念及用户业务核心需和内部的发散性的功能点集中并提炼出来并形成一个具体可见可演示的成果.

互联网社会化系列之网民的需求分析

- - 互联网的那点事
网民的需求是互联网创新的基础,在互联网社会化的大背景下,网民的需求与时俱进,希望能就此背景下得网民需求进行一个框架性的讨论. 互联网在社会化之前,网民获取资讯内容的方式是访问各大门户网站,论坛以及通过搜索引擎,网民们需要主动访问来获取自己所需的资讯内容. 一般是有价值的资讯在哪里,网民就往哪个网站汇集.

2012.5.23微博热报:需求分析、性能调优

- - InfoQ cn
@阿里巴巴中国在 微博中举了一个对设计花瓶的需求分析示例,引起了大家对需求分析技巧的讨论; @左耳朵耗子在 微博中表示性能调优不一定要自己使用缓存,因为许多层面已经设计了缓存机制. @阿里巴巴中国在 微博中举了一个例子:“需求方说:帮我设计一个花瓶. 小A肯定做出了花瓶,但是未必是顾客想要的.