嵌入式系统工程开发的新模式|软件自动化( 代码自动生成)|使用建模的方法(数字孪生)<结合视频一起学习>2022-02-04

嵌入式系统工程开发的新模式|软件自动化( 代码自动生成)|使用建模的方法(数字孪生)

<结合视频一起学习>


嵌入式系统工程开发的新模式|软件自动化( 代码自动生成)|使用建模的方法(数字孪生)学习UML编程语言,是嵌入式系统编程的一条成功之路和未来趋势,这个方法更快捷_哔哩哔哩_bilibili


字幕


亲爱的同学们,大家好!

我想和你们聊聊未来如何继续单片机编程的学习,接下来可以做什么

首先来看一下,我们在这个课程里学习了哪些内容

我们学习了这个板子的编程,大家也很努力的写了很多代码,还用这个板子做了许多有趣的练习

我们再具体看看

我们写了类似这种源代码,然后把代码烧写到板子上,再进行测试

这就是开发嵌入式系统的一般方法


00:01:00

我们回顾一下单片机的历史

像这个单片机,它已经有30年历史,是一个8位单片机

它是8051的架构,今天已经不再流行了

接下来还发生了什么?


 00:01:30

我们先看看十多年前

以前的8051架构,在很长一段时间内都是工业标准

那时候几乎只有这一种架构

大概在2000年左右,开始有了竞争


00:02:00

出现了PIC和AVR,AVR在这里标红了

从此,单片机的架构变得多样化,市面上有许多不同的架构

也不能再说某一种架构才是工业标准了

这时出现了许多现代单片机,8位,16位

大约6、7年前也就在2012年前后的时间,

市面上出现了使用ARM控制器的32位单片机

也就是我们现在学习编程的STM32单片机


00:02:45

那标准的和现代的这两种架构有什么区别呢?

要强调的一点是在这10年间单片机性能是呈指数性发展的

我们看这个指数曲线上,短的红线表示旧的8位单片机的性能

长的红线表示现在ARM Cortex M单片机的性能

现在谈论的不是几百行、几千行代码,而是上百万行代码,而且是在一个单片机上


 00:03:30

接下来,我们再谈谈复杂性这个方面。什么是复杂性?

我现在随手扔出几根火柴,你第一眼便可看出是3根火柴

我再扔出几根,现在你不能一眼看出,而需要数数了

你可能要花上20秒、半分钟的时间来数清楚有几根火柴

现在我用个小技巧,这样给出火柴

通过这个排列,你可以很快看出这是30根火柴

这就是复杂性的管理


 00:04:00

我们再看一个例子,工程师是如何管理复杂性的

这个工地看起来很复杂,问题是,工人们如何知道要在哪里做什么呢?

这个秘密也藏在图片中,就是这里

这就是如何管理复杂性的秘密:

对于较复杂的事情,我们先制定计划

在软件编程里,我们也这样做

建筑工程师先在电脑上画出蓝图,通常不再是手动画图,而是用计算机软件


 00:05:03

我们现在看看软件编程的蓝图是怎样的

我们看到的这是源代码,源代码不能称为蓝图

因为我们开始写代码时,就相当于工人已经在盖楼了

如果我们没有蓝图的话,就是无计划地工作

通常的方法是,我们先编写文本,例如用word,确定要完成哪些工作

这是一个稍好些的方法,但还不是最佳的

我们常常可以看到软件开发人员在白板上画方块、画线条,画完后他们介绍这个结构图,有些人同意的话还会点头

可见大家都能看懂和理解这种图

这个方法在工程师间很快流传开来,大家认为这种图很方便,也易于快速理解

而在实际软件编程中,这种图看起来是这样的

00:06:10

这就是软件编程的蓝图的样子


00:06:20

我们再具体看看是怎么做的

通过软件来建立蓝图,专业用语称为software engineering

我们接下来以SiSy软件为例,介绍如何建立编程的蓝图


00:06:52

首先,我们要理解一个概念:什么是建模?

建模是一个软件工程领域的概念,在机械制造中,人们称之为机械设计

建模其实就是软件的设计

建模可以理解为画出一个真实的物体的样子,而且是通过统一规范的符号语言,例如小方框、线条、圆等

这些统一的符号规定了人们如何画设计图,对图纸有哪些要求


00:07:35

现在很常见的工作都是基于计算机的设计然后再自动生成。

如在机械领域的CNC,在电子电气领域的PCB,同样也适用于软件。这种工作方式就称为建模。


00:08:00

软件建模用的是什么符号语言?这里也有相应的标准

就是ISO 19505标准,UML语言的标准。借助UML语言我们建立软件编程的蓝图

这就是UML语言,通常一张纸就足以描述清楚它最重要的一些符号

那它是怎么起作用的呢?人们是怎么使用它的呢?


00:08:35

让我们来看看从模型到运行的软件这项工作是如何完成的。

第一步:我们绘制了软件结构的蓝图。 这就是软件架构的设计。

第二步:我们将逻辑纳入蓝图。这可以写成源代码,甚至可以绘制。以下是序列图的示例。

第三步:我们按一个按钮,SiSy自动生成完整的源代码。

所有专业的UML工具都可以做到这一点。 SiSy在嵌入式系统方面特别擅长。

第四步:编译和链接源代码。 然后代码可以传输到微控制器

第五步: 然后我们可以像往常一样测试并继续工作。

这是不是很容易。这就完成了

问题是,这种编程方法难学吗?

不,一点也不难,反而更简单。


00:10:00

在一开始,只要学习三样东西

第一,要知道什么是“类”?我们要在蓝图里放入“类”

第二,要知道怎么将“类”连接起来,他们之间的“关系”,我们要知道一些常见的关系

第三,要理解“继承”的概念

这些都了解后,我们就可以像坐上火箭一样快速的开始学习啦。

首先,什么是“类”?

“类”是系统的组成部分,就像建房子用的砖块

在UML语言里,我们用方块来表示“类”,里面写上类的名称


00:10:55

接下来,我们要了解什么是“继承”

“继承”指的是将一个类的属性传递给另一个类,使这个类也具有了它的属性

对于初学者,“继承”关系可以理解为“是”的关系

这个图的含义是:“故障LED是一个输出引脚”

故障LED的亮起,需要输出引脚。

我们用一个空心三角形来表示“继承”/“是”关系。


00:11:40

接下来,还有“拥有”的关系

也就是我们用若干个较小的对象来组成一个较大的对象

例如我们可以建立一个系统,它拥有故障LED、按钮等等。

“拥有”可以用一端菱形一端箭头的线条来表示,菱形有空心和实心两种,对于初学者我们先不介绍它们的区别,暂且先用空心菱形

这个图表示的就是“控制器有一个故障LED”

我们再来分析一个具体的完整案例

我们可以用刚才学到的知识来读图,学了两分钟我们就能看懂UML图啦,这真的不难。

00:12:35

控制器有一个故障LED和按钮,故障LED是一个输出引脚,按钮是输入引脚。


很简单的系统,看起来和在SiSy里真实的结构图是一样的。

现在我只需要按下按钮即可,按下软件里的按钮,这个程序就能运行了

事实上就是这么简单


00:13:04

有哪些人在使用这种编程方法、使用SiSy工具呢?

这里有个世界地图,下方是欧洲和德国

SiSy是来自德国的软件,用户最多是集中在德国

仅在德国,就有超过27000名用户。这里是一些使用SiSy软件的德国大学和应用技术型大学以及职业技术学院。可以说,大约有一半的德国高校使用SiSy,还有奥地利和瑞士的高校也使用。康斯坦茨、慕尼黑、亚琛、海德堡、汉诺威、科布伦茨以及柏林的所有高等院校等都在教学中使用SiSy。


00:14:10

通过SiSy软件完成了哪些项目呢?

SiSy不仅用于学校教学,还用于很多实际项目

不算上27000名用户,仅我们SiSy公司就做了不少项目

例如,我们使用SiSy为移动机械开发控制器

除了移动机械和汽车领域,还有关于建筑能源管理的项目。

左边这个建筑是不需要外部的能源供应的,它的能源可以自给自足。

另外一个建筑是一所学校,也是零能耗建筑被动屋。

这里涉及上千个传感器,上百个节点,每天超过200万个测量值,它们通过网络传递到主机。

也就是说,SiSy不仅可以用于单片机编程,还能用于其他很多领域。

我们最大的项目是2000年汉诺威世博会项目的业务流程建模。

世博会有超过2万名员工,我们对业务流程进行建模,生成了工作指示 。

SiSy中不仅可以生成源代码,还可以生成文件(工作指示)。

这是SiSy作为建模工具的绝对优势。


00:15:55

最后,我推荐你们使用建模的方法,学习UML编程语言,使用SiSy软件。

这是嵌入式系统编程的一条成功之路和未来趋势,这个方法更快捷、更有效、更稳定,而且可以保存为文本文档,

所有软件编程的需要都可以在SiSy中得到满足。

最好祝大家在学习中有所收获并乐在其中!

你可能感兴趣的:(嵌入式系统工程开发的新模式|软件自动化( 代码自动生成)|使用建模的方法(数字孪生)<结合视频一起学习>2022-02-04)