上图是需求工程的组成部分,从图中可以看出,需求工程划分为两个部分:需求开发和需求管理。需求开发又分为需求获取(Elicitation)、需求分析(Analysis)、编写规约(Specification)和需求验证(Validation)。需求管理又分为基线管理、变更管理、需求跟踪。
下面我将分别介绍一下上面各个主要组成部分主要的工作内容,以便那些不熟悉需求的人员读后能够从总体上把握需求所涉及的工作内容。
需求开发
需求开发活动包括以下几个方面:
- 确定产品所期望的用户分类。
- 获取每类用户的需求。
- 了解实际用户任务和目标以及这些任务所支持的业务需求。
- 分析源于用户的信息以区别用户任务需求、功能需求、业务规则、质量属性、建议解决方法和附加信息。
- 将系统级的需求分为几个子系统,并将需求中的一部份分配给软件组件。
- 了解相关质量属性的重要性。
- 商讨实施优先级的划分。
- 将所收集的用户需求编写成规格说明和模型。
- 评审需求规格说明,确保对用户需求达到共同的理解与认识,并在整个开发小组接受说明之前将问题都弄清楚。
实际工作中很难一次性得到完全正确的需求,所以以上步骤并不是严格顺序执行到底的,它是一个不断反复的过程。这些步骤也不是完全顺序的,很可能需要迭代的进行。基于项目的产品需求开发过程可能如下图所示:
下面就需求开发每个活动进行简单介绍:
需求获取
在《软件需求的三个层次》中介绍了三个层次的需求,在需求获取中,这些需求都是我们需要获取的,我们需要收集问题域的描述,要求解决的问题列表,以及了解系统的行为或约束。
信息来源
- 客户(实际的和潜在的)
- 用户(实际的和潜在的)
- 已有系统及其文档
- 领域专家
- 相关技术标准和法规
获取技术
- 阅读背景资料
- 用户访谈、调研
- 需求讨论会
- 现场观摩
需求分析
需求分析是指通过对需求获取中获得的问题域的研究,获得对该领域特性及存在其中的问题特性的透彻理解并用文档说明。
- 不需要等到需求完全捕获后开始,在“业务需求”充分理解下,并且收集了本质的“用户需求”之后就可以开始进行需求分析
- 交替进行,先把握“用户需求”主要部分,然后在分析的基础上引入系统级的需求(系统的涉及与实现角度),并且分析模型,成为开发人员之间、开发人员与客户之间达成共识的一个平台
- 分析的基础上,就会发现更多的不明确项,更多待捕获的信息,这时就可以生成第二次的需求调研计划、问题和素材
编写规约
- 规格说明书是对需求分析结果的文档化过程
- 需求规约必须与实际开发紧密结合,否则很容易造成与开发脱离
- 为需求规约定义统一的格式是一个很重要的工作
- 规约内容必须严谨、正确、无歧义
需求验证
- 不重视需求验证工作会在系统交付时,客户发现不是这样的,导致不期望的需求变更
- 提高需求质量的重要手段有:需求评审、需求确认和原型验证《需求方法之-原型开发》
需求管理
需求管理活动包括:
- 定义需求基线(迅速制定需求文档的主体)。
- 评审提出的需求变更、评估每项变更的可能影响从而决定是否实施它。
- 以一种可控制的方式将需求变更融入到项目中。
- 使当前的项目计划与需求一致。
- 估计变更需求所产生影响并在此基础上协商新的承诺(约定)。
- 让每项需求都能与其对应的设计、源代码和测试用例联系起来以实现跟踪。
- 在整个项目过程中跟踪需求状态及其变更情况。
软件需求的三个层次
|
相关推荐
随着软件行业的快速发展,需求工程作为软件开发生命周期中的关键环节,其重要性日益凸显。正确理解和掌握需求工程的基础理论与实践方法,对于提高软件产品的质量和效率至关重要。国际需求工程委员会(International ...
### 软件工程学基础入门课程:需求工程解析 #### 一、需求工程概览 **需求工程**是软件工程的重要组成部分,专注于理解和描述软件系统的行为和约束条件,以确保最终产品能够满足用户的需求。它包括了一系列活动,...
在IT行业中,软件需求分析是软件工程流程中的关键步骤,它是软件开发人员和项目管理人员的基础学科。这个过程涉及对用户需求的理解、记录、验证和管理,以确保最终开发的软件产品能够满足用户和业务的实际需求。 ...
需求工程是软件开发过程中的关键步骤,主要包括需求定义、需求分类和需求获取。其核心目标是确保开发团队准确理解并实现用户的需求。 **需求分析过程:** - **收集用户需求**:通过访谈、问卷调查等方式了解用户的...
SAP系统在全球企业资源规划(ERP)领域有着广泛的应用,而ABAP则是其核心开发语言,使得企业能够根据自身需求定制化SAP系统。 首先,"ABAP开发从入门到精通"这一主题涵盖了学习ABAP的基础到高级概念。对于初学者,...
- **书籍**:《C#2.0完全自学手册》、《C#开发经验技巧宝典》、《新编Visual C# 2005程序设计从入门到精通》、《数据库编程从入门到精通》、《软件工程》等。 - **在线资源**:GitHub上的开源项目、技术博客等。 ##...
9. 设备和材料准备:确保设备和材料的型号、规格和数量准确无误,以满足工程需求。 10. 设备和网络保护:设计方案应考虑设备和线路的保护措施,以及易于维护和更换的需求。 11. 通信工程的设计细节:设计中还应...
- **需求工程**: 是软件工程的一个关键环节,主要任务是定义、分析和管理软件的需求。 - **需求分析方法**: - **建模工具**: 数据流图、用例图等,帮助理解系统行为。 - **需求验证**: 保证需求的准确性和完整性。...
【硬件工程师入门教程.pdf】是一本为初学者设计的硬件工程师培训教材,涵盖了从...通过学习这本书,一个初入硬件工程领域的人员将能够掌握基本的硬件设计概念和实践技能,为进一步深入学习和实际项目开发打下坚实基础。
### 软件工程入门教程知识点汇总 ...以上是《软件工程入门教程》中的主要知识点,涵盖了软件工程的基本概念、软件开发过程以及需求分析等方面的内容。这些知识点对于理解和掌握软件工程的基本原理和技术至关重要。
软件工程常用文档模板及示例:项目计划、需求分析、概要设计、详细设计、用户操作手册、测试计划、测试分析报告、开发进度报告、项目开发总结报告、软件维护手册等 目录 软件工程项目管理所有阶段文档模板,供入门级...
- **需求工程**: - **定义**:定义、分析、管理软件需求的过程。 - **重要性**:确保软件符合用户需求,减少后期变更。 - **需求分析方法**: - **建模工具**:数据流图、用例图等。 - **需求验证**:确保需求...
### Web前端开发技术实战视频教程知识点总结 #### 一、Web前端开发概述 - **定义与重要性**:Web前端开发是指通过HTML、CSS、JavaScript等技术实现网站或应用程序的用户界面部分,确保用户能够直观地操作并获取所...
在实际工作中,"需求工程培训"是非常必要的。《需求分析师培训Day01.ppt》、《需求分析师培训Day02.ppt》和《需求分析师培训Day03.ppt》可能分别覆盖了需求分析的基础、进阶技巧和实践案例。这些培训材料可能讲解了...
- **需求工程概述**: - **定义**:明确、描述和分析软件系统所需的功能和特性。 - **目标**:确保软件满足用户需求,提高开发效率。 - **需求分析方法**: - **工具与技术**:数据流图、用例图等。 - **建模**...
### 软件工程基础入门知识点详解 #### 第1章:简介 - **软件工程定义**:软件工程是一门综合性的学科,它结合了计算机科学的理论基础与工程实践的方法论,旨在解决如何有效地开发与维护高质量软件的问题。 - **...
- **定义**:需求工程是指通过定义、分析、验证和管理需求来确保软件满足最终用户的需求。 - **重要性**:直接影响软件的质量和项目的成功率。 - **需求分析方法**: - **建模工具**:如数据流图、用例图等,...
**NodeMCU-ESP8266开发:VSCODE+PlatformIO+Arduino框架入门** 在物联网(IoT)领域,NodeMCU-ESP8266是一个非常流行的开源硬件平台,它基于Espressif Systems的ESP8266 Wi-Fi SoC。此平台结合了强大的处理能力、内置...
### 软件工程入门教程2.pptx 知识点总结 ...这些知识点涵盖了软件工程的基本概念、软件开发过程的不同模型以及需求分析的重要性和方法等方面。对于初学者来说,这些内容是理解和掌握软件工程的基础。
《软件工程从入门到精通--软件工程师必看》是一份专为软件工程师设计的全面教程,旨在帮助初学者和有经验的开发者系统性地提升在软件工程领域的技能和理解。这个教程涵盖了软件开发的全过程,从需求分析、设计、编码...