标签:
由于本人专业方向是计算机体系结构方向的,平时做嵌入式方面的实验以及项目较多,这个学期又学习了软件工程的课程,因此想借此机会,总结下在软件工程上面学习到的知识,并看看是否有什么能够借鉴到嵌入式方向的开发上面去。
首先我想总结下,软件开发与嵌入式开发的不同之处。作为软件开发,首先应当从用户或者用户的需求入手,明白用户想让你去实现什么功能,而到了具体的实现,有时却限制的不是那么的死。而至于嵌入式的开发,从需求入手是相同的,但是对于实现的方式,却明显不同于传统的软件开发。对于编程语言,不同的嵌入式开发平台有着不同的兼容需求,碰上好的可以用c++,要求高的就是c,或者类c,再不济就是汇编语言,而且是各种各样的汇编语言。为什么会有这样的限制?我认为正是出于成本的考虑。比如一个人电冰箱,要控制整台冰箱的功能,并不需要一个很强大的处理核心,而只要能够满足一些基本的温度采集,制冷机控制信号就足够了,显然并不需要再附加什么c++编译器来实现控制,那样不但浪费了许多存储空间,而且对于执行效率没有帮助反而会有阻碍作用,得不偿失。若采用汇编语言来实现的话,一来编译没有难度,基本上通过逻辑电路就可得到可执行的机器代码,二来没有复杂的程序逻辑,对编程人员的压力也不是很大。可见,在嵌入式的开发过程中,除了要考虑需求,更要去考虑你实现的成本。在软件工程中并不明显的指标,换做在嵌入式的开发过程中情况却截然不同。
那么,有什么是我能够从软件共课程中借鉴来的呢?我认为,应该是这种工程化开发的思路以及过程。工程化方法的好处就是,可以使你在开发过程中条理清晰,知道自己现在正在做什么,知道自己将要做什么,知道自己什么还没有去做,以一个全局的统筹形象来管理你的工程,清晰明了。在嵌入式开发的过程中,特别需要这样的工程化方法,其一因为使用低级的编程语言无法使程序结构一目了然,这时除了注解添加,更好的方法就是以图结构来描述你所做的设计,因为图结构确实可以描述一些语言所不及的范畴,这样使得每次通过阅读图描述,就能够明白开发进行到了哪一步。还有就是因为在嵌入式开发的结尾阶段会有大量的测试工作,而测试数据的分析可以借鉴软件工程中的分析方法。其他的方面还有很多很多,但是光是以上两点,我觉得已经能够使我在嵌入式的开发过程中有所提高。
标签:
原文地址:http://www.cnblogs.com/kiyoshikazuya/p/5601982.html