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

待兔 等级 830 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 {
MQ(消息队列)常见的应用场景解析
前言 -- 提高系统性能首先考虑的是数据库的优化,之前一篇文章《数据库的使用你可能忽略了这些》中有提到过开发中,针对数据库需要注意的事项。但是数据库因为历史原因,横向扩展是一件非常复杂的工程,所有我们一般会尽量把流量都挡在数据库之前。 不管是无限的横向扩展服务器,还是纵向阻隔到达数据库的流量,都是这个思路。阻隔直达数据库的流量,缓存组件和消息组件是两大
Egret 2020,技术沉淀与产品突破
时光飞逝,2020已近尾声,虽然由于行业的变化等原因,白鹭引擎的市场声音在减少,但团队内部的研发工作一直没有松懈,回首这一年的产品研发历程,白鹭引擎今年产品迭代的核心围绕高性能、易用性、工作流融合三个方面展开,全面改善了Egret Engine的整体开发效率,加强2D/3D游戏开发工作流的融合,重点解决原生游戏的性能,横纵贯穿2D/3D游戏、H5游戏/原生游
Flink 助力美团数仓增量生产
> 简介: 本文由美团研究员、实时计算负责人鞠大升分享,主要介绍 Flink 助力美团数仓增量生产的应用实践。内容包括:1、数仓增量生产;2、流式数据集成;3、流式数据处理;4、流式 OLAP 应用;5、未来规划。 一、数仓增量生产 ======== **1.美团数仓架构** 先介绍一下美团数仓的架构以及增量生产。如下图所示,这是美团数仓的简单架构,我
Innodb Buffer Pool的三种Page和链表
一、Innodb Buffer Pool 简介 ========================== Buffer Pool 是Innodb 内存中的的一块占比较大的区域,用来缓存表和索引数据。众所周知,从内存访问会比从磁盘访问快很多。为了提高数据的读取速度,Buffer Pool 会通过三种Page 和链表来管理这些经常访问的数据,保证热数据不被置
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` 轴向上