需求开发和管理

news2024/11/16 11:32:35

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

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

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

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

分析

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

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

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

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

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

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

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

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++笔记之Unix时间戳、UTC、TSN、系统时间戳、时区转换、local时间笔记

C++笔记之Unix时间戳、UTC、TSN、系统时间戳、时区转换、local时间笔记 ——2024-05-26 夜 code review! 参考博文 C++笔记之获取当前本地时间以及utc时间

网络统一监控运维管理解决方案(ppt原件方案)

网络统一监控运维管理解决方案 1. 构建完善的网络运维体系:通过组织、流程、制度的完善、支撑手段的建设,构建低成本高效率的IT运营体系,推动IT运营工作自动化、智能化、一体化化发展。 2. 构建网络一体化监控能力:构建从设备、…

QT之常用控件

一个图形化界面当然需要有各种各样的控件,QT也不例外,在QT designer中就有提供各种各样的控件,用以开发图形化界面。 而想使用好一个QT控件,就需要了解这些控件。 QWidget 在QT中,所有控件都继承自 QWidget 类&…

基于Python Selenium web测试工具 - 基本用法详解

这篇文章主要介绍了Selenium(Python web测试工具)基本用法,结合实例形式分析了Selenium的基本安装、简单使用方法及相关操作技巧,需要的朋友可以参考下 本文实例讲述了Selenium基本用法。分享给大家供大家参考,具体如下: Seleni…

2010-2022年各省新质生产力数据(含原始数据+测算代码+计算结果)

2010-2022年各省新质生产力数据(含原始数据测算代码计算结果) 1、时间:2010-2022年 2、范围:31省 3、指标:gdp(亿元)、在岗职工工资:元、第三产业就业比重、人均受教育平均年限、…

App推广新境界:Xinstall助你轻松突破运营痛点,实现用户快速增长!

在移动互联网时代,App已经成为企业营销不可或缺的一部分。然而,如何有效地推广App,吸引并留住用户,成为了众多企业面临的难题。今天,我们将为您揭秘一款神奇的App推广工具——Xinstall,它将助您轻松突破运营…

idea2023的git从dev分支合并到主分支master

1.本地项目切换到主分支master 右键项目-git-Branches 依次点击项目-Remote-Origin-master-CheckOut 现在你的idea中的这个项目就是远程master分支的代码了。 2.合并dev分支到master 右击项目-git-Merge 选择origin-dev 点击Merge按钮,此时只是合并到本地的maste…

Neural Filters:风景混合器

Ps菜单:滤镜/Neural Filters/创意/风景混合器 Neural Filters/CREATIVE/Landscape Mixer 风景混合器 Landscape Mixer滤镜通过与另一个图像混合或改变诸如时间和季节等属性,神奇地改变景观。 “风景混合器”滤镜利用人工智能和机器学习技术,首…

MySQL--备份恢复

目录 一、备份恢复的工作职责 1.备份的时间周期 2.备份的方式 3.恢复方案 4.检查备份 5.定期恢复演练 6.故障恢复策略 7.迁移升级 二、逻辑备份工具--mysqldump 1.介绍 2.使用场景 3.mysqldump命令的参数介绍 1)全备: 2)单库或…

Kafka 安装教程和基本操作

一、简介 Kafka 是最初由 Linkedin 公司开发,是一个分布式、分区的、多副本的、多订阅者,基于 zookeeper 协调的分布式日志系统(也可以当做 MQ 系统),常见可以用于 web/nginx 日志、访问日志,消息服务等等…

【数据结构】快速排序详解!

文章目录 1. 快速排序的非递归版本2. 快速排序2.1 hoare 版本一2.2 挖坑法 🐧版本二2.3 前后指针 版本三2.4 调用以上的三个版本的快排 3. 快速排序的优化 1. 快速排序的非递归版本 🆒🐧关键思路: 🍎① 参数中的begin…

安装mamba时报错bare_metal_version

原因:缺少cuda118的环境版本,直接安装 nvidia/label/cuda-11.8.0 可解决,代码如下: conda install -c "nvidia/label/cuda-11.8.0" cuda-nvcc

八种单例模式

文章目录 1.单例模式基本介绍1.介绍2.单例模式八种方式 2.饿汉式(静态常量,推荐)1.基本步骤1.构造器私有化(防止new)2.类的内部创建对象3.向外暴露一个静态的公共方法 2.代码实现3.优缺点分析 3.饿汉式(静态…

Shell字符串变量

目标 能够使用字符串的3种方式 掌握Shell字符串拼接 掌握shell字符串截取的常用格式 能够定义Shell索引数组和关联数组 能够使用内置命令alias,echo,read,exit,declare操作 掌握Shell的运算符操作 Shell字符串变量 介绍 字符串(String)就是一系…

嵌入式进阶——数码管

🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 数码管结构移位寄存器原理图移位寄存器数据流程移位寄存器控制流程移位寄存器串联实现数码管显示 数码管结构 共阴与共阳 共阳数码…

从程序被SQL注入来MyBatis 再谈 #{} 与 ${} 的区别

缘由 最近在的一个项目上面,发现有人在给我搞 SQL 注入,我真的想说我那么点资源测试用的阿里云服务器,个人估计哈,估计能抗住他的请求。狗头.png 系统上面的截图 数据库截图 说句实在的,看到这个之后我立马就是在…

架构师系列-定时任务解决方案

定时任务概述 在很多应用中我们都是需要执行一些定时任务的,比如定时发送短信,定时统计数据,在实际使用中我们使用什么定时任务框架来实现我们的业务,定时任务使用中会遇到哪些坑,如何最大化的提高定时任务的性能。 我…

设计模式深度解析:分布式与中心化,IT界两大巨头“华山论剑”

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL应用》 💪🏻 制定明确可量化的目标,坚持默默的做事。 ✨IT界的两大巨头交锋✨ 👋 在IT界的广阔天地中,有两座…

【Linux 网络】网络基础(三)(网络层协议:IP 协议)

在复杂的网络环境中确定一个合适的路径。 一、TCP 与 IP 的关系 IP 层的核心作用是定位主机,具有将数据从主机 A 发送到主机 B 的能力,但是能力并不能保证一定能够做到,所以这时就需要 TCP 起作用了,TCP 可以通过超时重传、拥塞控…

DBAPI怎么进行数据格式转换

DBAPI如何进行数据格式的转换 假设现在有个API,根据学生id查询学生信息,访问API查看数据格式如下 {"data":[{"name":"Michale","phone_number":null,"id":77,"age":55}],"msg"…