这个问题很大,这篇不想再去重复一个软件需求分析员的知识体系结构,而是挑重点来谈下成为一个合格的软件需求分析人员的关键点。
我原来对软件需求的定义或描述更多是偏于对现实世界的定义,而对软件架构的描述为现实到实现之间的第一层抽象。在这里纠正一下即:用户需求是对现实世界的定义,而软件系统需求是现实到实现的第一层抽象,即业务建模和软件系统用例建模。在原来的软件工程里面我们更多谈到的一个词是系统分析员,我现在将其拆分为了软件需求BA和系统架构SA两个角色。而实际上一个真正优秀的软件需求人员必须具备两方面的能力。
从软件需求在整个软件生命周期中的定位来看,其上接业务,下接设计和技术。从这个概念上来讲软件需求人员必须具备业务和技术两个方面的能力。
对于业务,首先要解决的是对业务的理解,然后才是在理解后业务的形式化表达和业务建模能力。而对业务如何理解,最核心的仍然是顶层的流程建模和分析能力,底层的业务活动和规则清晰的描述能力。在这里里面涉及到流程梳理和定义能力,业务单据和对象的抽取和定义能力,业务规则的清晰阐述能力,和流程配套的相关的岗位角色,交互等描述能力。要知道在这块往往并不需要太多的IT背景和软件工程的知识,更多的是对业务的熟悉,对流程管理和分析方法的了解。
上面一步的业务更多的是属于顶层方面的内容,而第二个层面往往会过渡到系统软件需求层面的内容,在这里我们更加强调的是类似面向对象的用例分析和建模的方法,这包含了业务用例和系统用例分析和建模,是一种很好的形式化的方式来定义和描述业务的方法。包括从流程分析转入到用例,单个具体的用例分析和建模,每个用例详细的基本流,扩展流,业务规则,参与角色,界面原型,业务对象和对象属性等各个方面内容的描述,要知道我们做用例建模的目的是能够按用例驱动的核心,平滑的转入到架构设计中去,因此用例分析建模已经不是简单的描述现实世界的问题,已经涉及到业务或用户需求到系统需求的第一层抽象转换。
要做好需求的第二步的事情,那么单纯的只有业务背景就不足够的,必须还具备相应的IT和软件工程的技术背景。这个背景往往并不是说要做过多久的软件设计开发,但是只是是做过,通过软件开发你能够很清楚的知道一个软件从需求调研和分析开始,最终是如何形成一个软件系统的。这个背景知识可以更加方便我们去考虑用例建模,去认识到为何要采用这种方式去用例建模,真正理解用例中每个描述点如何影响到最终业务系统的实现。
没有技术背景很难真正成为一个优秀的软件需求分析师,最多也就是一个业务需求分析师。
要知道,当你进行用户需求调研后,往往收集到的都是一个个的用户需求点,而一个软件需求分析员要做的是最终将这些需求实现为一个完整的业务系统。这里面就涉及到业务模块的划分,模块间的分析,需求层面的复用能力分析,各种性能,可靠性,安全等非功能性需求。这些更加已经是一个完全的系统分析方面的内容,或者说软件需求已经会兼顾部分软件架构设计的内容,因此作为一个软件需求人员更加需要去了解业务组件化,服务化,软件模块集成,复用等方面的技术内容。也需要去了解涉及到UCD,交互设计方面的内容,这些都是形成一个高质量的软件业务系统的重要输入。
一个优秀的软件需求人员既不应该因为具备技术和开发背景而导致在需求分析和建模中的各种程序员思维,也不应该完全抛弃技术单纯的去描述业务不管实现的难易度。软件需求人员衔接了最终用户和内部的设计开发,是两者之间重要的沟通和协同桥梁。各种沟通和人际关系处理技巧,各种软技能的要求更是必不可少的,在此不再展开去描述。
一个优秀的软件需求人员不存在是否能做新领域的软件需求的问题,因为最终真正有用的需求分析的方法论和模式,去理解和熟悉业务和快速形式化描述和建模的方法,有不断的实践总结出来的快速理解业务的能力。
摘自:http://www.zhihu.com/question/21897529
总结:需求分析人员既需要懂业务,又需要懂技术,需要将业务通过业务用例,系统建模等方式形成需求规格说明书,便于客户和其他风险承担者理解系统要做什么。
分享到:
相关推荐
总的来说,网络需求分析是一个复杂的过程,需要经验丰富的系统分析员来进行。通过深入的需求调研和应用调查,可以构建出符合用户需求的网络工程方案,从而保证项目的顺利实施和高效运行。忽视需求分析可能导致工程...
本文将详细介绍网络工程需求调查与需求分析的相关知识点,包括它们的重要性和实施过程中的注意事项。 #### 二、需求调查的重要性 需求调查旨在通过与客户沟通,了解客户的真实需求,从而为后续的设计和实施工作...
本文将深入探讨如何撰写高效且精准的需求分析文档,涵盖需求分析的基本概念、编写要点、注意事项以及编写人员应具备的素质,旨在为项目经理、产品经理及团队成员提供实用指导。 #### 一、理解需求分析的双面性 ...
测试需求分析过程详解(入门级) 测试需求分析作为软件测试的核心环节,对于确保软件产品的质量和满足用户需求至关重要。本文旨在详细介绍测试需求分析的过程,帮助读者理解其重要性、基本概念,以及如何有效地进行...
### 项目需求分析和调研实践过程 #### 一、引言 随着信息技术的快速发展和市场竞争的日益激烈,项目需求分析和调研成为了确保项目成功实施的关键步骤。本文档以某集团船代项目的实际案例为基础,详细介绍了项目...
- **过程描述**:在“系统实现”这一章节中,应该详细描述系统实现的具体过程,包括但不限于需求分析、设计思路、关键技术选择等方面。 - **避免仅展示结果**:仅仅展示系统运行的结果是远远不够的,更重要的是要...
需求分析书写的注意事项 在书写需求分析时,需要注意以下几点: 1. 要求使用规范的语言和格式。 2. 需要对需求进行明确的定义。 3. 需要对需求进行详细的描述。 4. 需要准确地记录需求分析的结果。 行业报告需求...
以下是关于图书发行流程及注意事项的详细说明: 1. **上年首发数与销售数的评估**:图书发行计划首先需要根据上年的首发数和销售数进行分析。如果首发数远小于销售数,说明市场需求旺盛,应适当增加首发量;若接近...
"硬件开发流程及注意事项" 通过对硬件开发流程的分析,我们可以了解到整个开发过程的重要性。从功能描述到验收,每一个步骤都是不可或缺的。今天,我们将详细介绍硬件开发流程的每一个步骤,并对每个步骤进行详细的...
#### 四、实施过程中的注意事项 1. **全员参与的重要性**:强调每位员工都应该成为7S的一部分,共同营造一个高效、安全的工作环境。 2. **持续改进**:7S不是一个静态的过程,而是需要不断地改进和完善。 3. **领导...
以下是一些关键知识点,它们涵盖了标题"SQL编程注意事项"所提及的要点。 1. NULL值处理:在SQL中,NULL表示未知或无值,与0、空字符串等不同。在进行比较和计算时,NULL值需要特别对待。例如,`NULL = NULL`返回的...
软件项目系统需求分析说明书的注意事项包括实验目的与要求、实验设备与软件环境、实验过程与结果、操作异常问题与解决方案等方面的内容。实验目的与要求部分主要是为了掌握系统需求分析说明书的撰写目的、内容、注意...
内容概要:本文详细介绍了 Python 项目开发的整个流程,包括需求分析、项目规划、环境搭建、编码实现、测试与调试、部署与发布、维护与更新等主要阶段。每个阶段都强调了其特定的目标、任务和注意事项,如明确需求、...
**ArcGIS安装步骤详解** ...通过遵循这些安装步骤和注意事项,你将能顺利安装并使用ArcGIS,有效提升地理信息处理的工作效率。同时,持续学习和熟悉软件的各项功能,将使你在GIS领域更加得心应手。
本文通过具体案例分析,探讨了在需求分析过程中容易出现的问题,并提出了解决这些问题的有效策略。 #### 需求分析的重要性 需求分析是软件项目开发的第一步,也是至关重要的一步。良好的需求分析能够确保后续的...
在整个分析过程中,理解业务背景是至关重要的。分析不应仅限于技术层面,而应结合实际业务流程,确保设计的模型能够准确地反映并支持业务操作。只有这样,分析的结果才能真正服务于业务的发展,而不是停留在理论层面...
根据给定的文件信息,以下是针对"Cadence应用注意事项"中的关键知识点的详细解析: ### Cadence 应用注意事项 #### PCB工艺规则 PCB(Printed Circuit Board,印制电路板)的设计过程中,遵循正确的工艺规则至关...