软件工程之美
宝玉
Groupon 资深工程师,微软最有价值专家
44272 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 55 讲
软件工程之美
15
15
1.0x
00:00/00:00
登录|注册

学习攻略 | 怎样学好软件工程?

敏捷开发
瀑布模型
传道
悟道
学术
用器
工具
方法
过程
质量焦点
做中学和教中学
学习软件工程的四重境界
软件工程=工具+方法+过程
软件工程的核心知识
总结
参考书目
如何学习软件工程
软件工程知识架构全景图
为什么要学软件工程
什么是软件工程
学习攻略 | 怎样学好软件工程?
参考文章

该思维导图由 AI 生成,仅供参考

你好,我是宝玉。
关于“什么是软件工程”和“为什么要学软件工程”,我在开篇词中已经简单介绍过了。总结来说:软件工程是软件行业知识体系的内核。无论你想走技术路线,还是转向做管理,想要走的更快更稳,那就绕不开软件工程。
在正式开始学习前,我们先来聊聊应该如何学习软件工程。你要先知道,软件工程学科的“知识树”结构是什么样的,才能更好地理解每个知识点和彼此间的联系。

软件工程知识架构全景图

首先你要明确,当我们谈软件工程学时,究竟在讲些什么呢?
在《软件工程——实践者的研究方法》这本经典软件工程教材中,作者 Roger S.Pressman 画了一张图,高度概括了整个软件工程的核心知识。
由图可见,“质量焦点”在最底层,这不难理解软件工程是为了应对软件危机诞生的学科,其目标就是为了要聚焦于质量,构建和维护高质量的软件。可以说,聚焦于质量就是软件工程的基石。
那“过程”指的是什么呢?
要构建高质量软件,则要解决软件过程中的混乱,将软件开发过程中的沟通、计划、建模、构建和部署等活动有效地组织起来。而软件过程,就是在软件项目的生命周期内,也就是软件从诞生到结束这期间,在开发与构建系统时要遵循的步骤。
有两种过程框架你一定经常听到,那就是瀑布模型和敏捷开发。这是在软件工程多年的发展中,逐步形成的两种主流的软件过程指导框架。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

学习软件工程需要掌握工具、方法、过程和本源四个层次。软件工程的核心知识围绕软件开发过程、方法学和工具展开。学习软件工程的四重境界包括用器、学术、悟道和传道。建议采用“做中学”和“教中学”两种方法相结合。此外,推荐了一些相关书籍供大家参考,如《构建之法》、《人月神话》、《人件》等。这些书籍涵盖了软件工程的实践方法、历史经典、人员管理以及敏捷开发等方面的内容。 总结:软件工程的全景图展现了学习软件工程的四重境界和有效的学习方法。通过“做中学”和“教中学”,将知识转化为经验,并分享给他人。写作、内部分享或培训以及将知识应用于项目中,都是提升软件工程能力的有效途径。这些方法将帮助读者更好地理解和应用软件工程知识,同时也促进知识的传播和共享。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《软件工程之美》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(27)

  • 最新
  • 精选
  • David Mao
    老师总结的器、术、道、传道四重境界很棒,结合自己的工作实践深有感悟。我是做软件测试的,最近在自学python开发,希望老师给一些建议,感谢。

    作者回复: 看到你在学Python,不知道你所在团队自动化测试方面做的如何,我觉得这方面其实大有可为,可以极大的提高测试效率。 另外多学习一些软件工程知识,将来如果要兼顾或转型项目管理,也是不错的发展方向。

    2019-02-21
    18
  • alva_xu
    还有一本机械工业出版社出的《软件工程》,作者是Ian Sommerville,也特别好。已经出了十多版了吧。

    作者回复: 软件工程的书确实还有很多不错的,很遗憾没能一一例举,感谢推荐👍

    2019-02-21
    10
  • 彭燕林
    原版是英文参考书籍能不能介绍一下英文信息,方便查找。

    作者回复: 你是说《软件工程——实践者的研究方法》吗? Software Engineering – A Practitioner’s Approach 作者是 Roger S. Pressman 如果专栏内容涉及英文专业术语的,一般会注明英文。如果对具体某个术语的英语有疑问的,可以留言,我会补充说明。

    2019-02-21
    5
  • Sam_Deep_Thinking
    关于软件工程的书籍,我推荐一本 周爱民先生的〖大道至简〗,讲的也很不错,作者思考的比较深,可以作为学习软件工程的参考书籍之一。

    作者回复: 是的,写得很好,🙏感谢推荐

    2019-10-06
    4
  • 廖师虎
    CRUD是择指增删改查,基于此模式很难做到可审计,可溯源,只有临时的状态,不可重放恢复

    作者回复: 如果要做到可信,其实和CRUD不矛盾,如果你想可审计、可溯源、可重访,可以在架构层面解决。 比如说基于分层架构,你添加一条记录,并不是直接写一条SQL,而是调用数据访问层的方法,这个方法会帮助你增加相应的日志、审计记录。这样从编程角度看,还是CRUD,但是从结果上来说,已经具备你的要求。包括以后如果要增加更多审计逻辑,只要修改你响应的架构,对于你业务层的代码几乎没什么影响。

    2019-04-14
    2
    4
  • 一路向北
    老师说的学中教,教中学的4重境界,非常形象,容易让人领会。 实践的过程中,最难的应该是悟道了,期望在后面的学习中能够多悟道。这方面也是需要自己独立的深入思考才能产生的结果。

    作者回复: 是的,这是个漫长的过程。 “悟道”最重要的不是结果,而是这个实践和思考的过程。多实践多思考,长期看自然就会有很多收获的。 尤其是当你尝试去“传道”的时候,你可能会发现你突然“悟道”了。

    2019-02-21
    4
  • rocedu
    过程分为瀑布模型和敏捷开发两类,合适吗?

    作者回复: 从大类上来看,我觉得没什么问题。当然也想听听老师的意见。

    2019-03-27
    2
    3
  • Lonely绿豆蛙
    瓜大软微学弟前来报道~

    作者回复: 学弟好!我们那会还叫软件学院呢

    2019-02-22
    3
  • javaadu
    听老师的话,已经整理一篇学习笔记。也分享下自己关于学习的心得: 1. 知行合一:理论与实践相结合,在软件开发中使用工具的时候,要及时总结使用工具的技巧;在经历过一个项目后,要总结这个过程中对的得失经验。然后将这些经验和技巧应用到下一个项目中。 2. 持之以恒:想要做到卓越,不可能一蹴而就,因此要持之以恒得践行知行合一。 3. 乐于分享:将自己的心得体会讲给别人,可以用博客、短视频、内部培训的方式,在讲给别人的过程中,也是对知识的重新梳理和查缺补漏。

    作者回复: 赞👍 改变,从改变习惯开始

    2019-02-21
    3
  • E
    请问老师,软件开发的过程和方法之间的关系是什么?

    作者回复: 软件开发过程就是指你开发软件时的整个过程的开发模式,比如说瀑布模型还是敏捷开发。 选择了开发过程,你就需要有具体方法来执行。 比如你选择了瀑布模型,整个软件开发过程就是按照瀑布模型的分阶段来进行,对应的方法就是瀑布模型中的方法,例如需求分析、架构设计;如果你选择了敏捷开发,则整个开发过程就是一种敏捷迭代方式,后面的方法对应的就是敏捷开发的一套方法体系,例如Scrum、用户故事、持续集成等。

    2019-03-23
    2
收起评论
显示
设置
留言
27
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部