您的位置:首页 > 其它

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

2016-11-20 09:47 441 查看
于璇 + 《软件工程(C编码实践篇)》MOOC课程 http://mooc.study.163.com/course/USTC-1000002006

学习心得体会

软件工程这门课是软件工程专业的同学的必修课,在学习这门课之前,我对软件工程的理解就是一堆文档的堆砌,一些深不可测的概念。很荣幸学习了孟宁老师高级软件工程课,通过对线上的c编码实践的学习和实践,让我对曾经很抽象的软件设计的概念有了真切的体会。学习中我对一句话印象很深刻:当一个软件工程项目的代码部分完成了之后,你只完成了百分之二十的阶段。以前我总觉得做项目的过程中,写代码是最艰辛的部分,然而真正理解了软件工程的含义,我发现其实写代码只是将你所要实现的功能简单的实现出来,之后你要考虑到诸如代码风格的规范、模块化、安全性、接口的封装、信息的隐藏、程序员之间的合作性、与客户的沟通交流问题,以及软件的维护和测试等问题。因此,当把项目代码完成之后,仅仅是完成了万里长征的第一步。而c编码实践课正是通过一个命令行小程序的实现过程,来一步一步地讲授如何思考和完善你的项目。

在具体实践过程中,我首先熟悉了实验楼的实验环境,在7次实验过后,也能够熟练地在linux环境下进行简单的操作。包括将代码上传至代码库等等。每次实验完成后,通过学习他人的实验报告,可以对自己的实验有更加深入的理解。孟宁老师对课程的讲解生动幽默,因而真的受益很多。

c编码实践的总结

(1)在代码的规范上,需要统一格式,例如函数和变量的命名方式等等。

(2)在设计规范上,要保证代码是高内聚,例如一个函数只做一件事,一个模块只做一类事的,实现功能尽量用库函数;还有要遵循“不和陌生人说话”的原则,以保证除了类提供的接口,别人无法访问类的其他内容。合理使用数据结构、控制结构等来简化代码。

(3)在模块化的思想中,讲究高内聚低耦合,接口要规范,代码要注意通用性。

(4)在处理多线程问题中,需要关注函数是否是可重入的,使用互斥锁,读写锁以保证多线程安全。

(5)在子系统的设计当中,要设计出可重用的接口。

最大的收获是对软件工程项目索要考虑的问题有了清晰的理解。遗憾是还缺乏一次独立设计软件工程项目机会来锻炼自己。

实验报告和代码

代码库:

http://git.shiyanlou.com/toyuxuan/shiyanlou_cs122

(1)实验报告一

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

https://www.shiyanlou.com/courses/reports/1244115

(2)实验报告二

实验二:命令行菜单小程序V1.0,具体要求参见视频

https://www.shiyanlou.com/courses/reports/1244908

(3)实验报告三

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

https://www.shiyanlou.com/courses/reports/1245551

(4)实验报告四

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

https://www.shiyanlou.com/courses/reports/1246326

(5)实验报告五

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

https://www.shiyanlou.com/courses/reports/1246959

(6)实验报告七

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

https://www.shiyanlou.com/courses/reports/1248064
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息