【2016.3.6 】从寒假的一次开发引发的对软件工程的一些想法
刚刚去看了一下张老师的博客,顺手去几个同学那里逛了逛,加了加关注,偶然发现名单上一个错误,已经给张老师留言了,估计很快就改过来了。
本周题目还没出来,自己的红外感应探头到了,周末光弄那个去了,于是就先弄那个了,包括一个一直不服的光电门DB1S6150。。。。看他不爽很久了,就是不听话,资料也不完备,慢慢摸索~
软件工程嘛,看起来离嵌入式开发好远,但是事实上,现在的单片机和以前有太多的不同了,不再是一些简单的汇编指令,而是大量的,复杂的高级语言程序代码。就拿这个寒假来说,我和小驯鹿同学寒假初一起讨论要干些什么,一开始,我们想做一个智能的门磁,后来觉得GSM,电磁继电器之类的有些麻烦,遂打消了这个念头,转而想去做一个带有温湿度传感器的智能家居时钟,脑袋一热,啪啪下单,年前顺丰把零件寄到了小驯鹿家,开年之后开始编代码,因为我们的硬件只有一套,于是乎一次苦涩的开发经历开始了。。。
也不是第一次和小驯鹿合作,之前我们也一起合作大创,但是因为是面对面的交流,因此还没感觉什么,而放假后,横跨3000公里,心里真的很慌。
前两天上课看了软件工程开发的一些基础知识,阶段,觉得我们的寒假基本上进行了前四步,虽然很幼稚,但是还是很有启发。
首先是一开始的需求分析,我们讨论了我们想做什么——一个基于51单片机的智能时钟,然后分析现有的时钟有什么问题——功能单一,数码管耗电,设置操作复杂,无法自由配置功能和升级等问题,然后结合自身实力,开始一条条提出解决方法,当然,有些暂时不能解决的,我们也做了记录,为后续开发做好准备。
然后就是概要设计,我们大概划分了一下我们所需要有的功能,计时,存储,温湿度测试,红外感应,预留wifi校时的接口,然后我们开始设计函数,分工,规定变量名,函数名,参数,然后各自写函数去了。
到这里为止还行,但是等到两个人合代码的时候,问题产生了,我这儿没法测试,每次我都是编译一个HEX发送给她,她告诉我刷写的结果,效率无比低。最后我咬牙我本地搭建了仿真环境,效率得到了一些提升。
汇总代码,构建整体的时候,因为我们并没有一个很好的代码管理软件,没有有版本控制的概念和想法,于是出现了下图的这种情况。
当时只知道用txt保存每次的代码,每次我改完了都得用备注告诉她,她改完了就要告诉我,代码在传来传去的过程中越来越庞大,越来越臃肿,在2.17达到了1500+行,2.18删掉了300行左右,总算是清爽了许多,但是依然有很多bug,而且有的bug是改着改着出现的,更难受的是不知道改了啥改错的。。。。。
好在最后还是搞定了基本的功能,但是代码凑的不是尽如人意,我希望能够通过软件工程的学习,结合寒假开发的教训与体会,在以后的开发中,更加从容不迫,不写了,看《构建之法》去,基本上准备15天看完它,跟上书后习题的进度。