其他分享
首页 > 其他分享> > 中科大-高级软件工程(孟宁)-学习总结

中科大-高级软件工程(孟宁)-学习总结

作者:互联网

一、课程感想

    这个学期选择了孟宁老师的高级软件工程课程,孟宁老师风趣独特的讲课方式和科学合理的传授知识的方法让我受益匪浅。如今,一学期的课程即将结束,来总结一下学习这门课程的一些感想和内容。

    孟老师对于这门的讲授方式有非常独特的理解,在开学的第一节课就讲述了传统的高级软件工程是什么样的,以及他认为的高级软件工程该如何学习。

    这是孟老师ppt中的内容:

 

 

    并且,孟老师举了一个非常贴切的例子来向我们说明了为什么这门课程有非常多的动手练习和实验内容。这是一个陶艺课的故事,一群学习陶艺课程的学生分为两组,一组以制作陶艺的质量作为评分标准,二另一组以制作的数量作为评分标准。一个学期之后,真正好的陶艺作品在那一组?很多人都认为会出现在以质量作为评分标准那一组,但实际上其实出现在以数量作为标准的那一组,这个答案非常出乎我的意料。但是老师解释道,以质量为准的反而有可能会畏手畏脚不敢开始,而且优秀的质量往往是以巨大的数量作为基础的;而以量为准却可以鼓励学生开始制作,所谓千里之行始于足下,只有开始了并且不断地尝试才能不断地提升自己,哪怕刚开始不停的失败,但是在一次次失败中会逐渐停止恐惧、树立起自信,最终获得成功。

    这个例子引起了我的思考,给我带来了一种新的思路。就这样,我们带着一丝新奇的心情开始了软件工程课程的学习。

    课程一共由以下几个部分组成:

      1、工欲善其事必先利其器——Typing、VSCode、Git、Vim、RegEx

      2、代码中的软件工程——一个工程化C语言项目范例

      3、需求分析与设计——从分析到设计的基本方法

      4、软件系统设计——代码的结构、特性和描述方法

      5、工程过程与项目管理——软件危机的前生后世

 

二、课程笔记

工具

先做再学

用不到软件工程中所学的知识,因为做的项目太过于简单

课本:

构建之法

软件工程-理论与实践

推荐书目:

梦断代码、人月神话

Typing
VS code

 

Git

本地版本库
远程版本库
团队项目中的分叉合并
git rebase
fork + pull request

 

正则表达式

 

模块化

耦合度:软件模块之间的依赖程度

内聚度:一个软件模块内部各元素互相依赖的紧密程度

使用本地化外部接口提高代码的适应能力:

设计→代码 ==》 设计→伪代码→代码

可重用软件设计

消费者重用
生产者重用
接口

 

获取需求的主要方法

需求分析的两类基本方法

建模方法

用例建模、业务领域建模、业务数据建模

用例建模
  1. 抽象用例

  2. 高层用例

  3. 扩展用例

基本步骤

*取钱用例分析(写在感想中)

面向对象分析基本概念
业务领域建模
  1. 收集业务领域信息

  2. 头脑风暴

    • 识别业务领域相关的概念

      • 名词和名词短语

      • “Y 的 X”(X of Y)表达方法,比如汽车的颜色

      • 及物动词

      • 形容词

      • 数量词

      • 所有关系的表达方法,如具有、拥有

      • 构成关系的表达方法

      • 包含关系的表达方法

      • ”X 是一种/类 Y“表达方法

    • 对象可以独立存在,属性不可以

  3. 给出分类

  4. 将分类结果用UML图画出

关联类
关系数据模型的MongoDB设计与实现

范式:在尽量减少冗余的情况下,追求数据的一致性

one-to-few

one-to-many

one-to-squillions

反范式化

业务概念原型

概念原型=用例+数据模型

软件设计

敏捷统一过程

售前计划

开工后计划

增量阶段

对象交互建模

深入到功能内部的具体实现

剧情描述、剧情描述表

 

 

标签:git,中科大,代码,建模,用例,软件工程,课程,孟宁
来源: https://www.cnblogs.com/mumuxin-gv/p/16453034.html