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

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

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

系统开发生命周期

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

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

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

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

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

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

能力成熟度模型

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

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

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

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

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

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

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

软件开发模型

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

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

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

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

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

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

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

系统测试

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

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

动态测试

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

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

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

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

灰盒测试:黑盒+白盒。

静态测试

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

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

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

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

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

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

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

相关文章

12 华三的二层链路聚合

12 华三的二层链路聚合 配置思路 1. 配置二层静态聚合组 (1) 进入系统视图。 system-view (2) 创建二层聚合接口,并进入二层聚合接口视图。 interface bridge-aggregation interface-number [ lite ] 创建二层聚合接口后,系统将自动生成…

前端代码优化

嗯,最近pc更新了一版,目前没有什么活,就检查自己写的代码,去优化,发现有一个函数if嵌套了很多层,重复的代码也有很多,所以我就把重复的进行来了提取,以及一些其他优化 原代码 可以…

代码随想录算法训练营DAY46|C++动态规划Part8|139.单词拆分、多重背包理论基础、背包问题总结篇

文章目录 139.单词拆分思路CPP代码 多重背包理论基础处理输入把所有个数大于1的物品展开成1个开始迭代,计算dp数组代码优化 背包问题总结篇 139.单词拆分 力扣题目链接 文章讲解:139.单词拆分 视频讲解:你的背包如何装满?| LeetCo…

计算方法实验9:Romberg积分求解速度、位移

任务 输出质点的轨迹 ( x ( t ) , y ( t ) ) , t ∈ { 0.1 , 0.2 , 0.3 , . . . , 10 } (x(t), y(t)), t\in \{0.1, 0.2, 0.3, ..., 10\} (x(t),y(t)),t∈{0.1,0.2,0.3,...,10},并在二维平面中画出该轨迹.请比较M分别取4, 8, 12, 16, 20 时,Romberg积分达…

go将时间对象切换到不同时区

编程的时候我们可能会遇到一些时区问题。在Go语言中,处理时区通常涉及到time包和time/tzdata包(如果需要更新时区数据)。这篇文章就写一下如何切换时区 一:直接上代码 package main import ( "fmt" "time&qu…

k8s持久化存储之OpenEBS

一、介绍 OpenEBS 是 CNCF 项目的一部分,采用 Apache v2 许可证。是 Kubernetes 部署使用最广泛且易用的开源存储解决方案。 目的: 让持久化工作负载的存储和存储服务完全集成到环境中,这样每个团队和工作负载都可以从控制的粒度和 Kubern…

蓝桥杯省三爆改省二,省一到底做错了什么?

到底怎么个事 这届蓝桥杯选的软件测试赛道,都说选择大于努力,软件测试一不卷二不难。省赛结束,自己就感觉稳啦,全部都稳啦。没想到一出结果,省三,g了。说落差,是真的有一点,就感觉和自己预期的…

mysql数据库和Oracle数据库除法或乘法,结果保留两位小数

在MySQL和Oracle数据库中,当你执行除法或乘法运算并希望结果保留两位小数时,你可以使用各自的内置函数来达到这个目的。 MySQL 在MySQL中,你可以使用ROUND()函数来四舍五入到指定的小数位数。例如,要保留两位小数,你…

汽车软件研发工具链丨怿星科技新产品重磅发布

“创新引领未来”聚焦汽车软件新基建,4月27日下午,怿星科技2024新产品发布会在北京圆满举行!智能汽车领域的企业代表、知名大企业负责人、投资机构代表、研究机构代表齐聚现场,线上直播同步开启,共同见证怿星科技从单点…

经典回溯算法之N皇后问题

问题描述: 有一个N*N的棋盘,需要将N个皇后放在棋盘上,保证棋盘的每一行每一列每一左斜列每一右斜列都最多只能有一个皇后。 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如…

Java | Leetcode Java题解之第71题简化路径

题目&#xff1a; 题解&#xff1a; class Solution {public String simplifyPath(String path) {String[] names path.split("/");Deque<String> stack new ArrayDeque<String>();for (String name : names) {if ("..".equals(name)) {if …

【基于 PyTorch 的 Python 深度学习】5 机器学习基础(3)

前言 文章性质&#xff1a;学习笔记 &#x1f4d6; 学习资料&#xff1a;吴茂贵《 Python 深度学习基于 PyTorch ( 第 2 版 ) 》【ISBN】978-7-111-71880-2 主要内容&#xff1a;根据学习资料撰写的学习笔记&#xff0c;该篇主要介绍了单 GPU 加速和多 GPU 加速&#xff0c;以及…

代码随想录leetcode200题之哈希表

目录 1 介绍2 训练3 参考 1 介绍 本博客用来记录代码随想录leetcode200题中哈希表部分的题目。 2 训练 题目1&#xff1a;242. 有效的字母异位词 C代码如下&#xff0c; class Solution { public:bool isAnagram(string s, string t) {vector<int> cnt1(26, 0), cnt…

洛谷 P3379 [模板] 最近公共祖先(LCA)

【模板】最近公共祖先&#xff08;LCA&#xff09; 题目描述 如题&#xff0c;给定一棵有根多叉树&#xff0c;请求出指定两个点直接最近的公共祖先。 输入格式 第一行包含三个正整数 N , M , S N,M,S N,M,S&#xff0c;分别表示树的结点个数、询问的个数和树根结点的序号…

第十一节 LLAVA模型lora训练(包含lora权重预加载与源码解读)

文章目录 前言一、语言模型加载1、语言模型加载2、语言模型训练处理a、embeding处理b、语言模型lora训练处理lora参数配置peft配置语言模型lora参数c、语言模型tokenizer加载加载tokenizer设置对话开头语句二、视觉模型加载1、加载图像模型主函数源码解读2、initialize_vision_…

达梦数据库使用-外部表

文章目录 前言一、外部表使用1.外部表定义1.1 数据文件定义方式1.2控制文件定义方式2.外部表定义注意事项二、使用示例1.disql工具的脚本方式1.1 使用数据文件1.2 使用控制文件2.DM管理工具的图形方式2.1 创建目录2.2.创建指向数据文件的外部表2.3.创建指向控制文件的外部表三、…

英语口语情景对话视频软件分享!

在当今全球化的时代&#xff0c;英语已成为一种通用的国际语言。为了提高英语口语能力&#xff0c;越来越多的人选择使用英语口语情景对话视频软件。本文将为您推荐几款备受欢迎的英语口语情景对话视频软件&#xff0c;帮助您轻松提高英语口语水平。 AI外语陪练 AI外语陪练软件…

Leetcode 3130. Find All Possible Stable Binary Arrays II

Leetcode 3130. Find All Possible Stable Binary Arrays II 0. 序言1. 算法思路2. 代码实现 1. 第一版本2. 第二版本3. 第三版本4. 第四版本 3. 算法优化 1. 算法实现一2. 算法实现二 题目链接&#xff1a;3130. Find All Possible Stable Binary Arrays II 0. 序言 这道题…

已经有 Prometheus 了,还需要夜莺?

谈起当下监控&#xff0c;Prometheus 无疑是最火的项目&#xff0c;如果只是监控机器、网络设备&#xff0c;Zabbix 尚可一战&#xff0c;如果既要监控设备又要监控应用程序、Kubernetes 等基础设施&#xff0c;Prometheus 就是最佳选择。甚至有些开源项目&#xff0c;已经内置…

LoRA的原理简介

在文章开始前先澄清一个概念&#xff0c;需要区分形近的单词"LoRa"&#xff08;long range&#xff09;&#xff0c;这是一项通信技术。熟悉物联网行业的朋友相对会比较熟悉LoRa这项技术&#xff0c;因为有些设备比如电梯的控制就使用了这个技术进行本地数据和命令的…