软件工程(C语言实践篇)学习心得总结

来源:互联网 发布:mac world破解版 编辑:程序博客网 时间:2024/06/07 03:57

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

一、前言


    时光如白驹过隙一般,蓦然间发现跟着孟老师学习软件工程已经半学期了,从刚开始的懵懵懂懂,到现在虽说编码能力仍不强,但阅读程序时心里已经不怵了,有时还能联系孟老师讲的软件工程的思想来进行分析,这全部都得益于孟老师亲历亲为的板书、生动形象的举例、孜孜不倦的讲解,还有孟老师精心制作的线上视频课堂。


二、心得体会


    通过孟老师十周的教诲,我逐渐熟悉了他的教学风格。透过孟老师的教学风格,我觉得他是一个很有想法的人。区别于传统的填鸭式的课堂教育,孟老师的课堂分为平时课堂,线下课堂,线上课堂三部分。在平时的课堂上,老师教会我们软件工程的理论知识;在线上的视频里,老师通过一个menu程序从有到无,代码由不完善到可读性强、通用性强,来向我们展示了软工的理论知识如何应用到具体实践中,理论与实践交融,加深我们的理解和认识,(更不用说线下课程,我们还在孟老师的指引下学习了非常火爆的vue.js,进一步在具体的大型工程的代码中体会软件工程的运用)。

    通过这些十分具体的项目,加上孟老师和助教学长、学姐的帮助,使我感到软件工程这门课不再是枯燥的理论知识,不再是课本上一个个看不懂的用例图,而是一种大型软件开发过程中的规范,甚至可以说是一种强有力的武器,有了它,软件的开发势必变得更加容易,用好它,软件的后期维护变得更轻松!

另外,我个人也十分欣赏孟老师的品行,他上课时温文尔雅,语气诚恳,言谈诙谐、幽默又不失严肃,教学认真,举例恰当,一个个高深的理论信手拈来,往往又能讲的深入浅出,使同学们听的十分清楚、明白,例如,老师上课时在讲软件工程时,为了帮助我们理解一些概念,会讲与这些概念有关的历史、故事、商业等知识,这样就使晦涩的理论知识更容易理解,同时也活跃了课堂气氛,效果十分好。


三、实验代码和链接:


以下是在实验楼上运行得代码和实验报告:

实验要求
写一个hello world小程序:
在Linux命令行环境使用C语言编写,编译后执行输出"Hello,World!";
实验务必在linux命令行环境下完成,课程视频是在本地虚拟机上操作的,除了目录环境和作业提交方式不同外,基本的命令和编辑操作方式是一致的。

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


实验二 要求:
 代码风格要求:
1.代码风格的原则:简明、易读、无二义性;
2.缩进、命名、注释等代码编排的风格规范;
3.《构建之法》4.1代码规范;
4.高质量C++/C编程指南(林锐)。
  具体要求:
1.实现一个命令行的菜单小程序,执行某个命令时调用一个特定的函数作为执行动作,实现的命令个数不少于8个;
2.类似ftp的help目录或者bash的help目录;
3.程序循环、接收用户的命令,如help、others等命令;
4.可以广泛通用的命令行菜单子系统组件,可方便地定制而嵌入到其他系统。

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


实验三 要求:
1.注意代码的业务逻辑和数据存储之间的分离,即将系统抽象为两个层级:菜单业务逻辑和菜单数据存储;
2.遵守代码风格规范,参考借鉴代码设计规范的一些方法;
3.代码的业务逻辑和数据存储使用不同的源文件实现,即应该有2个.c和一个.h作为接口文件。

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


实验四 要求:
1.用可重用的链表模块来实现命令行菜单小程序,执行某个命令时调用一个特定的函数作为执行动作;
2.链表模块的接口设计要足够通用,命令行菜单小程序的功能保持不变;
3.可以将通用的Linktable模块集成到我们的menu程序中;
4.接口规范。

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


实验五 要求:
1.给lab5-1.tar.gz(在实验楼Linux虚拟机环境下~/se_files/目录下)找bug,quit命令无法运行的bug;
2.利用callback函数参数使Linktable的查询接口更加通用;
3.注意接口的信息隐藏。

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


实验七 要求:
1.为menu子系统设计接口,并写用户范例代码来实现原来的功能;
2.使用make和make clean来编译程序和清理自动生成的文件;
3.使menu子系统支持带参数的复杂命令,并在用户范例代码中自定义一个带参数的复杂命令;
4.可以使用getopt函数获取命令行参数。

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


四、总结

    这门课程使我获益良多:1.认识了孟老师这么一位良师益友;2.让我对软件工程有了进一步的认识,并体会在实践中运用。

    缺点是课时少,除去假期,几乎不到两个月,不能继续再跟着孟老师学习高软,十分遗憾!

阅读全文
1 0