当前位置: 首页 > news >正文

【备战软考(嵌入式系统设计师)】10 - 软件工程基础

这一部分的内容是概念比较多,不要理解,去感受。

涉及的知识点是嵌入式系统开发和维护的部分,也就是和管理相关的,而不是具体如何进行嵌入式系统开发的细节。

系统开发生命周期

按照顺序有下面几个阶段,我们主要要记住的是各个周期的产出。

系统规划:初步调查,分析系统目标,拟实施方案,可行性研究等。产出系统设计计划书。

系统分析:业务流程分析,软件需求分析,网络需求分析,数据流程分析等。产出系统需求规格说明书,软件需求规格说明书,确认测试计划,系统测试计划。

系统设计:软件架构设计,软件概要设计,详细设计等。产出架构设计文档,概要设计说明书,测试计划,各类的设计图。

系统实施:软件编码,各种测试。产出源码,各种测试报告,操作手册。

系统验收:确认测试,试运行。产出的测试报告,项目验收报告。

能力成熟度模型

软件能力成熟模型(CMM,Capability Maturity Model)规定了软件研制和软件测试中的主要软件管理过程和工程过程的实践。

按照能力级从低到高的顺序我们依次说说不同级别的特点。软考选择题一般会问我们什么什么关键过程属于哪一个级别,我们能够分辨即可。

初始级:最低级别的软件能力,几乎没有明确定义的步骤(我们自己动手做的小项目就属于这个水平。。。)

可重复级:建立了基本的项目管理过程和实践,可以重复以前在同类项目中的成功,也就是有项目配置管理,软件质量保证,软件需求管理等。

已定义级:管理和工程两方面的软件过程已经文档化和标准化。可以进行同行评审,组间协调,集成软件管理等。

已管理级:制定了软件过程和产品质量的详细度量标准。拥有软件质量管理和定量过程管理。

优化级:最高级。加强了定量分析,通过来自过程质量反馈和来自新观念,新技术的反馈使得过程能不断持续地改进,拥有过程更改管理,技术改革管理和缺陷预防。

软件开发模型

我们写程序的时候可以借鉴别人的框架,在软件开发的过程中也有可以借鉴的框架,那就是软阿金开发模型。

接下来介绍一下几个常见的模型。

瀑布模型:开发流程如图瀑布一样一步一步往下走直到项目开发完成。适合需求明确或者是二次开发的项目。

原型:先快速构建一个功能模型,给用户演示并且根据用户需求更改模型,最终设计出项目。适合需求不明确的项目,不适合超大项目开发。

增量模型:先开发出核心功能模块,和用户确认过后再增加一部分内容,直到项目完成。

螺旋模型:原型+瀑布,螺旋模型采用一种周期性的方法来进行系统开发,其开发过程呈螺旋形,每一个周期都包括需求定义、风险分析、工程实现和评审四个阶段。这四个阶段不断迭代进行,每次迭代都会使软件开发前进一步。在每个阶段结束时,都会进行评审和确认,必要时返回上一个阶段进行调整和修改。适合需求不明确的项目,也适合大型项目的开发。

V模型:在开发的各个阶段中增加测试项,可以看作是瀑布中穿插着测试项目。

系统测试

软件测试的目的是为了发现软件中存在的错误(不是修改错误)。

测试分为动态测试和静态测试。

动态测试

动态测试就是我们正常地去运行被测试的程序,通过输入输出数据来判断是否和预期一样。动态测试包括确认与接口测试,覆盖率分析,性能分析等。

动态测试中也包含了多种测试方法:

黑盒测试:功能性测试,不需要了解软件的代码,直接使用测试用例去测试。

白盒测试:结构性测试,根据代码路基去设计测试用例去测试。

灰盒测试:黑盒+白盒。

静态测试

静态测试就是我们并不真正地去运行程序。静态测试包括代码检查,静态结构分析,代码质量度量等。

静态测试也包含了多种测试方法:

桌前检查:程序员自己检查自己的程序(我的程序怎么可能出错

代码审查:找来多个程序员组个小组来检查。

代码走查:让测试人员提供测试用例,让程序员手动运行测试用例检查代码逻辑。

相关文章:

【备战软考(嵌入式系统设计师)】10 - 软件工程基础

这一部分的内容是概念比较多,不要理解,去感受。 涉及的知识点是嵌入式系统开发和维护的部分,也就是和管理相关的,而不是具体如何进行嵌入式系统开发的细节。 系统开发生命周期 按照顺序有下面几个阶段,我们主要要记…...

随手笔记-GNN(朴素图神经网络)

自己看代码随手写的一点备忘录,自己看的,不喜勿喷 GNN (《------ 代码) 刚开始我还在怀疑为什么没有加weigth bias,已经为什么权重才两个,原来是对node_feats进行的network的传播,而且自己内部直接进行了。 下面是一…...

C 语言指针怎么理解?

在今天的学习中,我注意到有位学员似乎对 C 语言指针的理解有些困惑。为了帮助大家更好地理解,我来举个例子。 C 语言指针就好比 Windows 桌面上常见的快捷方式。快捷方式可以指向某个游戏,这就是普通指针;它也可以指向另一个快捷…...

HTTP协议:通信机制、特点及实践应用

目录 前言 1. 运行机制 2. 通信方式 3. 主要特点 4. 统一资源标识符(URL) 5. HTTP报文 6. HTTP请求 7. HTTP响应 8. 实体 9. 持续连接 结语 前言 HTTP(Hypertext Transfer Protocol)是互联网上应用最广泛的一种协议&a…...

Leetcode—289. 生命游戏【中等】

2024每日刷题&#xff08;126&#xff09; Leetcode—289. 生命游戏 算法思想 实现代码 class Solution { public:void gameOfLife(vector<vector<int>>& board) {int rows board.size();int cols board[0].size();int neighbors[3] {0, 1, -1};vector<…...

系统运维(虚拟化)

1.VLAN VLAN&#xff08;Virtual Local Area Network&#xff09;即虚拟局域网&#xff0c;是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。 每个VLAN是一个广播域&#xff0c;VLAN内的主机间可以直接通信&#xff0c;而VLAN间则不能直接互通。这样&#xff0c;广播报…...

Linux域名解析

1.hosts:windows c盘下面 Linux: /etc/hosts 作用:实现名字解析&#xff0c;主要为本地主机名、集群节点提供快速解析。平面式结构&#xff0c;集中式数据库。 缺点:不便于查询更新 2.DNS:域名系统 作用:实现名字解析(分层性&#xff0c;层次性) FQDN:完全合格域名/全称域…...

树形结构和列表的区别

树形结构和列表在数据组织、表示方式以及应用场景等方面存在明显的区别。 首先&#xff0c;树形结构是一种非线性的数据结构&#xff0c;表现为层次的嵌套结构。每个节点可以有多个子节点&#xff0c;这些子节点又可以有自己的子节点&#xff0c;形成一个层次分明的结构。这种一…...

Go中json的解析和反解析

在解析过程中&#xff0c;反向解析不包含其中的部分参数也不会报错&#xff0c;这是需要注意的一点 31 func main() { // E: main redeclared in this block 32 type A…...

SpringBoot+vue实现退出功能

目录 1. 创建点击事件 2. 编写退出逻辑 在Spring Boot 和 Vue.js 应用中实现退出功能&#xff0c;通常涉及到前端的用户界面操作和注销逻辑。 以下是实现退出功能的步骤&#xff1a; 1. 创建点击事件 在header.vue中创建一个点击事件 <span style"text-decoratio…...

Linux操作系统中管理磁盘的另外一种操作方式。即LVM——逻辑卷管理操作

在Linux操作系统中管理磁盘的一种方法名称——LVM&#xff0c;这种管理磁盘的优势。 1.使用LVM去管理磁盘可以在不影响原来数据的前提下去扩容磁盘空间或者是缩减磁盘空间。 在LVM中除了上层逻辑券可以扩容&#xff0c;下层的券组也可以扩容。 2.使用LVM管理的磁盘支持快照功…...

Lua 零基础入门

Lua 1.Lua是什么&#xff1f; 1.1 Lua的历史 Lua是由Roberto Ierusalimschy、Luiz Henrique de Figueiredo和Waldemar Celes于1993年创建的&#xff0c;当时他们是巴西里约热内卢天主教大学计算机图形技术组&#xff08;Tecgraf&#xff09;的成员。在开发Lua之前&#xff0…...

记录DemoApplication.java不变蓝问题

问题 解决方案 一、点击右下角加载 二、右键项目 勾选maven...

22_Scala集合Seq

文章目录 Seq序列1.构建集合2.List集合元素拼接&&集合拼接3.可变Seq&&List3.1 ListBuffer创建3.2 增删改查3.3 相互转化 Appendix1.Scala起别名2.Seq底层3.关于运算符操作: :4.空集合的表示 Seq序列 –Seq表示有序&#xff0c;数据可重复的集合 1.构建集合 …...

机器学习初学者 6 个核心算法!建议收藏,反复观看!

今天再来介绍机器学习算法的基本概念和适用场景&#xff01; 首先&#xff0c;引用一句英国统计学家George E. P. Box的名言&#xff1a;All models are wrong, but some are useful. 没有哪一种算法能够适用所有情况&#xff0c;只有针对某一种问题更有用的算法。 也就是说&…...

SpringBoot 打包所有依赖

SpringBoot 项目打包的时候可以通过插件 spring-boot-maven-plugin 来 repackage 项目&#xff0c;使得打的包中包含所有依赖&#xff0c;可以直接运行。例如&#xff1a; <plugins><plugin><groupId>org.springframework.boot</groupId><artifact…...

QpushButton绘制圆角矩形并绘制背景颜色

要在QPushButton的paintEvent中绘制按钮的颜色&#xff0c;可以创建一个自定义的QPushButton类&#xff0c;并重写它的paintEvent函数。在paintEvent函数中&#xff0c;可以使用QPainter来绘制按钮的背景颜色。 以下是一个简单的示例代码&#xff0c;演示如何在自定义的QPushB…...

Core Impact 21.5 (Windows) - 高级渗透测试

Core Impact 21.5 (Windows) - 高级渗透测试 Fortra | Core Security Penetration testing software, Release Feb 2024 请访问原文链接&#xff1a;Core Impact 21.5 (Windows) - 高级渗透测试&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&…...

【Web前端】定位_浮动_音视频

1、定位 1.1想对定位 相对定位&#xff0c;使用relative&#xff0c;参考点是标签之前的位置&#xff0c;不是相对于父节点、同级节点或浏览器。相对定位通过left、right进行水平偏移&#xff0c;通过top、bottom进行垂直偏移Ieft:表示相对于原本位置的左外边界右移的距离rig…...

【Osek网络管理测试】[TG4_TC3]LimpHome状态下的睡眠中断

🙋‍♂️ 【Osek网络管理测试】系列💁‍♂️点击跳转 文章目录 1.环境搭建2.测试目的3.测试步骤4.预期结果5.测试结果1.环境搭建 硬件:VN1630 软件:CANoe 2.测试目的 验证DUT在LimpHome状态下的睡眠中断是否正确 分析:在跛脚运行状态下,满足睡眠条件后,进入到NM…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...