需求分析概述
需求分析是什么意思有什么特点

需求分析是什么意思有什么特点需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作,以下是由店铺整理关于什么是需求分析的内容,希望大家喜欢!需求分析的介绍所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。
可以说,在软件工程当中的“需求分析”就是确定要计算机“做什么”,要达到什么样的效果。
可以说需求分析是做系统之前必做的。
在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。
需求分析是软件工程中的一个关键过程。
在这个过程中,系统分析员和软件工程师确定顾客的需要。
只有在确定了这些需要后,他们才能够分析和寻求新系统的解决方法。
需求分析阶段的任务是确定软件系统功能。
在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中最简单的一个步骤。
但在近十年内,越来越多的人认识到,需求分析是整个过程中最关键的一个部分。
假如在需求分析时分析者们未能正确地认识到顾客的需要的话,那么最后的软件实际上不可能达到顾客的需要,或者软件项目无法在规定的时间里完工。
需求分析的特点需求分析是一项重要的工作,也是最困难的工作。
该阶段工作有以下特点:供需交流困难在软件生存周期中,其它四个阶段都是面向软件技术问题,只有本阶段是面向用户的。
需求分析是对用户的业务活动进行分析,明确在用户的业务环境中软件系统应该"做什么"。
但是在开始时,开发人员和用户双方都不能准确地提出系统要"做什么?"。
因为软件开发人员不是用户问题领域的专家,不熟悉用户的业务活动和业务环境,又不可能在短期内搞清楚;而用户不熟悉计算机应用的有关问题。
由于双方互相不了解对方的工作,又缺乏共同语言,所以在交流时存在着隔阂。
需求分析名词解释

需求分析名词解释需求分析是指对需求进行理论分析、实际调查和实地勘察的过程,目的是明确用户的需求,为产品或服务的设计、开发和运营提供指导和依据。
在需求分析中,有一些重要的名词需要解释,如下所示:1. 需求:指用户对产品或服务的实际需求或期望。
需求可以分为功能需求和非功能需求两类。
功能需求是指产品或服务必须具备的具体功能或特性;非功能需求是指产品或服务在使用过程中必须满足的性能、安全性、可用性、可维护性等方面的要求。
2. 需求分析:是指对需求进行详细、全面、准确地分析和描述的过程。
需求分析的目标是明确产品或服务的需求,包括功能需求和非功能需求。
需求分析主要包括需求收集、需求整理、需求确认等步骤。
3. 需求收集:是指通过各种方式收集用户的需求信息。
需求收集可以使用多种技术和方法,如面谈、问卷调查、观察、文档分析等。
需求收集的目标是获取用户对产品或服务的需求和期望。
4. 需求整理:是指对收集到的需求进行分类、归纳、整理和优化的过程。
需求整理可以将大量的需求信息进行分类和组织,以便进一步分析和处理。
5. 需求确认:是指与用户或相关利益相关方共同确认需求的准确性和完整性的过程。
需求确认可以通过演示、原型、评审等方式进行。
确认需求是为了保证产品或服务的开发和设计过程能够按照用户的真实需求进行。
6. 需求文档:是对需求进行详细描述的文档。
需求文档包括需求说明书、用例文档、需求规格说明书等。
需求文档是需求分析的重要成果,用于指导软件开发和测试。
7. 需求管理:是指对需求进行有效的管理和控制的过程。
需求管理包括需求变更管理、需求追踪管理、需求确认管理等。
通过需求管理,可以确保产品或服务的需求在整个开发和运营过程中得到有效控制和管理。
8. 用户故事:是一种对需求进行简洁、可理解的描述方式。
用户故事通常由三个部分组成:角色、目标和理由。
用户故事是敏捷开发方法中常用的需求描述技术。
以上是需求分析中常用的一些名词的解释。
在需求分析过程中,了解和掌握这些名词的含义和用法,对于进行准确、全面的需求分析非常重要。
第3章 需求分析

网上查某 本书<3秒
图书名称 /作者姓 名
按照输入的组 合条件,进行 模糊查询
显示“图书名称、作 者姓名、是否借出、 内容简介”
2
后台查询读 者信息响应 时间 后台查询图 书信息响应 时间
图书 馆借 阅部 图书 馆借 阅部
借阅 操作 员 借阅 操作 员
后台查某 读者信息 <2秒 后台查某 部书<2秒
案例3-3 【案例3-3】网上图书馆信息系统的部分接口列表,如 表3-3所示。 表3-3 目标系统的接口列表(接口模型)
3.2 需求分析的任务及过程
表3-3 目标系统的接口列表(接口模型)
编 号 接口 名称 接口 规范 接口 标准 入口参数 出口参数 传输 速率
1
与财 务系 统接 口
财务 系统 规定 的接 口规 范
3.2 需求分析的任务及过程
图3-2需求分析过程
3.2 需求分析的任务及过程
根据实际项目的规模和特点确定合适的需求分析常规过 程如下。 1.需求获取 2.综合需求与描述 3. 需求验证 4.需求文档
课堂讨论:
(1)需求分析具体任务有哪些? (2)需求分析常规步骤是什么?
3.2 需求分析的任务及过程书信息系统的 部分性能点列表(性能模型),如表 3-2所示。
3.2 需求分析的任务及过程
表3-2 图书馆系统的性能点列表
编号 性能名称 使用 部门 网上 读者 使用 岗位 网上 读者 性能描述 输入 系统响应 输出
1
读者网上查 询图书信息 响应时间
一张 凭证 一次 处理 传送
3.2 需求分析的任务及过程
7.确定系统运行环境及界面 8.修正开发计划和新系统方案 9. 编写需求文档,验证确认需求 【注意】上述任务要具体分析,灵活运用。如果需求 分析之后,对将要实现的新系统,仍然感到不够明确时, 不应签字确认,还需进行进一步深入分析。
需求分析

需求分析需求分析是软件开发过程中非常重要的一个环节,它是指对用户需求进行全面、准确地分析和收集,以便于确定所需软件系统的功能、性能、安全性等具体要求。
在实际软件开发项目中,如何正确地进行需求分析是影响软件开发成败的重要因素之一,以下将从基本概念、过程方法和常见问题三个方面详细阐述需求分析。
一、基本概念1.需求定义:需求是指客户或用户对某个系统或产品的具体要求。
需求大多来源于用户需求、行业标准、法律法规、技术能力等。
例如,企业需要一个销售管理系统来提升营销效率、一家医院需要一个信息系统来管理患者信息和医疗资源、某个电商平台需要一个订单管理系统来提供更好的服务等。
2.需求分类:根据不同的角度,需求可分为:(1)功能需求:即系统应该完成的操作、处理数据的需求,包括输入、输出、计算、验证等。
(2)非功能需求:系统除了功能外的理性质量要求,如性能、安全、可靠性等。
(3)业务需求:与所属行业或用户业务相关的需求,如支付功能可能需要适配多种支付方式。
(4)可追溯性需求:能够量化为测试用例的需求,例如:给定某些输入值,预期输出结果应该是什么。
二、过程方法需求分析过程是一个涉及用户、业务、行业和技术层面的复杂过程。
正确地执行需求分析将确保开发团队在满足客户期望的同时,合理规划开发周期和成本。
一般情况下,正确执行需求分析需要考虑以下几个方面:1.与客户谈判首先设计人员应该与客户进行会面,了解客户需要的功能、业务以及用户需求。
他们应该了解客户的文化,内部运作方式和工作流程,了解项目的背景和动因,并针对质量标准进行讨论,以促进有效沟通。
2.收集规则与目标在确定用户需求后,设计人员需要开始收集相关信息,包括技术和非技术的要求。
这通常会涉及到信息的收集、盘点和分类整理,记录所有内容并确保每个要素都能明确认识和定义。
3.确定优先级别下一步是通过与客户的交互,确定每个需求的优先级次序。
设计人员需要与客户讨论整个系统的运作方式,并确定优先级次序,以确保项目能够在范围内、时间和成本内完成。
岗位需求分析

06
解决方案
制定科学合理的评估指标和方法,对应用结果 进行全面、客观的评估,为后续改进提供依据 。
THANK YOU
培训与发展
了解员工的培训需求,制定针对性的 培训计划,提升员工的工作技能和职 业发展。
职业规划
分析员工的职业发展需求,为员工提 供更好的职业发展机会和晋升通道。
岗位需求分析的步骤
确定分析对象
明确需要进行岗位需求分析的岗位和 人员范围。
02
收集信息
通过问卷调查、访谈、观察等方式收 集关于岗位的相关信息,包括岗位职 责、工作内容、工作要求等。
问卷调查法
总结词
通过设计问卷,向相关人员进行调查, 收集关于岗位需求的数据。
VS
详细描述
问卷调查法是一种广泛使用的数据收集方 法,通过设计包含有关岗位需求的多个问 题的问卷,向相关人员进行调查,可以快 速、有效地收集大量关于岗位需求的数据 。问卷可以采用纸质或电子形式进行分发 和回收。
观察法
总结词
解决方案
建立统一的数据收集标准,明确数据收集范围 和目标,确保数据的准确性和完整性。
挑战
数据量庞大,处理难度高。
解决方案
采用自动化工具和软件进行数据处理,提高数据处 理效率。
挑战
数据质量参差不齐,影响分析结果。
解决方案
加强数据质量检查,对数据进行清洗和预处理,确保数 据的准确性和可靠性。
分析方法的挑战与解决方案
制定选拔标准
根据岗位需求分析结果,制定各岗位 的选拔标准,包括面试、笔试、技能 测试等环节的设计和评分标准。
培训与发展
制定培训计划
根据岗位需求分析结果,制定各岗位的培训 计划,包括培训内容、时间、方式等安排。
需求分析概述

3畅1需求分析概述3畅1畅1需求分析的重要性需求分析是软件生存周期中相当关键的一个阶段,是介于系统分析和软件设计阶段的重要桥梁。
要想开发出用户满意的软件产品,首先必须清楚用户的需求。
在可行性研究阶段开发人员已经粗略了解了用户的需求,其基本目的是用较小的成本在较短的时间内确定是否存在可行的解法。
由于软件开发人员并不熟悉用户的业务,因此对同一问题,他们在认识上可能存在差异,不可能全面地、精确地理解和表达用户需求,致使隐藏着一些目前未能发现的问题。
需求分析是发现、求精、建模、规格说明和复审的过程。
需求分析的结果是形成需求规格说明书,它是系统设计的基础,它关系到工程的成败和软件产品的质量。
需求的获取非常困难,其主要原因有三:一是用户需求的动态性(不稳定性),实践证明,软件史上还没有一次就准确获取需求的;二是需求的模糊性(不准确性),也即用户不能清楚地表达出具体需求;三是需求必须得到用户的确认,否则毫无意义,如同跑题的作文,写得再长也不能得分。
因此,在软件企业进行需求分析的人员通常是具有较高系统驾驭能力的系统分析员。
3畅1畅2需求分析的任务需求分析的任务是确定系统必须完成哪些工作,即“做什么”,至于“怎么做”由设计阶段来完成。
具体包括确定待开发软件的数据、功能、性能、界面等要求。
需求分析是建立模型的活动,其结果是得到经过评审的、准确的软件需求规格说明书。
以下是需求分析阶段的任务:(1)确定对系统的综合要求①系统界面要求:描述软件系统的外部特性,即系统从外部输入哪些数据,又向外部输出哪些数据。
②系统功能要求:列出软件系统必须完成的所有功能。
③系统性能要求:如响应时间、吞吐量、处理时间、对主存和外存的限制等。
④安全性、保密性和可靠性要求。
⑤系统的运行要求:如对硬件、支撑软件、数据通信接口等的要求。
⑥异常处理要求:在运行过程中出现异常情况(如临时性或永久性的资源故障,不合法或超出范围的输入数据、非法操作、数组越界等)时应采取的行动以及希望显示的信息。
信息系统的需求分析

信息系统的需求分析在信息系统的设计和开发过程中,需求分析是一个至关重要的环节。
它是指通过收集、整理和分析各方的需求,明确系统功能和性能的要求,为后续的系统设计和实施提供基础和指导。
本文将从需求分析的定义、重要性和方法等方面进行探讨。
一、需求分析的定义需求分析是指对用户需求进行系统化、全面的调查和研究,并通过适当的方法对需求进行分类、整理和表达的过程。
它主要涉及到以下几方面的内容:用户需求的获取、用户需求的验证、用户需求的分类和整理、用户需求与系统设计的对应关系等。
二、需求分析的重要性需求分析在信息系统开发中占据着重要的地位,其重要性体现在以下几个方面:1. 系统功能的明确:通过需求分析,可以明确系统需要具备的功能,避免在后续的系统设计和实施过程中出现功能缺失或重复的问题。
2. 项目进度的把控:需求分析可以帮助项目团队明确项目的规模和工作量,合理规划项目的进度,保证项目的按时完成。
3. 用户满意度的提高:通过需求分析,可以准确理解用户的需求,从而更好地满足用户的期望,提高用户的满意度。
4. 风险控制的有效性:需求分析可以识别和分析系统开发过程中的风险点,及时采取相应的措施,降低项目风险,保证项目的顺利进行。
三、需求分析的方法在信息系统的需求分析过程中,可以采用多种方法来获取和整理用户需求,比如:1. 访谈法:通过与用户进行面对面的交流,主动询问和探讨用户的需求和期望,这种方法可以直接获取用户的真实需求,并且可以及时解答用户的疑问和困惑。
2. 观察法:通过观察用户的工作环境和工作过程,了解用户的实际需求和使用情况。
这种方法可以发现用户需求中的隐含问题和矛盾点,为后续的系统设计提供参考。
3. 问卷调查法:通过向大量用户发放问卷,并进行统计和分析,获取用户的共性需求和偏好。
这种方法可以快速了解用户的需求情况,适用于需求量较大的项目。
4. 原型法:通过制作系统的初步原型,展示给用户并征求意见,从而不断优化系统的设计。
需求分析策划方案

需求分析策划方案一、背景介绍随着信息技术的快速发展,企业和组织越来越重视需求分析策划,以确保项目的成功实施。
本文将针对需求分析策划方案进行详细探讨,以指导项目经理在实施过程中的决策。
二、需求分析概述1. 定义需求分析:需求分析是明确项目中需求和目标的过程。
它涉及收集、识别、评估和确定系统或产品的需求,以满足用户的期望和项目的目标。
2. 需求分析的重要性:需求分析是项目成功的关键因素之一。
它确保项目团队和用户对需求的共同理解,并能够在项目的后续阶段进行合理的规划和决策。
3. 需求分析的阶段:需求分析包括需求收集、需求识别、需求评估和需求确定等阶段。
每个阶段都有特定的工具和方法可供使用。
三、需求分析策划的步骤1. 确定需求分析的目标:在开始需求分析过程之前,项目经理应明确需求分析的目标和范围。
这有助于确保分析过程的有效性和高效性。
2. 需求收集:通过采用各种方法,如面谈、问卷调查、焦点小组讨论等,项目团队可以收集到与项目相关的各种需求信息。
3. 需求识别:在需求收集的基础上,项目团队需要对需求进行分析和识别。
这包括将需求归类、筛选出核心需求和舍弃次要需求等步骤。
4. 需求评估:在需求识别的基础上,项目团队需要对需求进行评估,以确定其重要性和优先级。
这有助于在后续的项目实施过程中进行合理的资源分配和决策。
5. 需求确定:最后一步是对需求进行确认和确定。
这需要与用户和相关利益相关者进行沟通和确认,以确保需求的准确性和一致性。
四、需求分析策划的工具和方法1. 面谈:面谈是一种常用的需求收集方法,通过与用户和相关利益相关者的面对面交流,可以深入了解其需求和期望。
2. 问卷调查:问卷调查是一种批量收集需求的方法,可以通过设计合适的问卷,让用户和利益相关者填写并提供意见和建议。
3. 焦点小组讨论:焦点小组讨论是一种集体讨论的方法,通过组织小组讨论,可以获取不同参与者的意见和想法。
4. 影响图:影响图可以帮助项目团队理清需求之间的关系和依赖关系,从而更好地进行需求评估和决策制定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
记住一点,不要试图在你的项目中把这些方法都用上去,四个现代化并不是一夜就可以实现的。同样,尝试着使用你认为对你很有帮助的方法,确实收到效果之后,在考虑继续学习方法。因为上面提到的都是需求分析的大方法,事实上还有很多很多的方法可以采用,例如,采用SRS模板、指明需求的来源、为每项需求注上标号、记录业务规范、创建需求跟踪能力矩阵、审查需求文档、以需求为依据编写测试用例、编写用户手册、确定合格的标准。
需求获取、分析、编写需求规格说明和验证并不遵循线性的顺序,这些活动是相互隔开、增量和反复的。当你和客户合作时,你就将会问一些问题,并且取得他们所提供的信息(需求获取)。同时,你将处理这些信息以理解它们,并把它们分成不同的类别,还要把客户需求同可能的软件需求相联系(分析)。然后,你可以使客户信息结构化,并编写成文档和示意图(说明)。下一步,就可以让客户代表评审文档并纠正存在的错误(验证)。这四个过程贯穿着需求分析的整个阶段。 需求获取可能是软件开发中最困难、最关键、最易出错及最需要交流的方面。需求获取只有通过有效的客户—开发者的合作才能成功。分析者必须建立一个对问题进行彻底探讨的环境,而这些问题与产品有关。为了方便清晰地进行交流,就要列出重要的小组,而不是假想所有的参与者都持有相同的看法。对需求问题的全面考察需要一种技术,利用这种技术不但考虑了问题的功能需求方面,还可讨论项目的非功能需求。确定用户已经理解:对于某些功能的讨论并不意味着即将在产品中实现它。对于想到的需求必须集中处理并设定优先级,以避免一个不能带来任何益处的无限大的项目。
CBO是做业务建模的基础,在此基础上,通过评估业务状态,说明当前业务,确定业务流程,改进业务流程的定义,设计业务流程实现,改进角色和职责,研究流程自动化,开发领域模型等一系列在RUP中定义的工作流程实现业务建模的目标。
需求获取
需求获取(requirement elicitation)是需求工程的主体。对于所建议的软件产品,获取需求是一个确定和理解不同用户类的需要和限制的过程。获取用户需求位于软件需求三个层次的中间一层。业务需求决定用户需求,它描述了用户利用系统需要完成的任务。从这些任务中,分析者能获得用于描述系统活动的特定的软件功能需求,这些系统活动有助于用户执行他们的任务。
尽量把客户所持的假设解释清楚,特别是那些发生冲突的部分。从字里行间去理解以明确客户没有表达清楚但又想加入的特性或特征。Gause 和Weinberg(1989)提出使用“上下文无关问题”—这是一个高层次的问题,它可以获取业务问题和可能的解决方案的全部信息。客户对这些问题的回答诸如“产品要求怎样的精确度”或“你能帮我解释一下你为什么不同意某人的回答吗?”这些回答可以更直接地认识问题,而这是封闭(close-end)问题所不能做到的。
5. 为需求建立模型,需求的图形分析模型是软件需求规格说明极好的补充说明。它们能提供不同的信息与关系以有助于找到不正确的、不一致的、遗漏的和冗余的需求。这样的模型包括数据流图、实体关系图、状态变换图、对话框图、对象类及交互作用图。
6. 创建数据字典,数据字典是对系统用到的所有数据项和结构的定义,以确保开发人员使用统一的数据定义。在需求阶段,数据字典至少应定义客户数据项以确保客户与开发小组是使用一致的定义和术语。分析和设计工具通常包括数据字典组件。
需求获取利用了所有可用的信息来源,这些信息描述了问题域或在软件解决方案中合理的特性。一个研究表明:比起不成功的项目,一个成功的项目在开发者和客户之间采用了更多的交流方式(Kiel and Carmel 1995)。与单个客户或潜在的用户组一起座谈,对于业务软件包或信息管理系统(MIS)的应用来说是一种传统的需求来源。直接聘请用户进行获取需求的过程是为项目获得支持和买入(buy-in)的一种方式。
正如经常所说的,需求主要是关于系统做什么,而解决方案如何实现是属于设计的范围。这样说虽然很简洁,但似乎过于简单化。需求的获取应该把重点放在“做什么”上,但在分析和设计之间还是存在一定的距离。你可以使用假设“怎么做”来分类并改善你对用户需求的理解。在需求的获取过程中,分析模型、屏幕图形和原型可以使概念表达得更加清楚,然后提供一个寻找错误和遗漏的办法。把你在需求开发阶段所形成的模型和屏幕效果看成是方便高效交流的概念性建议,而不应该看成是对设计者选择的一种限制。
还有,探讨例外的情况:什么会妨碍用户顺利完成任务?对系统错误情况的反映,用户是如何想的?询问问题时,以“还有什么能” ,”当?时,将会发生什么”“你有没有曾经想过” ,“有没有人曾经”为开头。记下每一个需求的来源,这样向下跟踪直到发现特定的客户。
有些时候,尝试着问一些“愚蠢”的问题也有助于客户打开话匣子。如果你直接要求客户写出业务是如何实现的,客户十有八九无法完成。但是如果你尝试着问一些实际的问题,例如:“以我的理解,你们收到订单后,会...”。客户立刻就会指出你的错误,并滔滔不绝的开始谈论业务,而你,就在一边仔细的聆听吧。这一招就叫做“抛砖引玉”。
·了解目标组织(将要在其中部署系统的组织)的结构及机制。
·了解目标组织中当前存在的问题并确定改进的可能性。
·确保客户、最终用户和开发人员就目标组织达成共识。
·导出支持目标组织所需的业务需求。
上面的话是全不同的思想(思维方式)。所以,原先适合人的业务流程对于计算机来说可不一定合适的,为了最大限度的利用计算机,必须要了解原先的业务流程并对此加易改造(流程自动化),当然这些动作需要得到用户的许可。有些人认为说只有ERP这种大系统才需要对业务流程进行重组,但是实际上,不论是部门级的MIS系统,还是社会级的电子商务系统,都需要对业务流程进行改造,所不同的只是改造的程度。
需求分析概述
在具体的研究需求分析之前,我们先了解一下软件工程这个概念。软件工程分为三个层次,过程层、方法层、工具层。在最基础的过程层,最重要的就是一组被称为关键过程区域(KPAs)的框架(KPA的概念在讨论CMM的书中有详细的概念说明)。关键过程区域构成了软件项目的管理控制的基础,并且确立了上下文各区域的关系,其中规定了技术方法的采用、工程产品的,模型、文档、数据、报告、表格等,等的产生、里程碑的建立、质量的保证及变化的适当管理。方法层主要是过程在技术上的实现。它解决的问题是如何做。软件工程方法涵盖了一系列的任务:需求分析、设计、编程、测试、维护。同时他还包括了一组基本原则,控制了每一个的关键过程区域。工具层就很好理解了,他对过程层和方法层提供了自动和半自动的支持。这些辅助工具就称为CASE。
3. 分析需求可行性,在允许的成本、性能要求下,分析每项需求实施的可行性,明确与每项需求实现相联系的风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍。
4. 确定需求的优先级别,应用分析方法来确定使用实例、产品特性或单项需求实现的优先级别。以优先级为基础确定产品版本将包括哪些特性或哪类需求。当允许需求变更时,在特定的版本中加入每一项变更,并在那个版本计划中作出需要的变更。
可以看到需求分析的位置,但是事实上需求分析是跨越了软件工程的三个层次的。这一点是和其他的过程是一样的。当然我们这里比较重点强调的是在软件工程的方法层,同时也涉及到一些过程层的思想,至于工具层则不再我们的讨论之列,但是会提到一些很适合在需求分析时应用的工具,诸如Word、Excel、Visio等。
方法
需求获取讨论会中如果参与者过多,就会减慢进度。人数大致控制在5到7人是最好的。这些人包括客户、系统设计者、开发者和可视化设计者等主要工程角色。相反地,从极少的代表那里收集信息或者只听到呼声最高、最有舆论影响的用户的声音,也会造成问题。这将导致忽视特定用户类的重要的需求,或者其需求不能代表绝大多数用户的需要。最好的权衡在于选择一些授权为他们的用户类发言的产品代表者,他们也被同组用户类的其它代表所支持。
需求获取是在问题及其最终解决方案之间架设桥梁的第一步。获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解。一旦理解了需求,分析者、开发者和客户就能探索出描述这些需求的多种解决方案。参与需求获取者只有在他们理解了问题之后才能开始设计系统,否则,对需求定义的任何改进,设计上都必须大量的返工。把需求获取集中在用户任务上—而不是集中在用户接口上—有助于防止开发组由于草率处理设计问题而造成的失误。
尽量理解用户用于表述他们需求的思维过程。充分研究用户执行任务时作出决策的过程,并提取出潜在的逻辑关系。流程图和决策树是描述这些逻辑决策途径的好方法。
在需求获取的过程中,你可能会发现对项目范围的定义存在误差,不是太大就是太小。如果范围太大,你将要收集比真正需要更多的需求,以传递足够的业务和客户的值,此时获取过程将会拖延。如果项目范围太小,那么客户将会提出很重要的但又在当前产品范围之外的需求。当前的范围太小,以致不能提供一个令人满意的产品。需求的获取将导致修改项目的范围和任务,但作出这样具有深远影响的改变,一定要小心谨慎。
业务建模
很多人都没有意识到业务需求阶段应该做些什么事情,实际上业务建模是最重要的一件事情。不要觉得业务建模这个词很深奥,让人模不着头脑。其实所有做过需求分析的人都做过业务建模,比如你了解企业的运作模式就是一种你脑海中的业务建模。但是大多数人都没有科学的、系统的、文档化的做过业务建模。
业务建模的目的在于:
业务建模很重要的一点是在分析企业流程的同时分析出基础企业对象(Common Business Object)(这个词我翻译的不好,如果大家有更好的翻译,请告诉我)。任何企业都有最基础的一些元素,例如银行的CBO就有帐户,制造业的CBO就有订单等。有一次我的一个在企业应用方面研究多年的朋友告诉我一个秘诀,他说,企业的CBO无非是4个:客户、员工、产品和供应商(银行的供应商应该称为同业)。其他的所有CBO都是在这四个CBO的基础上发展起来的。比如说CBO中客户和产品是多对多的关系,根据关系数据的理论,任何多对多的关系都可以拆分成多个一对多或一对一的关系。你就可以在这两个类之间引入订单类,客户和订单之间是一对多,订单和产品之间又是一对多,这样一个多对多的关系就拆分成两个一对多的关系,而新的订单类也就顺理成章的产生了。在订单类产生时,你可能还会加入一个关联类:业务员类。而业务员类又是从员工类继承下来的。所以呢,企业的四种CBO通过不同的组合,不同的关系,能够形成企业运作的许许多多的CBO。