您的位置:首页 > 其它

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

2017-11-09 16:50 260 查看

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

我对软件工程的理解及学习软件工程(C编码实践篇)的心得:

      软件工程,本质上讲是工程,工程的目的是开发软件。工程,是一个系统的过程,从无到有,从少到多,从简单到复杂。工程,即要求成果,也要求质量。质量是工程的生命,不追求质量的工程最后都会成为豆腐渣工程。
      既然软件工程也是工程,那么软件工程必然也是要追求工程质量的。但是工程质量如何控制?我以前从事过造船相关的工作,正是做质量控制的。质量控制无非就是工程开始前做好计划,工程进行中严格按照规程,工程结束后做好验收。三者之中最核心的就是工程进行中对质量的追求。同样,在软件工程中,在代码实现阶段对工程质量的控制也是最关键的一部分。
      千里之堤毁于蚁穴,在软件工程中,程序出错的原因都是隐藏在细微的地方。修正一段代码的bug的时间远远大于写这一段代码的时间。若是这段代码写的毫无可读性,那么出错概率和bug修正难度将会倍增。若只是一小段代码,bug尚且容易修复。若是一个庞大的工程所有的代码都使用着混乱的排版使用着魔法变量,那么一旦出错,很可能根本无从查找bug。最终损失可能无法估量。所以,在软件工程中,代码的规范性可读性是重中之重,甚至说高于功能的实现也毫不过分。

课程报告与代码

1.熟悉linux实验环境

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

小结:

通过这一次小实验,我了解了coding.net这一代码平台的使用,并配置了使用环境。对ubuntu的使用进行了练习。在解决问题的过程中锻炼了动手能力。


2.代码风格规范

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

小结:

代码可读性是评价一段代码好坏的重要标准,可读性不高的代码是不好维护与管理的。规范代码格式是提高代码可读性的最便捷方法,在代码书写过程中,良好的书写习惯将会为以后的工作带来很多便利。


3.基本的模块化设计

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

小结:

程序设计不仅仅要实现代码所追求的功能,还要为以后的维护和扩展做好准备。模块化思想可以很大程度的提升程序的可扩展性和可维护性,也会提升代码的内聚性,降低耦合度,时的程序的安全性稳定性提高。


4.重用模块的接口设计

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

小结:

本次作业练习设计了一个可重用的链表模块,并将该模块集成到了上次作业的menu中,进一步降低里菜单小程序的耦合度,符合高内聚低耦合的编程思想。同时,在进一步提高了代码的可重用性的同时,也提高了代码的安全性。在此次作业中我对链表的应用有了新的理解。


5.可重用模块的接口设计(callback函数) 

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

小结:

本次作业的主要内容是修正一个bug、隐藏接口,使用callback方法;在本次作业中我学到了进一步提高代码可靠性的方法,成功地让代码的耦合度进一步下降。


6.函数的可重入性(reentrant)及线程安全浅析

小结:

了解多线程的概念,知道函数的可重入性(reentrant)与线程安全概念和关系。用互斥锁,读写锁改进程序。


7.子系统的可重用设计

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


小结:

通过这次学习我了解到了:

编写menu的接口可以提高子系统的可重用性。当编译的文件较多时,可以使用Makefile来简化编译过程。同样,Makefile工程文件也要考虑可维护性;


可以利用argc,argv和getopt来处理命令行参数。从而使得用户的命令行有更多的可输入参数;

8.代码背后的设计思想

小结:

学习从不同的质量视角,例如产品视角、用户的视角等 ,将menu开源希望有人使用它。 总结了设计方法论和几个重要的设计指导原则, 模块化、接口设计、信息隐藏、 增量开发、抽象和一般化。

学习《软件工程(C编码实践篇)》课程中最大的收获:
作为一个跨专业的学生,前学习计算机相关知识不够系统。尤其在代码格式和命名规范化方面,简直惨不忍睹,以至于有时候自己写的代码过了几天自己都容易看乱。通过这门课程的学习和几次作业的练习,我的代码比以前规范了很多,这会为我以后的学习和工作提供很大便利。

学习完《软件工程(C编码实践篇)》课程后您最大的遗憾:
这门课程还是挺有意思的。要说遗憾的话,课程太短了。刚刚学进来,课程就戛然而止了。要是还有后续课程就更好了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: