EBU6304 Software Engineering 知识点总结_3 requirements

news2024/11/24 10:25:47

requirements

确定需求是软工设计中最重要的部分。

  • feature to satisfy customer.

  • indicates what should this sys do.

  • 可能是高层抽象的需求 high-level abstract 或者底层具体的 low-level specific.

Stakeholder 利益相关者:受系统影响的组织或个人(当然有的软件可能是针对市场需求开发,而不存在具体的用户)。这些人站在不同角度上有不同见解。

客户不一定清晰描述其需求,也不一定清楚产品特性和功能,且其需求可能不断变化。

在确定需求环节投入的额外时间长远角度来看会节省更多的时间和金钱。

需求分为:functional 和 non functional.

functional requirements

定义系统的需求,要干什么。比如教务系统对于老师和学生端提供的不同的服务。

这一部分要完整 completeness 清晰一致 consistency 的描述大需求,避免不必要的误解。

non-functional requirements

这一部分比功能性更重要,相当于不满足这一部分系统错误,不满足功能需求系统有一些小bug。

Define system properties and constraints,比如时空复杂度,设备 capability。

Process requirements:比如质量标准,编程语言等。

Organisational requirements: 如系统要符合IT政策规定。

external requirements: 比如“用户密码不能泄露”。

1685634113657

非功能性需求需要定量描述指标。不然比如“希望程序跑的快一点”这就很模糊。要有measure的方法区测量quantitative定量指标。

Requirement conflicts

要trade-off权衡需求,让所有人都同意一个最优需求。

Requirement document

Software Requirements Specification (SRS) 软件需求规范,确认测试的参考规范,指明了应该实现的需求,但是不指明如何实现。

Requirements Capture

Background Reading

Interviewing

Observation(观察用户使用系统的情况)

Document or Record Sampling(专业的observation)

Questionnaires

敏捷开发中的需求

usr stories

用户需求被称作用户故事,一两句话写在卡片上。

customer 给他们排序需求,development team分解实现任务。

As a user, I want to backup my entire hard drive so that I won’t lose any work.

写在 stories cards 上,按顺序贴在墙上大家讨论,注意重点不是记录而是大家的讨论。

Project glossary

一些项目相关的专业术语,建议总结出来方便大家理解讨论。

image-20230601235612956

Epics

大的 usr story。通常开始讨论前被拆分为小的块。

image-20230601235720919

Acceptance Criteria

验收标准,通常写在故事卡背面,有助于理解需求和 invite negotiation with the team about the business value that we are trying to create.

Non-functional Requirements as User Stories

比如用户表示:我希望电脑打cf fps高于100.

usr stories注意事项

  1. 谁都能写,最好让更多的成员写。
  2. 整个 agile development 过程中都可以写。一开始开故事讨论会确定基本,后续随时可以添加。

Product backlog

需求按优先级排列的需求表。综合考虑多方因素。

MoSCoW:一种 dsdm 动态系统开发方法。

  • must have:最重要的。
  • should have:如果时间资源超限可以被取代。
  • could have:用户期望的需求,完成后用户满意度会高。但是不必要。
  • want to have: 当前阶段不重要的。

Estimating

估计项目用时。

story point:故事点,用于表示完成一个产品待办项或者其他任何某项工作所需的所有工作量的估算结果。

当采用故事点估算时,我们为每个待办项分配一个点数。待办项估算结果的原生数据并不重要,我们只关注最后得到的相对估算结果。一个估算值为2的用户故事应该是估算值为1的用户故事的2倍。而它也应该是另一个估算值为3的用户故事的三分之二。

团队不要采用100、200、300,或者1百万、2百万、3百万,而要使用1、2、3。估算结果是比值,而不是绝对值。

敏捷开发中到底什么是故事点(Story Point)? - 知乎 (zhihu.com)

评判 good usr story

INVEST原则。

– Independent – Negotiable – Valuable – Estimatable – Small – Testable

Prototyping

physical:比如画gui。

logical:元素,元素之间的关联……

Low-fidelity 低保真:最简单,比如手绘图,纸板做的,快速验证产品概念的可行性。

Medium-fidelity 中保真:数字模型。

high-fidelity:如3d打印,最接近产品但是制作麻烦。

1685636483862

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/599781.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32驱动W25Q64---笔记

这次来分享最近经常用到的知识点----FLASH 初学者会疑惑,有了EEPROM为什么还要用W25Q64呢?(笔者一开始就百思不得其解) 答: EEPROM和W25Q64都是用于数据存储的存储器,它们各有优缺点,需要根据…

chatgpt赋能python:Python的修改及其对SEO的影响

Python的修改及其对SEO的影响 介绍 Python是一种高级编程语言,以其简单易学和功能强大而闻名。它被广泛用于开发各种应用程序,从网站到机器学习和大数据分析。Python不断更新和改进,新版本带来了许多新功能和改进,这些修改对SEO…

如何读取带空格的字符串?

scanf()函数在读取字符时,识别到空格就会终止读取,那么如何读取带空格的字符串呢? 一、gets()(gets_s()) 从标准输入(stdin)(指的是键盘输入)读取字符,并将它们作为 C 字符串存储到…

1688详情 sign签名分析

本文仅供学习交流,只提供关键思路不会给出完整代码,严禁用于非法用途,若有侵权请联系我删除! 网站地址:aHR0cHM6Ly9kZXRhaWwuMTY4OC5jb20vb2ZmZXIvNzEzNDMzMDYyOTUzLmh0bWw 接口:aHR0cHM6Ly9oNWFwaS5tLjE…

软件工程学复习笔记

目录 软件工程学概述软件危机的典型表现、产生原因、消除途径软件的构成:程序、数据、文档软件工程的七点特性软件工程的七条基本原理软件工程方法:传统方法学,面向对象方法学软件的生命周期:三个时期,软件定义&#x…

MMPose学习笔记1

文章目录 摘要什么是人体姿态估计3D 姿态估计人体参数化模型下游任务2D姿态估计多人姿态估计:自顶向下方法基于回归的自顶向下方法基于热力图的自顶向下方法 多人姿态估计:自底向上方法单阶段方法基于Transformer的方法小结 3D姿态估计评估指标 Dense Po…

面向对象特征之一:封装和隐藏

为什么要引入封装性? ●我们程序设计追求“高内聚,低耦合” ➢高内聚:类的内部数据操作细节自己完成,不允许外部干涉; ➢低耦合:仅对外暴露少量的方法用于使用。 ●隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用&am…

ISIS路由渗透实验

1)拓扑 2)需求:ISIS全网互联互通 3)原因分析: 因为,L1/2 路由器(R4、R8)学习到L1类型路由信息会装进L2-LSP,在泛洪给其他区域的L2和L1/2路由器,所以&#x…

【socket】从计算机网络基础到socket编程——Windows Linux C语言 + Python实现(TCP+UDP)

一、部分基础知识1.1 计算机网络的体系结构1.11 互联网简介1.12 计算机网络的分类1.13 协议与网络的分层体系结构▶ 协议▶ 网络的分层体系结构 1.14 OSI 七层模型(重要)▶ OSI 模型的结构▶ OSI 模型各层的功能 1.15 TCP/IP 的体系结构(重要…

linux服务器彻底清除xmrig挖矿病毒

不想看前面的内容可直接进入第三点看解决方案。 一,事件起因 二,检查过程 三,解决方案 1,找到病毒文件 2 ,杀死病毒进程,删除病毒文件 3,查看linux服务器上的定时任务 4,最后&…

【MySQL新手到通关】第七章 聚合函数使用详解

文章目录 0. 前置1. 聚合函数介绍1.1 AVG 和 SUM 函数1.2 MIN 和 MAX 函数1.3 COUNT函数 2. GROUP BY2.1 基本使用 3. HAVING3.1 基本使用3.2 WHERE和HAVING的对比 0. 前置 为了方便测试,我们导入一些数据 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;-- ------…

编程(39)----------多线程中的锁

假设一个这样的场景: 在多线程的代码中, 需要在不同的线程中对同一个变量进行操作. 那此时就会出现问题: 多线程是并发进行的, 也就是说代码运行的时候, 俩个线程会同时对一个变量进行操作, 这样就会涉及到多线程的安全问题: class Counter{public int count;public void add…

RPC核心原理(整体架构/调用过程)

Server: Provider ,暴露服务,服务提供方 Client: Consumer ,服务消费,调用远程服务 Registry:服务注册与发现 RPC的调用过程如下: 第一步:server会将他需要暴露的服务以及他的地址信息注册到Registry这一注册中心。 第二步:client通过注册…

【VScode】ESLint :warning Delete `CR` prettier/prettier

一. ESLint 作用 检查 Javascript 编程时的语法错误。 新建或修改文件时报错 原因 Windows系统 ,clone的代码会自动把换行符 LF转为回车符CRLF,这时本地的代码都是回车符。可在prettier.config.js中查看到 检查配置(ESLint中是…

linux(system V标准)信号量

目录: 1.什么是信号量 2.信号量的本质 1.什么是信号量 2.信号量的本质 什么是临界资源呢?? 凡是倍多个执行流同时访问的资源就是临界资源!!! 我们看一个问题,我们fork()之后创建一个子进程&a…

redis----缓存穿透、击穿、雪崩问题解决

缓存 缓存更新方式 这是决定在使用缓存时就该考虑的问题。 设置缓存数据的TTL,当缓存数据失效后,如果有系统要请求,则会查询数据库并插入缓存(被动更新) 不友好在各类会往mysql写入数据的系统中,植入更新…

360天御滑块

又来水文章?当然,闲着无聊,走过路过,不要错过,点进来多看看。 两种类型。滑块,文字点选。此案例就以网友投稿的滑块来说。 怎么说呢,名字好听,本次难点,js混淆&#xff…

图文并茂教你快速入门React系列02-state

State 在React中,什么是state? 在 React 中,随时间变化的数据被称为状态(state)。你可以向任何组件添加状态,并按需进行更新。 如何添加使用state? 点击获取教程代码关于此框架–More docs 使用 useSt…

记一次Redis版本新特性导致的主从切换故障

背景 最近一组业务redis数据不断增长需要扩容内存,而扩容内存则需要重启云主机,在按计划扩容升级执行主从切换时意外发生了数据丢失与master进入只读状态的故障,这里记录分享一下。 业务redis高可用架构 该组业务redis使用的是一主一从&am…

基于卷积神经网络和连接性时序分类的语音识别系统,含核心Python工程源代码(深度学习)个人可二次开发

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 特征提取2. 声学模型3. CTC 解码4. 语言模型 系统测试工程源代码下载其它资料下载 前言 本项目基于卷积神经网络和连接性时序分类方法,采用中文语音数据集进行训练,实现声音转录为中文拼…