李陶 原创作品转载请注明出处
《软件工程(C编码实践篇)》MOOC课程:http://mooc.study.163.com/course/USTC-1000002006
一、课程概述
经过三个月学习,我认为由中国科学技术大学——孟宁老师在网易云课堂上主讲的软件工程(C编码实践篇)是一个非常不错的学习软件工程思想方法的实践性课程。
课程内容:
C编码实践篇强化实践能力训练,从学生较为熟悉的编程训练入手,实现C语言命令菜单小程序,注重代码的规范性,以范例演示基本编码规范、以及一些特殊的接口设计如callback函数和函数的可重入性(reentrant)及线程安全等较深入的设计问题。
课程特色:
1.强化实践能力训练,实践中出真知。
2.孟宁老师授课风格幽默,抓大体同时注重细节,概念讲解深入浅出,实验范例演示清晰。
二、课程主要内容
实验一:一个hello world小程序。
由于是第一个实验,相对比较简单。主要是熟悉Linux的基本操作。
我的实验报告链接:https://www.shiyanlou.com/courses/reports/1271284
实验二:实现一个命令行的菜单小程序。
执行某个命令时调用一个特定的函数作为执行动作,实现的命令个数不少于8个。使用类似ftp的help目录或者bash的help目录。
我的实验报告链接:https://www.shiyanlou.com/courses/reports/1272348
实验三:内部模块化的命令行菜单小程序
将逻辑和数据存储之间的分离,即将系统抽象为两个层级。
要求:1)遵守代码风格规范,参考借鉴代码设计规范的一些方法;2)代码的业务逻辑和数据存储使用不同的源文件实现,即应该有2个.c和一个.h作为接口文件。
我的实验报告链接:https://www.shiyanlou.com/courses/reports/1273315
实验四:用可重用的链表模块来实现命令行菜单小程序
用可重用的链表模块来实现命令行菜单小程序,执行某个命令时调用一个特定的函数作为执行动作。
我的实验报告链接:https://www.shiyanlou.com/courses/reports/1275159
实验五:用callback增强链表模块来实现命令行菜单小程序
利用callback函数参数使Linktable的查询接口更加通用。
我的实验报告链接:https://www.shiyanlou.com/courses/reports/1276332
实验七:将menu设计为可重用的子系统
要求将menu设计为可重用的子系统,利用argc、argv来处理命令参数。
我的实验报告链接:https://www.shiyanlou.com/courses/reports/1278282
三、总结
通过几次亲自动手实践,我对软件工程有了进一步的认识,进一步理解了软件工程的思想方法,懂得了如何才能更好的设计出一个符合工程化的思想方法的软件。要想写出好的软件,需要考虑很多方面,如模块化,可重入,线程安全,注意高内聚、低耦合等。由此可见,设计出一个好的软件系统需要考虑很多,要不断优化,持续改进。
学习《软件工程(C编码实践篇)》课程后的最大遗憾:
没能写更多的代码,没能把软件工程课上学习到的知识运用在更多的项目中。 希望能在接下来的实习中,好好体会一下软件工程的魅力所在!