您的位置:首页 > 其它

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

2017-11-13 20:32 232 查看

课程资料

原创作品转载请注明出处 + 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006

课程内容

本课程是孟老师软件工程(C编码实践篇)课程的相关内容,在这段和孟老师学习的时间内,在编程能力和对软件工程领域的理解上有了提升,更多的是对软件过程这个领域有个更深刻的认识。这不仅仅是一门理论的学科,更加要注重代码的质量和功能的实现。从孟老师循序渐进的课程里,由浅入深地了解了软件工程的思想。包括模块化代码、可复用的代码和回调函数等接口设计,以及可重入函数、线程安全等较深入的设计问题,以及在C编程实践中应注意的代码规范。只要认真完成每次实践,以及每次编程训练,就能深刻透彻地了解本课程,就能有巨大的收获。

课程地址

软件工程(C编码实践篇)

实验内容及报告

熟悉Linux实验环境:【实验一:写一个hello world小程序】

实验报告:【实验一:写一个hello world小程序】

Github:【实验一:写一个hello world小程序】

通过本次试验,熟悉了linux环境下命令行操作,熟悉了linux的运行环境及git工具的使用。

代码风格规范:【实验二:命令行菜单小程序V1.0】

实验报告:【实验二:命令行菜单小程序V1.0】

Github:【实验二:命令行菜单小
4000
程序V1.0】

通过本次实验了解代码的规范性,并了解linux和c语言的基本规范和操作,需要不断练习来提高代码质量。

基本的模块化设计:【实验三:内部模块化的命令行菜单小程序V2.0】

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

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

代码开发的过程中,文件功能不单一会造成代码混乱,将功能单一的模块抽象出来形成接口供外界调用,可以提高代码的可维护性以及可读性。 初步实现了业务逻辑与数据结构的分离,大大地加深了对模块化思想的理解。

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

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

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

用可重用的链表模块来实现命令行菜单小程序,执行某个命令时调用一个特定的函数作为执行动作,链表模块的接口设计到达足够通用,同时命令行菜单小程序的功能保持不变,提高了程序的可重用性和拓展性。

可重用模块的接口设计(callback函数)【实验五:用callback增强链表模块来实现命令行菜单小程序V2.8】

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

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

进一步了解了结构体和链表的操作的使用和指针操作也有了更深入的了解;函数交由callback来处理,这样有利于程序的结构化设计。

函数的可重入性(reentrant)及线程安全浅析(测验):【函数的可重入性(reentrant)及线程安全】

本次通过测验的方式了解了多线程编程和线程安全的重要性和解决方案,加深了理解。

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

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

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

本次实验,添加了menu接口,扩展了命令行功能,使其可以输入带参数的命令。通过编写makefile文件,使用make命令编译文件会更加方便。

课程总结

收获

通过孟老师的软件工程学习实践,由一个简单的例子入手,慢慢完善我们的小程序,在这过程中体会到了一个软件开发的标准和要求,如何高效的实现以及减少系统内部的逻辑耦合,用工程化方法构建和维护有效的、实用的和高质量的软件,让整个软件系统“大而不乱”,一个优秀的程序员不仅仅是要简简单单的敲代码,还要更深层次理解软件开发的结构。

遗憾

遗憾的是本人资历尚浅,没能彻底领会老师所要传授我们的全部知识技能。同时也非常感谢孟老师的悉心教导。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: