如何做一个软件需求分析师(转来的)

这篇不想再去重复一个软件需求分析员的知识体系结构,而是挑重点来谈下成为一个合格的软件需求分析人员的关键点。

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

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

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

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

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

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

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

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

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

-----------------------------------------------------------------------

原文地址:http://www.zhihu.com/question/21897529

时间: 2024-10-06 19:58:57

如何做一个软件需求分析师(转来的)的相关文章

如何做一个软件项目经理? ----写给公司所有的开发人员

注:文本中的"我",均是网上作者(前三部分来自网络文章,第四部分除外). 第一部分:软件项目经理的要求 首先是一个管理者,其次熟悉某些工具,某几种语言,行业背景,项目管理技能. 软件项目经理面临的恶劣环境,我们绝大部分软件企业运行在相对混乱的状态(CMM一级),组织不大可能对项目以及项目经理的责任做出明确.合适的界定,所以,影响项目成功的一切因素都是项目经理的责任,包括客户.环境.考核.激励等等. 一.责任心.取得项目的成功无疑是项目经理的责任.项目经理只有把客户的满意和企业长期利益作

让你提前认识软件开发(50):软件需求

第3部分 软件研发工作总结 软件需求 软件工程师的工作职责是什么?一句话,就是完成软件需求.大家每天都接触到的软件,都是从软件需求一步步进化而来的.那么,软件需求是什么?如何完成需求?在完成需求的过程中我们要注意哪些问题呢?本文将为你解答这些问题. 1. 什么是软件需求? 通俗地讲,软件需求是指要求软件开发工程师完成的软件的功能.例如,如果要求一个软件具备文件处理的能力,要求一个WEB页面具备显示客户信息的能力,要求一款手机具备指纹识别的能力,等等,这些要求都是软件需求. 用较为专业一点的术语来

软件系统开发之前要做的事—需求调研框架

近期在做的一个软件需求调研,从以下一些方面进行了了解,当然这些只是初步的一个需求框架,还打不到设计开发的基本,只是让软件公司能够对软件需求有一个总体的了解而方便对软件有一个大概的估算. 公司情况 实现的根本目的 现有软件情况(现有应用.架构部署情况.使用技术:技术文档.是否需要进行数据对接,需对接方是否提供技术支持) 涉及人员 业务类型 业务流程 业务规则 关注重点 其他非功能性需求 数据规模 数据频率 应用环境

软件需求与分析 - 认识

经验人 1 :没有技术背景很难真正成为一个优秀的软件需求分析师,最多也就是一个业务需求分析师. 经验人2 :软件需求在整个软件生命周期中的定位来看,其上接业务,下接设计和技术.从这个概念上来讲软件需求人员必须具备业务和技术两个方面的能力. 菜鸟的软件需求分析知识体系架构 个人认识: 我以为对于软件需求来说,我感觉并不需要什么具体的知识体系,会局限我们的想法(我的意思是不要让思想拘束起来,解决了本质问题的就是好方法),私以为:需求的目的是做出"符合"的软件,用户想要的 和软件功能的符合.

做一个具有图片读入,写出,灰度化,黑白化的有图形界面的小软件

我们这一次的树莓基础的作业是做一个做一个具有图片读入,写出,灰度化,黑白化的小软件,我采用的是java,因为java有大量性能非常好的接口可用,譬如在图片这块,ImageIO,BufferedImage都是非常好用的,而我这一次作业也是使用这两个包. 首先我们要解决的是界面,界面可以直接用JFrame来打, 非常简单,我的界面有一个菜单栏和一个图片显示区,菜单栏有三个选项:文件,转换,保存,文件菜单有一个子菜单:打开文件,转换菜单有两个子菜单:变成灰度和变成黑白,保存菜单有三个子菜单:jpg,

电脑监控软件助您明辨是非做一个睿智的管理者

现在的企业员工动不动就是请假,迟到,闹小脾气,一点肯吃苦的念头都没有,企业管理者头痛不已,为了管理好企业的员工,提高工作效率,还 得绞尽脑汁照顾好每个人的感受,说你偏心,搞特殊,区别对待,字字扎心让管理者们生无可恋,每位员工都像金马影帝,上班期间表面功夫做的 十分到位,背地里不务实事,聊天 购物 电影 游戏一个也没落下,没有实锤,和足够的的魄力根本管理不好现在的员工.大多数人都知道,职场如 战场.不论男女,无论老少,职场"绿茶"已经是扎根在各大公司的物种了.这种人有什么特点呢?他们总是

需求工程-软件需求模式读书笔记1

今天读完这本书<软件需求模式>的第一部分,也就是准备阶段. 需求分析是困难的.需求分析师又往往缺少经验和训练.本书的目的是帮助和决定新的软件应该走什么,建议添加那些额外的特性,使系统更好或更卓越.需求模式是经验的结晶,本书主要建好了37个模式,解决了所有系统中反腐出现的特定问题.适合业务分析师.软件架构师和工程师.软件开发人员.软件测试人员.项目经理等人员阅读.. 软件系统的需求定义他要定义的问题:它的的意图和目的.为了更好地构造系统需要一系列的改进.该书主要可分为两部分:第一部分:解释开始,

需求输出---一个创业团队需求卡壳的故事

需求分析也称为软件需求分析.系统需求分析或需求分析工程等,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能.性能.可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程. 以上摘自百度<需求分析>词条,软件开发中,需求分析师(或称为产品经理)承担着将用户需求转化为实际的产品理念与原型的责任,如果这一环出问题,整个团队开发进度将停滞. 以下是忠哥真实经历: 16年9月,为某农业产业链公司任职,担当技术重责,搭建农业产业化平台,后精细化为供应链金融平

《软件需求最佳实践》阅读笔记一

这本书主要从软件需求实践中出现的主要问题和困难入手,指出了改造的主要方法,然后逐一说明了需求定义.需求捕获.需求分析与建模.编写规约.需求验证等需求开发活动的任务.要点和具体手段.还对包括需求基线.变更管理.需求跟踪在内的需求管理活动的操作要点进行了阐述. 软件项目实施过程中,会遇到很多的问题,有的甚至许多项目根本无法达到预期的目标,这些问题的根源就是软件需求实践.“在中国做软件太难了!客户连自己的需求都说不清楚!”,这种抱怨的话经常被做软件需求的人说到.需求失败也是因为不完整的需求.缺乏用户参