Chapter 1 需求基础

1.1 需求的定义

从用户的角度看,需求是用户为了解决问题或达到某些目标所需要的条件或能力。

从开发者的角度看,需求是系统或系统部件为了满足合同,标准,规范或其他正式文档规定的要求而需要具备的能力或条件。



 1.2 基本概念的区分(问题,需求,问题域,解系统)

1.2.1 问题域与解系统

当现实状况与人们的期望产生了差距,就产生了问题。

要解决问题,就要改变现实中某些实体的状态或其状态的演进顺序,使其达到期望的状态和理想的演进顺序。

这些实体和状态构成了问题解决的基本条件,称为该问题的问题域。

软件系统通过影响问题域,能够帮人们解决问题,称为解系统。


1.2.2 共享现象

软件系统能够与问题域进行交互和相互影响的原因在于,软件系统中的某些部分对于问题域的某些部分具有模拟性。

换句话说,软件系统含有问题域中某些部分的模型(数据模型,对象模型,处理模型等等),因此,问题域的某些信息可以和模型中的信息建立映射关系,这些通过映射建立的共同信息,就是问题域和解系统的共享现象。


1.2.3 问题域特性

问题域是自治的,它有自己的运行规律,而且这些规律不会因为解系统的引入而发生改变。

需要关注的问题域特性:间接特性,约束和假设,社会性因素。


1.2.4 规格说明

规格说明是解系统为满足用户需求而提供的解决方案,规定了系统的行为特征。

主要包括:(1)对于共享现象的描述 (2)系统对共享现象施加操作的描述。



1.3 需求的层次性(功能需求)

功能需求表现为三个层次:业务需求(Business Requirement),用户需求(User Requirement),系统需求(System Requirement)。

1.3.1 业务需求

系统建立的战略出发点,表现为高层次的目标,描述了组织为什么要开发系统。

BR1:实现车辆的同意管理和有效使用。


1.3.2 用户需求

执行实际工作的用户对系统所能完成的具体任务的期望,描述了系统具体帮助用户做些什么。

UR1:在需要使用车辆时,用户需要填写一个车辆使用申请单,然后等待申请单的反馈信息,并根据反馈信息使用车辆。

在实际工作中,用户需求通常会涉及问题域知识,例如UR1,需要补充问题域知识PD1:

PD1:申请单的内容包括:。。。申请单的反馈内容包括。。。。


1.3.3 系统需求

系统需求可以直接映射为系统行为,定义了系统中需要实现的功能,描述了开发人员需要实现什么。

将用户需求转化为系统需求的过程是一个复杂的过程

首先需要分析问题领域及其特性,从中发现问题域和计算机系统的共享知识,建立系统的知识模型;

然后将用户需求部署到系统模型当中,即定义系列的系统行为,让它们联合起来实现用户需求,每一个系统行为即为一个系统需求。

该过程就是需求工程当中最为重要的需求分析活动,又称建模与分析活动。


需求的层次性




1.4 需求的常见类型

【IEEE1998】将需求分为五类:

(1)功能需求(Functional Requirement)

(2)性能需求(Performance Requirement)

(3)质量属性(Quality Attribute)

(4)对外接口(External Interface)

(5)约束(Constraint)

需求分为五类
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容