首页 > 其他分享 >《软件需求模式》阅读笔记01

《软件需求模式》阅读笔记01

时间:2023-12-05 15:55:19浏览次数:29  
标签:需求 01 流程 系统 笔记 文档 软件 描述

 软件需求这门课课程要求精读一门关于软件需求方面的书,我选择了《软件需求模式》这本书,从这本书来了解一下软件需求的一些流程以及需要软件工作人员做好那些事情。

第1章主要介绍了什么是需求以及我们应该如何去得到他们。 

需求的概念:定义系统需要做什么,而不是怎么去做。我的理解就是在需求时,我们不需要考虑怎么去实现它,而是要专注于需求本身,及到底需要做到什么。而要做好需求分析,就要求编写好需求规格文档,这个文档必须说明我们系统的目标,及到底需要做什么。

  需求在总体方案中的位置,一般的开发过程主要包括范围、需求、设计、开发、测试、安装等阶段,而根据规模的不同大小,需求可以大到整个系统,也可以小到一个编码单元。

  需求的一些基本原则。1.定义问题,而不是解决方案。还是那句话,需求我们要做到什么,而不是怎么去做。2.定义目标,不是项目。需求定义的系统需要去做什么,而并不涉及如何实现目标。3.区分正式部分和非正式部分。其中正式部分就是软件需求的规格,是系统必须做的,而其他部分都是非正式的。4.避免重复,就是说每一项信息只描述一次。

  传统的需求流程:准备——》收集信息——》编写需求规格草稿——》评审规格——》评审后修改。

  敏捷开发流程,包括极限需求流程和增量需求流程。其中极限需求流程其实不存在具体的需求,他要做的就是将需求编成完整的用户故事,然后编成人员按照故事去实现;而增量需求流程,就是前期做尽量少的开发流程,当编成人员觉得需要扩展相应的需求时,在做具体的扩充。

  第2章描述了需求规格包含哪些东西,可以帮助我们编写出更好的,更合适的需求规范。

  需求的6个部分:系统目的、文档目的、需求格式、词汇表、参考书目、文档历史。

  系统目的,就是具体描述系统是干什么的,谁将使用它,以及业务目的等。但是一些系统或许因为系统目的太明显而没有描述,但是这里要强调的是不管明不明显都要加以说明,否则就可能对系统目的有不同的意见。

  文档目的,所谓的文档目的,就是说每一篇文档都应该描述它的编写是为了什么,并且在编写文档目的时,还要注意言简意赅,用尽量简洁的语句表达。

  需求格式,需求格式就是用来描述需求规格中的正式和非正式部分,描述每一个信息中的条目,解释每个需求是一个可测量的目标。

  词汇表,主要是确定每一个术语的含义告知不了解的读者、消除误解及强迫公开一些理解不够渗入的领域概念。而不是因为看起来比较正式或者是文档模板要求写才写的。

  参考书目,就是列出文档中参考的书目和其他来源。

  文档历史,用来记录版本的每一个细节,最好以表格的形式。

  文档的上下文部分,文档上下文部分开始真正的对系统的功能进行概括,读者读完这一部分,应该可以对系统本质有一个大概的了解。

文档的范围,文档范围可以用上下文图表示,主要与组件、用户角色、范围边界、系统间接口来实现,并且在每个上下文图后,还应该有相应的文字来描绘每一个组件的功能。

 主要假设和主要排除,主要假设就是已经确定的要实现的东西,而主要排除则正相反,就是确定一些不需要做的事情。

  关键业务实体是用来确定系统的核心的功能的,一般有一到两个。而基础架构则是支持一个或多个需求所需要的一组基础的能力,基础架构可以理解为为系统提供的合适环境,像一些保证系统正常运行的基础软件等。完成了介绍和上下文部分,就需要定义系统的核心部分——系统的各个功能,这就需要功能域来实现,按照功能域将每个小节命名逐个系统描述。

  最后是主要非功能要求,主要是用来定义系统重要的非功能性的要求,由于各个系统都是不一样的,所以这部分要严格根据各个系统来最终确定。

标签:需求,01,流程,系统,笔记,文档,软件,描述
From: https://www.cnblogs.com/qq2143187807/p/17877454.html

相关文章

  • 秦疆的Java课程笔记:56 数组 二维数组
    多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。秦疆老师表示Java中并不太使用二维以上的多维数组。例如二维数组:inta[][]=newint[2][5],就可以看成是一个两行五列的数组publicclassArrayDemo1{publicstaticv......
  • 软件测试/人工智能|人工智能与智能化测试Workshop
    在数字化时代,软件测试不再仅仅是繁琐的手动过程,智能测试与智能化测试技术正在成为测试领域的创新引擎,为质量保障和软件开发提供前所未有的机会。为了帮助大家系统地掌握人工智能在测试领域的应用,我们特别推出了为期2天的人工智能与智能化测试Workshop,本次活动支持线上和线下两种......
  • P4563 [JXOI2018] 守卫
    题目传送门[JXOI2018]守卫思路区间dp。设状态$f_{l,r}$为在区间$[l,r]$内要放的最少保镖数量。看到题面第一眼的感觉是不会判两点能否连接。第二眼发现可以用斜率判。令$k_{l,r}$为横坐标为$l,r$的两点连线斜率。有$k_{l,r}=\frac{h_r-h_l}{r-l}$。手搓几组样......
  • 硬件开发笔记(十四):RK3568底板电路LVDS模块、MIPI模块电路分析、LVDS硬件接口、MIPI硬件
    前言  本篇继续分析底板原理图mipi/lvds屏幕电路原理图、硬件接口详解。 LVDS与MIPI的区别  液晶屏有RGBTTL、LVDS、MIPI、HDMI接口,这些接口区别于信号的类型(种类),也区别于信号内容。RGBTTL接口信号类型是TTL电平,信号的内容是RGB666或者RGB888还有行场同步和......
  • 学c笔记归纳 第五篇——指针(抽象点)
    概念:内存会划分一个个的内存单元,每个内存单元都有一个编号,1个内存单元的大小为:1字节(1byte),内存单元的编号就是它的地址,地址也被称为指针。存放指针(地址)的变量就是指针变量;指针的本质就是地址,地址可以用指针变量存起来;指针变量也是变量,也分全局和局部。 #include<stdio.h>......
  • 正则学习笔记
    正则学习笔记https://www.runoob.com/regexp/regexp-syntax.htmlhttps://blog.csdn.net/weixin_44579563/article/details/119424770(re.findall与分组_坑)https://blog.csdn.net/jiangshandaiyou/article/details/100823381例子捕捉组详解:https://blog.csdn.net/weixin_3......
  • uva101The Blocks Problem
    原题链接TheBlocksProblem-洛谷|计算机科学教育新生态(luogu.com.cn)一道模拟题。(水题) 但模拟过程很有意思,怎么样才能用最短的代码完成所有操作,使代码更简洁是很考验技术的。 #include<bits/stdc++.h>usingnamespacestd;vector<int>block[30];vector<int>m;......
  • [编程] AI助力软件项目正向生成,注释编写的革命
    引言软件项目质量直接影响着用户体验和企业效益。随着软件的应用范围不断扩大,提高软件质量的重要性也日益凸显。传统上,软件工程师通常采用自下而上的开发模式,自行设计实现代码并进行测试,这给质量把控带来一定难度。而注释与知识管理在这个过程中可以发挥重要作用。注释作为......
  • GMK10100-ASEMI太阳能光伏二极管GMK10100
    编辑:llGMK10100-ASEMI太阳能光伏二极管GMK10100型号:GMK10100品牌:ASEMI正向电流:10A反向耐压:100V封装:GMK批号:2023+安装类型:表面贴装型引脚数量:2工作温度:-55°C~150°C类型:光伏二极管GMK10100特性:肖特基势垒高二极管;热阻低;正向压降低,功率损耗低隔离包装设计,非常适合......
  • CAN-bus应用笔记:节点篇
    在CAN-bus电路设计中,理论上收发器支持节点数最多可做到110个,但实际应用中往往达不到这个数量。今天我们就来谈谈如何通过合理的CAN-bus总线设计,保证CAN网络中的通讯的可靠性和节点数量。影响CAN总线节点数的因素影响总线节点数的因素有多种,本文我们从满足接收节点的差分电压幅值......