您的位置:首页 > 其它

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

2017-06-15 20:16 393 查看

SA16225229 彭机勇 (原创作品转载注明出处)

《软件工程(C编码实践篇)》MOOC课程作业【http://mooc.study.163.com/course/USTC-1000002006

实验楼实验报告目录

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

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

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

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

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

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

学习心得

作为一个此前未系统学习过软件工程的学生,在学习本门课程之前,对软件工程的印象仅仅是一本厚厚的教科书和枯燥无味的文字描述,就代码层面来说,也仅仅停留在代码量和对代码规范的浅显理解上。

在这两个月的学习过程中,从一开始的熟悉linux开发环境,到慢慢发现软件工程并非只有枯燥的教科书,也并非只有代码量和代码规范,学习下来,收获很多。

在设计规范上,需要做到以下几点:(1)保证代码是简单的,例如一个函数只做一件事,一个模块只做一类事的;(2)遵循“不和陌生人说话”的原则,封装类,保证一个对象对另一个对象了解的尽可能少。(3)合理使用数据结构、控制结构等来简化代码;(4)要有错误处理。

在模块化的思想中,讲究高内聚低耦合,接口是规范的,代码是通用的。例如,可以用callback函数实现多态以便接口更加通用,实现信息隐藏。

在处理多线程问题中,需要关注函数是否是可重入的,使用互斥锁以保证多线程安全等。在子系统的设计当中,设计出可重用的接口。

总体来讲,在软件工程中我们应当遵循6大原则:(1)模块化;(2)使用接口;(3)信息隐藏;(4)增量开发;(5)抽象化;(6)一般化。

课程总结

收获

孟宁老师用心地采用的线上加线下教学模式,是我以前没有接触过的,在锻炼了我的动手能力的同时,更让我自己对软件工程有一个系统的认识。

软件开发要融入工程化的思想,要有高度的设计能力。软件开发,不仅仅关注功能,性能,更应该去研究可维护性,可扩展性等质量属性,不仅仅只关注代码,而更要上升为设计,复用等。

遗憾

没有能组队完成一个具体一点的软件开发的小项目。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  软件工程