软件工程知识架构全景图、应用解析及推荐书单
软件工程是软件行业知识体系的内核。无论你想走技术路线,还是转向做管理,想要走的更快更稳,那就绕不开软件工程。
软件工程是一门实践性很强的基础学科,对技术人的整个软件项目开发尤为重要,我们理解了“学什么”,现在就要解决“怎么学”的问题。你要先知道,软件工程的“知识树”结构是什么样的,才能更好地理解每个知识点和彼此间的联系。
软件工程知识架构全景图
软件工程的核心知识点,用一个简单的公式来理解就是:软件工程=过程+方法+工具。
在《软件工程——实践者的研究方法》这本经典软件工程教材中,作者 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
评论