需求开发和管理

        人们对需求术语的困惑甚至延伸到整个学科的称谓上。有些作者将整个范围都称为“需求工程”。有些人统称为“需求管理”。还有些人认为这些活动属于广义上的业务分析的一个分支。我们发现,最好将需求工程分为需求开发和需求管理,如图所示。不管项目遵循什么样的开发生命周期-纯瀑布法、分阶段开发方法、迭代开发、增量开发、敏捷方法或者混合各种开发方式--这些需求工作都要完成。根据项目生命周期,在项目的不同阶段实施这些活动,只不过深度或广度有所差异。

需求开发
所示,我们将需求开发细分为:获取、分析、规范说明和验证(Abranet al.2004)。这些细分囊括的活动涉及产品需求的开发、评估、记录和确认。下面介绍每个细分中的一些基本活动。
 

获取
需求获取涵盖需求发现的所有活动,例如访谈、研讨会、文档分析、原型等。主要活动如下所示。
识别产品的预期客户群和其他干系人。理解客户任务、目标以及与这些任务相关的业务目标。了解新产品的应用环境。与每一类客户群的代表一起工作,理解他们对功能有哪些需要以及对质量有怎样的预期。
 

以用途为核心还是以产品为核心?
       虽然有多种策略可用,但我们在进行需求获取活动时,通常采取以用途为核心或者以产品为核心的方法。以用途为核心的策略强调的是对用户目标的理解和探求,以便提取必要的系统功能。以产品为核心的方法侧重于特性,目的是领先市场或者业务取得成功。以产品为中心的策略,其风险在于开发人员辛辛苦苦实现的特性并没有得到很高的利用,虽然它们当时看似都是奇思妙想。我们建议先理解业务目标和用户目标,然后根据自己得出的见解来确定合适的产品特性和特征。

分析

       分析需求涉及深入并准确理解每个需求,然后将各个需求以不同的方式表达出来。下面是一些基本活动。

  • 分析来自用户的信息,将其任务目标与功能需求、质量预期、业务规则、建议解决方案和其他信息区别开。
  • 将概要需求进行适当的细分。
  • 从其他需求信息中引出功能需求。
  • 理解质量属性的相对重要性。
  • 将需求分配给系统架构所定义的软件组件。
  • 协商需求实现的优先级别。

       找出需求中的遗漏的或多余的、不必要的需求,以便定义范围。
 

规范说明
       需求规范说明以一种连贯并结构清晰的方式来表达和存储收集到的需求知识。主要活动如下。
将收集到的用户需求转换为书面形式的需求和图表,供目标读者理解、检查和使用。
 

验证
       需求验证是指确认需求信息是正确的,能使开发人员制定出能满足业务目标的解决方案。其中心活动如下所示。

  • 检查记录下来的需求,在交给开发团队认可之前解决所有问题。
  • 开发验收测试和标准,保证产品的开发是建立在需求基础之上的,能够满足客户需要并达成业务目标。

       迭代是成功需求开发的关键。规划出多周期的需求探究活动,我们要逐步优化概要需求,使其进一步准确和细化,并与用户共同确认得出正确的需求。这可能是费力不讨好的活儿。但如果想解决新软件系统的不确定性,这个工作就是不可避免的。
重点提示

       获得“完美的”需求完全是痴心妄想。从实际角度来看,需求开发的目标是大家对“足够好”的需求达成共识后,着手产品开发的下一步一不管是整个产品的1%还是100%一而风险在可控范围之内。主要风险在于不得不进行大量未经计划的返工,因为团队在开始设计和开发前,没有充分理解下一个工作模块的需求。

需求管理
       需求管理活动如下所示。

  • 及时确定需求基线,提交一个供当前时间段使用的参考,提出一套大家商定的、经过评审和批准的功能需求与非功能需求,通常针对具体的产品发布或者开发迭代。
  • 评估提议需求变更可能产生的影响,然后以可控方式将获准的变更融入项目。
  • 随着需求的演化,保持项目计划与需求同步。
  • 根据预估的需求变更可能带来的影响,商定新的承诺。
  • 定义各个需求之间存在的关系和依赖。
  • 跟踪每个需求到它们各自对应的设计、源代码和测试。
  • 在整个项目过程中跟踪需求状态和变更活动。

       需求管理的目标不是抑制变更或加大其难度,而是为了预测和协调不可避免且实际存在的变更,最终最小化变更对项目的破坏性影响。图从另外一个视角为我们阐明需求开发与需求管理之间的区别。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/646422.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu2404 AMD64 编译并安装virtualbox7.0.18

ubuntu2404 AMD64 编译并安装virtualbox7.0.18 0、官方参考文档: https://www.virtualbox.org/wiki/Linux%20build%20instructions 1、下载源码: $ wget https://download.virtualbox.org/virtualbox/7.0.18/VirtualBox-7.0.18.tar.bz2 2、安装库&…

基于信号分解方法的机械故障诊断方法存在的问题

一方面,由于结构共振、测试噪声的干扰,为了确保分解精度,需要给定准确的参数初值(例如,瞬时频率)。研究人员通常认为零部件特征频率与通过传动比和驱动转速计算的理论值基本吻合,并基于理论值设置参数初值。事实上&…

Pytest对协程异步函数进行单元测试

安装 安装基础包 pytest,pytest-asyncio pip install pytest pytest-asyncio测试: pytest -s -v ./python-code/do-async/aiohttp_session_pytest.py书写规范 类名必须以 Test 开头方法和函数名必须以test开头 class TestAddFunc(object): # 测试…

AIGC 006-textual-inversion使用文本反转实现个性化文本到图像生成!

AIGC 006-textual-inversion使用文本反转实现个性化文本到图像生成! 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 这篇论文 (An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion) 提出了一种新颖的技术&#xff0c…

算法:树状数组

文章目录 面试题 10.10. 数字流的秩327. 区间和的个数315. 计算右侧小于当前元素的个数 树状数组可以理解一种数的存储格式。 面试题 10.10. 数字流的秩 假设你正在读取一串整数。每隔一段时间,你希望能找出数字 x 的秩(小于或等于 x 的值的个数)。 请实现数据结构…

揭秘Python安装目录:你的编程宝库隐藏了哪些宝藏?

python3.10安装目录结构 Python310/ │ ├── DLLs/ # Python 解释器所需的 DLL 文件 ├── Doc/ # Python 的 官方文档和参考手册 ├── include/ # 头文件和静态库文件 ├── Lib/ # Python 标准库 ├── libs/ …

可以免费试用得微信辅助工具wetool升级版,可以群发,可以清理僵尸粉,可以自动回复,可以批量添加

今天给大家推荐一款我们目前在使用的电脑群发工具掘金小蜜,不仅可以无限多开,方便你同时管理多个账号,群发功能更是十分强大,轻松释放你的双手。 掘金小蜜(只支持Win7及以上操作系统,没有推Mac版和手机客户…

【C语言】二叉树的实现

文章目录 前言⭐一、二叉树的定义🚲二、创建二叉树🎡三、二叉树的销毁🎉四、遍历二叉树1. 前序遍历2. 中序遍历3. 后序遍历4. 层序遍历 🌲五、二叉树的计算1. 计算二叉树结点个数2. 计算二叉树叶子结点的个数3. 计算二叉树的深度4…

决策控制类软件项目的团队配置

决策控制类软件项目的团队配置怎样才是最合适的?目的就是实现高效的项目协作以及为企业降本增效。软件项目的主要费用来源是研发人员的开支以及差旅费用。 下面的思维导图从项目与产品的关系、团队架构、项目成员配置、项目可复制性、招聘这几点进行说明如何组织人…

力扣刷题--2176. 统计数组中相等且可以被整除的数对【简单】

题目描述 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 k &#xff0c;请你返回满足 0 < i < j < n &#xff0c;nums[i] nums[j] 且 (i * j) 能被 k 整除的数对 (i, j) 的 数目 。 示例 1&#xff1a; 输入&#xff1a;nums [3,1,2,2,2,1,3], k …

VMware安装Windows Server 2012 R2

1.下载镜像 迅雷&#xff1a;ed2k://|file|cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso|5545527296|BD499EBCABF406AB82293DD8A5803493|/ 2. 安装过程 【创建新的虚拟机】→ 【自定义】→ 【下一步】 【下一步】 【稍后安装】→ 【下一步】 选择版本 自定…

数据结构(五)

数据结构&#xff08;五&#xff09; 常见的排序算法内部排序交换插入选择归并基数 外部排序基于归并的 常见的排序算法 内部排序 交换 冒泡&#xff1a;每一次运行总会将最小的或者最大的放到前面&#xff0c;如果需要交换&#xff0c;一直在交换 快速排序*&#xff1a;经过…

python如何把字符串变成小写字母

Python中&#xff0c;将字符串中的字母转换成小写字母&#xff0c;字符串变量提供了2种方法&#xff0c;分别是title()、lower()。 Python title()方法 title()方法用于将字符串中每个单词的首字母转为大写&#xff0c;其他字母全部转为小写&#xff0c;转换完成后&#xff0…

SpringBoot+Vue开发记录(六)-- 后端配置mybatis

原型图什么的就先不管&#xff0c;后面再写。 本篇文章的主要内容就是springboot通过mybatis操作数据库实现增删改查。 重点是mybatis配置与相关文件数据&#xff0c;以后开新项目忘记了怎么配置的话可以再照着这个搞。 这算是最基础的部分了吧。 文章目录 一&#xff0c;配置…

计算机毕业设计 | SpringBoot招投标 任务发布网站(附源码)

1&#xff0c;绪论 在市场范围内&#xff0c;任务发布网站很受欢迎&#xff0c;有很多开发者以及其他领域的牛人&#xff0c;更倾向于选择工作时间、工作场景更自由的零工市场寻求零散单子来补贴家用。 如今市场上&#xff0c;任务发布网站鱼龙混杂&#xff0c;用户需要找一个…

xgboost项目实战-保险赔偿额预测与信用卡评分预测001

目录 算法代码 原理 算法流程 xgb.train中的参数介绍 params min_child_weight gamma 技巧 算法代码 代码获取方式&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1QV7nMC5ds5wSh-M9kuiwew?pwdx48l 提取码&#xff1a;x48l 特征直方图统计&#xff1a; fig, …

STL源码刨析:序列式容器之vector

目录 1.序列式容器和关联式容器 2.vector的定义和结构 3.vector的构造函数和析构函数的实现 4.vector的数据结构以及实现源码 5.vector的元素操作 前言 本系列将重点对STL中的容器进行讲解&#xff0c;而在容器的分类中&#xff0c;我们将容器分为序列式容器和关联式容器。本章…

xcode按下delete键不能删除不能使用,解决办法

有可能是按键冲突导致的问题&#xff0c;就是你不小心把delete键绑定了不同的快捷键&#xff0c;所以需要恢复所有的偏好设置和快捷键才可以&#xff0c;我这里就是这样的提示内容&#xff0c;在xcode中按delete键完全无效&#xff1a; 而且还会报红色提示&#xff1a;意思是不…

民国漫画杂志《时代漫画》第22期.PDF

时代漫画22.PDF: https://url03.ctfile.com/f/1779803-1248634856-2c7010?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!

JUC框架(CAS、ATOMIC、AQS)

文章目录 JUC之CASJUC之ATOMICJUC之AQSAQS简介AQS原理 更多相关内容可查看 JUC之CAS **CAS&#xff08;compareAndSwap&#xff09;**也叫比较交换&#xff0c;是一种无锁原子算法&#xff0c;其作用是让**CPU**将内存值更新为新值&#xff0c;但是有个条件&#xff0c;内存值…