5.3 需求分析
需求分析
- 软件需求
- 定义
- 分类
- 练习题
- 需求工程
- 需求获取
- 练习题
- 需求分析
- 状态转化图
- 数据流图DFD
- 顶层数据流图
- 0层数据流图
- 1层数据流图
- 练习题
- 需求规约
- 需求定义方法
- 需求验证
- 需求管理
- 版本控制
- 需求跟踪
- 变更控制
- 练习题
考试大概3分
软件需求
定义
- 软件需求:是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。
- IEEE中的定义是:软件需求指用户解决问题或达到目标所需要的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。
- 需求来源:
- 可以来自于用户(实际的潜在的)、用户的规约、应用领域的专家、相关的技术标准和法规;
- 可以来自于原有的系统、原有系统的用户、新系统的潜在用户;
- 甚至还可以来自于竞争对手的产品。
分类
软件需求的分类:软件需求就是软件必须完成的事以及必须具备的品质。需求是多层次的,包括业务需求、用户需求和系统需求,这三者是从目标到具体,从整体到局部,从概念到细节。
- 业务需求:反映企业或客户对系统高层级的目标要求(高层级需求)
- 用户需求:描述用户的具体目标,用户想要什么,以及要这些做什么(用户需求)
- 系统需求:从系统的角度说明软件的需求,包括功能需求、非功能需求、设计约束等
- 功能需求:是指系统必须完成的那些事,即为了向它的用户提供有用的功能,产品必须执行的动作。
- 非功能需求:是指产品必须具备的性能或品质,例如,可靠性、容错性等。
- 设计约束:也称为限制条件、补充规约,通常是对解决方案的一些约束说明,例如,某系统必须采用国有自主知识版权的数据库,必须运行在UNIX系统之下,等等。
软件需求包含
-
功能需求
-
性能需求
-
用户或人的因素
-
环境需求
-
界面需求
-
文档需求
-
数据需求
-
资源使用需求
-
安全保密需求
-
可靠性需求
-
软件成本消耗与开发进度需求
-
其他非功能性要求
-
质量功能部署(Quality Function Deployment,QFD):是一种将用户要求转化成软件需求的技术。目的是最大限度提升软件工程过程中用户满意度。
-
质量功能部署也叫质量功能展开是指把用户对产品的需求进行多层次的演绎分析,转化为产品的设计需求、工程部件特征、工艺要求、生产要求,用来指导产品设计并保证产品的质量,是一种以用户为导向的质量管理工具。
-
由于该方法所使用的主要图形就像房屋,所以它也被称为“质量屋”,如
-
QFD将软件需求分为三类,分别是
- 常规需求:系统应该做到的功能或性能,实现的越多,用户越满意
- 期望需求:用户想当然认为系统应该做到,但是不能正确表达的功能,没有实现会让用户不满意
- 意外需求:用户要求范围外的功能或性能,开发人员控制,实现会高兴,不实现也没关系
练习题
某软件公司正在承担开发一个文字处理器的任务。在需求分析阶段,公司的相关人员整理出一些相关的系统需求其中,”找出文档中的拼写错误并提供一个替换项列表来供选择替换拼错的词“属于(),”显示提供替换词的对话框以及实现整个文档范围的替换“属于(),”用户能有效地纠正文档中的拼写错误“属于()。
A,业务需求 B.用户需求 C,功能需求 D.性能需求
A,业务需求 B.用户需求 C,功能需求 D.性能需求
A,业务需求 B.用户需求 C.功能需求 D.性能需求
答案B C A
需求工程
- 需求工程:是一个不断反复的需求定义、文档记录、需求演进的过程,并最终在验证的基础上冻结需求。需求工程可以细分为需求获取、需求分析(包括系统建模)、需求规约、需求验证以及需求管理5个阶段。
- 需求开发:包括需求获取、需求分析、编写规约(系统规格说明书)和需求验证4个阶段。
- 需求管理:通常包括定义需求基线、处理需求变更及需求跟踪等方面的工作。
- 需求开发的4个阶段:
- 在需求开发阶段需要确定产品所期望的用户类型、获取每种用户类型的需求、了解实际的用户任务和目标,以及这些任务所支持的业务需求。
- 同时还包括分析源于用户的信息、对需求进行优先级分类、将所收集的需求编写成为软件规格说明书和需求分析模型,以及对需求进行评审等工作。
需求获取
- 需求获取:是一个确定和理解不同的项目干系人的需求和约束的过程。在需求获取的过程中,主要解决需求调查的问题。要想做好需求调查,必须清楚地了解三个问题。
- What:应该搜集什么信息。
- Where:从什么地方搜集这些信息。
- HOW:用什么机制或者技术来搜集这些信息。
- 常见的需求获取方式有:用户访谈、问卷调查、采样、情节串联版、联合需求计划等。
- 用户访谈:一对一进行访谈,适合于针对有代表性的用户。其形式分为结构化和非结构化两种。
- 问卷调查:设计问题、制作成用户调查问卷、下发填写、整理分析。适合用户面广、用户需要灵活时间进行回馈。
- 采样:采用统计分析技术,从目标总体中选择出样本集的过程。可以是随机抽样,也可以是非随机抽样。适合用于大量用户信息或者数据信息采集分析,最终得出需求的场景。
- 情节串联板:一系列图片,通过这些图片来讲故事。
- 联合讨论会:通过联合各个关键用户代表、系统分析师、开发团队代表一起,通过有组织的会议来讨论需求。
- 需求记录技术:任务卡片、场景说明、用户故事等。
练习题
需求获取是确定和理解不同的项目干系人的需求和约束的过程,需求获取是否科学、准备充分,对获取出来的结果影响很大。在多种需求获取方式中,()方法具有良好的灵活性,有较宽广的应用范围,但存在获取需求时信息量大、记录较为困难、需要足够的领域知识等问题。()方法基于数理统计原理,不仅可以用于收集数据,还可以用于采集访谈用户或者是采集观察用户并可以减少数据收集偏差。()方法通过高度组织的群体会议来分析企业内的问题,并从中获取系统需求。
A用户访谈 B.问卷调查 C.联合需求计划 D采样
A用户访谈 B问卷调查 C,联合需求计划 D采样
A用户访谈 B.问卷调查 C,联合需求计划 D.采样
答案A D C
需求分析
- 需求分析:一个好的需求应该具有无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性等特性。需求分析人员需要把杂乱无章、真假难辨的用户要求和期望转化为真正的用户需求,最终再将用户需求转化为系统需求,形成最终的需求规约(需求规格说明书)。
- 需求分析:逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,别除不合理部分,增加需要部分。最后综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型)。
- 需求分析的任务:
- 绘制系统上下文范围关系图
- 创建用户界面原型
- 分析需求的可行性
- 确定需求的优先级
- 为需求建立模型
- 创建数据字典
- 使用QFD(质量功能部署)
- 目前,已存在的多种需求分析方法引用了不同的分析策略,常用的分析方法有以下两种:
- 面向数据流的结构化分析方法(SA)。
- 面向对象的分析方法(OOA)。
- 结构化分析方法的特点是:自顶向下、逐步分解、分析的核心是数据字典。
- 结构化分析应该建立三种模型:数据模型、功能模型、行为模型:
- 数据模型:常用实体关系(E-R)图描述实体、属性,以及实体间的关
系; - 功能模型:常用数据流图(DFD data flow diagram),从数据传输加工的角度,用图形符号描述数据在系统间的传递情况;DFD和QFD不要记错了
- 行为模型:又称状态模型,常用状态转换图(STD state transform diagram)描述系统状态和引起系统状态转换的事件,表示系统行为,指出作为特定事件的结果将执行哪些动作
- 数据模型:常用实体关系(E-R)图描述实体、属性,以及实体间的关
状态转化图
数据流图DFD
- 数据流图(Data Flow Diagram,简称DFD):描述数据在系统中如何被传送或变换,以及如何对数据流进行变换的功能或子功能,用于对功能建模,数据流图相关概念示例如下:
- 数据流图:是可以分层的,根据层级数据流图分为顶层数据流图、中层数据流图和底层数据流图。除顶层数据流图外,其他数据流图从零开始编号。
- 顶层数据流图只含有一个加工表示整个系统;输出数据流和输入数据流为系统的输入数据和输出数据,表明系统的范围,以及与外部环境的数据交换关系。
- 中层数据流图是对父层数据流图中某个加工进行细化,而它的某个加工也可以再次细化,形成子图;中间层次的多少,一般视系统的复杂程度而定。
- 底层数据流图是指其加工不能再分解的数据流图,其加工称为“原子加工”。
顶层数据流图
0层数据流图
1层数据流图
练习题
结构化分析方法中,数据流图中的元素在()中进行定义。
A,加工逻辑
B,实体联系图
C.流程图
D.数据字典
答案:D
下列关于结构化分析方法的数据字典加工逻辑的叙述中,不正确的是()。
A,对每一个基本加工,应该有一个加工逻辑
B.加工逻辑描述输入数据流变换位输出数据的加工规则
C.加工逻辑必须实现加工的数据结构和算法
D,结构化语言,判定树和判定表可以用来表示加工逻辑
答案:C
绘制分层数据流图(DFD)时需要注意的问题中,不包括()。
A,给图中的每个数据流、加工、数据存储和外部实体命名
B,图中要表示出控制流
C.一个加工不适合有过多的数据流
D,分解尽可能均匀
答案:B
需求规约
- 软件需求规约:也叫需求定义、软件需求规格说明书SRS,是需求分析任务的最终产物,通过建立完整的信息描述详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。
- 需求规约作为用户和开发者之间的一个协议,在之后的软件工程各阶段发挥重要的作用。
- 软件需求规约中通常包含以下内容:
- 引言。引言陈述软件目标,在基于计算机的系统语境内进行描述。
- 信息描述。信息描述给出软件必须解决的问题的详细描述,记录信息内容、信息流和信息结构。
- 功能描述。功能描述用来描述解决问题所需要的每个功能。其中包括为每个功能说明一个处理过程;叙述设计约束;叙述性能特征;用一个或多个图形形象地表示软件的整体结构和软件功能与其他系统元素间的相互影响。
- 行为描述。行为描述用于描述作为外部事件和内部产生的控制特征的软件操作。
- 校验标准。检验标准描述检验系统成功的标志,即对系统进行什么样的测试,得到什么样的结果,就表示系统已经成功实现了。检验标准是“确认测试”的基础。
- 参考书目。参考书目包含了对所有和该软件相关的文档的引用,其中包括其他的软件工程文档、技术参考文献、厂商文献和标准。
- 附录。附录包含了规约的补充信息,表格数据、算法的详细描述、图表和其他资料。
需求定义方法
- 严格定义也称为预先定义,需求的严格定义建立在以下的基础假设之上;所有需求都能够被预先定义。开发人员与用户之间能够准确而清晰地交流。采用图形(或文字)可以充分体现最终系统。
- 原型方法,迭代的循环型开发方式,需要注意的问题:并非所有的需求都能在系统开发前准确的说明。项目干系人之间通常都存在交流上的困难,原型提供了克服该困难的一个手段。特点:需要实际的、可供用户参与的系统模型。有合适的系统开发环境。反复是完全需要和值得提倡的,需求一旦确定,就应遵从严格的方法。
需求验证
-
需求验证:也称为需求确认,目的是与用户一起确认需求无误。对需求规约进行评审和测试,包括两个步聚:
- 需求评审:正式评审和非正式评审。
- 需求测试:设计概念测试用例。
-
需求验证作为需求开发阶段工作的复查手段,其目的是要检验需求功能的正确性、完整性和清晰性,是否能够反映用户的意愿,由于需求的变化往往使系统的设计和实现也跟着改变,所以由需求问题引起系统变更的成本比修改设计或代码错误的成本高得多。因此,为保证软件需求定义的质量,评审应指定专门的人员负责,并按规程严格进行。除分析人员之外,还要有用户,开发部门的管理者,软件设计、实现、测试的人员参加。
-
需求验证通过后,要请用户签字确认,作为验收标准之一,此时,这个需求规格说明书就是需求基线,不可以再随意更新,如果需要更改必须走需求变更流程。
-
需求验证也不可能发现所有的需求问题。在需求验证之后,对遗漏的补充以及对错误理解的更正是不可避兔的,因此需要进行需求管理。
-
需求验证内容:
- 系统定义的目标是否与用户的要求一致。
- 系统需求分析阶段提供的文档资料是否齐全;文档中的描述是否完整、清晰、准确地反映了用户要求。
- 被开发项目的数据流与数据结构是否确定且充足。
- 主要功能是否已包括在规定的软件范围之内,是否都已充分说明。
- 设计的约束条件或限制条件是否符合实际。
- 开发的技术风险是什么。
- 是否详细地制定了检验标准,它们能否对系统定义进行确认。
需求管理
- 软件需求管理:是一组用于帮助项目组在项目进展中的任何时候去标识、控制和跟踪需求的活动,对需求工程所有相关活动的规划和控制。换句话说,需求管理就是一种获取、组织并记录系统需求的系统化方案,以及一个使用户与项目团队对不断变更的系统需求达成并保持一致的过程。
- 在需求管理中,每个需求被赋予唯一的标识符,一旦标识出需求,就可以为需求建立跟踪表,每个跟踪表标识需
求与其他需求或设计文档、代码、测试用例的不同版本间的关系。- 特征跟踪表,记录需求如何与产品或系统特征相关联;
- 来源跟踪表,记录每个需求的来源;
- 依赖跟踪表,描述需求间如何关联等。
- 这些跟踪表可以用于需求跟踪。在整个开发过程中,进行需求跟踪的目的是为了建立和维护从用户需求开始到测试之间的一致性与完整性,确保所有的实现是以用户需求为基础,所有的输出符合用户需求,并且全面覆盖了用户需求。
版本控制
版本控制:使项目团队和用户达成共识,定义需求基线。通过了评审的需求规约(需求说明书)就是需求基线,下次如果需求变更需求,就需要安装流程来一步步进行。
需求跟踪
- 需求跟踪有两种方式:正向跟踪和逆向跟踪。
- 正向跟踪以用户需求为切入点,检查《需求规约》中的每个需求是否都能在后继工作产品中找到对应点;简单点说,就是用户原始需求是否都实现了。
- 逆向跟踪检查设计文档、代码、测试用例等工作产品是否都能在《需求规约》中找到出处。简单点说,就是软件实现的是否都是用户要求的
- 状态跟踪
- 整个项目过程中,要始终跟踪需求状态即变更情况
变更控制
- 变更控制:主要关心需求变更中的需求风险管理,带有风险的做法有:无足够用户参与、忽略了用户分类、用户需求的不断增加、模棱两可的需求、不必要的特性、过于精简的SRS、不准确的估算。
- 变更产生的原因:外部环境的变化、需求和设计做的不够完整、新技术的出现、公司机构重组造成业务流程的变化。
- 变更控制委员会CCB:也称为配置控制委员会,其任务时对建议的配置项变更做出评价、审批,以及监督已经批准变更的事实。
- 变更控制的内容有:
- 需求变更需要经过正式评估来决定是否批准
- 保持项目计划与需求的同步
- 以可控制的方式将需求变更融入项目中
- 估计变更需求产生的影响,并协商新的约定
练习题
()是关于需求管理正确的说法。
A.为达到过程能力成熟度模型第二级,组织机构必须具有3个关键过程域
B.需求的稳定性不属于需求属性
C.需求变更的管理过程遵循变更分析和成本计算、问题分析和变更描述、变更实现的顺序
D.变更控制委员会对项目中任何基线工作产品的变更都可以做出决定
答案D
相关文章:

5.3 需求分析
需求分析 软件需求定义分类练习题 需求工程需求获取练习题 需求分析状态转化图数据流图DFD顶层数据流图0层数据流图1层数据流图 练习题 需求规约需求定义方法 需求验证需求管理版本控制需求跟踪变更控制练习题 考试大概3分 软件需求 定义 软件需求:是指用户对目标…...

【C++】list介绍以及模拟实现(超级详细)
欢迎来到我的Blog,点击关注哦💕 list的介绍和模拟实现 前言list介绍标准库容器 std::list 与 std::vector 的优缺点缺点 list的基本操作构造函数list iteratorlist capcacitylist modify list模拟实现存贮结构(双向带头循环)itera…...

从艺术创作到作物生长,农业AI迎来“GPT“时刻
(于景鑫 国家农业信息化工程技术研究中心)"GPT"一词早已不再神秘,其在文本、图像生成领域掀起的风暴正以摧枯拉朽之势席卷全球。人们惊叹于ChatGPT对话之智能、思维之敏捷,更对Stable Diffusion、Midjourney创作的艺术画作赞叹不已。而大语言模…...

前端使用 Konva 实现可视化设计器(19)- 连接线 - 直线、折线
本章响应小伙伴的反馈,除了算法自动画连接线(仍需优化完善),实现了可以手动绘制直线、折线连接线功能。 请大家动动小手,给我一个免费的 Star 吧~ 大家如果发现了 Bug,欢迎来提 Issue 哟~ github源码 gitee…...

C#:通用方法总结—第15集
大家好,今天继续分享我们的通用方法系列。 下面是今天的通用方法: (1)这个通用方法为用文件流写数据 /// <summary> /// 用文件流写数据 /// </summary> /// <param name"data"></param> //…...

LoadRunner12 添加事务并添加检查点
1、先要添加事务开始函数lr_start_transaction("登陆事务");,在接口上方右击点击-插入-开始事务。输入事务名称; 2、在某个接口想法 右击点击-插入-结束事务,输入事务名称,与开始事务名称要保持一致,lr_end_…...

python中的文件
绝对路径和相对路径 一般情况下绝对路径就是从根目录开始描述的路径 相对路径就是相对于当前目录 . 没错,就是一个点,表示的是当前文件夹;.. 两个点表示的是上一层文件夹 os模块与os.path os 和 os.path 是两个非常重要的标准库模块,它们分别用于操作系统相关的功能操…...

Powerdesigner连接mysql数据库,逆向工程生成ER图 (保姆级教程:下载->连接->配置)看这一篇就够了
一、下载powerdesigner 下载的教程请看如下链接,我太懒了,直接借鉴! 把别大佬的博客搬过来了嘿嘿~我真聪明!ㄟ( ▔, ▔ )ㄏ 操作到完成汉化就好!!第5步不看了,别按那个走,因为新手…...

商家转账到零钱分销返佣申请方案及驳回处理办法
分销返佣场景是商家申请最多的场景,因而申请被驳回也是最多的,根据我们上万次成功开通商家转账到零钱的经验,当商家转账到零钱的分销返佣场景被驳回时,按照以下步骤,商家都可以快速过审: 一、分析驳回原因 …...

荟萃科技:国外问卷调查有没有实时更新的题库?
有的,口子查和渠道查都是。 口子查的题目都是国外的公司发放在网络上,都是实时发布,所以我们需要去国外的各大社交平台做题。 这些题目不是集中的,而是散布在网站里面,需要我们去找,都是老外上班实时发放…...

【课程总结】Day18:Seq2Seq的深入了解
前言 在上一章【课程总结】Day17(下):初始Seq2Seq模型中,我们初步了解了Seq2Seq模型的基本情况及代码运行效果,本章内容将深入了解Seq2Seq模型的代码,梳理代码的框架图、各部分组成部分以及运行流程。 框…...

C++利用开发人员命令提示工具查看对象模型
1.跳转文件路径 cd 具体路径 2.输入c1 /d1 reportSingleClassLayout类名 文件名 操作示例如下图:...

白骑士的PyCharm教学高级篇 3.4 服务器部署与配置
系列目录 上一篇:白骑士的PyCharm教学高级篇 3.3 Web开发支持 在开发完成后,将代码部署到服务器上是一个关键步骤。PyCharm不仅提供了强大的本地开发支持,还为远程服务器配置与部署、自动化部署流程提供了便捷的工具和功能。本文将详细介绍如…...

数据库管理-第226期 内存至超线程(20240805)
数据库管理226期 2024-08-05 数据库管理-第226期 内存至超线程(20240805)1 CPU内缓存结构2 缓存与内存3 单核单线程4 超线程5 超线程的利弊总结 数据库管理-第226期 内存至超线程(20240805) 作者:胖头鱼的鱼缸…...

Django学习-数据迁移与数据导入导出
文章目录 一、数据迁移二、数据导入导出1. 数据导出2. 数据导入 一、数据迁移 数据迁移是将项目里定义的模型生成相应的数据表。主要的迁移指令如下: # 第一次生成自定义模型与django admin自带模型迁移文件,后续只生成新增模型迁移文件。后面加App名…...

【Nuxt】编程式导航和动态路由
编程式导航 navigateTo: 更多用法:navigateTo <template><div class"app-container"><button click"goToCategory">Category</button><NuxtPage/></div> </template> <script setup&…...

14. 计算机网络HTTPS协议(二)
1. 前言 上一章节中我们主要就 HTTPS 协议的前置知识进行介绍,下面会继续介绍 HTTPS 的通信过程以及抛出一些常见问题的探讨。因为候选人准备面试的时间和精力是比较有限的,我们在学习的过程要抓住重点,如果感觉对于细节缺乏了解,可以通过维基百科和查阅 StackOverflow 等…...

【算法设计题】实现以字符串形式输入的简单表达式求值,第2题(C/C++)
目录 第2题 实现以字符串形式输入的简单表达式求值 得分点(必背) 题解 1. 初始化和变量定义 2. 获取第一个数字并存入队列 3. 遍历表达式字符串,处理运算符和数字 4. 初始化 count 并处理加减法运算 代码详解 🌈 嗨…...

Kylin系列-入门
Kylin系列-入门 Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力,以支持超大规模数据。以下是对Kylin系列的入门介绍: 一、基本概念 1. 定义 Apache Kylin是由eBa…...

力扣-46.全排列
刷力扣热题–第二十六天:46.全排列 新手第二十六天 奋战敲代码,持之以恒,见证成长 1.题目简介 2.题目解答 这道题目想了会,思路比较好想,但一直没调试成功,所以就参考了力扣官网的代码,积累一下回溯算法的实现和基本实现思路,即先试探后回溯,结果在下面…...

博物馆展厅AI交互数字人,解锁创新的文化交互体验
在智能化时代,博物馆展厅融入AI交互数字人,可以为游客给予实时交互的旅游服务,AI交互数字人可以承担智能引导、讲解、接待、客服与导游等多重角色,为游客塑造崭新的旅游体验。 AI交互数字人相比传统的录屏解说相比,AI…...

DS18B20数字温度传感器操作解析
文章目录 引言特点工作原理引脚说明配置寄存器温度寄存器时序初始化时序写时序读时序 引言 DS18B20 是一种广泛使用的数字温度传感器,具有高精度和易用性。是Dallas Semiconductor公司(现为Maxim Integrated公司)生产的单总线数字温度传感器…...

你的财富正在被一个叫做通货膨胀的怪兽给吞噬掉,你却浑然不觉。
据统计,2024年全球总体通货膨胀率预计达到5.8%,这意味着:你的财富正在被一个叫做通货膨胀的怪兽给吞噬掉,你却浑然不觉。 数据来源:国际货币基金组织 如何跑赢通货膨胀? 家庭财富的积累速度,要…...

医疗设备漏费控制管理系统的必然性及未来发展性
医疗设备控费的必然性 医疗改革的要求 随着医疗改革的不断深入,原有的医药模式已经发生了改变。药品和耗材零差价的执行,使得医院需要寻找新的开源节流、降耗增效的方法。医疗设备控费系统的出现,正是为了满足这种管理需求。 控制成本和优…...

软件设计师笔记-网络基础知识
计算机网络的发展 计算机网络(计算机技术通信技术)的发展是一个逐步演进的过程,从简单的具有通信功能的单机系统,到复杂的以局域网及因特网为支撑环境的分布式计算机系统,这一历程经历了多个关键阶段: #me…...

MMC和eMMC的区别
MMC 和 eMMC 的区别 1. MMC MMC(MultiMediaCard)是一种接口协议,定义了符合这一接口的内存器,称为 MMC 储存体或 MMC 卡。它是一种非易失性存储器件,广泛应用于消费类电子产品中。 1.1 外观及引脚定义 MMC卡共有七个…...

亚马逊爬虫(Amazonbot)IP地址,真实采集数据
一、数据来源: 1、这批亚马逊爬虫(Amazonbot)IP来源于尚贤达猎头公司网站采集数据; 2、数据采集时间段:2023年10月-2024年7月; 3、判断标准:主要根据用户代理是否包含“Amazonbot”和IP核…...

Spring Boot(八十四):集成Thumbnailator来生成缩略图
1 Thumbnailator简介 Thumbnailator是一个用于Java的缩略图生成库。通过Thumbnailator提供的流畅接口(fluent interface)的方式可以完成复杂的缩略图处理任务,无需访问Image I/O API并通过Graphics2D对象手动操作BufferedImages。 2 代码示例 2.1 引入依赖 <dependency&g…...

MySQL基础操作全攻略:增删改查实用指南(上)
本节目标: NOT NULL - 指示某列不能存储 NULL 值。 UNIQUE - 保证某列的每行必须有唯一的值。 DEFAULT - 规定没有给列赋值时的默认值。 PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标 识&am…...

SAP MM学习笔记 - 豆知识02 - MR21 修改物料原价,MM02 修改基本数量单位/评价Class,MMAM 修改物料类型/评价Class
上一章讲了一些豆知识。比如 - MM50 批量扩张品目 - XK05/06 Block/消除供应商 - MM06/MM16 品目消除 - SE11/SE16/SE16/SE16N/SE16H/DB02 等查看常用的操作Table和数据的T-code SAP MM学习笔记- 豆知识01 - MM50 批量扩张,XK05/XK06 Block/消除供应商…...