软件需求工程

软件需求

软件需求是指用户对软件的功能和性能的要求。软件人员要准确理解用户的要求,进行细致的调查分析,将用户非形式化的需求陈述转化为完整的需求定义,再由需求定义转化到相应形式的需求规格说明。

软件需求三个层次

业务需求

用户需求

功能需求

有时也可以将软件需求按照层次来说明(如图)。

业务需求:反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中说明。

用户需求:用户使用产品必须要完成的任务,它们通常使用用例文档(use case)进行说明。

功能需求:开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。

非功能需求:描述系统展现给用户的行为和执行的操作等。包括:

产品必须遵循的标准、规范和合约;

外部界面的具体细节;

性能要求;

设计或实现的约束条件;

质量属性。

通常也可以总结为 FURPS+:

Functional(功能性):特性、功能、安全性。

Usability(可用性):人性化因素、帮助、文档。

Reliability(可靠性):故障频率、可恢复性、可预测性。

Performance(性能):响应时间、吞吐量、准确性、有效性、资源利用率。

Supportability(可支持性):适应性、可维护性、国际化、可配置性。

+:表示一些辅助性的和次要的因素,比如:

实现(Implementation):资源限制、语言和工具、硬件等。

接口(Interface):强加于外部系统接口之上的约束。

操作(Operation):对其操作设置的系统管理。

包装(Packaging):例如物理的包装盒。

授权(Legal):许可证或其他方式。

软件需求规格

软件需求规格充分描述了软件系统应具有的外部行为,它描述了系统展现给用户的行为和执行的操作等。它包括产品必须遵从的标准、规范和合约;外部界面的具体细节;非功能性需求(例如性能要求等);设计或实现的约束条件及质量属性。

软件需求规格说明在开发、测试、质量保证、项目管理以及相关项目功能中都起到重要的作用。

软件需求工程

可以定义为应用有效的技术和方法,合适的工具和符号,来确定、管理和描述目标系统及其外部行为特征的学科

相关推荐
Wils0nEdwards16 小时前
claude.md 使用方法
笔记
库奇噜啦呼16 小时前
【iOS】源码学习-类的加载
学习·ios·cocoa
Engineer邓祥浩16 小时前
宏观认知(1):AI 是什么——吴恩达《AI for Everyone》Week1 学习笔记
人工智能·笔记·学习
暴躁小师兄数据学院16 小时前
【AI大模型应用开发工程师特训笔记】第04讲(第五章):条件判断与流程控制
大数据·人工智能·python·学习
我是一只码蚁16 小时前
记一次苍穹外卖项目 Maven 编译报错的排查与解决全过程
java·经验分享·笔记·后端·架构·maven
3DVisionary16 小时前
混凝土裂纹如何全自动识别?DIC技术在结构裂缝重构的应用
人工智能·学习·dic技术·混凝土裂缝监测·全场应变分析·三维位移测量·实验力学
鹏北海-RemHusband16 小时前
Go 语言基础笔记 — 面向 JS/TS 前端开发者
笔记·golang
魔法阵维护师17 小时前
从零开发游戏需要学习的c#模块,第二十八章(血条显示 —— 敌人与玩家生命可视化)
学习·游戏·c#
sheeta199817 小时前
LeetCode 每日一题笔记 日期:2026.05.28 题目:3093. 最长公共后缀查询
linux·笔记·leetcode
墨白曦煜17 小时前
算法实战笔记:链表的底层逻辑与指针的高阶玩法(二)
笔记·算法·链表