一文看懂开发过程中的需求工程

 

需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。

它通过合适的工具和记号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。

需求工程基本活动

需求工程过程包括如下主要活动:

1.获取需求

深入实际,在充分理解用户需求的基础上,获取足够多的问题领域的知识,积极与用户交流,捕捉、分析和修订用户对目标系统的需求,并提炼出符合解决领域问题的用户需求。

需求获取的方法一般有问卷法、面谈法、数据采集法、用例法、情景实例法以及基于目标的方法等。

2.需求分析与建模。

对已获取的需求进行分析和提炼,进行抽象描述,建立目标系统的概念模型,需求概念模型的要求包括:

l实现的独立性:

l不模拟数据的表示和内部组织等;

需求模拟技术又分为企业模拟、功能需求模拟和非功能需求模拟。进一步对所建立的模型(原型)进行分析。需求模型的表现形式有自然语言、半形式化(如图、表、结构化英语等)和形式化表示等三种。

3.需求规格说明

对需求模型进行精确的、形式化的描述,为计算机系统的实现提供基础。

4.确认需求

以需求规格说明为基础输入,通过符号执行、模拟或快速原型等方法,分析和验证需求规格说明的正确性和可行性,确保需求说明准确、完整地表达系统的主要特性,就是对需求规格说明与用户达成一致。

其主要任务是冲突求解,包括定义冲突和冲突求解两方面。

常用的冲突求解方法有:协商、竞争、仲裁、强制、教育等,其中有些只能用人的因素去控制。

5.需求管理

在整个需求工程过程中,贯穿了需求管理活动。需求管理主要包括跟踪和管理需求变化,支持系统的需求演进。

由于客户的需要总是不断(连续)增长的,但一般的软件开发又总是落后于客户需求的增长,如何管理需求的进化(变化)就成为软件管理的首要问题。

对于传统的变化管理过程来说,其基本内容包括软件配置、软件基线和变化审查小组。当前的发展是软件家族法,即产品线方法。多视点方法也是管理需求变化的一种新方法,它可以用于管理不一致性,并进行关于变化的推理。进化需求是十分必要的。

5种不同类型的需求

软件需求包括5种不同需求:业务需求、用户需求、功能需求、系统需求和非功能需求。

1.业务需求(Business requirement):表示组织或客户高层次的目标。

业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。业务需求描述了组织为什么要开发一个系统,即组织希望达到的目标。

使用前景和范围( vision and scope )文档来记录业务需求,这份文档有时也被称作项目轮廓图或市场需求( project charter 或 market requirement )文档。

2.用户需求(user requirement:描述的是用户的目标,或用户要求系统必须能完成的任务。

用例、场景描述和事件――响应表都是表达用户需求的有效途径。也就是说用户需求描述了用户能使用系统来做些什么。

3.功能需求(functional requirement:规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。

功能需求有时也被称作行为需求( behavioral requirement ),因为习惯上总是用“应该”对其进行描述:“系统应该发送电子邮件来通知用户已接受其预定”。功能需求描述是开发人员需要实现什么。

4.系统需求(system requirement):用于描述包含多个子系统的产品(即系统)的顶级需求。

系统可以只包含软件系统,也可以既包含软件又包含硬件子系统。人也可以是系统的一部分,因此某些系统功能可能要由人来承担。

5.非功能需求:即质量属性(quality attribute),是对产品的功能描述作补充,它从不同方面描述了产品的各种特性。

这些特性包括可用性、可移植性、完整性、效率和健壮性,它们对用户或开发人员都很重要。其他的非功能需求包括系统与外部世界的外部界面,以及对设计与实现的约束。

- End -

Guess you like

Origin blog.csdn.net/weixin_42058609/article/details/120881607