工欲善其事必先利其器
老师从实用性和高效性角度出发,向我们讲解了:VSCode、Git、Vim和正则表达式。
工程化编程实战——代码中的软件工程
本节讲解了代码规范和代码风格,阐述了其在软件开发过程中的重要性。代码规范的原则包括简明、易读、无二义性等。其次还讲述了模块化的基本原理、模块化代码的基本写法、软件设计中的一些基本方法。
通过实现:“使用Go或Rust实现一个命令行的菜单小程序,最终目标是完成一个通用的命令行的菜单子系统便于在不同项目中重用”为例,我深刻的理解了代码规范的重要性。
从需求分析到软件设计
本节通过讲述软件是怎样样诞生的,软件在开发过程中要遵循哪些要求,以此引入了需求分析的概念。学习了如何从获取需求,需求分析到软件设计的过程,学习了敏捷统一过程、对象交互建模和形成软件设计方案的基本方法。介绍了对象交互建模的基本概念和方法。
本章节以面向对象的分析和设计为思想方法的主线,学习了一种从需求分析到软件设计的基本建模方法,我在完整地学习了这种从需求分析到软件设计的基本建模方法之后,对面向对象的概念有了切身体会。
软件科学基础概论
本节主要介绍了软件的定义、特点、分类、生命周期和开发模型等基础概念。软件的特点包括复杂性、易变性、不可见性和不可触摸性等。软件的分类包括系统软件、应用软件和中间件等。软件的生命周期包括需求分析、设计、编码、测试和维护等阶段。软件的开发模型包括瀑布模型、迭代模型、增量模型和螺旋模型等。然后讲解了设计模式,它是一种解决软件设计问题的经验总结,可以帮助开发人员更好地处理复杂的问题,提高软件的可靠性和效率。最后介绍了软件架构(三层架构、MVC架构、MVVM架构)、软件架构风格(管道-过滤器、客户-服务、P2P、发布-订阅、CRUD、层次化)、软件架构的描述方法(分解视图、依赖视图、泛化视图、执行视图、实现视图、部署视图、工作任务分配视图)以及几种重要的软件质量属性(易于修改维护、良好的性能表现、安全性、可靠性、健壮性、易用性、商业目标)。
软件危机和软件过程
本节主要学习了软件危机的产生过程及原因,并学习了TSP、CMM/CMMI、敏捷方法和DevOps等软件开发和评估方法,用于应对软件危机和保证软件质量。
总结
在这门课中,我学到了如何使用git、VSCode和正则表达式,这是对未来工作非常有帮助的技能,紧接着深入了解了软件开发的各个方面,从软件架构的设计、敏捷统一过程到设计模式,这些知识的学习,能够让我更高效地开发出一个较好的软件产品,并且能够有比较清晰的代码结构和规范,也在课下的不断实践中,加深了对这些知识的理解,只有自己亲身去实践,才能够体会到这些设计方法的高明之处,在课堂中的学习以及在课下的练习,让我对于软件工程又有了更深入的理解,我不仅掌握了专业的知识和技能,还培养了解决问题的能力,这对未来的职业发展是非常有帮助的。