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

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

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

系统开发生命周期

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

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

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

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

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

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

能力成熟度模型

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

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

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

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

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

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

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

软件开发模型

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

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

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

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

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

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

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

系统测试

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

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

动态测试

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

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

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

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

灰盒测试:黑盒+白盒。

静态测试

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

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

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

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

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

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

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

相关文章

Android MediaCodec 简明教程(七):使用 MediaCodec 解码到 OES 纹理上

系列文章目录 Android MediaCodec 简明教程(一):使用 MediaCodecList 查询 Codec 信息,并创建 MediaCodec 编解码器Android MediaCodec 简明教程(二):使用 MediaCodecInfo.CodecCapabilities 查…

书生浦语训练营第2期-第7节作业

一、基础作业 二、进阶作业

百面算法工程师 | 支持向量机面试相关问题——SVM

本文给大家带来的百面算法工程师是深度学习支持向量机的面试总结,文章内总结了常见的提问问题,旨在为广大学子模拟出更贴合实际的面试问答场景。在这篇文章中,我们还将介绍一些常见的深度学习算法工程师面试问题,并提供参考的回答…

嵌入式开发九:STM32时钟系统

时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行。时钟系统犹如人的心脏,一旦有问题整个系统就崩溃。我们知道 STM32 属于高级单片机,其内部有很多的外设,但不是所有外设都使用同一时…

深圳CPDA|如何利用数据分析改进业务流程,提高效率?

在当今数字化时代,数据已经成为企业决策和优化的关键资源。通过有效地收集、分析和应用数据,企业可以深入了解其业务流程中的瓶颈和问题,从而改进流程,提高效率。本文将探讨如何利用数据分析改进业务流程,并提高效率。…

利用智能私信软件,快速拓展潜在客户群体

在数字化营销的浪潮中,企业如何快速而有效地触及并吸引潜在客户,已成为一个不可忽视的挑战。随着人工智能技术的不断进步,智能私信软件作为一种新型工具,正逐渐改变着企业的市场拓展方式。本文将探讨如何通过这类软件,…

在Ubuntu上安装Anaconda之后,启动失败

为了方便管理Pythonu环境,在Ubuntu的Docker容器中安装了Anaconda,安装完成,启动时出现如下错误: conda activate xxx usage: conda [-h] [--no-plugins] [-V] COMMAND ... conda: error: argument COMMAND: invalid choice: acti…

【iOS】事件传递与响应机制

文章目录 前言事件UIEvent一、事件传递遍历顺序 二、手势识别三、响应机制UIResponder(响应者)响应者链 四、相关应用扩大button点击范围穿透事件 总结 前言 提到响应者链与事件传递,如果看过其他人的博客,经常能看到这经典的三张…

C++容器之vector类

目录 1.vector的介绍及使用1.1vector的介绍1.2vector的使用1.2.1 vector的定义1.2.2 vector iterator 的使用1.2.3 vector 空间增长问题1.2.4 vector 增删查改1.2.5vector 迭代器失效问题1.2.6 vector 在OJ中的使用。 2.vector深度剖析及模拟实现2.1 std::vector的核心框架接口…

bert-NER 转化成 onnx 模型

保存模型 加载模型 from transformers import AutoTokenizer, AutoModel, AutoConfigNER_MODEL_PATH ./save_model ner_tokenizer AutoTokenizer.from_pretrained(NER_MODEL_PATH) ner_config AutoConfig.from_pretrained(NER_MODEL_PATH) ner_model AutoModelForTokenCl…

5月9(信息差)

🌍 可再生能源发电量首次占全球电力供应的三成 🎄马斯克脑机接口公司 Neuralink 计划将 Link 功能扩展至现实世界,实现控制机械臂、轮椅等 马斯克脑机接口公司 Neuralink 计划将 Link 功能扩展至现实世界,实现控制机械臂、轮椅等…

python代码无法点击进入,如何破???

python代码无法点击进入,如何破??? 举个栗子: model.chat是无法进入的,这时可以使用如下的命令进行操作: ?model.chat