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

朱凡星  + 原创作品 + 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006 

       在上半学期对软件工程这门课进行了一个初步的学习,时间很快,转眼就到了结课的时候。从懵懂到对软件工程有了初步的认识,也对网课“C编码实践篇”有了一个层次性的学习。在这个过程中遇到了不少困难,但同时也收获很多。接下来就讲下在整体上对于软件工程的认识。

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

        在现代社会中,软件应用于多个方面。典型的软件有电子邮件、办公套件、操作系统数据库游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作效率和生活效率 。

软件工程就是会涉及到类似工程管理的内容,有组织、有计划,既有质量上的要求,也有时间和成本上的要求,实现功能明确的软件系统。而且,软件工程在企业范围内运行,也一定需要企业资源的支持,企业以软件为盈利的话,那么就要与企业的经营、决策、管理体系相联系,才能够踏踏实实的落实下来。在前期需要进行问题定义,可行性研究,需求分析,然后通过编码、’测试的过程来进行设计,同时在后期还需要定时的进行维护。

       同时还对开发方法有所分类,比如:生命周期法、原型化方法、面向对象方法等等。其中我们重点学习了面向对象的方法,了解到面向对象的真正威力是“行为封装”。

通过学习C编码实践篇,可以分为4个层次:1)代码风格层次 2)代码模块化层次 3)代码可重用性层次 4)线程安全方面的问题
1)代码风格层次——代码风格规范就像一个人的长相一样,通过看你的代码风格就能大致想象出你是一个什么样子的人,养成好的代码风格以及规范会使我们事半功倍。
2)代码模块化层次——通过学习深刻了解到了代码模块化封装的重要性,以及一些模块化的规则,好的模块化程序的判定条件等等。
3)代码可重用性层次——避免一些无用功,可以使以前自己或者前辈们写过的代码重用到现在要写的程序里面,在代码可重用性层次上面要非常注重模块化程序接口的设计,尽量多考虑到以后可能会用到的一些接口。
4)线程安全的问题——现在的设备都是一些多线程同时运行的设备,如果你连最基本的线程安全问题都不懂的话,怎么去驾驭你的代码,通过老师的讲解会使你更深刻的了解到什么是可重入函数和线程安全以及两者之间的关系等等。


以下是通过学习孟宁老师的软件工程(C编码实践篇)所做的具体的实验部分:
1.工欲善其事必先利其器-通过第一次实验会让你深刻的了解Linux下的一些基本的操作,第一次实验报告- https://www.shiyanlou.com/courses/reports/1290208
2.本次实验是实现一个命令行的菜单小程序,从hello world开始不断迭代调试使代码长的越来越像一个命令行的菜单小程序,并且通过这次实验学习了代码风格规范。第二次实验报告- https://www.shiyanlou.com/courses/reports/1291109
3.使实验二的代码模块化,并且学习代码设计中的一些常见方法,KISS、不要和陌生人说话原则等等https://www.shiyanlou.com/courses/reports/1293047

4.代码是一个不断迭代调试的过程-可重用的链表模块来实现命令行菜单小程序,通过本次实验会使你更加的了解到程序模块化设计的方便之处,在后期会更加方便的维护自己的代码等等:第四次实验报告- https://www.shiyanlou.com/courses/reports/1296043

5.用callback函数实现的多态浅析并注意信息隐藏:第五次实验报告- https://www.shiyanlou.com/courses/reports/1298042

6.测验

7.把我们上几次做的命令行菜单通过老师讲的一些有用的方法做成一个可重用的子系统:第七次实验报告- https://www.shiyanlou.com/courses/reports/1303870


总结部分:您在学习《软件工程(C编码实践篇)》课程中最大的收获?学习完《软件工程(C编码实践篇)》课程后您最大的遗憾是什么?

首先对于编码的规范风格有了具体的认识,也对于模块化的概念有了初步的了解,循序渐进从一个小程序去体验一个大的工程所需要的各个步骤和思想。最大的遗憾可能还是觉得代码量不够,虽然有了初步认识但要是可以将之运用到自己的一个小项目上那就更好不过了。总之收获很大!!

你可能感兴趣的:(软件工程(C编码实践篇)学习总结)