软件工程复习知识点

考点整理
模块的内聚是何含义?
一个模块内各个元素彼此结合的紧密程度。

软件工程方法学的3要素是什么?
方法、工具、过程
软件生命周期的阶段如何还分,每个阶段的主要任务是什么?
软件定义(问题定义、可行性研究、需求分析)
问题定义:明白要解决的问题是什么
可行性研究:探索这个问题是否值得去解,是否有可行的解决办法
需求分析:确定系统必须具备哪些功能

软件开发(总体设计、详细设计、编码和单元测试、综合测试)
总体设计:设计出实现目标系统的几种可能方案,确定程序由哪些模块组成以及模块间的关系
详细设计:设计出程序的详细规格说明
编码和单元测试:写出正确的容易理解、容易维护的程序模块
综合测试:通过各种类型的测试和调试使软件达到预定的要求

软件维护(软件维护)
通过各种必要的维护活动使系统持久地满足用户的需要

可行性研究的实质是什么?
一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计过程

结构化程序设计有哪几种基本结构,有何特点?有何要求?
基本结构:顺序、选择、循环
特点:任意基本结构都具有唯一入口和唯一出口
要求:尽可能少用go to语句,最好在检测出错误时采使用go to语句,而且应该总是使用前向go to语句

软件维护的分类,及每种维护的含义?
改正性维护:发现系统中的错误而引起的维护
适应性维护:为了适应外界环境的变化而增加或者修改功能的维护工作
完善性维护:为了完善系统功能而增加新功能的维护工作
预防性维护:对尚能正常运行但可能要发生变化的部分采取的预防措施

软件测试和软件调试的目的是什么?
软件测试的目的:破坏已经建造好的软件系统,竭力证明程序中有错误,不能按照预定要求工作。尽可能多地发现并排除软件中潜在的错误。
软件调试的目的:找出产生症状的原因,以便改正错误。

什么是软件配置管理?
在软件的整个生命周期内管理变化的一组活动,这组活动用来标识变化、控制变化、确保适当地实现了变化、向需要知道这类信息的人报告变化

什么是软件配置项?
分为3类:
计算机程序
描述计算机程序的文档
数据

数据流图有何用途、有哪几种图形元素?
两个用途:1.信息交流的工具 2.分析和设计的工具
元素:4个基本符号。1.正方形:表示源点或终点 2.圆角矩形:代表变换数据的处理 3.开口矩形:数据存储 4.箭头:数据流

什么是ER图、有哪几种图形元素、有何用途?
实体-联系图。
矩形框表示实体,菱形框表示关系,椭圆形表示属性。
用途:用来描述现实世界的概念模型。

数据字典主要用途是什么?
作为分析阶段的工具。在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户之间的通信,因此能消除许多可能的误解。

什么是白盒测试、什么是黑盒测试,白盒测试有哪些测试方法、黑盒测试有哪些测试方法?
白盒测试:按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作
黑盒测试:在程序接口进行的测试,只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性。
白盒测试的方法:逻辑覆盖、控制结构测试
黑盒测试的方法:等价划分、边界值分析、错误推测

什么是等价类划分方法,什么是边界值分析方法?
等价划分方法:把程序的输入域划分成若干个数据类,据此导出测试用例。
边界值分析方法:通过输入等价类和输出等价类的边界进行测试的一种黑盒测试方法,通常是对等价类划分的一种补充,选取的测试数据应该刚好等于、刚好小于和刚好大于边界值

耦合有哪些类别,内聚有哪些类型,各是何含义?
耦合:
非直接耦合:相互之间没有数据交换
数据耦合:两个模块通过参数交换信息
控制耦合:两个模块通过参数交换控制信息,这个信息会影响另一个模块
特征耦合:当把整个数据结构作为参数传递而被调用的模块只需要其中一部分数据元素时
公共数据环境耦合:多个模块共用一个数据环境
内容耦合:一个模块访问另一个模块里面的数据,一个模块不经过正常入口进入另一个模块,一个模块有多个入口,两个模块之间有代码重叠
内聚:
功能内聚:里面的元素为了共同实现同一个功能
顺序内聚:模块内两个步骤按照顺序执行,共同为了完成某个功能
通信内聚:使用相同的输入数据,或者产生相同的输出数据
过程内聚:一个模块内的处理元素是相关的,比如两个数据公用同一个循环或者判定条件,比如过程中用同一个公式执行
时间内聚:只是因为他们在同一个时间执行才把它们放到一起,比如共同用来初始化的一些函数,或者紧急处理模块
逻辑内聚:一个模块完成的任务在逻辑上属于相同或相似的一类
偶然内聚:一个模块完成一组任务,但是这些任务之间没有太大关系,关系是很松散的。

需求分析阶段应该得到什么文档?
软件需求规格说明书

软件生命周期模型有哪些?各有何特点?
瀑布模型:阶段间具有顺序行和依赖性、推迟实现、质量保证
快速原型模型:快速建立起能够在计算机上运行的程序
增量模型:把软件产品作为一系列的增量构件来设计、编码、继承和测试
螺旋模型:是风险驱动的,在每个阶段之前都增加了风险分析过程
喷泉模型:具有面向对象软件开发过程迭代和无缝的特性

判定表和判定树有何特点?用于何种场合?如何使用?
判定表:能够清晰地表示复杂的条件组合与应做动作之间的对应关系。
场合:用于算法中包含多重嵌套的条件选择时。
判定树:也能够清晰地表示复杂的条件组合与应做动作之间的对应关系,优点在于他的形式简单,不需要任何说明,就能一眼看出其含义,易于掌握和使用。

结构化程序设计对goto 语句有何要求?
要求:尽可能少用go to语句,最好在检测出错误时采使用go to语句,而且应该总是使用前向go to语句

设计数据流图时,分层的原则是什么?
自顶向下,逐层分解

估算软件项目成本的模型有哪些?
代码行技术、功能点技术、静态单变量模型、动态多变量模型、COCOMO2模型

软件危机是什么?软件工程的定义是什么?二者有何关系?
软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题
软件工程:指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
关系:软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。

软件结构图如何理解?
是软件结构设计另一个有力工具,是描绘软件结构的图形工具,表明了一个模块调用了哪些模块。

数据流图中,信息流可分为哪两种类型,如何区分?
信息流分为:交换流和事务流。
交换流:有输出流、交换流、输入流
事务流:以事务为中心,可能有多个输出

软件结构图中对深度、宽度、扇入及扇出有何要求?
深度、宽度、扇入、扇出都应该适当。一个好的典型系统平均扇出通常是3或4。
什么是CAD,CAM,CAI,CASE?
CAD——计算机辅助设计
CAM——计算机辅助制造
CAI——计算机辅助教学
CASE——计算机辅助软件工程

JACKSON方法有何特点?有何用途?
特点:分析输入输出数据的逻辑结构、列出所有的操作和条件、用伪代码表示程序
用途:面向数据结构的设计方法,在设计比较简单的数据处理系统时特别方便

什么是驱动模块、什么是存根模块?有何用途?
驱动模块:用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测试模块,启动被测模块,并打印出相应的结果
存根模块:代替被测试的模块所调用的模块,称为虚拟子程序,使用被他代替的模块的接口,做少量的数据操作并输出,然后把控制归还给调用它的模块

如何度量软件的规模?
代码行技术:依据以往开发类似产品的经验和历史数据,估算实现一个功能所需要的源程序行数
功能点技术:依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。

可行性研究包含哪几方面的工作?
技术可行性、经济可行性、操作可行性
CMM包含哪几个等级?
CMM——软件能力成熟度模型,从无序到有序分为五个等级:1. 初始级 2.可重复级 3.已定义级 4.已管理级 5.优化级

投资回收期如何计算?
计算公式:
投资回收期 = [累计净现金流量出现正值年数] – 1 + [上年累计净现金流量绝对值 / 当年净现金流量]

什么是结构化设计?有何用途?
是一种面向数据流的设计方法,目的在于确定软件的结构。
用途:是程序的结构尽可能反映要解决的问题的结构。

需求分析阶段要使用哪三种类型的模型?
功能模型:DFD
数据模型:E-R
行为模型:状态转换图

集成测试有哪几种策略?
2种:自顶向下,自底向上

软件测试有哪几个步骤?与软件各开发阶段有何关系?
步骤:1. 模块测试 2. 子系统测试 3.系统测试 4. 验收测试 5.平行运行
单元测试-》编码
集成测试-》详细设计
系统测试-》概要设计
验收测试-》需求分析

如何由程序流程图得到流图,如何计算环形复杂度?
任意一种:
V(G) = E – N + 2 //E是流图中的边的条数,N是结点数
V(G) = P + 1 //P是流图中判定分支点的数目

如何将程序转化为流程图及N-S图?
如何由流程图设计测试用例?(包括语句覆盖与分支覆盖)。
语句覆盖:至少每个语句应该执行一次
分支覆盖:也叫判定翻盖,不进每个语句必须至少执行一次,而且每个判定的每种可能结果都应该至少执行一次。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】数据库精细化讲解:内置函数知识穿透与深度学习解析

前言:本节内容讲述mysql里面的函数的概念, 在mysql当中, 内置了很多函数工作。 这些函数丰富了我们的操作。 比如字符串函数、数据函数以及一些其他函数等等。 ps:友友们学习了表的基本操作后就可以观看本节内容啦! 目录 日期函数 current_…

Is:cannat access /data: Input/output error

说明: 1)访问应用业务,输入账号密码报如下图所示:invalid login. 2)登录服务器查看数据日志,报如下图所示:ls:cannot access /data: Input/output error 3)查看日志dmesg |grep erro…

Python MySQL SQLServer操作

Python MySQL SQLServer操作 Python 可以通过 pymysql 连接 MySQL,通过 pymssql 连接 SQL Server。以下是基础操作和代码实战示例: 一、操作 MySQL:使用 pymysql python 操作数据库流程 1. 安装库 pip install pymysql2. 连接 MySQL 示例 …

迅为RK3562开发板直连电脑配置方法(无线上网)

概述 由于环境限制,笔记本电脑和开发板无法通过路由器连接起来,所以本文的目的是要实现笔记本电脑和虚拟机能够通过 WIFI 上网,并且开发板通过网线连接笔记本电脑和虚拟机在同一个网段内,最终实现 TFTP 或 NFS 来进行开发调试。 通…

Mono Repository方案与ReactPress的PNPM实践

ReactPress Github项目地址:https://github.com/fecommunity/reactpress 欢迎Star。 Mono Repository方案与ReactPress的PNPM实践 在当今软件开发领域,Mono Repository(简称Monorepo)已成为一种流行的代码管理方式,特…

timedatectl命令修改时间和时区

1.默认情况下,Linux系统通常每64分钟进行一次NTP时间同步。但是,这可以通过编辑/etc/ntp.conf文件来修改。在/etc/ntp.conf中设置minpoll和maxpoll参数。 timedatectl可以用来查询和更改系统时间设定,同时可以设定和修改时区信息。 一、查…

基于Opencv的图像处理软件

目录 一、背景及意义介绍背景意义 二、概述一、背景及意义介绍背景意义 三、论文思路解决问题 四、复现过程(一)图像处理模块二)图形界面模块(一)图像处理模块实现步骤(二)图形界面模块实现步骤…

HTML的自动定义倒计时,这个配色存一下

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>自定义倒计时</title><style>* {mar…

私有化部署视频平台EasyCVR宇视设备视频平台如何构建视频联网平台及升级视频转码业务?

在当今数字化、网络化的时代背景下&#xff0c;视频监控技术已广泛应用于各行各业&#xff0c;成为保障安全、提升效率的重要工具。然而&#xff0c;面对复杂多变的监控需求和跨区域、网络化的管理挑战&#xff0c;传统的视频监控解决方案往往显得力不从心。 EasyCVR视频融合云…

MacOS通过X11转发远程运行virt-manager进行虚机分配

今天需要通过本地macbook机器连接远程物理机&#xff0c;执行虚机分配&#xff0c;现有文档仅提供window环境安装&#xff0c;如下整理Mac环境下的安装步骤 操作篇 前提条件 支持x11转发的terminal&#xff0c;我本地使用iTerm2&#xff1b;本地安装XQuartz&#xff0c;作为…

【每天学点AI】实战图像增强技术在人工智能图像处理中的应用

图像增强&#xff08;Image Enhancement&#xff09;是人工智能和计算机视觉中一项重要的技术&#xff0c;也是人工智能数据集预处理的一个重要步骤。它旨在提高图像的质量&#xff0c;使其在视觉上更加清晰、细节更丰富。这项技术在自动驾驶、医疗诊断、安防监控等领域有着广泛…

hbase mongodb hive starrocks比较

本文是在学习大数据的几个数据存储系统相关的组件所记录下来的&#xff0c;主要是不同组件的基础概念初步了解与对比。 NoSql 在大数据时代&#xff0c;虽然RDBMS很优秀&#xff0c;但是面对快速增长的数据规模和日渐复杂的数据模型&#xff0c;RDBMS渐渐力不从心&#xff0c…

STM32端口模拟编码器输入

文章目录 前言一、正交编码器是什么&#xff1f;二、使用步骤2.1开启时钟2.2配置编码器引脚 TIM3 CH1(PA6) CH2 (PA7)上拉输入2.3.初始化编码器时基2.4 初始化编码器输入2.5 配置编码器接口2.6 开启定时器2.7获取编码器数据 三、参考程序四、测试结果4.1测试方法4.2串口输出结果…

wireshark使用lua解析自定义协议

wireshark解析自定义协议 1.自定义的lua放入路径2.修改init.lua2.1 开启lua2.2 init.lua文件最后加入自己的lua文件位置&#xff0c;这里需要确保与自己的文件名相同 3.编写lua4.编写c抓包5.wireshark添加自定义协议如何加调试信息 1.自定义的lua放入路径 一般是自己软件的安装…

基于docker进行任意项目灵活发布

引言 不管是java还是python程序等&#xff0c;使用docker发布的优势有以下几点&#xff1a; 易于维护。直接docker命令进行管理&#xff0c;如docker stop、docker start等&#xff0c;快速方便无需各种进程查询关闭。环境隔离。项目代码任何依赖或设置都可以基本独立&#x…

友思特新闻 | 友思特荣获广州科技创新创业大赛智能装备行业赛初创组优胜企业!

2024年11月19日&#xff0c;第十三届中国创新创业大赛&#xff08;广东广州赛区&#xff09;暨2024年广州科技创新创业大赛智能装备行业赛颁奖典礼隆重举行。 赛事奖项介绍&#xff1a;广州科技创新创业大赛智能装备行业赛 第十三届“中国创新创业大赛&#xff08;广东广州赛区…

FreeRTOS——消息队列

目录 一、概念及其作用 1.1概念 1.2特点 1.3工作原理 二、相关API 2.1创建队列 2.2任务中写队列 2.3任务中读队列 2.4中断中写队列 2.5中断中读队列 三、实现原理 3.1消息队列控制块 3.2消息队列的创建 3.3消息的发送 3.3.1任务中发送 3.3.2中断中发送 3.4消息的…

11 —— 打包模式的应用

需求&#xff1a;在开发模式下想让webpack使用style-loader进行css样式的处理&#xff1b;让它把css代码内嵌在js中&#xff1b;在生产模式下提取css代码 —— 判断当前运行命令时所在的环境 方案&#xff1a;借助cross-env全局软件包&#xff0c;设置参数区分打包运行环境 …

# issue 4 进程控制函数

目录 一、进程控制函数一 二、进程控制函数二 启动进程&#xff1a;&#xff08;exec系列&#xff09; 创建新进程&#xff1a; 测试代码&#xff1a; 测试结果&#xff1a; 三、进程控制函数三 结束进程&#xff1a; 测试代码&#xff1a; 测试结果&#xff1a; 四、…

C#实现blob分析——分别基于OpenCvSharp和Emgu实现

需求和效果预览 对于下图&#xff0c;需要检测左右两侧是否断开&#xff1a; 解决分析 设置左右2个ROI区域&#xff0c;找到ROI内面积最大的连通域&#xff0c;通过面积阈值和连通域宽高比判定是否断开。 可能遇到的问题&#xff1a;部分区域反光严重&#xff0c;二值化阈值不…