软件设计和开发人员梳理和评价需求的利器-“三横三纵”矩阵

待兔 等级 670 0 0

作为软件设计和开发人员,经常关心的问题是:自己对需求的掌握是否全面?对需求的了解是否存在遗漏环节?如何帮助软件设计和开发人员解除以上困惑呢?本文提出了“三横三纵”的矩阵检查方法,以一种直观易行的逻辑思维矩阵帮助软件设计和开发人员全面梳理和评价需求。如下图所示:

“三横三纵”矩阵

首先,需求是分层次的。从不同的需求提出者和需求跟踪两个角度出发,将需求划分为三个层次。

组织级需求。包含客户或建设方要达到的业务目标、预期投资、工期要求,以及要符合哪些标准、对哪些遗留系统进行整合等约束条件。

用户级需求。用户使用系统来辅助完成哪些工作?对质量有何要求?用户群及所处的使用环境方面有何特殊要求?

开发级需求。开发人员需要实现什么?开发期间、维护期间有何质量考虑?开发团队的哪些情况会反过来影响架构?

其次,需求还必须从不同方面进行考虑。实践表明,忽视质量属性和约束性需求,常常导致设计和开发最终失败。例如,一个自媒体发布系统:

“发布文章”、“管理文章”、“粉丝管理”以及“收益管理”等,属于功能性需求。

系统应当具备良好的“可扩展性”和“安全性”,这是质量属性要求。

系统“必须运行在Linux平台上”,则属于约束性需求之列。

也就是说,从“直接目标还是间接限制”的角度出发把需求分为三类。

功能需求:更多体现各级直接目标要求。

质量属性:考虑运行期质量和开发期质量。

约束需求:考虑业务环境因素、使用环境因素、构建环境因素和技术环境因素。

收藏
评论区

相关推荐

软件设计和开发人员梳理和评价需求的利器-“三横三纵”矩阵
作为软件设计和开发人员,经常关心的问题是:自己对需求的掌握是否全面?对需求的了解是否存在遗漏环节?如何帮助软件设计和开发人员解除以上困惑呢?本文提出了“三横三纵”的矩阵检查方法,以一种直观易行的逻辑思维矩阵帮助软件设计和开发人员全面梳理和评价需求。如下图所示: “三横三纵”矩阵 首先,需求是分层次的。从不同的需求提出者和需求跟踪两个角度出发,将需求划分为
人工智能数学基础1:三角函数的定义、公式及固定角三角函数值
一、三角函数的定义及名称在直角三角形中,当平面上的三点A、B、C的连线,AB、AC、BC,构成一个直角三角形,其中∠ACB为直角。对∠BAC(在此简称为θ)而言,对边(opposite)aBC、斜边(hypotenuse)cAB、邻边(adjacent)bAC,则三角函数定义如下:二、三角函数的变化趋势及图像  正弦值在 \[2kππ/2,2kπ+π/2
关于根据颜色刷选图像内容的问题
在CSDN本人博文《OpenCVPython图像处理:用inRange刷选图像中指定颜色对象案例》(请点击文章底部最下方的“阅读原文”跳转CSDN阅读原文)中介绍了根据颜色刷选图像内容相关的概念及实现,介绍了通过使用inRange在HSV颜色空间中识别制定颜色的图像内容,文中概要介绍了HSV颜色空间中进行制定颜色对象识别的要点,使用的inRange函数的语法
C# 曲线上的点(二) 获取距离最近的点
如何在一条曲线上,获取到距离指定点最近的点位置? ![](https://oscimg.oschina.net/oscnet/6ce94b2cd799359221f22a5742193a09296.png) 与上一篇 [C# 曲线上的点(一) 获取指定横坐标对应的纵坐标值](https://www.oschina.net/action/GoToLink?
Java中当前对象引用
题: 计算机画图时,有点的概念,每个点由它的横坐标x 和 纵坐标 y 描述。 写一个类。 求两个点之间的曼哈顿距离 = 横向距离 + 纵向距离 例如,一个点(0,0) 和另一个点(1,1)的曼哈顿距离为2 package test; public class Point {
TCP的三次握手和四次挥手
  客户端向服务端请求数据的过程中,如果是TCP协议,则需经历TCP的三次握手和四次挥手,其中具体的过程如下:   三次握手   ![](https://oscimg.oschina.net/oscnet/61b5378d18062dca9748bb496c2eb99d11d.jpg)   这个过程其实就是确认对方的收发功能是否都正常的功能,形象表示如
Flink 助力美团数仓增量生产
> 简介: 本文由美团研究员、实时计算负责人鞠大升分享,主要介绍 Flink 助力美团数仓增量生产的应用实践。内容包括:1、数仓增量生产;2、流式数据集成;3、流式数据处理;4、流式 OLAP 应用;5、未来规划。 一、数仓增量生产 ======== **1.美团数仓架构** 先介绍一下美团数仓的架构以及增量生产。如下图所示,这是美团数仓的简单架构,我
Innodb Buffer Pool的三种Page和链表
一、Innodb Buffer Pool 简介 ========================== Buffer Pool 是Innodb 内存中的的一块占比较大的区域,用来缓存表和索引数据。众所周知,从内存访问会比从磁盘访问快很多。为了提高数据的读取速度,Buffer Pool 会通过三种Page 和链表来管理这些经常访问的数据,保证热数据不被置
SQL数据库基本操作,mysql为测试环境。
SQL功能极强,由于其巧妙的设计,完成核心功能只需要9个动词。 SQL功能 动词 数据查询 select 数据定义 create(创建,)drop(删除),alter(改变) 数据操纵 insert(插入 )update(更新) delete(删除) 数据控制 grant(授权)revoke(取消授权) 关系数据库系统支持三级模式结构
SVG 坐标系统
在开始学习如何绘图之前,我们先来看一下 SVG 的坐标系统。与很多计算机绘图所使用的坐标系统一样,SVG 也使用了网格坐标系统。这种坐标和我们以前在数学中学过的坐标有些不同。 数学中的坐标是由 `x` 轴(水平横向延伸)和 `y` 轴(垂直纵向延伸)交织组成,交点被称为坐标原点 `(0,0)` 。原点沿 `x` 轴向右为正值,反之为负值,沿 `y` 轴向上
SVG的坐标系统
在开始学习如何绘图之前,我们先来看一下 SVG 的坐标系统。与很多计算机绘图所使用的坐标系统一样,SVG 也使用了网格坐标系统。这种坐标和我们以前在数学中学过的坐标有些不同。 数学中的坐标是由 `x` 轴(水平横向延伸)和 `y` 轴(垂直纵向延伸)交织组成,交点被称为坐标原点 `(0,0)` 。原点沿 `x` 轴向右为正值,反之为负值,沿 `y` 轴向上
Spring Boot (八)MyBatis + Docker + MongoDB 4.x
一、MongoDB简介 ----------- ### 1.1 MongoDB介绍 MongoDB是一个强大、灵活,且易于扩展的通用型数据库。MongoDB是C++编写的文档型数据库,有着丰富的关系型数据库的功能,并在4.0之后添加了事务支持。 随着存储数据量不断的增加,开发者面临一个困难:如何扩展数据库?而扩展数据库分为横向扩展和纵向扩展,纵向扩展就
SVG 坐标系统
在开始学习如何绘图之前,我们先来看一下 SVG 的坐标系统。与很多计算机绘图所使用的坐标系统一样,SVG 也使用了网格坐标系统。这种坐标和我们以前在数学中学过的坐标有些不同。 数学中的坐标是由 `x` 轴(水平横向延伸)和 `y` 轴(垂直纵向延伸)交织组成,交点被称为坐标原点 `(0,0)` 。原点沿 `x` 轴向右为正值,反之为负值,沿 `y` 轴向上
SVG的坐标系统
在开始学习如何绘图之前,我们先来看一下 SVG 的坐标系统。与很多计算机绘图所使用的坐标系统一样,SVG 也使用了网格坐标系统。这种坐标和我们以前在数学中学过的坐标有些不同。 数学中的坐标是由 `x` 轴(水平横向延伸)和 `y` 轴(垂直纵向延伸)交织组成,交点被称为坐标原点 `(0,0)` 。原点沿 `x` 轴向右为正值,反之为负值,沿 `y` 轴向上