报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

软件工程学习路线图 | 极客时间

  • 2019-05-18
  • 本文字数:1835 字

    阅读完需:约 6 分钟

软件工程学习路线图 | 极客时间

软件工程知识架构全景图、应用解析及推荐书单


软件工程是软件行业知识体系的内核。无论你想走技术路线,还是转向做管理,想要走的更快更稳,那就绕不开软件工程。


软件工程是一门实践性很强的基础学科,对技术人的整个软件项目开发尤为重要,我们理解了“学什么”,现在就要解决“怎么学”的问题。你要先知道,软件工程的“知识树”结构是什么样的,才能更好地理解每个知识点和彼此间的联系。

软件工程知识架构全景图

软件工程的核心知识点,用一个简单的公式来理解就是:软件工程=过程+方法+工具。


在《软件工程——实践者的研究方法》这本经典软件工程教材中,作者 Roger S.Pressman 画了一张图,高度概括了整个软件工程的核心知识。



由图可见,“质量焦点”在最底层,这不难理解,软件工程是为了应对软件危机诞生的学科,其目标就是为了要聚焦于质量,构建和维护高质量的软件。可以说,聚焦于质量就是软件工程的基石。


  • 过程


解决软件过程中的混乱,将软件开发过程中的沟通、计划、建模、构建和部署等活动有效地组织起来。两大主流的软件过程指导框架:瀑布模型和敏捷开发。

思维导图 1

  • 过程

  • 瀑布模型

  • 瀑布模型

  • 增量模型

  • 迭代模型

  • 其他衍生模型

  • 敏捷开发

  • Scrum

  • 极限编程

  • 看板

  • 其他敏捷方法

  • 方法


如何分析用户需求?如何对产品进行测试验收?如何进行系统架构设计等?在软件开发的整个过程中,你需要掌握构建系统的方法学。

思维导图 2

  • 方法

  • 项目定义和计划

  • 可行性分析

  • 项目计划

  • 流程规范

  • 风险管理

  • 配置管理

  • 需求分析

  • 需求分析

  • 变更管理

  • 设计

  • 架构设计

  • 技术选型

  • 重构

  • 编码

  • 程序编码

  • 单元测试、集成测试

  • 持续集成

  • 测试

  • 测试用例编写

  • 功能测试、性能测试

  • 质量与安全

  • 运行维护

  • 版本发布

  • 故障调试

  • 日志分析

  • 线上监控

  • 工具


知道了过程,掌握了方法,那么具体落到操作层面,就会涉及到工具的使用。你需要工具来辅助方法的执行,把一些手动的工作自动化,把流程规范化,提高编码效率,并把一些流程规范起来。

思维导图 3

  • 工具

  • 项目管理

  • 任务跟踪工具

  • 项目计划工具

  • 团队沟通工具

  • 需求分析

  • 需求跟踪工具

  • 原型制作工具

  • 设计

  • UML 建模工具

  • 图标制作工具

  • 开发

  • 源代码管理

  • 持续集成工具

  • 测试

  • Bug 跟踪工具

  • 测试管理平台

  • 自动化测试工具

  • 压力测试工具

  • 运行维护

  • 自动化部署

  • 日志分析工具

  • 线上监控工具


戳此订阅,获得更多软件工程的核心知识点

软件工程应用解析

给了你软件工程学的公式,也对软件工程有了更为全面的了解,看起来软件工程学很简单,但这些内容一下子要吃透也不容易。除了理论之外,你还需要学习国内外前沿的、典型的项目案例,这样才能帮你真正理解软件工程,并应用到软件项目开发实践中。


这些问题在专栏中都会有具体的案例帮你理解。


1、小团队如何应用软件工程?


  1. 小团队的问题和瓶颈是什么

  2. 软件工程在哪些方面可以帮助改善

  3. 找到适合团队的最佳实践


2、以 VS Code 为例,看大型开源项目是如何应用软件工程的?


  1. 功能如何产生的

  2. Bug 如何跟踪修复

  3. 一个 PR(Pull Request)的工作流程

  4. 如何测试和发布


3、微软、谷歌、阿里巴巴等大厂是怎样应用软件工程的?


  1. 微软的 MSF 框架,Windows 的项目管理

  2. 不差钱不缺人的谷歌是怎么构建高质量产品的

  3. 阿里巴巴是怎样通过软件工程来保障像双 11 这样项目的质量的


4、从软件工程的角度理解微服务、云计算、人工智能。


  1. 跳出技术之外去理解新技术

  2. 新技术对软件项目的开发和团队构成的影响


戳此订阅,学习更多案例

推荐书单 | 专栏之外的延伸学习

除了专栏的学习之外,我也推荐你一些书籍,你可以参考,作为专栏内容的补充。


1.基础理论篇


  • 《构建之法》作者:邹欣

  • 系统性整理软件工程知识点及技能要求

  • 《知行合一: 实现价值驱动的敏捷和精益开发》作者:丛斌

  • 深入分析敏捷开发和 CMMI

  • 《软件工程——实践者的研究方法》作者:【美】罗杰 S.普莱斯曼(Roger S.pressman)

  • 高校软件工程标准教材


2.经典篇


  • 《人月神话》作者:【美】弗雷德里克·布鲁克斯(Brooks,F.P.)

  • 40 年畅销不衰

  • 《人件》作者:美国 Tom DeMarco,Timothy Lister

  • 知识型企业的核心是人,而不是技术。


3.实践篇


  • 《持续交付》作者:【英】Jez Humble , David Farley

  • 实现更快、更可靠、低成本的自动化软件交付

  • 《走出软件作坊》作者:阿朱

  • 国内小型 IT 企业如何解决软件开发过程中的问题


更多精彩内容,订阅后立即获得

作者介绍

宝玉,硕士毕业于美国德保罗大学,团购鼻祖网站 Groupon 资深开发工程师,前上海众游技术总监,曾参加中国移动飞信项目的核心开发,微软最有价值技术专家。

通过学习专栏,你将获得

  • 拿来即用的软件工程方法论

  • 日常工作的实战场景剖析

  • 谷歌、微软等公司的最佳实践案例

  • 从软件工程的视角来思考问题 d


内容选自极客时间软件工程之美专栏


2019-05-18 08:0011719

评论

发布
暂无评论
发现更多内容

【智慧农业】从“看天吃饭”到“知天而作”,乡村振兴全靠 TA

IoT云工坊

人工智能 物联网 智慧农业 庭院灌溉 温室大棚

来了!这份阿里P7大佬梳理的Java注解和反射精髓笔记,信息量过大

飞飞JAva

Java

高德 Serverless 平台建设及实践

Serverless Devs

阿里云 Serverless 云原生

异步编程的几种方式,你知道几种?

xcbeyond

Java 异步编程 5月日更

10个 解放双手的 IDEA 插件,这些代码都不用写(第二弹)

程序员小富

Java 后端 IDEA

IM扫码登录技术专题(三):通俗易懂,IM扫码登录功能详细原理一篇就够

JackJiang

即时通讯 IM 扫码

阿里P7:每个码农都应该知道的MySQL主从复制方法,看这篇就够了

牛哄哄的java大师

Java MySQL 数据库

GitHub霸屏文章!清华教授手写保姆级笔记Scala - 类,网友:太香了

牛哄哄的java大师

Java scala

被解救的代码 - 代码即服务时代来了!

Serverless Devs

阿里云 Serverless 云原生

前端项目上传图片,压缩,拍照图片旋转解决方案

Vue js canvas axios

【技术干货】文件系统中的“锁”

焱融科技

容器 分布式 云原生 高性能 文件存储

消除数据孤岛,华为云DRS让一汽红旗ERP系统数据活起来

华为云开发者联盟

数据库 GaussDB 数据孤岛 华为云DRS ERP

☕【Java技术之旅】如何彻底认识AQS的原理(上篇)

码界西柚

Java AQS JVM JUC 5月日更

拥有一个高性能低延时数据库是什么样的体验?

华为云开发者联盟

数据库 华为云 GaussDB GaussDB(for Cassandra) 低延时

消息队列的两种模式

五分钟学大数据

kafka 5月日更

300条数据变更引发的血案-记某十亿级核心mongodb集群部分请求不可用故障踩坑记

杨亚洲(专注MongoDB及高性能中间件)

数据库 mongodb 架构 MySQ 分布式数据库mongodb

阿里P7大佬!王者级讲解ConcurrentHashMap源码,码农:太透彻了

牛哄哄的java大师

Java ConcurrentHashMap

青海大学智慧微能源数字孪生可视化系统

ThingJS数字孪生引擎

大前端 可视化 3D可视化 数字孪生

JavaScript设计模式之单例模式

程序员海军

JavaScript 大前端 设计模式 单例模式

python解释器+pycharm的安装

Geek_6370d5

#python学习之路

凭借师兄甩给我的通关秘籍,顺利拿到字节Offer

学Java关注我

Java 编程 架构 面试

一文带你全面了解java对象的序列化和反序列化

华为云开发者联盟

Java 序列化 java对象 反序列化 Serializable接口

Apache Hue介绍

大数据技术指南

hue 5月日更

5月20日,GaussDB将有大事发生

华为云开发者联盟

数据库 云原生 华为云 GaussDB TechWave

云原生的进一步具象化

阿里巴巴云原生

大数据 容器 云原生 监控 中间件

Nginx如何配置Http、Https、WS、WSS?

冰河

nginx 负载均衡 反向代理 https HTTP

阿里大牛亲码 Spring AOP详解笔记全网开源,学透并发只需3天

飞飞JAva

spring aop

如何下载和保存YouTube上的中英双语字幕和视频

flyfk

字幕

云厂商下一块必争之地就是它了!

Serverless Devs

Serverless 云原生

太赞了!美团大牛强推的Spring事务笔记,上线仅1天就获赞上万

飞飞JAva

Java 事务spring

云原生下的灰度体系建设

阿里巴巴云原生

容器 运维 云原生 k8s 监控

软件工程学习路线图 | 极客时间_文化 & 方法_宝玉_InfoQ精选文章