【软件工程】期末复习超全整理!!!

软件工程期末复习整理

  • 软件工程大纲以及阅读说明
  • 用例图
    • 用例图例题1
  • 用例文档
    • 用例文档例题1
    • 用例文档例题2
  • 活动图
    • 活动图例题1
    • 活动图例题2
    • 活动图例题3
  • 类图
    • 类图中的关系
    • 类图例题1
    • 类图例题2
  • 顺序图
    • 顺序图例题1
    • 顺序图 例题2
    • 顺序图例题3
    • 顺序图--分析类
    • 顺序图例题4
    • 顺序图例题5
  • 状态图
    • 状态图基本元素
    • 状态图例题1
  • 根据类图写伪代码
  • 详细设计——判定表
    • 判定表例题1
  • 软件测试
    • 软件测试的目标、准则
    • 测试方法
    • 静态测试工具-PMD
    • 动态测试之白盒测试
    • 黑盒测试
    • 等价类法例题1:
    • 等价类法例题2
    • 等价类法例题3
    • 边界类例题
  • 软件工程概述部分
  • 类图中的关系详(重点)
    • 关联
    • 聚集
    • 依赖
    • 泛化
    • 实现
  • 概要设计部分

软件工程大纲以及阅读说明

其基本大纲如下:

本篇博客主要针对于【软件工程】学科的期末复习。
以我们学校为主,针对性列出相应的考察题型。
【首先】,先抓大头工作,针对各种大题大致掌握,就可以获得基础分数。其中,必考大题,包括①用例图(易)、②用例文档(易)、③活动图(易)、④类图(中)、⑤顺序图(中)、⑥状态图(有点难对我)、⑦等价类测试法(易)、⑧判定表(易)、⑨甘特图(易)、⑩根据类图写代码(中)。
【其次】,就是对于其他小细节,包括对于填空、选择的复习等。但是第一遍也是先抓住头部工作。
如上图,软件工程的大纲,大体包括,软件工程概述和面向对象的软件开发方法。在【软件工程概述】部分,需要记忆一些相关性的内容(复习这部分时可以根据目录跳转到这个部分即可)。在【面向对象的软件开发方法】中,我们主体去根据需求分析、概要设计、详细设计、编码实现、测试这几个部分依次复习即可。

用例图

用例图例题1

1.某石油公司拟开发一款加油APP,APP中用户核心需求如下:
用户使用本APP,需要先注册,登录后才可使用如下功能。
用户可申请电子油卡,可为该电子油卡充值,充值如符合活动条件,石油公司会赠予用户电子劵,电子券分为两种,一种非油电子券,一种油类电子券。
用户可使用电子油卡为加油支付费用,系统会自动扣除油类电子券抵加油费用(比如消费300元,有油类电子券15元,只需从电子有卡扣除285元)
用户可查看消费记录,可对消费记录使用APP自行开具电子发票。
根据需求描述,画出APP中用户核心需求用例图。

用例文档


用例文档例题1



用例文档例题2

针对支付加油用例,书写用例文档,条目应包括:用例名称、参与者、简要说明、前(后)置条件、基本(及可选和异常)事件流。

由加油站工作人员使用油枪为用户加油;加完油后,用户使用APP支付费用;用户需登录后才能进行支付加油费用操作。

支付过程大致如下,APP根据手机定位可知用户在哪个加油站加油,用户在APP中选择所用油枪的油枪号,并使用电子油卡进行支付。如果有油类电子券,APP会先消费油类电子券里最快过期的一张,再从用户油卡除剩余费用。

可能出现电子油卡余额不足的情况。
可能出现电子油卡支付密码不正确的情况。

活动图

在这里插入图片描述

活动图例题1

1、对系统业务工作流程建模
签订销售合同,然后进行核对。
如果发现错误,则终止履约。
如果没有错误,则要核对货物清单确定是否有货,同时核对付款单确定对方是否已经付款,只有这两项都完成,才可以发货。
如果无货或对方尚未付款,则终止履约。

活动图例题2

播放用例
基本事件流
1、用户对选择的歌曲点击播放;
2、系统连接歌词库并同时连接乐曲库对应mp3;(并发进行)
3、播放。
可选事件流
1、连接歌词库失败,显示连接失败,结束播放;
2、连接乐曲库失败,显示连接失败,结束播放。

活动图例题3

2.某公司的“图书采购申请”业务描述如下:
(1)申请人制作购书申请单,然后交给项目经理进行审查。
(2)项目经理审查是否所有书籍都需要购买,如果有不需要购买的书籍,则通知申请人修改申请;如果所购书籍金额超过2000元,则需要部门经理审批,否则直接提交采购部门;
(3)部门经理批准后提交采购部门进行采购,如果不批准则通知申请人修改申请;
(4)申请人查看项目经理或部门经理所给通知,如果取消申请,则对申请进行作废;如果继续申请,则修改申请,并交给项目经理进行审查;
(5)采购部门根据申请单进行采购。
请根据上述业务描述画出活动图。

类图

类图中的关系

类图:强调对象之间的彼此关系,是描述类与类之间的静态关系,类图是一种静态模型,同时是其他UML图的基础。
类图中的关系:
0..1 表示:0到1个对象
0..*或 * 表示 0到多个对象
①关联

②聚集
聚集关系中分为两种。
一种是聚合,一种是组合。
组合关系相对聚合关系更强一些。

③泛化
UML中的泛化关系其实就是我们通常所说的继承关系。
表示如下:

④依赖
依赖关系可以理解为其实就是一种比较弱的关联关系。
关于依赖关系,其实可以理解为一种使用关系。比如说 动物依赖于水。
具体的定义是,两个类之间是没有关系的,但是一个类的实现需要另一个类的协助,所以产生了依赖关系。
依赖关系是单向的。
具体表示为:

⑤实现
(可能在题目中比较少用到)

对于这几种关系,为了深入理解,可能考到的类似的选择题:

类图例题1

现代人的生活离不开银行及其ATM柜员机,客户会在银行开设多个业务,通过柜员机刷卡,(包括跨行ATM)进行交易来办理取款入账和转账等多种交易业务,请用类图刻画上述银行业务的静态逻辑结构。

类图例题2

某学校图书馆计划开发一个图书管理系统,该系统的主要功能性需求如下:
a):该图书馆系统能够为一定数量的借阅者提供服务。每个借阅者能够拥有唯一标识其存在的编号,图书馆向每一个借阅者发放图书证,其中包含每一个借阅者的编号和个人信息。提供的服务包括:查询图书编号、查询个人信息和预定图书等。
b)当借阅者需要借阅图书、归还图书时需要通过图书管理员进行,即借阅者不直接于系统交互,而是通过图书管理员充当借阅者的代理和系统交互。
c)系统管理员主要负责系统的管理维护工作,包括对图书数目、借阅者的添加、删除和修改,并且能够查询借阅者、图书和图书管理员的信息。
d)可以通过图书的名称或图书的编号对图书进行查找。
请画出相对应的类图。

顺序图

顺序图例题1

顺序图
1.教师录入学生成绩顺序图

顺序图 例题2

2.储蓄系统的事件顺序图
第一,储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;
第二,业务员查收存款,审核存款与存款单金额吻合;
第三,存款单生效;
第四,储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;
第五,业务员审核存款,验证储户身份,确定储户存款金额>=取款金额;
第六,审核通过,取款单生效;
第七,系统打印利息清单,业务员把本金和利息返回用户。

顺序图例题3

3.根据用例文档构造借书类图以及借书成功顺序图
用例名称:借书
用例描述:图书管理员登记读者借书的信息。
参与者(执行者):读者(管理员代理读者)
基本事件流
1.借书界面提示输入读者注册号以及所借图书书号;
2.图书管理员输入有关信息并提交
3.系统根据业务规则a,审核借书的合法性。如果合法执行4,否则执行异常事件流3.1.1;
4.系统生成借书信息(不存储),并显示给图书管理员;
5.图书管理员检查借书记录,如果无误,提交给系统,执行6。如果有误,执行5.1.1;
6.系统保存借书记录,该记录有唯一借书记录号。修改书的状态为"借出"状态,并将完整借书记录显示给图书管理员,提示借书成功。

分支事件流:无
异常过程
3.1.1 系统显示提示信息,提示用户不能借书原因,用例结束。
5.1.1 不做任何操作,用例结束。
业务规则
(可有可无)
a.根据读者注册号审核读者是否有借书资格;根据书号查询对应书目是不是本图书馆的书,及该书是否在库
扩展点:无

借书记录=借书记录号+书目号+读者ID +借书日期+管理员ID+是否归还(还书用例里可分析出该项)

类图:

顺序图:

顺序图–分析类

关于分析类:

顺序图例题4

根据下述“录入学员信息”成功的过程描述,绘制设计阶段“录入学员信息”顺序图。
录入过程:
(1)招生工作人员在录入界面EnterStudentPage对象中输入身份证号idCard和姓名name,点击录入按钮;
(2)EnterStudentPage对象发送消息doGet(idCard,name)给StudentMagController对象;
(3)StudentMagController对象发送消息enterStudent(idCard,name)给StudentService,进行学员信息的录入;
(4)StudentService对象调用自身方法createRemainder(idCard,name)生成学员的完整信息stu,并发送消息addStudent(stu)给DBMgr对象,实现stu信息存入数据库,DBMgr对象将操作成功结果“yes”返回给StudentService对象;
(5)StudentService对象将stu返回给StudentMagController对象;
(6)StudentMagController对象将stu传递并指向EnterStudentPage界面对象;
(7)EnterStudentPage对象调用自身方法display显示stu信息到界面,并提示录入成功。

顺序图例题5

使用分析类构造“预定图书”成功场景的顺序图并写出每个类的属性和方法。

预定成功顺序图:

预定失败顺序图:

状态图

状态图基本元素

状态图
状态图中的基本元素



状态图例题1

在这里插入图片描述
1.寻找主要的状态
飞机票有以下4种状态:无预订、部分预订、预订完、预订关闭。
(1)在刚确定飞行计划时,显然没有任何预订,且在顾客预订机票之前都将处于“无预订”状态。
(2)对于订座而言,有“部分预订”和“预订完”两种状态。
(3)当航班快要起飞时,要“预订关闭”。
(4)航班调度员可以取消航班飞行计划
2.寻找外部事件
(1)预订():顾客预订机票。
(2)退订():顾客退票。
(3)关闭():机票管理员关闭订票系统。
(4)取消航班():飞机调度人员取消飞行计划。

根据类图写伪代码

根据给出的类图,写出类People、Student、Boy的伪代码。

interface People  //People接口
{public abstract void sleep(){} //抽象类public abstract void drink(){} //抽象类
}class Student implements People
{
private:Computer computer; //关联关系int age;
public:void breathe(oxygen);  //依赖关系的体现void sleep(); //实现People接口void drink();  
}class Boy extends Student //继承于Student类
{public void dringkBeer();
}

详细设计——判定表


判定表例题1

假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。
当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元。
对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。

软件测试

软件测试的目标、准则

这部分内容了解即可。
测试目标:

测试准则:

测试方法


测试方法,分为静态测试动态测试
我们要基本了解静态测试。在应对考试时,动态测试要着重复习。

静态测试工具-PMD

动态测试之白盒测试


其中,重点掌握逻辑覆盖法。

①语句覆盖
即程序中每一条可执行语句至少被执行依次。


判定覆盖(分支覆盖)

分支覆盖

或者下面这样:
(总之,就是必须覆盖所有的分支。aTaFbTb必须都有。用例需要全部覆盖。且不限用例个数,但尽可能用最少的用例完成覆盖。)

条件覆盖


黑盒测试


常用的黑盒测试法,是等价类法、边界值分析法。
等价类法
在这里插入图片描述

等价类法例题1:



等价类法例题2


等价类法例题3

设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月-2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2月表示月。
划分等价类:

测试用例:

边界类例题

这道题考试考了!
我做这道题并没有测试用例举全,只是举了边界和超出边界的。
!!!




软件工程概述部分


类图中的关系详(重点)

关联

关联表示两个类的对象之间存在的某张意义上的联系。长期的,稳定的。
①普通关联 eg.用户与订单
②自反关联——同类不同对象关联

例如在一个部门中,上级部门和下级部门之间的关联。
③限定关联——利用限定词把一对多关系简化成一对一关系

④关联类
为了说明关联的性质可能需要一些附加信息。这些信息放到关联的任一方都不合适。
可以引入一个关联类来记录这些信息
关联类与一般的类一样,也有属性、操作和关联。

总:关联关系也可以是单向关联,也可以是双向关联。
表现在代码实现中,一个对象会作为另一个对象的属性是关联关系。

聚集

聚集是关联的一种特殊情况。聚集表示类与类之间的关系是整体与部分的关系。
聚集分为:聚合和组合。
①聚合:
如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为聚合,也叫共享聚集。
一般聚集和聚合图示符号:在表示关联关系的直线末端紧挨着整体类的地方画一个空心菱形。
在这里插入图片描述
设计中 :人的集合作为课题组的一个属性
课题组集合作为“人”类的一个属性

②组合
如果部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失(或失去存在价值了),则该聚集称为组合。

例如:记录员工基本信息。员工的地址包含多类信息:email,住所,电话等。
为了处理方便,员工与地址,抽象为两个类,为一对多。


代码区别:

依赖

依赖关系描述两个类之间的使用关系:
两个类之间是没有关系的,
但是一个类的实现需要另一个类的协助,这就产生了依赖。

例如:




关于关联关系和依赖关系:

泛化

在这里插入图片描述
关于抽象类:

实现

概要设计部分


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

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

相关文章

重学java 33.API 4.日期相关类

任何事,必作于细,也必成于实 —— 24.5.9 一、Date日期类 1.Date类的介绍 1.概述: 表示特定的瞬间,精确到亳秒 2.常识: a.1000毫秒 1秒 b.时间原点:1970年1月1日 0时0分0秒(UNIX系统起始时间),叫做格林威治时间,在0时区上 c.时区:北京位于东八区,一个时区…

模拟实现链表的功能

1.什么是链表? 链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的 。 实际中链表的结构非常多样,以下情况组合起来就有8种链表结构: 单向或者双向 带头或者不带头 …

车载测试到底怎么样?真实揭秘!

什么是车载智能系统测试? 车载智能系统,是汽车智能化重要的组成部分,由旧有的车载资通讯系统结合联网汽车技术所演进而来,随着软硬件技术的不断进步, 让车载智能系统拥有强大的运算能力及多元化的应用功能。 车载智能…

苹果iPad M4:Console级别图形和AI强大功能

苹果iPad M4:Console级别图形和AI强大功能 Apple近日发布了最新的M4芯片,旨在为iPad Pro系列带来明显的性能提升和电池续航时间延长。在本篇报道中,我们将详细介绍M4芯片的特点、性能改进和为创意专业人士带来的影响。 M4芯片的强大功能 …

图解项目管理必备十大管理模型及具体应用建议

心智模型是根深蒂固存在于人们心中,影响人们如何理解这个世界(包括我们自己、他人、组织和整个世界),以及如何采取行动的诸多假设、成见、逻辑、规则,甚至图像、印象等。本图通过对心智模型的分类和描述,表…

【Linux】shell基础,shell脚本

Shell Shell是一个用C语言编写的程序,接受用户输入的命令,并将其传递给操作系统内核执行。Shell还负责解释和执行命令、管理文件系统、控制进程,是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言 Shell脚本 Sh…

上位机图像处理和嵌入式模块部署(树莓派4b和c++新版本的问题)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 自己读书的时候是03年,学习c也是差不多04年开始,到现在基本上20年了。这20年过程当中,其实c的语言版本一直是在…

【stomp 实战】spring websocket 接收消息源码分析

后台消息的发送过程,我们通过spring websocket用户消息发送源码分析已经了解了。我们再来分析一下后端接收消息的过程。这个过程和后端发送消息过程有点类似。 前端发送消息 前端发送消息给服务端的示例如下: 发送给目的/app/echo一个消息。 //主动发…

科林算法_3 图

一、图论基础 多对多的关系 定义&#xff1a;G(V,E) Vertex顶点 Edge边 顶点的集合V{v1,v2} 边的结合E{(v1,v2)} 无向图(1,2) 有向图<1,2> 依附&#xff1a;边(v1,v2)依附于顶点v1,v2 路径&#xff1a;&#xff08;v1,v2)(v2,v3) 无权路径最短&#xff1a;边最少…

程序员不会告诉老板的那些神器

目录 1. 持续集成工具&#xff1a;CruiseControl&#xff08;简称CC&#xff09; 2. 代码风格、质量检查工具&#xff1a;StyleCop 3.AI工具 3.1 AI助力编写开发日报 3.2 AI助力编写普适性代码 3.3 AI助力生成代码注释 3.4 AI助力重构代码去掉“坏味道” 3.5 AI助力…

【小白的大模型之路】基础篇:Transformer细节

基础篇&#xff1a;Transformer 引言模型基础架构原论文架构图EmbeddingPostional EncodingMulti-Head AttentionLayerNormEncoderDecoder其他 引言 此文作者本身对transformer有一些基础的了解,此处主要用于记录一些关于transformer模型的细节部分用于进一步理解其具体的实现机…

渗透之sql注入---宽字节注入

目录 宽字节注入原理&#xff1a; 实战&#xff1a; 源码分析&#xff1a; 开始注入&#xff1a; 找注入点&#xff1a; 注入数据库名&#xff1a; 注入表名&#xff1a; 注入列明&#xff1a; 注入具体值&#xff1a;http://sqli-labs:8084/less-32/?id-1%df%27unio…

luceda ipkiss教程 66:金属线的钝角转弯

案例分享&#xff1a;金属线的135度转弯&#xff1a; 所有代码如下&#xff1a; from si_fab import all as pdk import ipkiss3.all as i3 from ipkiss.geometry.shape_modifier import __ShapeModifierAutoOpenClosed__ from numpy import sqrtclass ShapeManhattanStub(__…

《ESP8266通信指南》11-Lua开发环境配置

往期 《ESP8266通信指南》10-MQTT通信&#xff08;Arduino开发&#xff09;-CSDN博客 《ESP8266通信指南》9-TCP通信&#xff08;Arudino开发&#xff09;-CSDN博客 《ESP8266通信指南》8-连接WIFI&#xff08;Arduino开发&#xff09;&#xff08;非常简单&#xff09;-CSD…

短信公司_供应群发短信公司

短信公司——供应群发短信公司 短信公司作为一种为企业提供群发短信服务的服务商&#xff0c;正逐渐受到市场的青睐。供应群发短信公司作为其中的一种类型&#xff0c;为各行各业的企业提供高效、便捷的短信推广渠道。本文将介绍短信公司的作用以及供应群发短信公司的特点和优势…

Django之创建Model以及后台管理

一&#xff0c;创建项目App python manage.py startapp App 二&#xff0c;在App.models.py中创建类&#xff0c;以下是示例 class UserModel(models.Model):uid models.AutoField(primary_keyTrue, auto_createdTrue)name models.CharField(max_length10, uniqueTrue, db…

ICode国际青少年编程竞赛- Python-2级训练场-坐标与列表练习

ICode国际青少年编程竞赛- Python-2级训练场-坐标与列表练习 1、 for i in range(6):Spaceship.step(Item[i].x - Spaceship.x)Dev.step(Item[i].y - Dev.y)Dev.step(Spaceship.y - Dev.y)2、 for i in range(5):Spaceship.step(Item[i].x - Spaceship.x)Flyer[i].step(Item[…

车载测试___面试题和答案归纳

车载面试题 一、实车还在设计开发阶段&#xff0c;大部分测试通过什么测试&#xff1f; 答案&#xff1a;通过台架和仿真来完成的 二、测试部分划分&#xff1f; 测试部门是分为自研&#xff0c;系统&#xff0c;验收&#xff0c;自研部门是开发阶段测试&#xff0c;系统部门…

重发被恶意举报的主食冻干测评,速看可能再被删!PR、希喂和SC真实对比PK!

要给猫咪提供高品质主食&#xff0c;主食冻干是不二之选。主食冻干不仅含肉量高、吸收消化率高&#xff0c;还有着丰富的、普通猫粮无法提供的各类营养素&#xff0c;满足猫咪微量元素的需求。可以说是营养与生骨肉喂养媲美&#xff0c;又能完美避开生骨肉细菌超标带来的一系列…

如何优雅的实现接口限流?

首先限流&#xff0c;其实解决方案有很多&#xff0c;比如通过nginx配置&#xff0c;通过gateway网关进行限流&#xff0c;比如Spring Cloud GateWay整合熔断器实现限流 但是以上都是全局的&#xff0c;如何灵活的针对某些接口进行不同级别的限流呢&#xff1f; 方案一&#…