软件工程的课程总结与学习心得

软件工程学习心得

课程总结

孟宁老师将软件工程这门课程分为5个部分,这5个部分包括了常用的编程工具的使用以及系统的软件工程的概论、要点,总结如下:

  1. 工欲善其事,必先利其器
  2. 工程化的编程实战
  3. 从需求分析到软件设计
  4. 软件科学基础概论
  5. 软件危机和软件过程

孟宁老师讲课生动有趣,课程循序渐进,在讲解理论的过程中,会安排相应的实验,有着很好的引导效果。在本学期的课程内容中,令我印象最深刻的是“高内聚,低耦合”这一软件设计理念。从前我并不理解“高内聚,低耦合”的意思,在我从前的认知里,仅仅把它当作是学习计算机科学过程中的一句经典名言,而对其真正的意义和背后的哲学理念并未有过更多的探索。而现在,经过学习之后,我有一些见解。所谓内聚是指每个模块尽可能独立完成自己的功能,不依赖于模块外部的代码,耦合是指模块与模块之间接口的复杂程度,模块之间联系越复杂耦合度越高,就越会有牵一发而动全身这种困境。而高和低就是我们期望的它们的程度。高内聚要求我们的软件模块目的性很强,只负责一个任务,无需关心其他的任务。低耦合是指我们尽量将模块与模块之间冗余的依赖降至最低。这让我想起了自己以前编写的代码,一旦代码量多起来,势必造成模块之间的杂乱无章和模块的目的不明。在观之我们的日常,一旦琐事繁多,自己也会杂乱无章,过得一团糟,在看那些优秀的人,目的性明确,不让一件事影响另一件,井井有条。所谓“高内聚低耦合”,于我而言更像是一种生活理念。而我们的软件也是这样,一个软件好比就是一个人,而我们程序员就是他的造物者,我们编写的代码决定了他过的一团糟还是有序高效。在我学习软件工程的这一学期里,深刻的明白了这一理念之于软件工程的重要性!

学习心得

时间飞逝,不知不觉间,我已经修完高级软件工程这门课程。在这一学期的学习中,虽然我不能说我将软件工程学习的有多么的好,但是通过学习,我还是受益良多。
  在以前,我⼀直对软件存在⼀些偏见或则是误解,认为软件就是程序,软件的开发就是编写程序,只要编完了程序,⼀切也就ok了,而且我还片面的认为只要我掌握了时下最新的语言和工具,那么我就能写程序了,我也能编写高质量的软件了。但是通过了这门课的学习,使我认识到了我以前的错误。软件其实不仅仅是程序,软件开发其实也不仅仅是编写程序,软件是思想在硬件上的载体和体现,处理的是逻辑和信息。唯有对软件和软件的开发过程,有充分的认识,才能更好的开发出,过程受控、质量受控的软件产品。
  另外,在学习这门课程以前,我只知道vscode、git、vim等工具的使用,而不知道其背后竟蕴含着高深的软件工程原理,知其然而不知其所以然。古人常说“授人以鱼不如授人以渔”,如今方知道一个工具能成为当下的热门,必有其理论的卓越之处所在。而在孟老师的课程中,正是一个对于这些理论探索的过程。孟老师在高级软件工程这门课的开始,就对我们介绍这些工具,为我们讲解这些工具背后的软件工程之美,通过这些日常用到的工具带领我们进入软件工程的知识殿堂。
  随着时间的推移,我慢慢了解到了一些具体的软件工程方法。首先是代码风格,在平常的编程中,要彻底摒弃以往凭感觉写代码的方式,按照标准规格来写代码,不仅方便他人阅读,也有利于自己养成良好的代码书写习惯。另外,对于大型程序,要养成模块化的思维,模块化的学习让我认识到如果提高代码的效率,模块之间尽量做到高内聚、低耦合。要注重代码的可重用性,不要重复造轮子,注意可重用性可以避免一些无用功,复用已有的代码,在代码可重用性层次上面要非常注重模块化程序接口的设计,尽量多考虑到以后可能会用到的一些接口。还有是线程安全,在编写代码的过程中,我们要尽力编写安全的代码。除了这些,孟老师还为我们讲解了用例图,UML图,时序图的科学绘制方法,还有需求分析,用例分析,凡所涉及,无不尽言。在这节课中,我还了解到了软件工程的前生今世。孟老师不仅将理论为我们细致展开,还为我们讲解了软件工程这门学科的意义。我印象最深刻的是,人月神话中的“银弹不存在”,孟老师引用软件工程领域的大师们的话,为我们阐述了软件工程的复杂性本质,让我对软件工程这一学科产生了更多的兴趣和想要“找出银弹”这一挑战的动力。
  最后,我想说,孟老师的高级软件工程,让我改变了对软件工程这一学科的印象,并对此产生了浓烈的兴趣。同时,孟老师的授课风格也给我带来了以往所收获不到的惊喜。同学们可以自由地发言,孟老师也极其鼓励大家有不同的想法。学期结束也伴随着这门课程的结束,但这不意味着我对软件工程的探索止步,软件工程的魅力推动我朝着更高的要求前进。希望在以后的工作中,我能将这门课的理论转化为实际,编写这门课程所期待的高质量软件!

参考资料:代码中的软件工程 https://gitee.com/mengning997/se
学号:387

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件工程课程实践是一门帮助学生将理论知识应用于实际项目开发的课程。而CSDN(China Software Developer Network)则是一个面向程序员和IT从业人员的技术社区,提供丰富的技术资源和交流平台。在软件工程课程实践中,CSDN可以发挥重要的作用。 首先,CSDN提供了大量的技术文档和教程,包括各类编程语言、开发工具和框架的详细介绍和使用方法。学生可以通过搜索和阅读这些文档,快速了解相关技术,并且能够在项目开发过程中运用到实际情境中。 其次,CSDN也是一个开放的技术交流平台,学生可以在其中与其他程序员进行交流和讨论,分享自己的学习心得和项目经验。通过参与CSDN的技术讨论,学生可以获得更多的实践经验和解决问题的思路,不断提升自己的编程水平。 此外,CSDN还提供了一些开源项目和代码示例,学生可以参考这些项目的实现方式和代码结构,借鉴其中的优秀设计和实践经验,从而提高自己的项目开发能力。同时,学生也可以将自己的项目分享到CSDN上,得到其他程序员的意见和建议,进一步完善自己的作品。 总之,软件工程课程实践和CSDN是相辅相成的,学生可以通过CSDN获取到更多丰富的技术资源和实践经验,提升自己的项目开发能力和解决问题的能力。因此,在软件工程课程实践中加入CSDN的学习和交流,可以为学生的专业发展打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值