高级软件工程课程学习总结

csdn_myx 2022-07-10 21:33:30

一、课程内容总结

  1. 工欲善其事必先利其器

    该部分课程介绍了一些辅助软件工程,开发的常用的软件和工具,包括 VSCode、Git、Vim 和正则表达式。

    1. 介绍了 VsCode 的用法和常用快捷键,探究了 VsCode 背后的架构设计思想。
    2. 以五个常见应用场景为例,介绍了分布式版本控制工具 Git 的基本命令、设计逻辑和常见用法。
    3. 介绍 Vim 的一些常见用法,包括光标移动,文件编辑,命令模式,编辑模式等常见用法及其快捷键。
    4. 介绍了正则表达式的用法,包括基本的搜索、通配符用法、字符集、贪婪匹配和懒惰匹配、转义字符和捕获组等用法。
  2. 代码中的软件工程

    该部分课程以一个工程化C语言项目作为范例,通过代码实践体会软件开发的一些代码规范、基本准则等。

    1. 介绍了项目的编译调试环境配置过程,一些良好的代码规范和风格,以及高质量代码的基本方法

    2. 介绍了模块化软件设计的思想。模块化是在软件系统设计时保持系统内各部分相对独立,以便每一个部分可以被独立地进行设计和开发。这个做法背后的基本原理是关注点的分离,达到低耦合和高内聚的效果。

    3. 介绍了一些可重用软件设计思想。其中一个很重要的概念就是如何设计一个通用的接口,因为软件模块对外提供接口越通用,越能降低各模块之间的耦合度。

    4. 探究了软件工程在多线程场景下的线程安全问题。介绍了可重入函数,线程安全等概念,对Linktable软件模块进行了线程安全分析。

  3. 需求分析与设计

    该部分课程介绍了软件开发从需求分析到设计的一些基本方法。这一部分我们以面向对象的分析和设计为思想方法的主线,提供了一种从需求分析到软件设计的基本建模方法。

    1. 介绍了需求分析的基本方法,用例建模、业务领域建模的方法,面向对象分析涉及的基本概念,最后以 MongoDB 为例介绍了关系数据模型。
    2. 介绍了面向对象分析涉及的基本概念,包括对象和属性,继承关系,聚合关系,关联关系等。
    3. 从需求分析到软件设计过程,包括敏捷统一过程的定义,对象交互建模方法,形成软件设计方案的基本方法等。
  4. 软件系统设计——代码的结构、特性和描述方法

    从最基本的代码控制结构到函数调用框架,到对象封装、设计模式、软件架构,自底向上讲述了软件系统的构建设计思想。

    1. 软件的软件的基本结构,介绍了软件的基本构成元素,控制结构,函数调用框架等,以及一些常见编程机制,比如回调函数,多态,闭包,异步调用,匿名函数等。
    2. 设计模式的基本概念和分类,常用的设计模式简介,以及设计模式背后的设计原则。
    3. 常见的软件架构举例,介绍了由简到难介绍了三层架构,MVC架构,MVVM架构。特别以 Vue.js 为例介绍了如何利用观察者模式实现 MVVM 模式。
    4. 常见软件架构风格与策略,比如管道-过滤器、客户-服务架构、P2P架构、发布-订阅架构、CRUD架构、层次化架构等。
    5. 软件架构的描述方法,包括分解视图,依赖视图,泛化视图,执行视图,实现视图,部署视图,工作任务分配视图等。
    6. 介绍了软件质量的含义,软件质量模型,过程改进模型,软件质量属性等。
  5. 工程过程与项目管理

    1. 介绍了软件危机的前生今世,总结了没有银弹的软件危机本质。
    2. 软件过程模型,介绍了瀑布模型,V模型,分阶段增量和迭代,螺旋模型等。
    3. 软件团队的组织结构,TSP的基本原理,建设高效团队的原则。

二、学习收获和感想

通过本课程的学习,我了解了一个大型软件工程的完整开发流程,包括从需求分析,软件设计,再到编码实现,以及测试、确认评估和后期维护等等一系列阶段。在之前我可能只关注到编码实现部分,通过本课程学习之后,我意识到,其实项目开发过程中还有很多需要注意的细节。

三、参考资料

学号:357

...全文
69 回复 打赏 收藏 举报
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复
发帖
代码中的软件工程

399

社区成员

软件工程教学新范式,强化专项技能训练+基于项目的学习PBL。Git仓库:https://gitee.com/mengning997/se
软件工程 高校
社区管理员
  • 码农孟宁
加入社区
帖子事件
创建了帖子
2022-07-10 21:33