高级软件工程课程总结

工欲善其事必先利其器

编程神器 Visual Studio Code

Visual Studio Code是一个轻量且强大的代码编辑器,支持Windows,OS X和Linux。内置JavaScript、TypeScript和Node.js支持,而且拥有丰富的插件生态系统,可通过安装插件来支持C++、C#、Python、PHP等其他语言。 在VSCode中学会了一些简单的操作,比如Ctrl+O为打开文件夹,Ctrl+N是新建文件夹等……

git

在这里插入图片描述
Git 是一种分布式版本控制系统,使得团队能够更好地协作、管理和控制代码的开发过程,提高代码质量和开发效率。无论是个人开发者还是大型团队,Git 都是一个非常有价值的工具。
常用操作如下:

  1. 初始化仓库:git init 通过该命令将当前目录初始化为一个Git仓库。
  2. 克隆仓库:git clone 使用该命令从远程仓库中克隆一个副本到本地。
  3. 添加文件到暂存区:git add 将指定的文件添加到Git的暂存区,准备进行提交。
  4. 提交修改:git commit -m “commit message” 将暂存区中的修改提交到仓库,并附上相应的提交消息。
  5. 查看状态:git status 显示当前工作树和暂存区的状态,包括新增、修改和删除的文件。
  6. 查看提交历史:git log 显示当前分支的提交历史记录,包括作者、日期和提交消息。
  7. 创建分支:git branch 创建一个新的分支,基于当前所在的提交。
  8. 切换分支:git checkout 切换到指定的分支,以开始在该分支上工作。
  9. 合并分支:git merge 将指定分支的修改合并到当前分支。
  10. 拉取远程代码:git pull 从远程仓库中拉取最新的更改并合并到当前分支。
  11. 推送代码到远程仓库:git push origin 将当前分支的本地更改推送到远程仓库。
  12. 撤销修改:git checkout – 恢复指定文件到最近一次提交的状态,丢弃在工作树中的修改。

正则表达式十步通关

正则表达式可以用于测试字符串内的模式,我学到了基本的字符串搜索方法,通配符的基本用法,匹配具有多种可能性的字符集,使用捕获组复用模式,使用复用捕获组的方式进行替换等。

代码中的软件工程

本章以menu案例为例,完成一个通用的命令行的菜单子系统便于在不同项目中重用,在本项目的学习过程中,我了解到了模块化的基本原理,其本质是关注点的分离,最终每一个软件模块都将只有一个单一的功能,从而整个软件系统也更容易定位软件缺陷bug,进行了模块化设计之后我们往往将设计的模块与实现的源代码文件有个映射对应关系,因此我们需要将数据结构和它的操作独立放到单独的源代码文件中,这时就需要设计合适的接口,以便于模块之间互相调用。在迭代该项目的过程中我学到了利用LinkNode结构体在保证逻辑正确的情况下,节省内存,减少冗余的技巧方法,也深入理解了callback函数的妙用……

需求分析到软件设计

在这部分主要学习软件开发过程中,如何从获取需求,需求分析到软件设计的过程,学习了原型化方法、建模等方法进行需求分析,重点学习了对象交互建模的基本步骤为找出关键步骤进行剧情描述、将剧情描述转换成剧情描述表,将剧情描述表转换成序列图,从分析序列图到设计序列图,并通过实验四对此有更加深刻的理解。
通过学习面向对象的分析和设计方法,我们深入了解了从需求分析到软件设计的基本建模方法。面向对象思想成为我们处理软件开发过程中的主要思维方式,将对象作为基本构建块,构建起一种主流的软件范型。我们学习了编程语言、UML、开发方法、设计模式、软件架构和工程思想方法等一系列相关内容,从而形成了一套完整的知识体系。这种学习过程使我们对面向对象的概念有了亲身体会,并为我们在实际开发中提供了强大的工具和思想支持。

软件科学基础概论

本部分重点介绍了软件工程领域的基本概念。如软件的基本构成元素、软件的基本结构(顺序结构、分支结构、循环结构、函数调用框架、继承和对象组合)、软件的内在特性(复杂性和易变性)、设计模式的基本概念(类、对象、属性以及类与类之间的关系)、常用的设计模式(单例(Singleton)模式、原型(Prototype)模式、建造者(Builder)模式、策略(Strategy)模式、命令(Command)模式)、分类和设计原则(开闭原则、Liskov替换原则、依赖倒置原则、单一职责原则、迪米特法则、合成复用原则)。同时还介绍了重要的软件架构举例(三层架构、MVC架构、MVVM架构)还有一些重要的质量属性等。

软件危机和软件过程

在本章中,我主要学习了软件危机产生的背景,重点掌握了软件危机的根本问题即软件概念结构的复杂性无法达成软件概念的完整性和一致性,自然无法从根本上解决软件危机带来的困境,学习了软件过程模型(瀑布模型、带原型的瀑布模型、V模型等……)还有团队能力成熟度的CMMI等级。

总结

在本学期的高级软件工程课程中,我有幸选修了孟宁老师的课程。课程内容从多个方面全面介绍了软件工程领域的常见知识,为我们提供了宝贵的学习资源。
首先,我们学习了软件工程中的基本工具的使用,如版本控制系统、构建工具和测试框架等。这些工具在实际开发中起到关键作用,通过学习它们的使用,我们能够提高代码的质量和开发效率。
其次,孟老师向我们详细介绍了设计模式的概念和常见的设计模式。设计模式是在软件设计中经过验证的解决方案,通过学习和应用设计模式,我们能够设计出更灵活、可扩展和可维护的软件系统。
此外,课程还涵盖了软件架构的知识,包括常见的架构模式和架构风格。软件架构是系统的基础结构,对系统的性能、可靠性和可维护性具有重要影响。通过学习软件架构的原则和实践,我们能够设计出符合需求的合理架构。
孟老师还向我们介绍了软件危机和软件过程的概念。软件危机指的是在软件开发中普遍存在的成本超支、进度延误和质量问题等挑战。了解软件危机的原因和解决方法,能够帮助我们更好地应对这些挑战。软件过程则是指软件开发的一系列活动和方法,通过学习和实践软件过程,我们能够规范和优化开发流程,提高软件质量和项目管理效果。
通过孟老师由浅入深的讲解,我们对软件工程领域的知识有了更深入的理解。我们期待在今后的学习和工作中能够运用所学知识,编写出高效、可靠的代码,并为软件开发做出贡献。感谢孟老师的精彩授课,为我们的职业发展带来了宝贵的启示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值