软件工程常见考点 期末复习必备,通俗易懂

目录

笔记本: 默认笔记本

团队标签: 分析图画法, 软件工程

1.软件的定义:

数据和数据结构,指令的集合,文档描述

2.磨损和退化:

时间随着时间的推移,料想失败率曲线会随着的推移而减少,但实际上因为需求的变更,曲线反而上升。

3.为什么要变更:

适应新的网络环境,适应新的计算资源,满足商业需求,提高和拓展与新数据库的交互能力

4.软件工程的定义:

将系统化、规范化、可量化的方法应用于软件的开发、运行和维护阶段,将工程化方法应用于软件;对上述方法进行研究

5.软件的三要素:

方法,工具和过程。关注质量关注点。

6.六个过程框架框架活动:

沟通(和利益相关者沟通项目的需求、项目进度、质量保证点等因素),策划(制定项目计划,描述软件工程的工作,包括技术任务,可能的风险,资源需求,工作产品,工作进度等),建模(需求分析(构建模型分析需求)和设计(根据构建的模型来设计软件)),构建(编码和测试),部署(部署软件到服务器,交付交付软件,用户来评定是否按照项目需求书的要求,并做出评价)

7.适应过程模型:

规定了过程模型的活动,动作和任务的内容,以及他们的依赖关系。其他的普适性活动,包括质量保证的方式,风险防范的方式,进度的跟踪等。

8.通用的过程模型:

明确了通用的架构,即软件过程-过程框架-普适性活动框架活动-任务集-动作

9.过程流:

线性过程流,迭代过程流,演化过程流,并行过程流

10.任务集:

规定了完成特定软件工程任务所需要的一系列动作

11.过程模型

瀑布流:一个通用过程模型的过程

V模型: 需求设计-体系结构设计-构件级设计-代码设计

映射:验收(确认)测试+系统测试-系统测试-集成测试-单元测试

演化模型:基于一个个软件的增量开发的方式;螺旋进行方式,包含风险分析的阶段;协同方式:测试和评审的过程

原型开发:快速、原型

UP统一过程模型:使用螺旋方式-统一某几个框架活动,增量迭代开发

12.什么是敏捷?

有效地响应变更,快速增量交付,客户来团队,有效沟通

13.什么是敏捷过程?

从敏捷的定义来思考这个过程。除此之外还有意识到变更是常有的,要基于场景驱动开发(有目的性地开发)。

14.敏捷原则:

业务和开发一起工作,用人必信,快速、增量交付、面对面交谈、有目的性地开发

15.XP极限编程:

属于敏捷过程的一种 XP策划阶段:用户故事开始,将故事分配到开发增量中,承诺交付日期,当本阶段增量完成后,基于该阶段指定下一个增量计划。

XP建模:KIS原则,CRC卡原则

XP编码:结对编程,重构

XP测试:每天执行所有单元测试,验收测试由用户定义。

16:Scrume会议:

每一个工作增量为一个冲刺,简单说了就开干

17.各种图形画法

用例图:一种基于用户场景的图,描述系统线程的使用。包含参与者(火柴人)、系统边界(边框)、系统功能

(圆),注意前提条件,一般是主要参与者在左边,次要参与者在右边

用例图中包括三种元素,参与者,用例,它们之间的关系。下面说说参与者与用例之间,用例与用例之间都有哪些关系。

1.关联关系

定义:参与者与用例之间通常用关联关系来描述。

表示方法:带箭头的实线,箭头指向用例。

如图所示:

2. 泛化关系

定义:一个用例可以被特别列举为一个或多个子用例,这被称为用例泛化。

泛化关系在类间也有。

子用例从父用例处继承行为和属性,还可以添加行为或覆盖、改变已继承的行为。

表示方法:带空心箭头的实线,箭头指向被泛化(被继承)的用例,即父用例。

(PS:泛化关系的箭头不是指向被泛化,而是指向被继承。泛化和继承是不同的方向。泛化是从下到上的抽象过程,继承是从上到下,从一般到特殊的过程。) 如图所示:

在这里插入图片描述

机房收费系统中可以这样应用:

当系统中具有一个或多个用例是一般用例的特化时,就使用用例泛化。

3.包含关系

定义:其中一个用例(基础用例)的行为包含了另一个用例(包含用例)的行为。基础用例可以看到包含用例,并依赖于包含用例的执行结果。但是二者不能访问对方的属性。

表示方法:虚线箭头+<<include>>字样,箭头指向被包含的用例。 如图所示:

使用情况:

  1. 如果两个以上用例有重复的功能,则可以将重复的功能分解到另一个用例中。其他用例可以和这个用例建立包含关系。
  2. 一个用例的功能太多时,可以用包含关系创建多个子用例。

4.扩展关系(extend)

定义:是把新行为插入到已有用例的方法。

个人感觉可以叫做特殊情况处理。比如去食堂用饭卡打饭,绝大部分人是刷卡,拿饭,两个步骤就完成了。但是如果某个学生的饭卡里没钱了,假定不用现金或者借钱或者赊账等等其他的方式来打饭,而是必须用自己的饭卡来打饭。那么他就要先去给饭卡充值。“饭卡充值”就是“刷卡”的一个扩展用例。“饭卡充值”与“刷卡”就是扩展关系。

表示方法:虚线箭头+<<extend>>字样,箭头指向被扩展的用例(即基础用例)。

如图所示:

在这里插入图片描述

作用:为处理异常或构建灵活系统框架提供了一种有效的方法。

对比:

包含与扩展的区别。在扩展关系中,基础用例没有扩展也是完整的,而在包含关系中,基础用例依赖于包含用例的执行结果。

总结:

所有的箭头指向都是“被”的一端。 找关系,是一件挺复杂的事儿。从不同的角度看会有不同的结果。找到大前提,再理顺特定环境下的关系,会更加顺手。

关于用例图画法的参考链接:

https://blog.csdn.net/ls1645/article/details/42969587
类图:

在这里插入图片描述

状态图:

在这里插入图片描述

活动图:

在这里插入图片描述

涌道图:

在这里插入图片描述

协作图

在这里插入图片描述

18.桥接:

分析模型处于系统描述和设计模型的桥接地位

19.域分析:

对软件的特定领域展开分析,分析改领域的需求、现状,提取可复用的需求部件。

20.数据对象:

数据的一组复合信息表示,存放数据和数据的描述,不存引用

21.属性:

描述了包含在分析模型的类操作:做语法解析的处理说明,关注动词。

22.实体类:

从问题提取的对数据描述的类

23.边界类:Dao

24.控制类:Controler(实际上还包括其他的控制层)

25.评审CRC模型

26.(建模)分析模型到设计模型的映射:

分析模型(基于类的、基于场景的、基于状态的、面向流的)->设计模型(从上往下依次是:构件级、接口级、体系结构级、数据/类级设计)

27.设计的基本概念

在这里插入图片描述

28.模式

在这里插入图片描述

29.体系结构:

软件的整体结构和为这种结构提供概念完整性的方式。包括:结构特性、外部功能特性和相关功能族(从属哪一类,探索可重用体系结构构件)

具体:应用领域,模式和风格,分析类的关系、协作和行为。

30.高内聚低耦合的内涵:

内聚是模块功能内聚,耦合是与模块间的耦合程度

31.横切:

B横切A,不考虑需求A时,需求B的功能不能得到正常的满足。

B*是需求B的设计表示。B*横切需求

A*。32.方面:横切关注点的一个表示。如果B是网站登录,则B*为网站的一个方面。

33.体系结构的类别:

以数据为中心的体系结构,数据流体系结构,层次体系结构,树形

34.体系结构模式特性:

并发性、持久性、分布性

35.体系结构设计步骤:

将待开发的软件放在所处的环境中,设计体系结构的原型,根据原型完善体系结构。

36.体系结构的复杂性:

评估因素:共享依赖(生-生 消-消)、流依赖(生消)、约束依赖(活动控制流的约束)

37.分割体系结构:

水平分块

在这里插入图片描述

垂直分块

在这里插入图片描述

分解方法:一般映射(一二级分解,分割输入输出),变换映射(除开输出输出外,在分流出分割出来形成一颗子树, 可以从下往上的输入或输出

在这里插入图片描述

根和根的一些直接间接子树为老板,带叶子树为打工人)

在这里插入图片描述

38.什么是构件?

构件是一组模块化的、可替换、可部署的部件,封装了实现并暴露一组接口。

39.设计原则:自己看,常考为开闭原则、依赖倒置原则等

40.软件测试:

  1. 单元测试
  2. 集成测试

在这里插入图片描述

  1. 回归测试:对已经测试过的程序部件进行再测试
  2. 冒烟测试:每日集成程序各个部件进行测试
  3. 白盒测试:

关键词:覆盖

包含:基本路径测试等。

基本路径测试

在这里插入图片描述

其中V(G)为环复杂性,V(G)=迭代部件+1

图矩阵

在这里插入图片描述

控制结构的测试

在这里插入图片描述

- 数据流

数据流测试方法[Fra93] 就是根据变量的定义和使用位置来选择程序测试路径。假设程序的每条语句都赋予了独特的语句号,而且每个函数都不改变其参数或全局参量。对于语句号为S的语句

DEF(S) = {X |语句S 包含X的定义}

USE(S) = {X | 语句S 包含X的使用}

变量X的定义-使用链(或称DU链)的形式为

[X,S, S’ ],其中S 和S’为语句号,X 在

DEF(S) 和USE(S’ )中,且在语句S中定义的X 在语句S’中有效。

- 条件测试:循环、嵌套

在这里插入图片描述

(6)黑盒测试

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

在这里插入图片描述

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源城编程哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值