您的位置:首页 > 其它

MOOC课程:软件工程(C编码实践篇)学习总结

2016-11-20 15:55 155 查看
这学期选修了孟宁老师的《软件工程(C编码实践篇)》这门课,用七周的时间实现了了一个可重用的菜单子系统。涉及的内容有Linux编程环境的熟悉、代码的风格规范、代码基本的模块化设计,callback函数的使用,函数的可重入性及线程安全、子系统的可重用涉及等。以下是实验报告的链接以及每次实验的主要内容:

实验一:写一个hello world小程序

这次实验主要是熟悉linux编程,了解vi,git等操作

实验二:命令行菜单小程序V1.0

1.实现一个命令行的菜单小程序,执行某个命令时调用一个特定的函数作为执行动作,实现的命令个数不少于8个;

2.类似ftp的help目录或者bash的help目录;

3.程序循环、接收用户的命令,如help、others等命令;

4.可以广泛通用的命令行菜单子系统组件,可方便地定制而嵌入到其他系统; 实验

实验三:内部模块化的命令行菜单小程序V2.0

1.实现代码的业务逻辑和数据存储之间的分离,即将系统抽象为两个层级:菜单业务逻辑和菜单数据存储;

2.遵守代码风格规范,参考借鉴代码设计规范的一些方法;

3.代码的业务逻辑和数据存储使用不同的源文件实现,即应该有2个.c和一个.h作为接口文件。

实验四:用可重用的链表模块来实现命令行菜单小程序V2.5

1.用可重用的链表模块来实现命令行菜单小程序,执行某个命令时调用一个特定的函数作为执行动作;

2.链表模块的接口设计要足够通用,命令行菜单小程序的功能保持不变;

3.可以将通用的Linktable模块集成到我们的menu程序中;接口规范;

实验五:用callback增强链表模块来实现命令行菜单小程序V2.8

1.给lab5-1.tar.gz(在实验楼Linux虚拟机环境下~/se_files/目录下)找bug,quit命令无法运行的bug

2.利用callback函数参数使Linktable的查询接口更加通用

3.注意接口的信息隐藏

实验七:将menu设计为可重用的子系统

1.为menu子系统设计接口,并写用户范例代码来实现原来的功能;

2.使用make和make clean来编译程序和清理自动生成的文件;

3.使menu子系统支持带参数的复杂命令,并在用户范例代码中自定义一个带参数的复杂命令;

4.可以使用getopt函数获取命令行参数。

通过这门课程的学习,有许多收获,也有些许遗憾。之前没有linux编程的基础,所以一开始在linux环境编程有些不适应,但上手后发现linux是很好的编程平台。在学这门课之前也没有做过一个完整的项目,虽然也对模块化、接口、抽象等概念有所了解,当都是纸上谈兵,并没有实际的项目经验做支撑。

这门课程的总体难度虽然不大,但是很适合初学者,简明清楚地说明了软件工程中的许多重要概念,从最基本的hello world小程序开始,逐步开发出具有实用性的菜单小程序,之后又不断重构,加入接扣,增强代码的安全性,实现关注点的分离,把代码模块化,提高代码的可维护性。通过课程的学习,自己的编码能力有所提高,对软件工程的相关概念的理解更加深刻了。

当然,也有一些遗憾,比如说有一次错过了作业的提交时间,说明时间管理的观念还不够强。对课程中提到的某些概念的理解还不够,新学到的一些知识的运用还不够熟练,比如callback机制,多线程的安全问题等。

夏秋城 + 原创作品转载请注明出处《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com
7d6b
/course/USTC-1000002006
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: