[图解]需要≠需求-《分析模式》漫谈







1
00:00:00,760 --> 00:00:02,910
今天的《分析模式》漫谈
2
00:00:02,920 --> 00:00:04,180
我们来说一下
3
00:00:04,490 --> 00:00:06,490
需要不等于需求
4
00:00:10,490 --> 00:00:11,760
还是第一章
5
00:00:13,120 --> 00:00:15,020
这里
6
00:00:15,030 --> 00:00:15,740
原文我就不念了
7
00:00:15,750 --> 00:00:17,020
这里有个needs
8
00:00:17,030 --> 00:00:19,980
然后
9
00:00:21,060 --> 00:00:22,060
2004中译本
10
00:00:22,310 --> 00:00:24,710
就是机械工业出版社的译本
11
00:00:25,960 --> 00:00:29,230
翻译“要求”,这是正确的
12
00:00:30,640 --> 00:00:32,280
但是2020中译本
13
00:00:32,490 --> 00:00:37,370
人民邮电出版社的译本,需求
14
00:00:38,290 --> 00:00:39,640
这个就不太对了
15
00:00:40,200 --> 00:00:44,080
需求的话,我们往往会想到什么
16
00:00:44,560 --> 00:00:45,330
Requirements
17
00:00:45,340 --> 00:00:49,940
你看,我们可以看其他地方
18
00:00:49,950 --> 00:00:53,030
你看,这里要求,需求
19
00:00:53,800 --> 00:00:54,810
还是第一章
20
00:00:55,140 --> 00:01:00,640
这里。requirements这里。需求
21
00:01:01,080 --> 00:01:01,390
这个对
22
00:01:01,930 --> 00:01:03,090
你看,这里也是需求
23
00:01:04,970 --> 00:01:08,520
2020中译本needs你也是需求
24
00:01:09,370 --> 00:01:11,090
requirements也是需求
25
00:01:13,210 --> 00:01:14,240
这两个怎么区分
26
00:01:16,890 --> 00:01:17,470
那么我们来看
27
00:01:19,510 --> 00:01:22,380
需求,跟要求或者需要
28
00:01:22,390 --> 00:01:24,620
它不是一个东西
29
00:01:26,150 --> 00:01:31,150
我们可以用这句话来区分
30
00:01:31,710 --> 00:01:35,040
系统的需求,就是requirements
31
00:01:35,050 --> 00:01:36,440
是平衡各方用户需要
32
00:01:36,450 --> 00:01:39,540
needs的结果
33
00:01:40,740 --> 00:01:44,140
当然用户需要这个说法也不对
34
00:01:44,430 --> 00:01:46,180
更严格应该是涉众利益
35
00:01:46,190 --> 00:01:48,970
因为用户这个词就已经有问题了
36
00:01:49,500 --> 00:01:55,290
我在这个文章,在书里面也有讲
37
00:01:56,520 --> 00:02:00,410
文章公众号上可以看,网址在这里
38
00:02:01,090 --> 00:02:02,900
CTO也糊涂的常用术语
39
00:02:03,310 --> 00:02:04,780
这里就提到用户需求
40
00:02:04,790 --> 00:02:07,010
这个术语是怎么不对的
41
00:02:08,050 --> 00:02:09,450
内容我摘录在这里
42
00:02:12,840 --> 00:02:14,470
需求是系统的需求
43
00:02:15,120 --> 00:02:16,020
它不是你的
44
00:02:16,030 --> 00:02:19,370
我的,谁的,是系统的,就这么一份
45
00:02:19,950 --> 00:02:22,630
它是你我他最终达成的一份
46
00:02:22,640 --> 00:02:24,510
关于系统的一份契约
47
00:02:25,310 --> 00:02:27,290
系统作为一个整体
48
00:02:27,700 --> 00:02:30,890
必须要提供的一些功能性能
49
00:02:32,890 --> 00:02:36,850
用户后面跟什么,可以跟要求或者需要
50
00:02:37,360 --> 00:02:38,310
这个就是needs
51
00:02:39,740 --> 00:02:41,170
不能跟requirements
52
00:02:44,160 --> 00:02:45,700
比如说,拿取款机为例
53
00:02:45,710 --> 00:02:46,830
54
00:02:46,840 --> 00:02:51,610
你储户提出一个要求
55
00:02:51,620 --> 00:02:52,650
说最好拉开就拿
56
00:02:53,490 --> 00:02:54,940
这是大实话
57
00:02:55,960 --> 00:02:57,190
但你不能真的这样做
58
00:02:57,280 --> 00:03:00,900
因为你还要(考虑)别的涉众的利益
59
00:03:01,420 --> 00:03:02,900
就像工厂的工人
60
00:03:02,910 --> 00:03:05,290
你做一个系统给工厂的工人用
61
00:03:05,300 --> 00:03:08,050
你问工人,这个系统该怎么做
62
00:03:08,960 --> 00:03:09,480
你最爽
63
00:03:09,990 --> 00:03:12,100
工人就说,最好操作越简单越好
64
00:03:12,110 --> 00:03:14,240
随便敲两下就搞定
65
00:03:15,170 --> 00:03:16,170
好,你是爽了
66
00:03:16,720 --> 00:03:18,660
但是该采集的数据没采集到
67
00:03:19,560 --> 00:03:21,280
后面的其他同事怎么办
68
00:03:21,600 --> 00:03:22,430
领导怎么办
69
00:03:22,770 --> 00:03:23,110
70
00:03:24,720 --> 00:03:27,900
你说我希望越简单越好
71
00:03:28,330 --> 00:03:29,570
最好敲两下就搞定
72
00:03:31,070 --> 00:03:32,620
这只是你自己的要求
73
00:03:33,190 --> 00:03:35,030
它不能成为系统的需求
74
00:03:36,410 --> 00:03:38,390
最终系统需求要照顾什么
75
00:03:39,430 --> 00:03:40,500
领导的利益
76
00:03:40,830 --> 00:03:41,850
其他同事的利益
77
00:03:42,460 --> 00:03:44,250
当然,在适当的情况下
78
00:03:44,260 --> 00:03:45,770
可以照顾一下你的利益
79
00:03:47,170 --> 00:03:48,850
那就看你的排位了
80
00:03:51,090 --> 00:03:52,860
如果说你这个位置很重要
81
00:03:53,110 --> 00:03:56,320
你提的要求当然是会比较大的程度
82
00:03:56,330 --> 00:03:57,160
得到尊重
83
00:03:57,900 --> 00:03:59,200
如果你是一个屌丝
84
00:04:00,650 --> 00:04:02,770
可能这个系统就要苦一苦你了
85
00:04:03,670 --> 00:04:04,600
就要欺负你了
86
00:04:05,740 --> 00:04:07,420
谁让你排位这么低
87
00:04:08,650 --> 00:04:10,910
这个的话,我们可以看一段
88
00:04:12,160 --> 00:04:14,230
我之前录的教学视频
1
00:00:03,130 --> 00:00:06,800
既然为了方便做卡给我们用
2
00:00:06,810 --> 00:00:07,720
那干嘛不方便到底
3
00:00:07,730 --> 00:00:09,930
为什么要验密码
4
00:00:11,100 --> 00:00:12,060
不验不行吗
5
00:00:13,360 --> 00:00:16,560
储户插卡,系统就弹出一个钱框
6
00:00:17,070 --> 00:00:18,310
储户抓一把就走
7
00:00:19,320 --> 00:00:20,580
这多爽
8
00:00:20,870 --> 00:00:22,380
但是这样就不安全了
9
00:00:24,600 --> 00:00:25,660
所以要验密码
10
00:00:27,480 --> 00:00:28,790
为了安全验密码
11
00:00:28,800 --> 00:00:30,390
密码怎么才6位数字
12
00:00:31,600 --> 00:00:32,400
是不是少了一点
13
00:00:35,540 --> 00:00:36,710
搞个20位密码
14
00:00:37,740 --> 00:00:41,150
或者说数字、大小写字母
15
00:00:41,570 --> 00:00:42,950
特殊符号都要有
16
00:00:43,510 --> 00:00:44,620
那不是更安全吗
17
00:00:45,400 --> 00:00:47,330
但是这样就不方便了
18
00:00:48,040 --> 00:00:52,300
所以6位数字是安全和方便
19
00:00:52,730 --> 00:00:56,510
在当前时间的平衡点,平衡
20
00:00:57,520 --> 00:01:00,650
还有,你看这个,系统验证
21
00:01:00,660 --> 00:01:03,460
金额合法
22
00:01:03,470 --> 00:01:05,540
规则是必须为100元的倍数
23
00:01:06,500 --> 00:01:08,780
¥%……&&,为什么
24
00:01:10,770 --> 00:01:13,540
假设取款机能够取小数点
25
00:01:13,550 --> 00:01:16,890
比如说,我取102块5毛3
26
00:01:18,290 --> 00:01:19,060
然后提交
27
00:01:19,580 --> 00:01:22,710
然后系统就蹦蹦蹦蹦
28
00:01:23,570 --> 00:01:28,470
出钞票,大额的、小额的,硬币都有
29
00:01:29,170 --> 00:01:30,480
那不是更好吗
30
00:01:30,950 --> 00:01:32,320
储户更开心
31
00:01:33,050 --> 00:01:33,980
但是谁不开心
32
00:01:34,920 --> 00:01:36,360
银行这边就不开心了
33
00:01:37,740 --> 00:01:38,840
成本太高了
34
00:01:40,840 --> 00:01:42,840
所以要有这一条
35
00:01:44,910 --> 00:01:49,610
还有这个,为什么要更新账户信息,不更新不行吗
36
00:01:50,910 --> 00:01:52,090
储户喜不喜欢更新
37
00:01:52,950 --> 00:01:56,420
他不喜欢的,比如说,我账户里有2万
38
00:01:57,000 --> 00:01:58,160
我取了5000
39
00:01:59,280 --> 00:02:00,870
我喜不喜欢更新
40
00:02:01,000 --> 00:02:04,440
不更新的,最好还是2万
41
00:02:05,030 --> 00:02:06,100
但是你不更新不行
42
00:02:06,310 --> 00:02:08,140
不更新银行就吃亏了
43
00:02:08,770 --> 00:02:13,080
所以你看这一句,看不见摸不着
44
00:02:14,410 --> 00:02:15,600
储户也不喜欢
45
00:02:16,390 --> 00:02:17,330
但是怎么样
46
00:02:18,730 --> 00:02:20,850
系统必须要写这一句
47
00:02:21,290 --> 00:02:23,170
必须要实现这一句
48
00:02:23,180 --> 00:02:26,130
否则涉众利益就会受到侵害了
49
00:02:27,800 --> 00:02:30,470
每一条背后都有涉众利益的存在
50
00:02:31,440 --> 00:02:32,910
如果没有,就可以把它删掉
相关文章:
[图解]需要≠需求-《分析模式》漫谈
1 00:00:00,760 --> 00:00:02,910 今天的《分析模式》漫谈 2 00:00:02,920 --> 00:00:04,180 我们来说一下 3 00:00:04,490 --> 00:00:06,490 需要不等于需求 4 00:00:10,490 --> 00:00:11,760 还是第一章 5 00:00:13,120 --> 00:00:15,020 这里 6 00:00:1…...
刷到好听的音频怎么办
在短视频平台上,我们常常会刷到那些好听得让人陶醉的视频,可却无法直接下载保存其中的音频,是不是感觉很遗憾? 比如刷到林俊杰这首前奏超好听的《江南》,却禁止下载无法直接下载保存。 别担心,下面就为您揭…...
怎么在网络攻击中屹立不倒
在当今蓬勃发展的网络游戏产业中,服务器安全无疑是企业生存与发展的基石。面对互联网环境中无处不在的DDoS(分布式拒绝服务)与CC(挑战碰撞)攻击威胁,游戏服务器的防御能力与高效处理能力显得尤为重要。相较…...
详解 Python 中的面向对象编程(2)
引言 面向对象编程(OOP)是一种编程范式,它通过将属性和行为整合到对象中来构建程序。本教程将带你了解Python语言中面向对象编程的基本概念。 想象一下,对象就像是系统中的各个部件。可以把程序比作一条工厂流水线。在流水线的每一…...
数据结构-线性表-顺序表
一. 了解顺序表 顺序表定义: 顺序表(也称为线性数组)是一种线性数据结构,它将数据元素按顺序存储在一块连续的内存空间中。顺序表的基本特征包括: 元素的顺序性:顺序表中的元素具有线性关系,每…...
AI绘画大模型-StableDiffusion最强模型sd3(本地安装方法)
前言/introduction Stable Diffusion 3(简称SD3)是Stability AI最新推出的文本到图像生成模型。相比前代模型,SD3在生成质量、细节表现以及运行效率上有了显著提升,尤其在细腻的图像渲染和复杂的场景构建方面表现出色。SD3模型…...
SpringBoot调用外部接口的几种方式
SpringBoot调用外部接口的几种方式 使用FeignClient调用1、在使用方引入依赖2、服务接口调用方2.1、在启动类上加上EnableFeigncliens注解2.2、编写Feign接口调用服务controller层2.3、服务接口调用service层 3、服务接口提供者4、说明 使用RestTemplate调用1、引入依赖2、Rest…...
MySQL:information_schema查找某个表的主键是否在数据的其他位置出现之二
上一篇: MySQL:information_schema查找某个表的主键是否在数据的其他位置出现之一-CSDN博客 摘要 遍历数据库每一张表的每一个字段,是否存在字符串search_term 正文 源码 import pymysql from datetime import datetime# 测试函数 if __n…...
Linux进程和计划任务管理
目录 一、进程基本概念 1.进程 2.程序和进程的关系 二、查看进程信息 1.ps命令 1.1 ps aux命令 1.2 ps -elf 命令 2. top 命令 3.pgrep 命令 4.jobs 命令 三、查看进程树 四、进程的启动方式 1.手动启动 2.调度启动 五、终止进程的运行 1.CtrlC组合键 2.kill、kil…...
【Angular18】封装自定义组件
1. 准备组件 2. 创建打包文件夹及部分配置文件 创建 文件夹app-legalentities-root拷贝组件源文件到新的文件夹app-legalentities中创建文件 .npmrc registry发布地址always-authtrue创建文件 ng-package.json {"$schema": "./node_modules/ng-packagr/ng-pac…...
【流媒体】RTMPDump—RTMP_ConnectStream(创建流连接)
目录 1. RTMP_ConnectStream函数1.1 读取packet(RTMP_ReadPacket)1.2 解析packet(RTMP_ClientPacket)1.2.1 设置Chunk Size(HandleChangeChunkSize)1.2.2 用户控制信息(HandleCtrl)1…...
MySQL学习3之锁机制
一、什么是锁粒度? 锁粒度(Lock Granularity)是指在数据库中锁定数据资源的最小单位。锁粒度决定了锁定操作的范围,即锁定的是整个数据库、整个表、表中的某个分区、表中的某一页还是表中的某一行。 在MySQL中常见的锁粒度有&am…...
2004-2023年上市公司过度负债数据(含原始数据+计算结果)
2004-2023年上市公司过度负债数据(含原始数据计算结果) 1、时间:2004-2023年 2、来源:上市公司年报 3、指标:证券代码、证券简称、统计截止日期、是否剔除ST或*ST股、是否剔除当年新上市、已经退市或被暂停退市的公…...
[机器学习]--KNN算法(K邻近算法)
KNN (K-Nearest Neihbor,KNN)K近邻是机器学习算法中理论最简单,最好理解的算法,是一个 非常适合入门的算法,拥有如下特性: 思想极度简单,应用数学知识少(近乎为零),对于很多不擅长数学的小伙伴十分友好虽然算法简单,但效果也不错 KNN算法原理 上图是每一个点都是一个肿瘤病例…...
跨平台控制神器Escrcpy,您的智能生活助手
Escrcpy 是一款基于 Scrcpy 开发的图形化安卓手机投屏控制软件,它允许用户将 Android 手机屏幕实时镜像到电脑上,并使用电脑的鼠标和键盘直接操作手机,实现了无线且高效的操控。这款软件是免费开源的,支持跨平台使用,包…...
AR 眼镜之-开关机定制-实现方案
目录 📂 前言 AR 眼镜系统版本 开关机定制 1. 🔱 技术方案 1.1 技术方案概述 1.2 实现方案 1)开机 Logo 2)开机音效 3)开机动画 4)关机动画 5)关机弹窗 2. 💠 开机 Logo…...
论文阅读-Transformer Layers as Painters
1. 摘要 尽管大语言模型现在已经被广泛的应用于各种任务,但是目前对其并没有一个很好的认知。为了弄清楚删除和重组预训练模型不同层的影响,本文设计了一系列的实验。通过实验表明,预训练语言模型中的lower和final layers与中间层分布不一致…...
【STL】vector模拟实现
vector引入 vector的实现主要依靠三个成员变量:start,finish和end_of_storage 其中: [start]指向容器中的起始位置 [finish]指向容器中最后一个有效数据的下一个位置 [end_of_storage]指向容器中现有容量的位置 通过这三个指针,就使得vector的size…...
静态成员static关键字
定义: 静态成员在C类中是一个重要的概念,它包括静态成员变量和静态成员函数。 静态成员变量 1定义:静态成员变量是类的所有对象共享的变量。与普通成员变量相比,无论创建了多少个类的实 例,静态成员变量只有一份拷贝…...
本地项目git同步到线上
将本地创建的项目同步到你的 GitHub 账号线上仓库,可以按照以下步骤进行操作: 1. 在 GitHub 上创建一个新仓库 登录你的 GitHub 账号。点击右上角的加号(),然后选择 New repository。填写仓库的名称、描述等信息。选…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
