需求工程方法的学习

news2024/11/29 10:38:45

作业要求:总结尽可能多的需求工程的方法和技术要求归纳总结各种方法的适用场景、优缺点等。说明:其中需求工程包括需求获取、需求分析、规格说明、验证、管理等。只要是用于需求工程相关的技术和方法都可以算。

软件需求工程划分为需求开发和需求管理,需求开发阶段又可进一步划分为需求获取、需求分析、规格说明和需求验证。本人将总结每一阶段中可以用到的方法和技术,包括适用场景、优缺点。

一、需求获取

1.用户访谈

  1. 适用场景:分析人员以个别访谈或小组会议的形式与用户进行初步的沟通,适合于开发方不清楚项目需求(一般开发方是刚开始做这种业务类型的工程项目)但用户方清楚项目需求的情况。
  2. 优点:直接有效、形式灵活、交流深入。
  3. 缺点:①占用时间长:通常要访谈的人比较多,语言交流会占用大量时间。②信息存在片面性:用户代表经常各执一词,导致收集的信息无法代表所有用户的想法,从而导致偏差的出现。

2.用户调查

  1. 适用场景:适合于开发方和用户方都清楚项目需求的情况。
  2. 优点:调查面比较宽,用户反馈多。这恰好能够成为用户访谈的有效补充,能够克服用户访谈的片面性。
  3. 缺点:缺乏灵活性,而且可能存在受调查人员不能很好表述自己想法的限制。

3.文档分析

  1. 适用场景:对于一些数据流程比较复杂的、工作表单较多的项目来说,就可以应用这种方法。
  2. 优点:能够详细、直观地对数据流细节进行了解和分析。
  3. 缺点:企业机构中,文档量通常非常大,由此容易使需求获取人员陷入文山书海中不能自拔,甚至引起误导。

4.原型法

原型法主要分为界面原型法和可运行系统原型法。

  1. 适用场景:界面原型法适合于开发方和用户方都不清楚项目需求的情况。可运行系统原型法适合于开发方比较清楚项目需求但用户方不清楚项目需求的情况。同时,对于这种类型的项目,开发方一般都有类似项目的建设经验,因此可以在以往项目的基础上,快速“构建”出一个可运行系统。
  2. 优点:①使用户更好地理解需求工程师的假设;②使需求工程师通过观察用户的反馈来加深对用户的理解,并明确自己的一些假设为什么不准确。
  3. 缺点:在构建原型的过程中会花费一定的人力和经济成本,而且还可能浪费开发时间。

二、需求分析

1. 原型化方法:根据用户提出的需求,由用户与开发者共同确定系统的基本要求和主要功能,并在较短时间内简历一个实验性的,简单的小型系统。

  1. 适用场景:适用于小型系统的开发。
  2. 优点:符合人们认识事物的规律,开发周期短,费用相对少,应变能力强。
  3. 缺点:不适用大型系统,开发难以控制,系统难以维护。

2. 建模方法

3.  5W2H模型法

 

三、规格说明

 

四、需求验证

1.验证软件需求的方法

  • 验证一致性:自然语言描述需求、形式化语言描述需求、使用软件工具验证
  • 验证现实性:参照开发经验
  • 验证完整性和有效性:建立软件原型

2.验证需求正确性的四个方面

  • 一致性:所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾
  • 完整性:需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能
  • 现实性:指定的需求应该能用现有的硬件和软件技术可以实现
  • 有效性:必须证明需求是正确有效的,确实能解决用户面对的问题

五、需求管理

需求管理流程主要包括6大部分:制订需求管理计划、求得对需求的理解、求得对需求的承诺、管理需求变更、维护对需求的双向跟踪性、识别项目工作与需求之间的不一致性。

用CMMI指导需求管理。

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

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

相关文章

Linux 中 man手册中函数后面括号数字释义

文章目录简介参考资料简介 Linux手册页项目记录了用户空间程序使用的Linux内核和C库接口。 用man手册查看系统命令,系统调用,glibc函数时,会发现其后面会有个括号,括号里面是一个数字,比如: access(2), …

一文了解Spring框架

目录 SpringBoot VS Servlet Spring是什么? loC:控制反转 DI 创建一个Spring项目 创建一个Spring IOC容器 注册Bean对象 获取Bean对象 注意事项: 类注解 为什么有这么多类注解? 注册与注入 方法注解 Bean Spr…

《R语言数据分析》2022-2023第一学期课程分析报告

1 (30分)基本操作题 1.1 (10分) 请写出下面问题的R代码 1.(2分)安装并加载gtools扩展包。 install.packages(“gtools”) library(gtools) 2.(2分)查看当前已经加载的所有包。 as.data.frame(installed.packages())$Package 3.(2分)查看gtools包的帮助网页。 ?gtools…

《清单革命》内容梳理随笔

《清单革命》内容梳理&随笔 起 书即是将四散的知识按照逻辑和网状联系编排起来。你应该这样去读,高屋建瓴、层次有秩、显得貌似自己有经验(褒义)的读,读出一些感想和方法论,无论是读出书里的还是书外的&#xff…

【MySQL高级】SQL优化

5. SQL优化 5.1 大批量插入数据 环境准备 : CREATE TABLE tb_user_2 (id int(11) NOT NULL AUTO_INCREMENT,username varchar(45) NOT NULL,password varchar(96) NOT NULL,name varchar(45) NOT NULL,birthday datetime DEFAULT NULL,sex char(1) DEFAULT NULL,…

【数据库】实验五 数据库综合查询|多表查询、聚集函数、orderby、groupby

文章目录参考文章本文在实验四的基础上增加了orderby、聚集函数、groupby、多表查询的知识点,相较于上一次实验的难度变大了,嵌套表达更多了,逐渐开始套娃…… 其实可以看成一个偏正短语来拆分,再写成SQL语句,比如查询…

微信小程序|基于小程序实现人脸数量检测

一、文章前言二、具体流程及准备三、开发步骤四、完整代码一、文章前言 此文主要通过小程序实现检测图片中的人脸数量并标记出位置信息。 当近视的小伙伴看不清远处的人时,用小程序一键识别就可以在手机上看清楚啦,是不是很实用呢。 典型应用场景&#x…

2022年还在做手动测试?是该好好反思了

为什么会写这篇文章呢?主要是前段时间有个朋友在QQ上和我交流,说他干了10年的手工测试了,现在还能不能转行。 说实话,当时我听完非常惊讶!由此,我写了今天这篇文章。内容纯属个人观点,如果对你…

STM32CubeMX学习笔记(46)——USB接口使用(HID自定义设备)

一、USB简介 USB(Universal Serial BUS)通用串行总线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在 PC 领域的接口技术。USB 接口支持设备的即插即用和热插拔功能。USB 是在 1994 年底由英特尔、康柏、IBM、…

浅刷牛客链表题,逐步深入链表,理解链表

作者:渴望力量的土狗 博客主页:渴望力量的土狗的博客主页 专栏:手把手带你刷牛客 工欲善其事必先利其器,给大家介绍一款超牛的斩获大厂offer利器——牛客网 点击免费注册和我一起刷题吧 目录 1、反转链表 2、删除链表的倒数第n个…

RocketMQ 消息重新投递 解析——图解、源码级解析

🍊 Java学习:Java从入门到精通总结 🍊 深入浅出RocketMQ设计思想:深入浅出RocketMQ设计思想 🍊 绝对不一样的职场干货:大厂最佳实践经验指南 📆 最近更新:2022年11月4日 &#x…

35、Java——一个案例学会Dao+service层对数据表的增删改查

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:乐趣国学的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:Java案例分…

deployment html--->JDBC--->mysql

spec: 相关属性定义 spec.selector: 符合该条件的收到该deployment管理 #spec.selector.matchLables 和 spec.template.metadata.labels 标签要一致 mysql Service metadata.name: Service的服务名 spec.ports: 虚拟端口 spec.selector: 哪些pod(实列&…

《Java》深浅拷贝解析(还不会区分深浅拷贝吗?快进来)

目录 一、深浅拷贝的意义 浅拷贝 深拷贝 二、深浅拷贝举例 浅拷贝 深拷贝 一、深浅拷贝的意义 首先我们来了解一下深浅拷贝的意义 浅拷贝 浅拷贝是会将对象的每个属性进行依次复制,但是当对象的属性值是引用类型时,实质复制的是其引用&#xff0c…

全网最全【数据结构与算法】408真题实战(含代码+详解)—— 线性表专题(持续更新...)

线性表专题 每道题目均有对应的代码&#xff0c;大家自行查看哦&#xff01; 顺序表 ADT&#xff1a;SeqList 文件名&#xff1a;SeqList.hpp #include <iostream> #include <cstdlib> using namespace std; // 以上是实际运行所需依赖&#xff0c;考试不用写t…

怎样编写裸片启动程序-ARMv8的Boot Code和ROM程序

ROM程序就是固化在芯片的ROM里面&#xff0c;把应用程序从存储器里加载/搬移到RAM中并使处理器开始执行应用程序的一段程序 1 Boot Code和ROM程序 从多普通单核MCU&#xff08;如STM32&#xff09;的使用者的角度来看&#xff0c;只需要把编译好的hex文件烧写到片上Flash中&am…

JavaScript(WebAPI) (前端)

文章目录前言一、WebAPI二、DOM1.选中元素2.事件3.获取/修改元素内容4.获取/修改元素属性5.获取/修改表单元素属性6.操作复选框7.获取/修改样式属性①行内样式②通过css class 指定的样式8.新增节点9.删除节点总结前言 虽然学了一些js的语法,但是仍然无法写出页面的动态效果~~…

【JavaScript高级进阶】构造函数和原型,学会prototype

目录 前言 1.构造函数和原型 1.1使用prototype解决内存浪费的问题 1.2constructor构造函数构造器构造函数 2.原型链 2.1js中成员查找规则 2.2原型对象this指向 2.3扩展内置对象 3.call作用 4.继承 4.1利用原型对象继承 写在最后 前言 哈喽哈喽大家好&#xff0c;因为…

【Day1】零基础学java--》记事本运行java程序,通熟语言让你彻底明白为什么配置java环境变量

前言&#xff1a; 大家好&#xff0c;我是良辰丫&#xff0c;从今天开始我将协同大家一起从零基础学习Java&#xff0c;期待与君为伴&#xff0c;走向海的彼岸。&#x1f495;&#x1f495;&#x1f495; &#x1f9d1;个人主页&#xff1a;良辰针不戳 &#x1f4d6;所属专栏&a…

C语言之数组练习题

第1关&#xff1a;数组插入元素 300 任务要求参考答案评论106 任务描述相关知识 数组数组元素的表示方法编程要求测试说明任务描述 本关需要你将一个数插入到一组已经排好序的数组并输出。 相关知识 数组在程序设计中&#xff0c;为了处理方便&#xff0c; 把具有相同类型…