软件工程学习总结

来源:互联网 发布:python 安卓 编辑:程序博客网 时间:2024/05/19 12:16
  • 赵展翔 SA17225524 + 原创作品转载请注明出处 +《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006

对软件工程的个人理解

通过这学期学习了孟宁老师的高级软件工程这门课:

  • 通过写一个hello world小程序学习了linux环境下的开发以及vi环境的基本操作,同时也学习了github的使用,养成了一个良好的习惯。
  • 这门课的内容基础却很重要,非常适合初学软件工程的同学以及想改善代码质量的开发者。
  • 通过7次线上作业,循序渐进学学习了模块化,接口设计,低耦合高内聚等思想,来改善了代码的风格、可重用性等。

软件工程这门课主要就是对拿到手的项目进行合理可靠的分析,并对开发过程有规范的流程,使我们可以在预期内开发出高质量的项目。
打一个或许不是很恰当的比方:工人们在盖房子,使用的是砖头,结构高耦合,这样的房子很容易出问题,并且如果想进行二次改造、挪移也非常不方便。软件工程在这里的作用就是讲砖头变成积木一样的材料,结构稳定,低耦合,可移植性可重用性强,二次改造也很方便。

实验报告

github传送门,附完整代码

实验一:写一个hello world小程序
实验二:命令行菜单小程序V1.0
实验三:内部模块化的命令行菜单小程序V2.0
实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
实验五:用callback增强链表模块来实现命令行菜单小程序V2.8
实验六(测验):函数的可重入性(reentrant)及线程安全
实验七:将menu设计为可重用的子系统

学习收获

这一学期作为跨专业的cs新手,不吹不黑我觉得这门课挺好的,至少培养了我很多习惯:

  • 学会了使用github提交版本库,学会了如何去维护一个代码更进,如何和别人一起开发
  • 学会了linux环境下的编程通过
  • 学会了代码要规范、易于阅读、无二性。
  • 学会了包容变化是模块化的主要作用。
  • 学会了代码的设计规范:
    KISS(Keep it simple and stupid)
    Using design to frame the code (用设计框代码,设计与实现保持一致)
    不要和陌生人说话
    一定要有错误处理 (功能实现/错误处理:2/8)
    用数据结构来简化代码
    高内聚低耦合的架构设计目标
    函数的可重入性
  • 通过孟老师的软件工程,我确实收获颇多。孟宁老师讲课由浅入深,线上作业注重了实践和知识的结合,和每次的课程非常贴切。从最基本的命令行工具进行迭代优化,从V1.0到了最终版本,讲授的知识也一步一步深入下去。从一开始的几行的menu.c,到最后的menu.c linktable.c makefile的结合,让我实现了对一个代码改进的成就感,真的感觉很好。
  • 结合了线下的vue教程,虽然一开始我很排斥学习前端,但是后来发现vue这个框架确实好用,与时俱进的教学方式很好,在vue的教学中,也与软件工程相结合,思想类似,实现了跨语言对软件工程的理解。

致谢

这学期的课程真的很不错,不管之前别人怎么看或者是我怎么想,但是这上半学期下来软件工程真的让我收获太多了,算是让我正儿八经的入门了吧。感谢孟老师的付出,在课上让大家对这门课认识得更广更深,在课下准备了这么多充分的材料循序渐进让大家学习。

这种新颖的教学方式我觉得更加契合现在的教学,如果仅仅是传统的上课,真的学习时间太短了。这样的方式让大家最大限度的学习了相关知识。我非常喜欢并且支持。

感谢孟老师,这学期辛苦了!您教的真的很好,希望以后这门课可以有更多的课时,让大家学习更深入的知识以及更加功能化的优化我们的“命令菜单”。

真的超级感谢!