【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(2)

简介: 【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)

三、需求的分类

image.png


基本需求:用户明确提出了要完成的一些需求开发团队必须完成的。

期望需求:用户没明确提出,但是默认开发需要完成的。

兴奋需求:用户没提出来但是开发也做了(额外的事情涉及到成本问题风险大,要严格控制)。

功能需求:考虑系统要做些什么,在何时做,在何时以及如何修改或升级。

性能需求:考虑软件开发的技术性指标。例如,存储容量限制、执行速度、响应时间及吞吐量。

数据需求:考虑输入、输出数据的格式,接收、发送数据的频率,数据的准确性和精度,数据流量,数据需保持的时间。

真题链接

“软件产品必须能够在3秒内对用户请求作出响应”属于软件需求中的 非功能需求。

(注:下图来自前言中up主视频)

995b3240cb5d70f33a72bf102848e402_6b0e575c956a49c7952c9ae4f742fb09.png

系统设计(补)

概要设计

设计软件系统总体结构(模块化,确定模块调用关系等)

数据结构及数据库设计

数据结构的设计

数据库的设计

概念设计

逻辑设计

物理设计

编写概要设计文档

评审

真题链接

确定软件的模块划分及模块间的调用关系是 概要设计 阶段的任务。

在 概要设计 阶段选择适当的解决方案,将系统分解为若干个子系统,建立整个系统的体系结构。

(注:下图来自前言中up主视频)

软件工程的基本要素包括方法、工具和 过程。

(注:下图来自前言中up主视频)

95bdc424fec2cfaa91c339ea64e5b5de_7eeae1587fbc487f9f063a78fd622579.png

(注:下图来自前言中up主视频)

c886dcdc5cd7a99920633ba401fd3a2e_d5444db2c7664c56ad16fef0c99da355.png

(注:下图来自前言中up主视频)

63ae34742a6f281a8f6faa202a37ca44_2498235df0eb4d29879d228d4f734767.png

详细设计

在概要设计基础上对各模块内部进行设计等,例如模块内算法设计、数据结构设计等,了解即可。


四、结构化设计

见【软件设计师-从小白到大牛】上午题基础篇:第五章 结构化开发方法


五、软件测试

1、测试原则与类型

image.png


系统测试阶段的测试目标来自于需求分析阶段。

真题链接

一个成功的测试能发现至今未发现的错误。

在设计测试用例时,应遵循 不仅要设计有效合理输入,也要包含不合理、失效的输入 原则。

在软件开发过程中,系统测试阶段的测试目标来自于 需求分析 阶段。

一个项目为了修正一个错误而进行了变更。但这个错误被修正后,却引起以前可以正确运行的代码出错。回归测试 最可能发现这一问题。

在改正当前故障的同时可能会引入新的故障,这时需要进行 回归测试。

软件调试的任务就是根据测试时所发现的错误,找出原因和具体的位置,进行改正。其常用的方法中,归纳法 是指从测试所暴露的问题出发,收集所有正确或不正确的数据,分析它们之间的关系,提出假想的错误原因,用这些数据来证明或反驳,从而查出错误所在

2、测试用例设计

image.png


不好的测试用例:用例中每个数据都不符合测试条件,即输入的数据均是不合法的。(在设计测试用例时,应当包括合理的输入条件和不合理的输入条件)。

黑盒测试 技术:等价类划分、边界值分析、错误推测 和 因果图 等。

白盒测试(由弱到强):

语句覆盖:每条语句至少执行一次。

判定覆盖(分支覆盖):每个判定表达式至少获得一次“真”值和“假”值。

条件覆盖:每一判定语句中每个逻辑条件的各种可能的值至少满足一次(即判定表达式中的每个条件(以&&、||连接的所有条件))。

判定条件覆盖:判定中每个条件的所有可能取值(真/假)至少出现一次,并使每个判定本身的判定结果(真/假)也至少出现一次。

条件组合覆盖:每个判定中条件的各种可能值的组合都至少出现一次(每个条件的真假组合至少出现一次)。

路径覆盖:覆盖被测试程序中所有可能的路径。

伪代码转流程图:

(注:下图来自《Java语言程序设计》(陈俊杰、相洁主编,高等教育出版社))

35da764b617ba5f62249bb77d932aea7_2ea8cc37ebb9425f8ddc9b74c174b056.jpeg

(注:下图来自《Java语言程序设计》(陈俊杰、相洁主编,高等教育出版社))

20b9b36a0bd4e5060eab1328adde1ef5_5e922887357d4a9786cb5e639262c3e9.jpeg

(注:下图来自《Java语言程序设计》(陈俊杰、相洁主编,高等教育出版社))

60b70a4c37a29578f4930f9d588c763e_5e1dd96115444abfab04e8c6072260fc.jpeg

黑盒测试:只知道输入什么,输出是什么。

白盒测试:透明的,可看到设计内部的。

边界值分析选取的数据应为4个:恰好等于边界值的两个区间端点的2个数据和稍小于边界 值、稍大于边界值的2个数据。

错误推测法:更多的是基于经验和直觉来推测可能存在的错误。

真题链接

白盒测试技术中,路径覆盖法往往能比语句覆盖发现更多的错误。

某系统重用了第三方组件(但无法获得其源代码),则应采用 黑盒测试 对组件进行测试。

使用白盒测试方法时,应根据 程序的内部逻辑 和指定的覆盖标准确定测试数据。

3 、测试阶段

image.png


自顶向下集成测试:不需要编写驱动模块,需要编写桩模块。

自底向上集成测试:不需要编写桩模块,需要编写驱动模块。

(注:下图来自前言中up主视频)

ecbbd04d781304df25b6cc908816b30b_a3b4e90cccc647dc94c9ae174da04c7e.png

一次性组装:时间快 。

增量式组装:稳妥,但是花时间长。

Alpha测试(α测试):针对产品,实验环境,开发环境进行测试。

Beta测试(β测试):针对产品,由用户在本地计算机去使用它。

4、McCabe复杂度

image.png

三种计算方法:


线性无关的区域数等于环形时间复杂度

V(G)=E-N+2(E是流图中边的条数,N是结点数)

V(G)=P+1(P是流图中判定结点的数目)

公式可记为:V(G)=弧-节点+2(或n等于node,节点的意思,来帮助记忆或区分)。

(注:下图来自前言中up主视频)

7679b4be2fb89f05a83d9e4e6d6de108_f29a2a05f27349439c87166a15f39160.png

V=弧数-结点数+2(V也等于闭合区域数+1)(使用第一个公式时注意,两个结点之间的边才算入总弧数)


目录
相关文章
|
5月前
|
程序员 项目管理 监控
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(3)
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)
35 0
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(3)
|
5月前
|
敏捷开发 中间件 数据处理
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(1)
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(1)
56 0
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(1)
|
5月前
|
存储 算法 前端开发
【软件设计师-从小白到大牛】上午题基础篇:第五章 结构化开发方法
在结构化分析中,用数据流图描述 数据在系统中如何被传送或变换,以及如何对数据流进行变换的功能或子功能,用于对功能建模。 数据字典有以下4类条目:数据流、数据项、数据存储和基本加工。
54 0
|
5月前
|
数据库 数据库管理
【软件设计师-从小白到大牛】下午题基础篇:第二章 数据库设计
ER模型:是实体联系模型,跟DBMS无关,也就是跟具体的数据库管理系统没有关系。 概念结构设计:完成ER模型的建模工作。
63 1
|
5月前
|
缓存 数据处理 芯片
【软件设计师-从小白到大牛】上午题基础篇:第一章 计算机组成与体系结构(3)
检错是指可以检查出错误;纠错是指可以在检查出错误的基础上纠正错误。
43 0
|
5月前
|
自然语言处理 编译器 C语言
【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础(1)
语法分析阶段可以发现程序中的所有语法错误;编译正确的程序必然不包含语法错误;“除数为0”为动态语义错误,动态语义错误只有运行时才能发现。
78 0
【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础(1)
|
18天前
|
存储 算法 Java
【软件设计师—基础精讲笔记12】第12章 软件系统分析与设计(下午题)
【软件设计师—基础精讲笔记12】第12章 软件系统分析与设计(下午题)
51 0
|
5月前
【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础(2)
【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础
28 0
【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础(2)
|
5月前
|
存储 前端开发 数据库
【软件设计师-从小白到大牛】下午题基础篇:第一章 数据流图(DFD)
顶层图上的数据流:是系统和外部实体之间的联系。而内部数据流在0层图中能体现,因为系统被细分了。 对于数据流图任意一个加工:都应该有输入和输出,箭头有进也有出;黑洞:只有输入,没有输出;奇迹(白洞):只有输出,没有输入。这两种都不符合客观事实。
58 0
|
5月前
|
数据挖掘 大数据 数据库
【软件设计师-从小白到大牛】上午题基础篇:第三章 数据库系统(3)
软硬件故障通常造成数据库中的数据破坏。数据库恢复就是 在尽可能短的时间内,把数据库恢复到故障发生前的状态。 计算机系统的软硬件故障可能会造成数据库中数据被破坏。为了防止这一问题,通常需要 定期将数据库作备份:在进行事务处理时,需要将数据更新写入日志文件,以便发生故障时恢复数据库。 为了保证数据库中数据的安全可靠和正确有效,系统在进行事
49 7