软件工程之美学习-基础学习篇

前言

软件工程是一种思想,是我们进行软件开发过程中的方法论。

该系列文章为即可时间的课程《软件工程之美》的学习总结笔记。

为何要学好软件工程

不学习使用软件工程,那我们的开发过程可能是这样的:

  • 开发时没有分析需求设计项目,上手就写,导致后期难维护,加班熬夜去填坑
  • 缺少理论指导,遇到新项目不能举一反三,工作很平庸
  • 遇到需求变更,无力反抗
  • 做项目没计划性,想到哪就做到哪,比其他同事做的慢。
  • 不知如何团队协作。

以上形容的就是在学校做项目以及实习时候的我,做点小项目还能勉强做出来,但是一旦遇到大一点的项目,需要多人协作的项目,其实我这套开发模式就不行了。

学习完软件工程之后,我的开发模式改变了

  • 分析需求、确认需求
  • 项目设计(模块拆分、数据库、架构)、确认设计
  • 编码
  • 测试
  • 运行维护

现在我花了大量时间在前2步,项目设计好后,发现之前的那些问题,都可以很快的定位解决了。

自学编程其实只能算得上是学习各种编程方法(术),而软件工程则是这些背后的,即软件项目背后的各种问题背后的原因,以及各种方法后面的理论指导。

在软件开发领域,那些不变的知识点为数据结构、算法、设计模式、软件工程、面向对象编程

想象一下,不论是前端还是后端,当你

  • 接到一个开发任务,如果想要开发出客户想要的内容,是不是得先做需求分析?确认你分析出的就是客户想要的。
  • 接手一个大的复杂的功能模块,是不是得先做设计,进行解耦,拆分?
  • 完成一个模块的编写是不是得进行测试?
  • 为了保证代码步丢失,是不是还得进行源代码管理?

这些就是脱离具体的开发语言的软件工程知识,技术更迭速度很快,难以把握,但是这些软件开发背后的逻辑却万变不离其宗,所以我们得掌握好这些逻辑,才能步步为营,不被快速发展的软件开发行业所淘汰。

如何学好软件工程

软件工程是软件行业知识体系的内核,无论是技术还是管理,都绕不开软件工程。

要想学习软件工程,那还得先从全局过一遍,了解其知识的结构是怎么样的。

软件工程知识结构]

质量焦点:是软件工程的基石,可以说明软件工程是为了应对软件危机诞生的学科,目的在于聚焦于质量,构建和维护高质量的软件

过程:即在软件项目的生命周期内,软件从诞生到结束期间,开发与构建系统时要遵循的步骤。其中2种主流的软件过程指导框架瀑布模型敏捷开发模型需要注意。

方法:是整个开发过程中,如何构建系统的方法学。如何分析用户需求,如何测试验收,如何设计架构等等

工具:就是落实具体的方法时,为了完成目标所使用的可以提高我们效率的东西。如自动化测试、自动化部署、源代码管理等等

总的来说,软件工程 = 工具 + 方法 + 过程

软件工程的核心知识点就是围绕软件开发过程,产生的方法学和工具。

以下是软件工程知识点的思维导图:

思维导图

学习软件工程的四大境界:

用器:就是合理使用各种工具,工具规则简单,上手可用,也能很快的看到效果。

学"术":就是方法论,万物皆有方法论。

悟"道":即理解软件工程的核心思想和本质规律。

传道:当自己可以把复杂的知识通过浅显易懂的方式传授给别人,说明你对该知识点已经又很深的理解。同时教学也是最好的学习方式,在传授别人知识的过程种,可让你对知识本身有更深的理解。

如何达到四重境界呢?

做中学:自下而上通过实践来领悟

教中学:自上而下,通过教授知识的同时,自己得到更深的理解。

学习软件工程可以把软件工程分为三个维度:

  • 器:即软件工程中的各种工具
  • 术:即软件工程的各种方法,例如如何做需求分析,如何应对需求变更做变更管理
  • 道:即软件工程的核心思想、本质规律。包括为何要做需求分析,需求变更产生的深层次原因是什么,项目中决策的依据是什么等

或者按照项目进行过程划分为:

  • 项目规划
  • 需求分析
  • 系统设计
  • 开发编码
  • 软件测试
  • 运行维护

等过程,分别介绍每个阶段侧重做哪些事,每个阶段常见问题,以及解决方法。

总结

软件工程就是内功,内功练好了,那么修炼各种武功绝学都会非常容易上手了。如果内功不扎实,那么学再好的武功,其上限也必然高不到哪儿去了。

书单

  • 《构建之法》
  • 《人月神话》

-

文章同时发布在:
个人博客

-

内容侵删
不正确的或过时的请多指教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值