《软件需求工程(第2版)》一导读

简介: 许多人经过研究发现,当软件开发项目失败时,软件需求问题通常正是核心问题。因此,在软件开发过程中,必须极早和有效地发现和解决与软件需求相关的问题。

image

前 言

随着计算机应用的不断发展和深入,人们需要收集和处理的信息规模急剧增大,其中计算机软件在信息收集和处理中起着至关重要的作用。由于软件已成为信息基础设施并具备密集型特点,使得软件一方面日益成为人们生活中的一部分,如电子政府、电子商务和手机等,人们也日益依赖软件。另一方面,一些高尖端的技术领域,如航空航天、国防军事等领域,对软件的质量提出了很高的要求。然而,软件开发的开发状况和质量远未达到人们的期望和要求,例如,大部分软件产品不能在预期计划和预算经费内完成,软件的质量低下等。软件质量所导致的软件故障和失效,常常对人们的工作和生活带来诸多不便,甚至造成重大损失。虽然产生上述问题的原因有很多,但软件需求问题可以说是其中的一个最大原因。许多人经过研究发现,当软件开发项目失败时,软件需求问题通常正是核心问题。因此,在软件开发过程中,必须极早和有效地发现和解决与软件需求相关的问题。

在很长一段时间里,人们并没有充分认识到软件需求的作用,软件工程界也一直没有将需求工程作为一个独立的部分进行深入的分析和研究。直到20世纪90年代中期,随着软件系统开发中出现的诸多问题,人们才逐渐认识到软件需求在整个软件开发中的重要性。通过一系列关于软件需求的重要学术会议进行广泛深入的研究和讨论,才使得需求工程作为一门独立的子学科正式形成。需求工程是指应用工程化的方法、技术和规格来开发和管理软件的需求。需求工程的目标就是要获取高质量的软件需求。与软件工程中传统的需求分析概念相比,需求工程突出了工程化的原则,强调以系统化、条理化和可重用的方法和技术进行与软件需求相关的活动,从而有利于提高所有与软件需求相关的活动及其过程的可管理性,降低需求开发和管理的难度和成本。

目 录

第1章 需求工程概述
1.1 需求工程的重要性
1.2 什么是软件需求
1.3 软件需求的分类
1.4 需求规格说明
1.5 需求工程定义
1.6 其他一些基本概念
第2章 软件工程与需求工程
2.1 软件工程
2.2 软件开发过程模型
2.3 需求工程在软件开发中的地位
2.4 软件需求的开发和管理过程
第3章 需求获取
3.1 确定需求开发计划
3.2 确定项目的目标和范围
3.3 确定调查对象
3.4 实地收集需求信息
3.5 确定非功能需求
3.6 在收集需求信息中应注意的问题
3.7 使用场景技术的需求获取
第4章 需求分析
4.1 建立系统关联图
4.2 分析需求的可行性
4.3 构建用户接口原型
4.4 确定需求的优先级
4.5 需求建模
4.6 建立数据词典

相关文章
|
SQL 安全 数据库
SQL-Server 数据库部署
SQL-Server 数据库部署
336 0
成功解决TypeError: ‘encoding’ is an invalid keyword argument for this function
成功解决TypeError: ‘encoding’ is an invalid keyword argument for this function
|
域名解析 安全 应用服务中间件
域名、证书提升自建dnslog平台的安全性
本文介绍如何使用 Nginx 反向代理为自建的 DNSlog 平台添加域名访问及 SSL 证书,提升安全性。内容分为三部分:Nginx 反代配置、Cloudflare 域名解析配置及证书安装。通过详细步骤和命令,帮助读者顺利完成配置,实现安全稳定的域名访问。
347 82
域名、证书提升自建dnslog平台的安全性
|
计算机视觉 Python
AttributeError: module ‘cv2‘ has no attribute ‘face‘
AttributeError: module ‘cv2‘ has no attribute ‘face‘
369 0
|
11月前
|
物联网 数据中心
以太网媒体标准详解
【10月更文挑战第16天】
350 0
|
设计模式 前端开发 Java
【十三】设计模式~~~行为型模式~~~中介者模式(Java)
文章详细介绍了中介者模式(Mediator Pattern),这是一种对象行为型模式,用于封装一系列对象的交互,降低系统耦合度,并简化对象之间的交互关系。通过案例分析、结构图、时序图和代码示例,文章展示了中介者模式的组成部分、实现方式和应用场景,并讨论了其优点、缺点和适用情况。
【十三】设计模式~~~行为型模式~~~中介者模式(Java)
|
11月前
|
关系型数据库 数据库 PostgreSQL
使用 PostgreSQL 和 Python 实现全文搜索
【10月更文挑战第2天】使用 PostgreSQL 和 Python 实现全文搜索
139 1
|
SQL 数据库 索引
数据库中表维护
【5月更文挑战第7天】本文介绍了提高数据库性能的五个技巧。1) 使用`ON DUPLICATE KEY UPDATE`或`ON CONFLICT DO UPDATE`避免锁竞争,尤其在高并发更新计数器场景下。2) 通过JOIN查询进行基于选择的更新。3) 使用公式表达式-CTE-删除重复行 。4) 定期运行`ANALYZE`命令更新表统计信息。这些方法有助于优化数据库性能,减少锁等待和提高查询速度。
197 1
数据库中表维护
|
canal 缓存 NoSQL
【后端面经】【缓存】33|缓存模式:缓存模式能不能解决缓存一致性问题?-03 Refresh Ahead + SingleFlight + 删除缓存 + 延迟双删
【5月更文挑战第11天】Refresh Ahead模式通过CDC异步刷新缓存,但面临缓存一致性问题,可借鉴Write Back策略解决。SingleFlight限制并发加载,减少数据库压力,适合热点数据。删除缓存模式在更新数据库后删除缓存,一致性问题源于读写线程冲突。延迟双删模式两次删除,理论上减少不一致,但可能降低缓存命中率。选用模式需权衡优劣,延迟双删在低并发下较优。装饰器模式可用于实现多种缓存模式,无侵入地增强现有缓存系统。
287 2
|
弹性计算 关系型数据库 数据库
在阿里云上搭建高效Web服务的完整指南
构建高效、稳定的Web服务是每个开发者的必修课。本文将详细介绍如何基于阿里云的相关产品,搭建一个具有高可用性和强大性能的Web服务。我们将使用Elastic Compute Service(ECS)、Server Load Balancer(SLB)、Relational Database Service(RDS)、域名服务等阿里云产品,通过图文并茂的方式为你展示整个流程。
459 0