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

来源:互联网 发布:mac顶部菜单栏截图工具 编辑:程序博客网 时间:2024/06/18 16:49

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

王健羽+(与最后申请证书的姓名务必一致) + 原创作品转载请注明出处 + 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006

学习心得:

     软件工程课程是软件工程专业一门重要的课程,这门课程对在软件和程序中的学习和工作者,有很大的引导性帮助作用。本学期修选了孟宁老师的软件工程课程,在C语言实践篇的线上课程中从简单的“Hello World!”程序的编写开始,一步一步编写了一个较为复杂的菜单命令程序menu,通过学习和实践,从中也有了收获,包括对Linux操作系统的熟悉,编程的代码规范,以及编程的思想,还有一些编程工具的使用等,这些方面的学习。通过学习和实践,下面就个人的学习和思考做一个总结和归纳。


实验目录链接:

一、实验一:写一个Helloword小程序

本次实验主要是熟悉实验的开发环境和流程,在这次实验中,初步了解了代码规范,熟悉linux中的基本命令,包括cd、ls、mkdir等命令,同时也熟悉和使用了vi编辑器,包括一般模式、编辑模式、命令模式等模式切换等,此外,接触到了GitHub的使用,学习相关的应用,接触了markdown的书写等,是一次入门和熟悉环境的实验。

实验一报告链接:https://www.shiyanlou.com/courses/reports/1290224
实验一代码链接:https://github.com/wjiany/se_code/tree/master/lab1

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

本实验设计了10个命令行小程序,并在程序中进行了命令介绍和说明,执行相关操作的时候,会有相应的提示,方便执行和操作!实验中主要时要注意代码的规范编写,包括代码的缩进、大括号的对齐,注释的说明等,注意代码风格的原则:简明、易读、无二义性缩进、命名、注释等代码编排的风格规范。

实验二报告链接:https://www.shiyanlou.com/courses/reports/1291364
实验二代码链接:https://github.com/wjiany/se_code/tree/master/lab2

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

本次实验对上次的命令行菜单进行了结构化的编写,将方法的遍历和展示写成了函数,利用结构体完成,同时将代码分割成3个结构化的文件,便于代码的可读性和思考。注重了代码的规范的同时学习了结构化编程的思想,通过层次化的设计思想,将程序内部进行模块化,设置接口,使程序更加逻辑清楚,有利于代码规范化。

实验三报告链接:https://www.shiyanlou.com/courses/reports/1293203
实验三代码链接:https://github.com/wjiany/se_code/tree/master/lab3

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

本次实验让自己增长了许多知识和应用,对链表有了很大的了解和学习,同时增加了对结构体的编程的学习和掌握,更加学习了模块化编程的思想,要讲究开放包容的思想,就要进行模块户的编程和设计。主要包括linktable.c 、linktable.h、还有menu.c文件的编程。感觉到自己好多地方需要好好学习和加强来提升自己!

实验四报告链接:https://www.shiyanlou.com/courses/reports/1295859
实验四代码链接:https://github.com/wjiany/se_code/tree/master/lab4

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

这次实验是使用的callback函数的方式实现命令的查询,可以将处理函数交由callback来处理,同时,这样有利于程序的结构化设计,也便于程序思想的构建。同时注意将结构体不在linktable.h文件中定义,实现了隐藏与安全。完成了实验的各项要求。

实验五报告链接:https://www.shiyanlou.com/courses/reports/1299142
实验五代码链接:https://github.com/wjiany/se_code/tree/master/lab5

六、实验六:函数的可重入性(reentrant)及线程安全

这次是一次小测验,主要学习了函数的可重入性以及线程的安全问题,最大的收获是对函数的可重入性的相关概念的学习和掌握,同时联系到线程问题,加深了可重入性和线程安全的理解。

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

这次试验中对之前的menu菜单程序做了一定的改进,将menu设计为可以重用的子系统,在主函数中可以向菜单中添加菜单命令,这样比之前变得更加方便和可用。
同时,这次实验学习和使用了Makefile的使用,进一步学习丰富了视野。

实验七报告链接:https://www.shiyanlou.com/courses/reports/1303926
实验七代码链接:https://github.com/wjiany/se_code/tree/master/lab7


学习总结:

  •     正如老师所说,软件工程不仅仅是简单的写程序和代码,软件工程课程是软件工程专业一门重要的课程,软件=程序+软件工程。走在这样一个方向,无论是今后的学习还是工作,都不可避免的要和软件工程相关的内容打交道。因此,软件工程的学习,对我们来说有很大的引导性帮助作用。就像以前,总以为软件工程就是就是写程序,编码,只要把程序技术写的好,就万事无忧,现在想想,一个软件的实现,绝不仅仅就是写程序这么简单,它还包括许多我们以前不曾想过的问题,包括代码的风格、规范,以及相关接口等。


  •     实验从最简单的“Hello World”程序编写开始,逐步深入递进,最终完成了一个符合软件工程代码规范的可重用menu系统。期间学到了许多以前没有想过的问题。有许多东西在今后的学习和工作中仍会应用到,比如GitHub等代码库的使用,Markdown的接触使用等,同时更加熟悉了Linux系统下的编程和操作。总的来说,受益匪浅,学到了好多知识。


  •     感谢这次学习到的新的知识,同时通过课程的学习也使自己知道,许多知识仍有待我们去学习和思考,自身仍有许多的不足,能力上也有欠缺,许多应用也需要我们去动手实践和领悟,要想变得更加的强大,就必须不断的进行学习和思考,通过实践来提高的能力和水平,所以,今后也需要不断地努力和学习!加油!