软件工程——第3章需求分析知识点整理

news2024/11/13 12:13:07

本专栏是博主个人笔记,主要目的是利用碎片化的时间来记忆软工知识点,特此声明!

文章目录

1.需求分析的基本任务?

2.在需求分析阶段结束前,系统分析员应该做什么?

3.对软件系统有哪些综合要求?

4.需求分析的任务?

5.分析系统的数据要求通常采用什么方法?

6.与用户沟通获取需求的方法有哪些?

7.快速原型的定义、要点以及特性?

8.需求分析过程应该建立哪三种模型?

9.需求分析阶段得出的最主要的文档是什么?

10.数据模型包含哪三种相互关联的信息?

11.ER图的组成成份?

12.ER图的优点?

13.范式是什么?数据冗余程度最大和最小分别是第几范式?

14.状态转换图的作用?

15.状态和事件的区别?

16.层次方框图使用哪种结构来描述数据的层次结构?

17.warnier图使用哪种结构来描述信息?与层次方框图的主要区别?

18.在需求分析阶段使用哪种图来简略地描述系统的主要算法?

19.IPO图定义以及作用?

20.从哪些方面进行验证软件需求的正确性?

21.为了快速修改原型,使用的方法和工具有哪些?

22.为什么要进行需求分析?(需求分析的重要性)

23.需求分析方法必须遵循的准则有哪些?

章末小结


1.需求分析的基本任务?

        需求分析是软件定义时期的最后一个阶段,它的基本任务是准确的回答“系统必须做什么”这个问题,也就是对目标系统提出完整、准确、清晰、具体的要求。

2.在需求分析阶段结束前,系统分析员应该做什么?

系统分析员应该写出软件需求规格说明书,以书面形式准确地描述软件需求。

3.对软件系统有哪些综合要求?

  1. 功能要求
  2. 性能要求
  3. 可靠性可用性需求
  4. 出错处理需求
  5. 接口需求
  6. 约束
  7. 逆向需求
  8. 将来可能提出的要求

4.需求分析的任务?

  1. 确定对系统的综合要求
  2. 分析系统的数据要求
  3. 导出系统的逻辑模型
  4. 修正系统开发计划

5.分析系统的数据要求通常采用什么方法?

采用建立数据模型的方法,比如实体联系图(ER图)

6.与用户沟通获取需求的方法有哪些?

  1. 访谈最早开始使用且应用最广泛。访谈的两种方法:发调查表和使用情况分析技术
  2. 面向数据流自顶向下求精(结构化分析方法):把分析过程中数据元素的信息记录在数据字典中,算法记在IPO图中
  3. 简易的应用规格说明技术:这种方法使用户和开发者紧密合作,解决了访谈和结构化方法中存在的用户和开发者分离的特点
  4. 快速建立软件原型:这是最准确、最有效、最强大的需求分析技术

7.快速原型的定义、要点以及特性?

定义:快速原型是指快速建立起来的旨在演示目标系统主要功能的可运行的程序

要点:应实现用户看得见的功能,省略目标系统看不见的功能

特性:快速、容易修改

8.需求分析过程应该建立哪三种模型?

  1. 数据模型(用实体联系图)
  2. 功能模型(用数据流图)
  3. 行为模型(用转态图)

9.需求分析阶段得出的最主要的文档是什么?

软件需求规格说明书(自然语言书写)

10.数据模型包含哪三种相互关联的信息?

数据对象、属性、联系

11.ER图的组成成份?

实体(数据对象)、关系、属性

12.ER图的优点?

ER模型比较接近人的习惯思维方式,可以作为用户分析员之间有效的交流工具。

13.范式是什么?数据冗余程度最大和最小分别是第几范式?

范式定义了消除数据冗余的程度第一范式数据冗余程度最大,第五范式数据冗余程度最小

【注】在大多数场合选用第三范式比较恰当

14.状态转换图的作用?

        状态转换图简称状态图,是通过描述系统的状态以及引起系统状态转换的事件,来表示系统的行为,状态图还指明了作为特定事件的结果系统将做哪些动作

15.状态和事件的区别?

状态是指任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。

事件是指在某个特定时刻发生的事情,它是对引起系统做动作和一个状态转换到另一个状态的事件的抽象

16.层次方框图使用哪种结构来描述数据的层次结构?

树形结构

17.warnier图使用哪种结构来描述信息?与层次方框图的主要区别?

warnier图使用树形结构来描述信息,但比层次方框图提供了更丰富的描绘手段

18.在需求分析阶段使用哪种图来简略地描述系统的主要算法?

        在需求分析阶段使用IPO图来简略地描述系统的主要算法,在详细设计阶段进一步补充修正这些图。

19.IPO图定义以及作用?

        IPO图是输入、处理、输出图的简称,能够方便地描绘输入数据,对数据的处理和输出数据之间的关系

20.从哪些方面进行验证软件需求的正确性?

  1. 一致性:所有需求必须一致,不能相互矛盾
  2. 完整性:需求必须完整包括用户的需要
  3. 现实性:指定的需求应该是用现有技术可以实现的
  4. 有效性:需求必须正确有效,能够解决用户的问题

21.为了快速修改原型,使用的方法和工具有哪些?

  1. 第四代技术
  2. 可重用的软件构件
  3. 形式化规格说明

22.为什么要进行需求分析?(需求分析的重要性)

        为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求
的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼。

23.需求分析方法必须遵循的准则有哪些?

  1. 必须理解并描述问题的信息域,根据这条准则应该建立数据模型
  2. 必须定义软件应完成的功能,这条准则要求建立功能模型
  3. 必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型
  4. 必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。

章末小结

        传统软件工程方法学使用结构化分析技术,完成分析用户需求的工作。

        需求分析是发现、求精、建模、规格说明和复审的过程。需求分析的第一步是进一步了解用户当前所处的情况,发现用户所面临的问题和对目标系统的基本需求;接下来应该与用户深入交流,对用户的基本需求反复细化逐步求精,以得出对目标系统的完整、准确和具体的需求。具体地说,应该确定系统必须具有的功能、性能、可靠性和可用性,必须实现的出错处理需求、接口需求和逆向需求,必须满足的约束条件以及数据需求,并且预测系统的发展前景。

        为了详细地了解并正确地理解用户的需求,必须使用适当方法与用户沟通。访谈是与用户通信的历史悠久的技术,至今仍被许多系统分析员采用。从可行性研究阶段得到的数据流图出发,在用户的协助下面向数据流自顶向下逐步求精,也是与用户沟通获取需求的一个有效的方法。为了促使用户与分析员齐心协力共同分析需求,人们研究出一种面向团队的需求收集法,称为简易的应用规格说明技术,现在这种技术已经成为信息系统领域使用的主流技术。实践表明,快速建立软件原型是最准确、最有效和最强大的需求分析技术。快速原型应该具备的基本特性是“快速”和“容易修改”,因此,必须用适当的软件工具支持快速原型技术。通常使用第四代技术、可重用的软件构件及形式化规格说明与原型环境,快速地构建和修改原型。
        为了更好地理解问题,人们常常采用建立模型的方法,结构化分析实质上就是一种建模活动,在需求分析阶段通常建立数据模型、功能模型和行为模型
        除了创建分析模型之外,在需求分析阶段还应该写出软件需求规格说明书,经过严格评审并得到用户确认之后,作为这个阶段的最终成果。通常主要从一致性、完整性、现实性和有效性4个方面复审软件需求规格说明书。
        多数人习惯于使用实体-联系图建立数据模型使用数据流图建立功能模型,使用状态图建立行为模型。读者应该掌握这些图形的基本符号,并能正确地使用这些符号建立软件系统的模型。
        数据字典描述在数据模型、功能模型和行为模型中出现的数据对象及控制信息的特性,给出它们的准确定义。因此,数据字典成为把3种分析模型粘合在一起的“粘合剂”,是分析模型的“核心”。为了提高可理解性,还可以用层次方框图或Warnier图等图形工具辅助描绘系统中的数据结构。为了减少冗余、简化修改步骤,往往需要规范数据的存储结构。

        算法也是重要的,分析的基本目的是确定系统必须做什么。概括地说,任何一个计算机系统的基本功能都是把输人数据转变成输出信息,算法定义了转变的规则。因此,没有对算法的了解就不能确切知道系统的功能。IPO图是描述算法的有效工具。

下一章:软件工程——第4章形式化说明技术知识点整理

反反复复,扎扎实实;念念不忘,必有回响!

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

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

相关文章

基于Java农家乐信息平台设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

渣土车密闭运输识别算法 yolov7

渣土车密闭运输识别系统通过pythonyolov7网络模型技术,渣土车密闭运输识别算法对渣土车的密闭运输情况进行实时监测,检测到有未密闭的渣土车进入工地区域或者行驶在道路上时,渣土车密闭运输识别算法将自动发出警报提示现场管理人员及时采取措…

【openGauss数据库安全策略配置】--略有小成

【openGauss数据库安全策略配置】--略有小成 🔻 一、openGauss数据库安全策略🔰 1.1 账户安全策略⛳ 1.1.1 自动锁定和解锁帐户💧 1.1.1.1 配置failed_login_attempts参数💧 1.1.1.2 配置password_lock_time参数 ⛳ 1.1.2 手动锁定…

MySQL实战解析底层---count(*)这么慢,该怎么办

目录 前言 count(*)的实现方式 用缓存系统保存计数 在数据库保存计数 不同的count用法 前言 在开发系统的时候,你可能经常需要计算一个表的行数,比如一个交易系统的所有变更记录总数这时候你可能会想,一条select count(*) fromt 语句不就…

Spring Boot 如何使用 @ExceptionHandler 注解处理异常消息

Spring Boot 如何使用 ExceptionHandler 注解处理异常消息 在 Spring Boot 应用程序中,异常处理是非常重要的一部分。当应用程序出现异常时,我们需要能够捕获和处理这些异常,并向用户提供有用的错误消息。在 Spring Boot 中,可以…

规则引擎--规则逻辑形如“1 (2 | 3)“的抽象

目录 规则下逻辑表达和条件的抽象表达逻辑的编码和抽象 规则&规则集合条件操作符规则规则执行表达式遍历进行操作符计算添加具体条件的执行 规则执行完成后得到最后的结果 规则下逻辑表达和条件的抽象 对于任何一个规则,包括多个条件,都可以抽象成如…

抽象确实JavaScript

看完上篇的添加事件,我想肯定有一万个黑马在奔腾 明明是照着添加宾语的公式来的,为什么会有报错? 事件不是说可以随便设置吗?但是会出问题 this又是什么关键词? value是啥? 围绕这三大疑问&#xff0c…

LED显示产业如何突破芯片短板

LED显示产业在突破芯片短板方面可以采取以下措施: 研发先进的芯片技术:LED显示芯片的研发是关键。通过投入更多资源和资金,研究机构和企业可以致力于开发更先进、更高效的LED显示芯片技术。这包括改进光电转换效率、提高亮度和色彩表现力等方…

Python基础合集 练习25 (正则表达式)

[0123456789] 普通字符 [0-9]简洁写法 在正则表达式中所有字符类型都有对应的编码 在匹配大写英文字母时,应该是 “”" [a-zA-Z]或[A-Za-z] “”" 元字符… … (.[0-9]{1,3}){3}进行重复三次操作 ^\d{9}$ 使用^和$匹配开始和结束位置,\d表示匹配数字,{9}表示…

【C++篇】C++的动态分配内存

友情链接:C/C系列系统学习目录 知识点内容正确性以C Primer(中文版第五版)、C Primer Plus(中文版第六版)为标准,同时参考其它各类书籍、优质文章等,总结归纳出个人认为较有逻辑的整体框架&…

处理 Python 3.11 弃用的 PySys_SetPath 和 Py_SetProgramName

在C调用matplotlibcpp.h画图时报错,使用的python版本是3.11.3版本。 解决方案:不重要的话,注释该行代码即可。 Python 3.11 弃用 PySys_SetPath 和 Py_SetProgramName。这 PyConfig API 取代了这些功能和其他功能。此提交使用 PyConfig API …

深入理解深度学习——GPT(Generative Pre-Trained Transformer):基础知识

分类目录:《深入理解深度学习》总目录 《深入理解深度学习——Transformer》系列文章介绍了Transformer,该模型最初被用于机器翻译任务,其出色表现引起了学术界的极大兴趣,其优异的特征提取与语义抽象能力得到了学者的广泛认可&am…

企业做seo有什么好处?SEO 为您的企业带来的 10 大主要优势?

如果您希望建立长期的品牌知名度、扩大目标受众并赚取更多收入,那么搜索引擎优化至关重要。让我们看看 SEO 为您的企业带来的 10 大好处,以及如何实现它们。 1. 它提高了你的可信度 在搜索引擎结果页面上排名靠前的网站通常被搜索引擎认为是高质量和值得…

【unity细节】—怎么将unity编译时和运行时的功能隔开

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏:unity细节和bug ⭐怎么将unity编译时和运行时的功能隔开的问题⭐ 文章目录 ⭐怎么将unity编译时和…

TCP的十个核心机制

目录 前言一 到 三四. 滑动窗口五. 流量控制六. 拥塞控制七. 延时应答八. 捎带应答九. 面向字节流十. 异常处理总结 前言 TCP协议是传输层的重点协议, 负责将数据从发送端传输到接收端. TCP协议是传输控制协议, 顾名思义也就是对数据的传输进行控制的协议. TCP 协议有很多, 我…

android存储3--初始化.unlock事件的处理

android版本:android-11.0.0_r21http://aospxref.com/android-11.0.0_r21 概述:收到unlock事件后,StorageSessionController、vold、storaged模块进行各自初始化操作。 一、StorageManagerService::onUnlockUser处理unlock事件 设备解锁后…

openlayers瓦片的使用

OpenLayers是一个用于WebGIS客户端的地图开发库,支持多种地图。在使用瓦片时,先将自己需要的瓦片下载,下载好的瓦片会分层,越高的层级瓦片的数量余额多。 使用时可以引入 ol.js 文件,和 ol.css 文件,或者使…

机器学习 | 实验五:LDA

LDA的思想:“投影后类内方差最小,类间方差最大”。即数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。 假设我们有两类数据分别为红色和蓝色,…

关于socket编程中FD_XXX以及select函数的理解

文章目录 01 | 宏接口定义02 | 使用方法03 | 服务端代码示例 学习socket编程的时候看到很多FD开头的宏定义和函数,这里记录一下这些宏定义和函数的含义及处理流程 01 | 宏接口定义 fd_set fd_set 是一种表示文件描述符的集合类型,在socket编程中&#xf…

计算机网络——自顶向下方法(第三章学习记录)

本章学习运输层 运输层位于应用层和网络层之间,是分层的网络体系的重要部分,该层为运行在不同主机上的应用进程提供直接的通信服务起着至关重要的作用。 运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信(logic communication)功能。从应用程…