“吴凯+ 原创作品转载请注明出处 + 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006
”
经过对为期为9周的软件工程的学习,感觉自己学到了很多,对链表的结构从最开始的认识,到了解,然后再到最后的学懂,这让我获益匪浅,由于之前有学过Linux的一些命令,所以在编写代码的过程中,感觉轻松了很多,还记得老师让我们编写的第一个实验“hello world”让我感觉很有趣,但是接下来的实验就让我觉得难度开始加大,难度加大的同时,也让我去看了很多的书籍来完成实验。
实验二的内容是让我们去实现一个命令行菜单小程序,让我们去学习把程序分块来执行。实验三是让我们去做内部模块化的命令菜单小程序,这让我学习了很到有关这方面知识,对代码的掌握也多了许多。实验四的内容为利用链表模块来实现命令行菜单小程序,这让我知道链表不仅有单向链表,也有双向链表,让我对链表的掌握又加深了很多。实验五的内容为利用callback增强链表模块来实现命令行菜单小程序,为了完成这个实验,我去翻阅了与callback相关的书籍,并利用数学上的知识来完成了此次实验的编写。实验六为对平时掌握的一些知识进行了相应的检测。实验七的内容是将menu设计为可虫用的子系统,此时就是将我们之前做的实验进行了一个贯通的过程。整个实验下来让我有一下收获:(1)在代码的规范上,需要项目组统一格式,函数和变量的命名方式,每个语句前是用tab键还是用4个空格等等都需要规范!(2)在设计规范上,要保证代码是高内聚,例如一个函数只做一件事,一个模块只做一类事的,实现功能尽量用库函数;还有要遵循“不和陌生人说话”的原则,以保证除了类提供的接口,别人无法访问类的其他内容。同时要合理使用数据结构、控制结构等来简化代码。(3)在模块化的思想中,讲究高内聚低耦合,接口要规范,代码要注意通用性。(4)在处理多线程问题中,需要关注函数是否是可重入的,使用互斥锁,读写锁以保证多线程安全。(5)在子系统的设计当中,要设计出可重用的接口。(6)如何设计带参数的函数等。
最后通过软件工程这门课程,孟宁老师让我认识到了软件在开发过程中的设计是多么的重要,也让我对软件的开发过程有了相应的了解,让我认识到了需求分析的重要,也让我知道了软件工程“高内聚,低耦合”的思想,通过学习这门课程,让我掌握了软件设计的设计思想。
在此,感谢老师对课程的讲解。
以下为实验报告的链接:
实验一:https://www.shiyanlou.com/courses/reports/1244220
实验二:https://www.shiyanlou.com/courses/reports/1244943
实验三:https://www.shiyanlou.com/courses/reports/1245880
实验四:https://www.shiyanlou.com/courses/reports/1246353
实验五:https://www.shiyanlou.com/courses/reports/1247067
实验六:无
实验七:https://www.shiyanlou.com/courses/reports/1248085