软件工程基础速通教程(北京理工大学)

news2024/9/25 7:21:42

文章目录

  • 前言
  • 软工上课情况
  • 考后感
  • 题型分析
  • 概念部分
  • 大题部分
    • 数据流图和数据字典
      • 数据流图
      • 数据字典
    • 结构化设计工具
      • 程序流程图
      • 盒图(N-S图)
      • PAD图
      • 判定表和判定树
      • PDL(伪码)
    • 软件测试
      • 白盒测试法
        • 语句覆盖
        • 判定覆盖,条件覆盖,判定/条件覆盖
        • 组合覆盖
        • 路径覆盖
      • 黑盒测试法
    • UML建模与设计
      • 用例图
      • 类图
      • 顺序图
      • 状态图

前言

这篇文章就是针对北理工计科同学写的,帮你轻松通过软工课程。

本文既有上课的基本情况,也有针对考试的要点指导,这是精心筛选,针对老师最后一节课的重点以及题型写的笔记,保你一天速通软件工程

软工上课情况

我们老师使用雨课堂进行点名,没有定位,期末采取70%(16取10次)的签到,只要满足10次(大约),平时分就给到位。

然后是项目,建议早点去选,选网上有现成代码的单人项目,不然会很麻烦,像我们就是一个文献阅读助手,这玩意需要用知识图谱之类的,门槛挺高,不如电梯调度和计算器之类的东西,一大把代码。

考后感

考完了,我写了1小时,提前交卷出来,速速学习计组去。

大题是数据流图+黑盒测试+两道UML,所以说UML是重中之重,我自己这块没时间学了,就只能草草过了,所以那两个大题我假设拿一半的分吧。大题估计有个10(数据流图)+12(黑盒测试)+10(剩下的题)=32

值得一提的是填空,专有名词确实多,我背的还是不到位,还好填空意思差不多对了就行,姑且按照一半拿分吧,有条件多背点,这20分就都到手了。我自己按10算。

选择和判断比较轻松,40分我估计30是有的。

所以最后卷面分大概有72。要达到72卷面,需要的是把复习文档过一遍(3h)+大题学习(2h)+复习文档加固记忆(1h)。如果想高一些,就要加强记忆,加强UML的学习,即便如此,一天也足够了。

你说ppt用不用看呢?其实没啥必要,ppt没有详略结合,全是平铺直叙,需要详细的不够详细,不用详细的又很啰嗦,建议以复习文档为核心,不懂得去看看ppt,然后需要加强的去看b站视频。

不说了,复习(学习)计组去了,还有4章没看呢(乐)

题型分析

闭卷

  1. 单选题,15题,30分
  2. 判断题,10题,10分
  3. 填空题,20个空,20分
  4. 综合题,4题,40分

下面详细分解一下:

  1. 60分客观题
    • 直接看老师给的复习pdf
    • 填空题都可以在书上找到原话,考概念,目标,方法,原则,不需要你去算,放心就行。
    • 概念得精准一些,发挥你们的记忆力,就那几个概念,理顺逻辑,背会很容易的
    • 其他东西大概意思差不多就行,关键是理解,记住一些术语。
  2. 40分大题
    • 这个得好好学一下
    • 重点分布在详细设计步骤的建模+测试
      • 题型一(数据流图):数据流图,一般三层,必考(顺便学学数据字典)
      • 题型二(结构化设计工具):程序流程图,盒图(NS图),PAD图,会看PDL描述。
      • 题型三(软件测试方法):白盒测试,黑盒测试。会分析,会写测试用例,会和程序流程图结合考,先画一个,然后分析
      • 题型四(面向对象分析与设计):OOA建模,使用UML语言画作业里考出来的那几类经典UML图。面向对象设计,将OOA的分析建模转化为OOD设计建模。

概念部分

这一部分来自于老师给的复习文档,13页,我在里面标出了重点的东西,同时加入一些我个人的注解,还有一些加粗黑体,那个也是重点。

下面我截图把我标记出来的东西放出来,这个东西也不绝对,只是我自己觉得把这些标出来比较好记。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

大题部分

数据流图和数据字典

参考视频

数据流图

数据流图,画出了数据流随着处理而变换的过程,没有物理部件,是纯粹的逻辑描述。

首先明确符号,网上讲的和我们ppt会略有差异,以ppt为准。关于数据库和处理的写法,我觉得写成那种带标号的比较好,数据处理的标号=数字,层数增加后=数字+.+数字,数据库的标号=F+数字(哈哈,这也算数据字典表示了)

在这里插入图片描述

DFD的整体结构大致如下,输入输出,往里有中间数据,然后中间数据会和数据储存进行一个交换。

在这里插入图片描述

视频里给的是一个两层DFD,流程如下:

  1. 先确定输入输出,然后中间直接画一个大圈儿,标出各自的名字
  2. 逐层细化,先划分子系统,然后子系统再继续划分
    • 注意,一个模块对外的输入输出接口是不可以变的,要保证各层DFD的一致性

在这里插入图片描述

我们的ppt里给出了3层的DFD,当然他那个自己加了很多东西,其实题目给的信息没那么多。

在这里插入图片描述

首先,顶层确定了输入输出,数据流,还有这个系统的名字。

在这里插入图片描述

第一层精化,基本是按照题目来的,三个处理+三个储存。但是他取名字,比如什么三元组库,策略库,历史文件,语法语义信息,这些东西你没点背景知识真的不懂的,你自己做只能笼统一些,比如日志信息就行。

在这里插入图片描述

之后我们继续分解精化,基本还是按照题目给的,可以看到数据处理的序号变化了,层级更深。黑板模型的部分,这个例子又自由发挥了,加了很多题目没给的,但是大致也是按照题目框架来的。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据字典

数据字典可以定义DFD中的所有元素,包括但不限于数据流,分量,储存,处理(虽然我不知道具体是什么,但是你记住DD和DFD是一致的就行)。有一点儿正则式的感觉,总之就是对数字规则的描述。

在这里插入图片描述

这个和编译原理的文法很像。描述的时候可以自顶向下,逐层分解。

在这里插入图片描述
在这里插入图片描述

结构化设计工具

程序流程图

在这里插入图片描述

好用,但是混乱:

  1. 经典流程图有三种单入口单出口的基本结构。顺序和选择老生常谈,经典的循环结构是while结构,先判断,再循环。
  2. 扩展的流程图。扩展了选择:do-case,扩展了循环:do-until
  3. 修正的程序结构设计。增加了break

在这里插入图片描述

盒图(N-S图)

是更加紧凑,结构化的流程图,从上到下看就可以,不需要去绕来绕去

在这里插入图片描述

PAD图

不咋常考,主要应用是翻译成代码,给人看不是很方便。

在这里插入图片描述

判定表和判定树

用于描述复杂的选择结构,判定树和判定表是等价的,互相转化。

PDL(伪码)

这个也是老生常谈了

软件测试

白盒测试法

参考视频

测试程序结构,是否按照我们的逻辑执行。

测试方案有如下几种,覆盖程度从弱到强,每种可以使用一组测试用例,来实现我们的测试目标:

  1. 语句覆盖:能够让所有语句都执行一次
  2. 判定覆盖:让每个判定表达式都获得一次真 假。注意,是和,都要测试一次。
  3. 条件覆盖:条件覆盖要比判定覆盖更强。比如A>B&&A>C,判定覆盖只需要这个是真/假就行,两个结果,但是条件覆盖需要把ABC进行若干种组合
  4. 判定/条件覆盖:
  5. 条件组合覆盖:这个最强,ABC直接穷举, 2 3 2^3 23种测试方案
  6. 路径覆盖:覆盖所有可能出现的路径

给出我们要用的测试用例,接下来讲解。

在这里插入图片描述

语句覆盖

这个是最浅的覆盖。

为什么浅呢,我们不需要去吧判断情况都测试一次,我们只需要让action1和action2都执行一次就行,很简单。说白了,语句覆盖是在测试你这个语句本身有没有bug,而不是测试控制逻辑。

在这里插入图片描述

判定覆盖,条件覆盖,判定/条件覆盖

这三个很像,都是要去测试控制结构的,所以应当加以区分。

  1. 判定:A and B,C or D,这是两个判定,是整体
  2. 条件:A,B,C,D都是条件,是判定的基本元素

需要注意,a>b这种,是条件,而a>b and c>d,是判定,所谓判定,就是用逻辑符号(and,or) 连接起来的表达式,一定是要用逻辑符号连。

所以判定覆盖,只需要:

  1. 把整体的TF值进行一次排列组合, 2 2 2^2 22
  2. 将判定对应的条件写出来
  3. 此时你会发现,一个条件组合,竟然能覆盖两个判定组合,所以最后只需要两个用例。结合后面的条件覆盖来说,如果只是TF的话,你会发现两条足够做到判定覆盖了。

在这里插入图片描述

而条件覆盖,如果没看过例子,或许会以为需要对ABCD进行组合,是 2 4 2^4 24种,其实不然,这就变成了穷举覆盖了,不可能的。我们只需要各取一次就行,并不需要把所有的组合取一次,你说你弄个TTTF和TTTT,ABC就重复取两次了,所以这反而是浪费的。

所以我感觉,条件覆盖反而更加少,两条就足够测试完毕了。前面的判定覆盖其实也是一样的,先根据判定写出来条件,然后取两列作为覆盖用例。

在这里插入图片描述

判定/条件覆盖,理论上需要覆盖我们前面的123456,似乎需要6个例子,但是你会发现,当test1满足5的同时,也覆盖了1和3,所以判定/条件覆盖又巧合般的只需要两个用例。我觉得,做这个的时候:

  1. 以条件覆盖为基准,看看这个组合能覆盖多少个判定
  2. 如果最后有遗漏,那就补上就可以

在这里插入图片描述

组合覆盖

组合:一个判定的各种条件穷举组合

哈哈,看到这里我又下意识地想要去穷举,其实不然,我们只需要穷举判定内部的条件,而不需要穷举判定之间

分别列出AB和CD的穷举,然后4行写下来就完事,很简单,再多来一些穷举仍然是如此的。甚至你不一定非要4行,交叉也行,但是需要用4个用例把下面这个表覆盖一次。

在这里插入图片描述

路径覆盖

倒着说。先说路径覆盖,其实就是找一下有多少个分支,然后分支排列组合就可以。下图中有两个分支,分别是(a|b)c(d|e)f,那么我们直接2×2,就可以排出4种路径,然后根据路径编写测试用例。

在这里插入图片描述

黑盒测试法

测试程序功能,是否正确实现了我们的功能。

  1. 等价类划分法。就是你觉得这个集合里,任何两个测试用例的效果本质上是一样的,那么就任选一个就可以。
  2. 边界值分析法。结合等价类同时使用,选取<=>边界值的三种用例来测试功能对于特殊异常值的处理是否正确

黑盒测试划分等价类我觉得可以层次划分:

  1. 首先是最顶层的,输入格式
  2. 其次是每个部分的输入范围

每个条件都编个号,方便后面覆盖的时候写题。

在这里插入图片描述
在这里插入图片描述

UML建模与设计

参考视频

在这里插入图片描述

用例图

元素:

  1. 活动者
  2. 用例
  3. 用例箭头,上面写者关系

在这里插入图片描述

类图

学过JAVA的会心一笑。
在这里插入图片描述

顺序图

  1. 方块代表类
  2. 矩形条代表激活
  3. 虚线代表类存在
  4. 箭头代表交互

在这里插入图片描述

在这里插入图片描述

状态图

学过数字逻辑的会心一笑

在这里插入图片描述

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

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

相关文章

【MMDetection3.0】训练自己的数据集

本文记录下MMDetection3.0版本,即截至目前最新的版本,训练自定义数据集的过程。当前MMDetection已经封装的很好了,虽然易于使用,但其API也愈发复杂,对于新手不太友好,这里记录下自己的踩坑经历。 数据部分…

5.英语词性之副词

五.什么是副词 副词是修饰动词,形容词,副词的词语,有时也可以修饰数词,介词,连词,名词或全 句。副词是表示行为或状态特征的词,主要作状语,也可以作表语,定语&#xff0c…

音视频开发:Qt在视频剪辑3D桌面软件获胜, 嵌入式不敌安卓

1 Qt Android嵌入式应用层开发方向对比 大家都知道啊,做嵌入式linux设备,一些没有屏幕,比如安防摄像头,门铃之类的,另外一些嵌入式设备是有触控屏,在触控屏上还跑应用软件的,这种比如商场各种…

citywalk话题增长704.76%,小红书本地化内容营销怎么玩?

2023年初发布的《2023小红书年度生活趋势:投入真实生活》报告中提到,今后年轻人会更加意识到周围和附近的重要性,在十大生活趋势预测中,近邻升温(2022年相关笔记数量同比上涨213%)、野到家门口(…

建立小型医学数据库(总结)

建立小型医学数据库 小型医学数据库可以用于存储和管理医学数据,如患者病历、药品信息、试验结果等。这对于医疗机构和科研机构来说非常必要,可以提高数据管理和共享的效率,进而促进医学研究和诊疗水平的提升。 建立小型医学数据库有以下基本…

转发和重定向的区别及其原理

在web应用中完成资源的跳转 在一个web应用中完成资源的跳转可以通过转发或者重定向两种方式, 跳转的资源只要是服务器内部合法的资源即可(如Servlet、JSP、HTML…) 转发机制使用场景: 某个Servlet向request域当中绑定了数据,希望从其他Servlet当中把request域里面…

【Python】Django 基础知识

系列文章目录 提示:阅读本章之前,请先阅读目录 文章目录 系列文章目录前言安装启动项目查看所有子命令主要文件setting 配置项URL 请求路径path 转换器HttpResponse 输出中文乱码models的objects代码自动补全views的request 代码自动补全views的request.…

沃尔玛、亚马逊跨境电商如何实现自养账号采退、海淘及测评的

今天曹哥还是针对下亚马逊、沃尔玛跨境平台如何实现自己养买家号可以给自己采购、海淘及测评等技术问题 首先你要有一个稳定的环境方案,这个是做自养号采购、海淘及测评的基础。环境有很多,从早期的虚拟机,模拟机,云手机&#xf…

[进阶]Java:IO流分类、文件字节输入流、读取字节数据、避免乱码问题

IO流概述 I表示intput,是数据从硬盘文件读入到内存的过程,称之输入,负责读。O表示output,是内存程序的数据从内存到写出到硬盘文件的过程,称之输出,负责写。 IO流的分类 按流的方向分 按流中的数据最小单…

树状数组(入门附模板)

声明:本篇文章图片非原创 目录 简介 lowbit函数 结构分析 单点修改,区间查询 区间修改,单点查询 区间修改,区间查询 模板题 树状数组1–单点修改,区间查询 题目描述 输入格式 输出格式 输入输出样例 输入 #1 输出 #1 说明/提示 分析 代码 树状数…

移动机器人路径优化:基于Q-learning算法的移动机器人路径优化(提供MATLAB代码)

一、Q-learning算法 Q-learning算法是强化学习算法中的一种,该算法主要包含:Agent、状态、动作、环境、回报和惩罚。Q-learning算法通过机器人与环境不断地交换信息,来实现自我学习。Q-learning算法中的Q表是机器人与环境交互后的结果&#…

哈工大计算机网络课程网络层协议详解之:CIDR与路由聚集

哈工大计算机网络课程网络层协议详解之:CIDR与路由聚集 文章目录 哈工大计算机网络课程网络层协议详解之:CIDR与路由聚集CIDR与路由聚集CIDR路由聚集 CIDR与路由聚集 CIDR CIDR:无类域间路由(CIDR:Classless InterDo…

2.4C++派生类的函数

C 派生类的构造函数 在C中派生类的构造函数,必须调用基类的构造函数,来初始化从基类继承的数据成员。 具体有两种形式: 1、默认构造函数 2、带参数的构造函数 上面的我写的代码中,DerivedClass 构造函数的初始化列表中调用了 …

前缀和以及map混用,打开思路

补一个坑 目录 以力扣560为例: 力扣1248,优美子数组 力扣974 和可被 K 整除的子数组 力扣523.连续的子数组和 浅谈一下前缀和: 我们通过前缀和数组保存前 n 位的和,presum[1]保存的就是 nums 数组中前 1 位的和,也…

王道考研数据结构--3.双链表

目录 1.前言 2.代码难点 2.1双链表的插入和删除 3.代码函数 3.1双链表结构体定义 3.2双链表初始化函数 3.3双链表插入 3.4双链表节点删除 3.5双链表的遍历 4.全部代码 1.前言 日期:2023.6.21 书籍:2024年数据结构考研复习指导(王道…

【计算机视觉】CVPR 23 | 视觉 Transformer 全新学习范式!用长尾数据提升ViT性能

文章目录 一、导读二、介绍三、方法四、总结 一、导读 论文地址: https://arxiv.org/abs/2212.02015代码链接: https://github.com/XuZhengzhuo/LiVT二、介绍 在机器学习领域中,学习不平衡的标注数据一直是一个常见而具有挑战性的任务。近…

JDK自带的构建线程池的方式之newScheduleThreadPool

顾名思义newScheduleThreadPool是一个定时任务的线程池,这个线程池可以定时一定周期去执行任务,也可以实现延迟多久去执行任务一次。 newScheduleThreadPool方法实现展示 基于查看这个方法不难发现,该方法是基于ScheduledThreadPoolExecutor…

基于 Flink CDC 构建 MySQL 到 Databend 的 实时数据同步

这篇教程将展示如何基于 Flink CDC 快速构建 MySQL 到 Databend 的实时数据同步。本教程的演示都将在 Flink SQL CLI 中进行,只涉及 SQL,无需一行 Java/Scala 代码,也无需安装 IDE。 假设我们有电子商务业务,商品的数据存储在 My…

【深度学习】5-5 与学习相关的技巧 - 超参数的验证

超参数指的是,比如各层的神经元数量、batch大小、参数更新时的学习率或权值衰减等。如果这些超参数没有设置合适的值,模型的性能就会很差。 那么如何能够高效地寻找超参数的值的方法 验证数据 之前我们使用的数据集分成了训练数据和测试数据&#xff0c…

WorkPlus AI助理正式上线!为企业打造定制化的AI私有助理

毋庸置疑,ChatGPT的应用充满无限的想象空间。但对于企业来说,使用时面临的最核心的问题就是“存在回答准确性不足”的弊端。那企业都想要通过GPT构建内容生态,在数字化时代保持行业领先地位。 企业都想要结合行业属性、业务需求等自身特点打…