软件工程知识架构全景图、应用解析及推荐书单
软件工程是软件行业知识体系的内核。无论你想走技术路线,还是转向做管理,想要走的更快更稳,那就绕不开软件工程。
软件工程是一门实践性很强的基础学科,对技术人的整个软件项目开发尤为重要,我们理解了“学什么”,现在就要解决“怎么学”的问题。你要先知道,软件工程的“知识树”结构是什么样的,才能更好地理解每个知识点和彼此间的联系。
软件工程知识架构全景图
软件工程的核心知识点,用一个简单的公式来理解就是:软件工程=过程+方法+工具。
在《软件工程——实践者的研究方法》这本经典软件工程教材中,作者Roger S.Pressman画了一张图,高度概括了整个软件工程的核心知识。
由图可见,“质量焦点”在最底层,这不难理解,软件工程是为了应对软件危机诞生的学科,其目标就是为了要聚焦于质量,构建和维护高质量的软件。可以说,聚焦于质量就是软件工程的基石。
- 过程
解决软件过程中的混乱,将软件开发过程中的沟通、计划、建模、构建和部署等活动有效地组织起来。两大主流的软件过程指导框架:瀑布模型和敏捷开发。
思维导图1
-
过程
- 瀑布模型
- 瀑布模型
- 增量模型
- 迭代模型
- 其他衍生模型
- 敏捷开发
- Scrum
- 极限编程
- 看板
- 其他敏捷方法
- 瀑布模型
-
方法
如何分析用户需求?如何对产品进行测试验收?如何进行系统架构设计等?在软件开发的整个过程中,你需要掌握构建系统的方法学。
思维导图2
-
方法
- 项目定义和计划
- 可行性分析
- 项目计划
- 流程规范
- 风险管理
- 配置管理
- 需求分析
- 需求分析
- 变更管理
- 设计
- 架构设计
- 技术选型
- 重构
- 编码
- 程序编码
- 单元测试、集成测试
- 持续集成
- 测试
- 测试用例编写
- 功能测试、性能测试
- 质量与安全
- 运行维护
- 版本发布
- 故障调试
- 日志分析
- 线上监控
- 项目定义和计划
-
工具
知道了过程,掌握了方法,那么具体落到操作层面,就会涉及到工具的使用。你需要工具来辅助方法的执行,把一些手动的工作自动化,把流程规范化,提高编码效率,并把一些流程规范起来。
思维导图3
- 工具
- 项目管理
- 任务跟踪工具
- 项目计划工具
- 团队沟通工具
- 需求分析
- 需求跟踪工具
- 原型制作工具
- 设计
- UML建模工具
- 图标制作工具
- 开发
- 源代码管理
- 持续集成工具
- 测试
- Bug跟踪工具
- 测试管理平台
- 自动化测试工具
- 压力测试工具
- 运行维护
- 自动化部署
- 日志分析工具
- 线上监控工具
- 项目管理
软件工程应用解析
给了你软件工程学的公式,也对软件工程有了更为全面的了解,看起来软件工程学很简单,但这些内容一下子要吃透也不容易。除了理论之外,你还需要学习国内外前沿的、典型的项目案例,这样才能帮你真正理解软件工程,并应用到软件项目开发实践中。
这些问题在专栏中都会有具体的案例帮你理解。
1、小团队如何应用软件工程?
- 小团队的问题和瓶颈是什么
- 软件工程在哪些方面可以帮助改善
- 找到适合团队的最佳实践
2、以 VS Code 为例,看大型开源项目是如何应用软件工程的?
- 功能如何产生的
- Bug如何跟踪修复
- 一个PR(Pull Request)的工作流程
- 如何测试和发布
3、微软、谷歌、阿里巴巴等大厂是怎样应用软件工程的?
- 微软的MSF框架,Windows的项目管理
- 不差钱不缺人的谷歌是怎么构建高质量产品的
- 阿里巴巴是怎样通过软件工程来保障像双11这样项目的质量的
4、从软件工程的角度理解微服务、云计算、人工智能。
- 跳出技术之外去理解新技术
- 新技术对软件项目的开发和团队构成的影响
推荐书单 | 专栏之外的延伸学习
除了专栏的学习之外,我也推荐你一些书籍,你可以参考,作为专栏内容的补充。
1.基础理论篇
-
《构建之法》作者:邹欣
- 系统性整理软件工程知识点及技能要求
-
《知行合一: 实现价值驱动的敏捷和精益开发》作者:丛斌
- 深入分析敏捷开发和CMMI
-
《软件工程——实践者的研究方法》作者:【美】罗杰 S.普莱斯曼(Roger S.pressman)
- 高校软件工程标准教材
2.经典篇
-
《人月神话》作者:【美】弗雷德里克·布鲁克斯(Brooks,F.P.)
- 40年畅销不衰
-
《人件》作者:美国 Tom DeMarco,Timothy Lister
- 知识型企业的核心是人,而不是技术。
3.实践篇
-
《持续交付》作者:【英】Jez Humble , David Farley
- 实现更快、更可靠、低成本的自动化软件交付
-
《走出软件作坊》作者:阿朱
- 国内小型IT企业如何解决软件开发过程中的问题
作者介绍
宝玉,硕士毕业于美国德保罗大学,团购鼻祖网站 Groupon 资深开发工程师,前上海众游技术总监,曾参加中国移动飞信项目的核心开发,微软最有价值技术专家。
通过学习专栏,你将获得
- 拿来即用的软件工程方法论
- 日常工作的实战场景剖析
- 谷歌、微软等公司的最佳实践案例
- 从软件工程的视角来思考问题d