软件工程(C编码实践篇)学习总结
李亚健 《软件工程(C编码实践篇)》MOOC课程 http://mooc.study.163.com/course/USTC-1000002006
一、学习心得
当时选课时看到孟宁老师的高级软件工程,心里想来到科大软件学院就是学习软件工程开发的,想通过这门课来学习掌握基本的计算机编程能力。上这门课时感觉这门课其实不需要写太多的代码,主要还是网易云上的实验对编码编写有要求。在课堂上孟宁老师比较重心的将软件工程的思想教给我们。根据整个课程学习下来,还是学到了很多东西。我学到了下面这些内容:
- 学会了在linux环境下,会运用一些基础的命令,还有会在此环境下编译c文件。;
- 学习了代码规范的重要性。学会了实现一个简单的命令菜单小程序;
- 体会到模块化的重要性和精髓,及包容变化的能力:将变化和不变的部分分离。 同时我也了解到KISS原则、设计与代码的一致性、错误处理,用数据结构和控制结构来简化代码等一系列重要原则;
- 体会到链表模块的接口设计的重要性和精髓。还有C语言编程有待提高;
- 了解了callback函数这种技巧来增加模块的通用性,并基本知道了如何使用callback函数。如何更好的隐藏接口信息;
- 会设计menu子系统了;
主要学习到的东西就是这些,在软件设计过程中还要注意函数的可重入性和线程安全问题,有的时候为了提高模块或者函数的通用性要使用call-back方式接口或者设计带参数的命令,这些都要具体情况具体分析。
软件=程序+软件工程 程序=算法+数据结构 程序内部模块化对软件可维护性有重要影响。大的系统都是从简单的入手,一步步的迈进,一个个查找错误,总是可以最后达到你要的结果。尽量自己按照实验要求一步一步来,总会有学到东西,用心做了总会有所收获。
二、实验报告目录
实验一 写一个hello world小程序;
学会在linux环境下运用一些基础命令行执行相关操作
实验二 命令行菜单小程序;
实现一个命令行的菜单小程序,执行某个命令时调用一个特定的函数作为执行动作,实现的命令个数不少于8个
实验三 内部模块化的命令行菜单小程序;
遵守代码风格规范,参考借鉴代码设计规范的一些方法
实验四 用可重用的链表模块来实现命令行菜单小程序;
用可重用的链表模块来实现命令行菜单小程序,执行某个命令时调用一个特定的函数作为执行动作
实验五 用callback增强链表模块来实现命令行菜单小程序;
利用callback函数参数使Linktable的查询接口更加通用,注意接口的信息隐藏
实验七 将menu设计为可重用的子系统。
为menu子系统设计接口,并写用户范例代码来实现原来的功能
三、课程总结
这门课程的学习中收获最大的就是对软件工程有了一个大致系统的了解,学习到了它的精髓和思想。现在当我自己编程的时候经常会不自觉地考虑到要不要模块化、要不要对接口加以改进,这就是我觉得学习这门课程最大的进步了。