软件工程 考试重点

结构化分析

考虑数据和处理的需求分析方法,称为结构分析方法(SA)

结构化分析基于 分解、抽象 的基本思想

分解:对于复杂的系统,为将复杂度降低到可以掌握的程度,可以把大问题分解为若干个小问题,然后分别解决

最顶层:自顶向下 逐层分解

表示软件系统最本质的属性的方法:抽象

结构化分析是面向数据流的需求分析方法,数据作为独立实体转换,数据流定义了数据的属性和关系,操作数据的处理建模表明当数据在系统流动时处理如何转换数据。

结构化分析的基本步骤:
1)建立当前系统的“具体模型”
2)抽象出当前系统的逻辑模型
3)建立目标系统的逻辑模型
4)为了对目标系统进行完整的描述,还需要考虑人机界面和其他一些问题

结构化分析模型的核心:数据字典

”数据流图“指出当数据在软件系统中移动时怎样被变换,并描述变换数据流的功能和子功能,用于功能建模
”实体-关系图“(E-R图)描绘数据对象之间的关系,用于数据建模
”状态转换图“指明了作为外部事件结果的系统行为,用于行为建模

数据流图的表示符号:
1)外部实体
2)数据流
3)数据变换
4)数据存储

环境图(系统顶层数据流图 / 0层数据流图),仅包含一个数据处理过程-要开发的目标系统
环境图的作用:确定系统在环境中的位置,通过确定系统的输入、输出与外部实体的关系确定边界
基本思想:自顶向下、从外到内、逐层分解

数据流图的导出是 逐步求精 的过程

数据建模思想:在较高的抽象层次(概念层)上对数据库结构进行建模
用实体关系图表示

E-R图的三个基本概念概括数据的基本结构:实体、关系、属性
实体:矩形框
属性:椭圆形
实体与属性用 无向边 连接,实体由若干个属性组成
关系:菱形
E-R图不具有唯一性

状态转换图:描述系统对内部 / 外部事件响应的行为模型
适合描述实时系统,这类系统大多由外部环境的激励而驱动

状态是可以被观察的系统行为模型
初态:每张只有一个
终态:可没有,可多个

状态变迁由事件触发

数据字典以系统化的方式定义在分析模型中出现的数据对象及控制信息的特性

最底层数据流图的数据处理 / 基本加工 / 原子加工,对每一个基本加工都须进一步说明,称为加工规格说明
主要表达”做什么“,而不是”怎么做“
用结构化语言(PDL / 伪代码)、判定表、判定树 来表述

结构化设计

结构化软件设计的任务从软件需求规格说明书出发,设计整体结构,形成具体设计方案,解决”怎么做“。

概要设计:将软件需求转化为数据结构和系统结构
详细设计:也称过程设计

结构化设计:面向数据流、面向数据结构

面向数据流:概要设计阶段
数据流:变换型、事务型
变换:将输入数据处理后转变为另外的输出数据
事务:非数据变换的处理

通过变换将数据流图映射为变换结构

面向数据结构:Jackson、Warnier
Jackson把数据结构分为:顺序、选择、循环

概要设计中的接口设计用于子系统 / 模块之间或内部系统和外部系统进行各种交互

数据设计将需求分析阶段定义的数据对象(E-R图、数据字典)转换为设计阶段的数据结构和数据库

流程图:数据、程序、系统流程图、程序网格图、系统资源图
程序流程图的5中基本的控制结构:顺序、选择型、先判定、后判定型循环、多分支选择型

N-S图:又称盒图

PAD图:又称问题分析图

面向对象分析

面向对象分析以用例模型为基础
用例模型;用例图+相关文字描述
用例:系统中的一个功能单元,描述参与者与系统之间的一次交互,常用来收集用户需求
可把参与者执行的每一个系统功能都看做一个用例

目标系统类:边界类、控制类、实体类

对象或类之间的关系:依赖、关联、聚合、组合、泛化、实现
1)依赖:”非结构化“,短暂,一个对象会影响另一个对象
2)关联:”结构化“,对象之间的连接
3)聚合和组合:特殊的关联,强调整体和部分之间的从属性,组合是聚合的一种,组合的整体和部分具有很强的归属关系和一致的生命周期
4)泛化和类间的继承相似
5)实现针对类与接口的关系

面向对象分析的基础:对象模型
对象模型:问题域中对象+相互关系

面向对象建模:描述系统数据结构对象模型、描述系统控制结构的动态模型、描述系统功能的功能模型

对象和关系的生命周期用动态模型来描述

功能模型:数据之间的依赖关系+数据处理功能,由一组数据流图组成

用例之间的关系:扩展、包含、泛化

面向对象设计

类中封装 属性+方法

面向对象分析到面向对象设计是平滑的过渡

面向对象设计原则:
1)模块化
2)抽象化
3)信息隐藏
4)低耦合
5)高内聚
6)复用性

动态模型:若干张状态图组成
每张状态图描绘一个对象的生命周期

状态图中状态转换=功能模型中数据流图

黑盒测试

软件测试:静态、动态
静态测试:审查、走查
动态:黑盒
静态:白盒

黑盒测试:将软件系统看作黑盒子,不关心盒子的内部结构和特性,只关注软件的输入数据和输出结果
大的功能模块
等价类划分法、边界值分析法、错误推测法、因果图法、正交实验设计法
等价类划分法:有效、无效等价类
边界值分析法:选择等价类边界的测试用例
错误推测法:直觉+经验
因果图法:输入条件的各种组合方式、各个输入条件之间的相互制约关系

白盒测试

又称玻璃盒测试,将被观测程序看作透明盒子,关注软件产品的内部细节、逻辑结构
小的构件
逻辑覆盖测试方法、基本路径测试

代码检查法:桌面检查、代码审查、走查

静态结构分析法:以图的形式表现程序的内部i结构

程序代码结构方式是白盒测试的主要依据

程序插桩技术: 插入打印语句,通过打印有关信息了解程序执行时的动态特性。

逻辑覆盖法:语句、分支、条件、分支-条件、条件组合、路径覆盖
语句覆盖:设计若干测试样例,运行被测试程序,每个可执行程序至少执行一次
分支覆盖:每个判断的取真、取假分支至少执行一次
条件覆盖:每个判断的所有逻辑条件的每种可能取值至少执行一次
分支-条件覆盖:同时满足分支覆盖和条件覆盖的要求
条件组合覆盖:每个判断语句的所有逻辑条件的可能取值组合至少执行一次
路径覆盖:覆盖被测试程序中所有可能的路径

路径覆盖的覆盖率最高,语句覆盖的覆盖率最低

基本路径法:在程序控制流程图的基础上,通过分析控制构造的环路复杂度,导出基本可执行程序的路径集合,从而设计测试用例的方法
设计出的用例测试用例在每条可执行语句中至少执行一次
用软件的控制流图表达

环路复杂度为程序逻辑复杂度性提供定量测度的软件度量

白盒测试方法:
先静后动,先进行代码检查和静态结构分析,在进行覆盖检查
利用静态分析的结果作引导,通过代码检查和动态测试的方法对静态分析的结果进一步确认
覆盖测试是白盒测试的重点,用基本路径测试法达到语句覆盖标准,对于软件的重点模块,应使用多种软件覆盖标准衡量测试的覆盖度。
单元测试:代码检查、覆盖测试
集成测试:静态结构分析
系统测试:根据黑盒测试的结果,采用相应的白盒测试方法

白盒测试成本比黑盒测试高

灰盒测试介于白盒测试和黑盒测试之间

软件测试步骤:
单元测试、集成测试、系统测试、验收测试

单元测试是软件测试的基础
侧重模块的内部处理逻辑、数据结构,利用构件级设计描述作为指南,测试重要的控制路径以发现模块内的错误
测试用例设计与复审设计结合,根据设计规则选取数据

集成测试:多个单元的集合,单元组合成模块,模块聚合成子系统 / 系统
体系结构设计、模块设计、接口设计、集成测试策略分析
非增量式集成测试、增量式集成测试
非增量式集成测试:”一步到位“
增量式集成测试:自顶向下、自底向上

最后的测试是:α、β测试
α测试:开发人员+测试人员
β测试:用户,最主观的

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

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

相关文章

【go-zero】go-zero使用ent框架 如何使用源生sql完成查询

背景 本篇教程我们采用的是go-zero的快速脚手架工具 simple-admin 框架的开发 github地址:https://github.com/suyuan32/simple-admin-core 因为框架推荐使用Ent 这篇教程我们则对Ent的基本使用的几种形式进行一个总结 一、开启ent的源生sql 1、simple-admin生成rpc 【go-…

QT 中 线程池 (备查)

QRunnable类 API 1)在Qt中使用线程池需要先创建任务,添加到线程池中的每一个任务都需要是一个 QRunnable 类型,因此在程序中需要创建子类继承 QRunnable 这个类。 2)然后重写 run() 方法,在这个函数中编写要在线程池中…

RabbitMQ使用指南

介绍主要特点常用插件使用RabbitMQ的插件常用插件列表 应用场景Kafka与RabbitMq的区别主要优缺点安装步骤插件安装步骤 使用RabbitMqJava代码示例拓展 介绍 RabbitMQ是由Erlang语言开发的,基于AMQP(高级消息队列协议)协议实现的开源消息代理…

元宇宙红色展厅VR虚拟展馆提高受训者的参与感

生活在和平年代的新一代青少年,可能对革命先烈英勇事迹难以有很深的体会,无法切实感受到中国共产党无畏牺牲、誓死保家卫国的红色精神,因此借助VR虚拟现实制作技术,让参观者们走近革命先烈中,感受老一辈无产阶级革命家…

搜索引擎和网络浏览器之间的区别

术语“搜索引擎”和“网络浏览器”与互联网有关。搜索引擎基本上是用于通过 Internet 搜索信息的工具,而 Web 浏览器是用于加载网页等 HTML 文件的应用软件。 阅读本文以了解有关搜索引擎和网络浏览器以及它们之间的区别的更多信息。 什么是搜索引擎? …

TrustZone之SMC异常

作为支持两个安全状态的一部分,该架构包括了Secure Monitor Call(SMC)指令。执行SMC会引发Secure Monitor Call异常,该异常目标是EL3。 通常,SMC用于请求服务,可以是来自驻留在EL3中的固件,也可…

微信小程序适配方案:rpx(responsive pixel响应式像素单位)

小程序适配单位:rpx 规定任何屏幕下宽度为750rpx 小程序会根据屏幕的宽度自动计算rpx值的大小 Iphone6下:1rpx 1物理像素 0.5css 小程序编译后,rpx会做一次px换算,换算是以375个物理像素为基准,也就是在一个宽度…

迭代器失效及解决办法

当使用迭代器遍历容器并删除元素时&#xff0c;迭代器可能会失效。 对于vector来说&#xff0c;如果使用普通迭代器&#xff08;例如std::vector<int>::iterator&#xff09;进行遍历和删除操作&#xff0c;当你删除一个元素后&#xff0c;后面的元素会向前移动填补空缺…

服务器如何保证数据安全_Maizyun

服务器如何保证数据安全 在当今的数字化时代&#xff0c;数据安全已经成为企业和社会组织必须面对的重要问题。服务器作为存储和处理大量数据的核心组件&#xff0c;必须采取有效的措施来确保数据的安全。本文将探讨服务器如何保证数据安全。 一、访问控制和身份认证 访问控…

nvm,node,npm,yarn相关安装报错问题记录

问题一&#xff1a; yarn : 无法加载文件 D:\jsPackage\nodejs\node_global\yarn.ps1&#xff0c;因为在此系统上禁止运行脚本。 解决&#xff1a; 步骤1,powerShell以管理员运行后&#xff0c;输入命令: get-ExecutionPolicy 查看权限, 会看到它的返回值是 Restricted , 意…

计算一组x和y(一维数组)

输入30个整数a1,a2,a3,…,a30&#xff0c;计算所有的x与y。已知&#xff1a; 输入格式: 30个整数 输出格式: 计算得到的x1, x2,.......,x10 计算得到的y1, y2,.......,y10 所有输出精确到小数点后3位。 注意&#xff1a; 1、输出的每个“”左右各有一个空格&#xff0c;输出…

坚鹏:兴业银行EAST5.0政策解读及数据质量提升方案培训

兴业银行股份有限公司&#xff08;简称“兴业银行”&#xff09;成立于1988年8月&#xff0c;2022年总资产9.27万亿元&#xff0c;是经国务院、中国人民银行批准成立的首批股份制商业银行之一&#xff0c;总行设在福州市。现已发展成为横跨境内外&#xff0c;线上线下结合&…

12.8 作业

1&#xff0c; 使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#…

什么是git pr

“Git PR” 指的是 Git 中的 Pull Request&#xff0c;是一种协作开发的工作流程。Pull Request 提供了一种将代码从一个分支&#xff08;通常是开发者个人的分支&#xff09;合并到另一个分支&#xff08;通常是主分支&#xff09;的机制&#xff0c;并在合并前进行代码审查和…

FLStudio中文2024中文最新汉化安装包下载

FLStudio中文21最新版本以其使用速度而闻名&#xff0c;是一个高度复杂的音乐制作环境。FL Studio免费&#xff0c;联合国音序器音频和MIDI每个复合编辑都是音乐。现代的DAW是一种非凡的野兽。首先&#xff0c;它在很大程度上把自己放在了(几乎)每个人记录过程的核心。其次&…

探索 SNMPv3 魔法:armbian系统安装snmp服务并通过SNMPV3进行连接控制

文章目录 说明SNMP服务的安装本机连接SNMPV3操作MIB Browser连接SNMPV3问题总结密码过短权限配置错误&#xff0c;导致OID不存在 说明 工具 建议尝试专业版ireasoning MIB brower&#xff0c;因为只有专业版支持SNMP v3的连接。当然&#xff0c;也可以尝试其他SNMP客户端工具 …

[足式机器人]Part4 南科大高等机器人控制课 Ch03 Operator View of Rigid-Body Transformation

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;CLEAR_LAB 笔者带更新-运动学 课程主讲教师&#xff1a; Prof. Wei Zhang 南科大高等机器人控制课 Ch03 Operator View of Rigid-Body Transformation 1. Rotation Operation via Differential Equation1.1 Skew Symmetr…

Java第21章网络通信

网络程序设计基础 网络程序设计编写的是与其他计算机进行通信的程序。Java 已经将网络程序所需要的元素封 装成不同的类&#xff0c;用户只要创建这些类的对象&#xff0c;使用相应的方法&#xff0c;即使不具备有关的网络支持&#xff0c;也可 以编写出高质量的网络…

kennard-stone算法实现样本集划分(ks算法)

目录 一、 Kennard-Stone算法原理&#xff08;KS算法&#xff09; 二、Kennard-Stone算法作用 三、代码 四、对选出来的train样本使用T-SNE算法进行绘制 五、参考链接 一、 Kennard-Stone算法原理&#xff08;KS算法&#xff09; KS算法原理&#xff1a;把所有的样本都看…

测试学习笔记1:@SpringbootTest测试注解详解

SpringBootTest是一个用于在springboot应用程序中启动完整应用的测试环境注解。它主要用于集成测试&#xff0c;可以启动一个嵌入式的数据库&#xff0c;加载完整的spring上下文&#xff0c;并自动装配测试类的ApplicationContext。 以下是SpringBootTest的关键特性&#xff1a…