一、需求工程的重要性

1.软件项目成败因素分析

软件项目成功因素:

  • 用户的参与
  • 执行层的支持
  • 清晰的需求描述
  • 合适的规划
  • 现实的客户期望
  • 较小的里程碑
  • 有才能的员工
  • 主权
  • 清晰的愿景和目标
  • 努力的工作和稳定的员工

软件项目失败因素:

  • 不完整的需求
  • 缺乏用户的参与
  • 资源不足
  • 不实际的客户期望
  • 缺乏执行层的支持
  • 需求变更频繁
  • 规划不足
  • 提供许多不必要的功能
  • 缺乏IT管理
  • 技术能力缺乏

2.因需求导致的软件项目失败的案例

  • 伦敦股票交易项目TAURUS(原因:未能协调不一致需求);
  • Swanick空中交通抗旨系统(原因:缺乏健壮的需求规格说明而继续进行系统实现)

3.需求与成本案例

  • A. Davis研究发现,在需求阶段检查和修复一个错误所需的费用只有编码阶段的1/5到1/10,而在维护阶段做同样的工作所需付出的代价却是编码阶段的20倍。

4.分析结论
  在软件开发过程中,必须极早、有效地发现和解决与需求相关的问题。

二、什么是软件需求

1.软件需求的各种定义

  • A. Davis:软件需求是从软件外部能发现的,软件所具有的,满足于用户的特点、功能及属性等的集合;
  • I. Sommerville:需求是问题信息和系统行为、特性、设计和实现约束的描述的集合;
  • M. Jackson:需求是客户希望在问题域内产生的效果;

IEEE关于软件需求的定义:

  • 用户角度:用户解决问题或达到目标所需的条件或能力;
  • 软件系统角度:系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力;
  • 规约:反映上面所描述的条件或能力的文档说明。

2.总结

  需求是指明必须实现什么的规格说明。它描述了系统的行为、特性或属性,是在开发过程中对系统的约束。

三、软件需求的分类

1.分类

  • 目标需求:反映组织机构或客户对系统和产品提出的高层次的目标要求,其限定了项目的范围和项目应达到的目标;
  • 业务需求:主要描述软件系统必须完成的任务、实际业务或工作流程等。软件开发人员通常可从业务需求进一步细化出具体的功能需求和非功能需求;
  • 功能需求:指开发人员必须实现的软件功能或软件系统应具有的外部行为;
  • 性能需求:指实现的软件系统功能应达到的技术指标,如计算效率和精度、可靠性、可维护性和可扩展性等;
  • 约束与限制:指软件开发人员在设计和实现软件系统时的限制,如开发语言、使用的数据库等。

2.软件需求间的层次关系

四、需求规格说明

  SRS(Software Requirements Specification):需求规格说明是软件所应满足的全部需求,并可以文档的方式完整和精确陈述这些需求。
  需求规格说明是项目相关人员对将要开发的软件系统所达成的共识,是进行系统设计、实现、测试和验收的基本依据,也是整个软件开发过程中最重要的文档。

软件需求工程-需求工程概述相关推荐

  1. 软件需求分析——需求工程过程

    如果有兴趣了解更多相关内容,可以来我的个人网站看看:瞳孔空间 一:相关概念 需求工程过程的目的:介绍为软件加强型系统中的复杂软件设计的需求工程过程,涉及 抽取需求 分析需求 验证需求 管理需求 主要关 ...

  2. 软件安全技术(概述、堆栈漏洞)总结

    文章目录 一.软件安全概述 二.内存漏洞 1.函数的栈帧 2.栈溢出漏洞基本原理 3.堆的基础知识 4.堆溢出漏洞及利用 一.软件安全概述 软件面临的三大类威胁:软件自身的安全(软件漏洞).恶意代码及 ...

  3. ECU软件UDS刷写概述

    解决故障诊断问题时,经常需要刷写软件,常用的ECU软件刷写有几种方法,包括UDS刷写,XCP刷写和调试工具Lauterbach刷写等.对于非底层软件工程师,一般只会用到前两种,更多的是UDS刷写,即通 ...

  4. 软件设计师——计算机网络概述

    软件设计师备考笔记 上午题 下午题 计算机网络概述 数据流图设计(下午试题一) 程序设计语言基础知识 数据库设计(下午试题二) 标准化和知识产权 UML分析与设计(下午试题三) 数据库 面向对象程序设 ...

  5. revman软件_meta分析概述及RevMan软件安装教程

    一.meta分析定义 国内王家良教授主编的<询证医学>教材中将meta分析定义为:对多个目的相同.性质相近的医学研究所进行的一种定量综合分析方法.在医学研究中,针对同一问题会有许许多多类似 ...

  6. 组态软件基础知识概述

    要想理解什么是组态软件,先理解什么是组态. 组态,英文名称"Configuration",是用应用软件中提供的工具.方法,完成工程中某一具体任务的过程."组态(Confi ...

  7. (15)卡巴斯基防病毒软件介绍-概述

    卡巴斯基对大多数国内用户是个陌生的名字,他的原名是Kaspersky Anti-Virus,这款俄罗斯Kaspersky Labs推出的防毒软件在国外备受推崇,它和赛门铁克的诺顿防病毒软件,McAfe ...

  8. C++软件异常分析概述

    目录 1.软件异常的分类 2.使用常用分析工具分析软件问题 3.使用Windbg分析软件异常

  9. 1.卡巴斯基防病毒软件介绍-概述

    卡巴斯基对大多数国内用户是个陌生的名字,他的原名是Kaspersky Anti-Virus,这款俄罗斯Kaspersky Labs推出的防毒软件在国外备受推崇,它和赛门铁克的诺顿防病毒软件,McAfe ...

最新文章

  1. java8u211_jre864位u211
  2. 【Dual-Path-RNN-Pytorch源码分析】Segmentation
  3. 压缩感知 compressive sensing(转)
  4. linux c 文件描述符 得到 文件名
  5. Android自动化测试之MonkeyRunner
  6. CodeForces - 468B Two Sets(并查集+思维)
  7. ASP.Net学习笔记010--加法计算器
  8. MyBatis_Generator的使用(实践)
  9. 中国人工智能学会通讯——后深度学习时代的人工智能
  10. Django中form字段操作
  11. 数据保护:从“随意架构”到简单可控
  12. Windows环境搭建Web自动化测试框架Watir(基于Ruby)
  13. RS232/RS485转4G DTU 上传基于Modbus协议的温湿度传感器数据到远程TCP服务器
  14. 2010年中国城市人均GDP排名
  15. rocketmq 消费方式_详解RocketMQ中的Consumer
  16. vue项目实现权限控制的几种思路
  17. thinkpad e470外接显示器后无声音
  18. 小白一看就懂的性能调优
  19. 百度LBS开放平台Android SDK产品使用
  20. 2020南京市(徐庄)高层次创业人才引进计划开启申报

热门文章

  1. 011.淘宝登录页面
  2. 关于产品的一些思考——网易之易信
  3. 存储器金字塔层次结构
  4. 尚硅谷大数据hadoop教程_mapReduce
  5. 格斗游戏c语言代码,C/C++知识点之设计并编写代码自动格斗类游戏
  6. JavaScript基础-逗号和三目运算符
  7. 无法访问windows installer服务怎么办
  8. vb动态加入ShockwaveFlash后怎么用ShockwaveFlash1_FSCommand?
  9. 如何判断一个数是否为2的幂次方
  10. 教你如何使用spss计算变量的相关性