软件需求工程

软件需求

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

软件需求三个层次

业务需求

用户需求

功能需求

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

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

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

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

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

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

外部界面的具体细节;

性能要求;

设计或实现的约束条件;

质量属性。

通常也可以总结为 FURPS+:

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

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

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

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

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

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

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

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

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

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

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

软件需求规格

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

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

软件需求工程

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

相关推荐
せいしゅん青春之我1 分钟前
【JavaEE初阶】TCP核心机制10——异常情况的处理
java·网络·笔记·网络协议·tcp/ip·java-ee
wdfk_prog4 分钟前
[Linux]学习笔记系列 -- [kernel][time]hrtimer
linux·笔记·学习
摇滚侠5 分钟前
Spring Boot3零基础教程,把 Java 程序打包为 Linux 可执行文件,笔记91
java·linux·笔记
四谎真好看1 小时前
Java 黑马程序员学习笔记(进阶篇21)
java·开发语言·笔记·学习·学习笔记
立志成为大牛的小牛1 小时前
数据结构——三十三、Dijkstra算法(王道408)
数据结构·笔记·学习·考研·算法·图论
何故染尘優2 小时前
docker学习笔记,从入门开始!
笔记·学习·docker
D.....l3 小时前
STM32学习(MCU控制)(WiFi and MQTT)
stm32·单片机·学习
摆烂积极分子3 小时前
安卓开发学习10-中级控件
学习
少爷晚安。3 小时前
Java零基础学习完整笔记,基于Intellij IDEA开发工具,笔记持续更新中
java·笔记·学习
junziruruo3 小时前
半监督学习,少样本学习和零样本学习
python·学习·机器学习