软件工程 软件需求与软件需求规约 第1篇随笔

2、软件需求与软件需求规约

1. 何为需求?

定义问题的基本要素是 “需求”

一个需求是一个有关”要予构造”的陈述,用以描述待开发产品(或项)功能上的能力、性能参数或者其它性质。

2.IEEE标准830-1998要求单一需求必须具有5个基本性质

  • 必要的(Necessary)。是要求的吗?
  • 无歧义的(Unambiguous)。只能用一种方法解释吗?
  • 可测试的(testable)。可以对它进行测试吗?
  • 可跟踪的(Traceable)。可以从一个开放阶段到另一个阶段对它进行跟踪吗?
  • 可测量的(Measurable)。可以对它进行测量吗?

注意:确定一个需求是否满足以上五个性质是复杂耗时的过程。

3.需求分类

  • 功能:功能需求规约了系统或者系统结构必须执行的功能。
  • 性能:规约了一个系统或者系统构件必须具有的性能特性。
  • 外部接口:规约了系统或系统构件必须与之交互的硬件、软件或数据库元素。它也可能规约其形式、时间或者其它因素。
  • 用户接口
  • 硬件接口
  • 软件接口
  • 通讯接口
  • 设计约束:限制了系统或系统构件的设计方案。 需要考虑下面是个方面:
  • 法制政策
  • 硬件限制
  • 与其他应用接口
  • 并发操作
  • 审计功能
  • 控制功能
  • 高级语言需求
  • 握手协议
  • 应用的关键程度
  • 安全考虑
  • 质量属性:规约了软件产品必须具有的一个性质是否到达质量一个所期望的水平属性 描述 可靠性 软件系统在指定环境中没有失败而正常运行的效概率 存活性 当系统的某一个部分系统不能运行时,该软件继续运行或支持关键功能的可能性 可维护性 发现和改正一个软件故障或对特定的范围进行修改所需求的平均工作 用户友好性 学习和使用一个软件系统的容易程度 安全性 在一个预定的时间内,使软件系统安全的可能性 可移植性 软件系统运行的平台类型

1.定义需求的基本格式;—-需求规约

概念;

一个需求规约是一个软件项/产品/系统所有需求陈述的正式文档,是一个软件产品/系统的概率模型

基本性质:

IEEE标准还规定SRS必须具有以下4个性质:

  • 重要性和稳定性程度
  • 可修改的
  • 完整的
  • 一致的

2.表达需求规约的三种风格

  • 非形式化的规约 即以一种自然语言来表达需求规约
  • 半形式化的规约 即以半形式化符号体系(包括术语表、标准化的表达格式等)来表达需求规约
  • 形式化规约 即以一种基于良构数学概念的符号体系来编制需求规约,一般往往伴有解释性注释的支持

3.需求规约的作用

  • 需求规约是软件开发组织和用户之间一份实事上的技术合同,是产品功能及其环境的体现
  • 需求规约是一个管理控制点
  • 对于产品/系统的而设计,需求规约是一个正式的、受控的起始点
  • 需求规约是创建产品验收计划和用户指南的基础。

Original: https://www.cnblogs.com/shuisanya/p/16636080.html
Author: 水三丫
Title: 软件工程 软件需求与软件需求规约 第1篇随笔

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/581446/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 在Linux下配置RealVNC和TigerVNC

    作者:alittlemc | 更新中 | 原创文章,可能有技术理解错误,欢迎指正,请与我联系,谢谢! 命令和快速总结 realvnc创建# :会话id -name 取名字 -dep…

    Linux 2023年6月6日
    0107
  • Redis分布式锁的使用与实现原理

    模拟一个电商里面下单减库存的场景。1.首先在redis里加入商品库存数量。 2.新建一个Spring Boot项目,在pom里面引入相关的依赖。 <dependency&gt…

    Linux 2023年5月28日
    0105
  • Linux系统查看磁盘可用空间的5个命令

    大家好,我是良许。 工作中,经常会遇到磁盘爆满的情况,尤其是一台服务器运行了 N 年之后,里面会充满各种各样垃圾文件,比如:编译产生的中间文件、打包的镜像文件、日志文件,等等。 别…

    Linux 2023年5月27日
    0120
  • linux开机自动挂载(/etc/fstab)

    fatab 介绍 通常情况,Linux 的 /etc/fstab 文件可能有如下内容: # /etc/fstab Created by anaconda on Fri Aug 18…

    Linux 2023年6月7日
    0108
  • Linux中安装JDK详细步骤

    一、下载Linux版本的JDK 进入官网下载对应的JDK,下载之前需要先登录 官网地址 -> https://www.oracle.com/ 登录成功后,找到对应的下载位置 …

    Linux 2023年6月7日
    099
  • Tomcat性能优化方案

    你使用过tomcat的话,简单的说就是”内存溢出”. 通常情况下,这种问题出现在实际的生产环境中.产生这种问题的原因是tomcat使用较少的内存给进程,通过…

    Linux 2023年6月14日
    099
  • 在自己的项目中使用PCL

    在自己的项目中使用PCL项目设置:1、创建cpp文件,如pcd_write.cpp,文件内容如下例: #include find_package(PCL 1.3 REQUIRED …

    Linux 2023年5月27日
    070
  • Linux命令篇-curl 命令

    curl 查看网页源码 自动跳转 显示头信息 通信过程 下载文件 断点续传 获取天气 curl 查看网页源码 直接在curl命令后加上网址,就可以看到网页源码。 $ curl ww…

    Linux 2023年6月13日
    0105
  • 对比powershell,点评:《七年老运维实战中的 Shell 开发经验总结》

    前言: 《七年老运维实战中的 Shell 开发经验总结》是不错的帖子,建议shell用户搜看。 点评:《七年老运维实战中的 Shell 开发经验总结》 shell除了上述问题外,还…

    Linux 2023年6月14日
    088
  • 从前端走向后端

    每次过年回老家聚会,遇到不熟悉的亲戚朋友,经常被问到职业是什么。一开始,我总是很认真的回答这个问题,结果常常引出一番尴尬的问答。 &#x201C;&#x4F60;&…

    Linux 2023年6月6日
    093
  • WEB自动化-05-Cypress-元素交互

    5 元素交互 元素识别和操作是UI自动化测试的基础,下面一起来学习一下在Cypress中的元素交互操作吧。 5.1 元素定位器选择 每一个测试用例都包含对元素的定位识别和操作等。因…

    Linux 2023年6月7日
    093
  • 浅谈DDD中的聚合

    DDD分为战略部分跟战术部分,相信大家都认同DDD的核心在战略而非战术。而战略方面的核心我认为在业务建模,领域划分、统一语言等都在为业务建模服务。 为什么业务建模重要? 以前的开发…

    Linux 2023年6月8日
    092
  • 怎么实现Redis的高可用?(主从、哨兵、集群)

    高可用有两个含义: 一是数据尽量不丢失,二是保证服务尽可能可用。 AOF 和 RDB 数据持久化保证了数据尽量不丢失,那么多节点来保证服务尽可能提供服务。 一般在实际生产中,服务不…

    Linux 2023年5月28日
    085
  • Golang 实现 Redis(6): 实现 pipeline 模式的 redis 客户端

    本文是使用 golang 实现 redis 系列的第六篇, 将介绍如何实现一个 Pipeline 模式的 Redis 客户端。 通常 TCP 客户端的通信模式都是阻塞式的: 客户端…

    Linux 2023年5月28日
    073
  • c++仿照go语言的error,函数返回值封装

    c++仿照go语言,程序返回错误时,可以附加错误信息 #ifndef __ERRORMSG_H_ #define __ERRORMSG_H_ #include struct Err…

    Linux 2023年6月14日
    084
  • Ubuntu更换镜像源

    当修改 sources.list文件时,我们需要将下面任意一个镜像源的代码 复制粘贴到该文件中。 阿里源 阿里镜像源 deb http://mirrors.aliyun.com/u…

    Linux 2023年6月14日
    085
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球