首页 > 其他分享 >11月1日《软件需求模式》阅读笔记一

11月1日《软件需求模式》阅读笔记一

时间:2023-11-14 12:56:52浏览次数:33  
标签:11 需求 流程 系统 笔记 文档 软件 描述

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

首先从这本书的前言中,我知道了这本书先是要教会我们关于需求的概念,让我们知道什么是需求,然后就是教我们各种关于需求的模式,这本书中有30多个需求的模式。每一个模式都是技术的结晶,他们会方便我们的重用。但是要注意这本书并不设计需求的流程,它只是帮助我们更好的认识流程和编写流程的一本参考书,所以如果想学好相关流程,就要学习别的书籍了。别的不多说,开始正式阅读。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关文章

  • 11月6日总结
    无论是实际的项目中,还是在我们学习的过程中,都会重点的应用到Dictionary<TKey,TValue>这个存储类型。每次对Dictionary<TKey,TValue>的添加都包含一个值和与其关联的键,使用键检索值的速度非常快,接近O(1),因为Dictionary<TKey,TValue>类是作为哈希表实现的。首先我们来从一......
  • 11月9日总结
    今天是《Net高级调试》的第八篇文章。这篇文章设计的内容挺多的,比如:如何查看方法的汇编代码,如何获取方法的描述符,对象同步块的转储,对象方法表的转储,托管堆和垃圾回收器信息的转储,CLR的版本,GC模式,等等,内容挺多的。内容虽然挺多,但是这些都是高级调试的基础。虽然这些都是基础,如果......
  • 11月8日总结
    引言:事件循环不是浏览器独有的,从字面上看,“循环”可以简单地认为就是重复,比如for循环,就是重复地执行for循环体中的语句,所以事件循环,可以理解为重复地处理事件,那么下一个问题是,处理的是什么事件,事件的相关信息从哪里获取。因为我没有用nodejs做过什么项目,所以这里我暂且只关注浏......
  • 11月7日总结
    从源代码到可运行的操作系统(前置知识)API与SDK以C语言编写的操作系统为背景进行介绍,EOS是由C语言编写的操作系统和应用程序之间一个重要的纽带就是应用程序接口(简称API)。操作系统通过开放API为应>用程序提供服务,应用程序通过使用这些API实现其功能。在操作系统或......
  • 11月10日总结
    最近在群里,有个小伙伴问了这么一道很有趣的问题:CSS能否实现,容器再某个高度下是某种表现,一旦超出某个高度,则额外展示另外一些内容为了简化实际效果,我们看这么一张示意效果图:可以看到,当容器高度没有超过某一个值时,没有箭头图标。反之,箭头图标出现。这个效果在很多场景都会出现......
  • 读书笔记 -- Junit 实战(3rd)Ch07 用 mock object 进行测试
    8.1mockobject简介隔离测试:最大优点是能编写专门测试单一方法的测试代码,而不会受到被测方法调用某个对象所带来的副作用的影响。mockobject(mocks):非常适合测试与代码的其余部分隔离开的一部分代码。 mocks与隔离测试的区别:mock并不实现任何逻辑,只提供一些方法的空壳,......
  • 202311141210——《一些修改表字段的sql语句》
    ALTERTABLEuserADDCOLUMNtelCHAR(11)AFTERwechat;#添加列ALTERtablecustomermodifycolumnpasswordvarchar(200);#修改列类型ALTERTABLEuserALTERCOLUMNstatusSETDEFAULT1;#设置默认值ALTERTABLEuserMODIFYcolumnemp_idTIMESTAMPDEFAULTNULL......
  • Programming abstractions in C阅读笔记:p184-p195
    《ProgrammingAbstractionsInC》学习第61天,p184-p195总结。一、技术总结1.mutualrecursion2.naturalnumber(1)定义p184,Ifyoulimitthedomainofpossiblevaluestothesetofnaturalnumbers,whicharedefinedsimplyasthesetofnonnegativeintegers.3.最大公约......
  • 11.14算法
    题目岛屿数量给你一个由 '1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例1:输入:grid=[["1","1","1","1","0"],["1","1"......
  • win11安装WSL2并配置Ubuntu环境
    win11安装WSL2并配置Ubuntu环境WSL是适用于 Linux 的 Windows 子系统,可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。1    开启windows的WSL与虚拟平台支持1.1    开启虚拟化......