首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >软件工程1.0、2.0与3.0

软件工程1.0、2.0与3.0

作者头像
顾翔
发布2026-09-09 19:27:06
发布2026-09-09 19:27:06
10
举报

软件工程1.0 1968年 NATO会议软件工程学科诞生

(1)产品化:只是交付符合质量标准的组件、构件和系统,没有认识到软件的柔性和数字化特性,把软件当作传统工业的产品,由此产生“软件工厂”这样的思想。

(2)结构化:受传统建筑工程的影响,重视框架和结构的设计,表现为以架构设计为中心进行结构化分析、结构化设计、结构化编程等。

(3)过程决定结果:流程质量决定产品质量,一环扣一环,相信良好的过程产生良好的产品,关注过程胜过关注人,非常关注过程评估和过程改进,CMMI(Capability Maturity Model Integration,能力成熟度模型集成)就是其典型代表。

(4)重视质量管理:引入传统的质量管理体系,包括以顾客为中心的全面质量管理和缺陷预防。

(5)阶段性明确:需求评审通过才能开始设计;设计评审通过才能开始实施(编程),编程结束再进行测试等,瀑布模型是其典型代表模型。

(6)责任明确:角色定义清晰,分工细致。

(7)文档规范化:强调规范的文档,定义了大量的文档模板。

(8)计划性强:具有完整的计划并严格控制变更。

(9)注重项目管理:围绕项目开展管理工作,包括风险预防、里程碑控制、关键路径法等。

软件工程2.0 2001年敏捷宣言发布

(1)SaaS:软件更多的是以一种服务存在。

(2)强调价值交付:只做对用户有价值的事情,加速价值流的流动。

(3)以人为本:个体与协作胜于流程和工具,充分发挥个人和团队的创造性与潜力;拥抱变化,敏捷开发或轻量级过程,加速迭代,以不变应万变。

(4)自我管理的团队:像一家初创公司一样运营,具有主动性并能够承担风险,具有自治能力,能自主建立目标和制订计划,不断反思,持续改进。

(5)持续性:阶段性不明确,持续构建、持续集成、持续测试、持续交付,以时间换空间,消除市场风险。

(6)开发、测试和运维的融合:强调测试与开发融合,开发与运维融合,推崇全栈工程师等。

(7)真正把用户放在第一位:用户、产品经理尽可能参与团队开发过程,注重用户体验,千人千面。

(8)知识管理:将软件工程纳入知识管理的范畴,强调将项目的计划、估算等工作授权给从事具体工作的开发人员,如任务安排不再由管理者下达任务,而由开发人员自主选择适合自己的任务。

(9)更有乐趣:“史诗故事”、用户故事、站会等让软件开发工作更有趣、更健康。

软件工程3.0 2023年LLM爆发式产生

(1)软件需求获取、分析与定义

(2)软件设计与体系结构

• 提供建议:根据需求和约束等自然语言输入对软件架构提供建议,这些建议可以帮助开发人员针对待开发软件架构做出明智的决策。

• 识别设计模式:根据自然语言输入识别软件架构中的常见设计模式,帮助开发人员识别潜在的问题并改进软件的整体设计。

• 分析和优化软件架构:通过分析软件架构并根据自然语言输入提出优化建议,帮助开发人员改进其软件的性能、可伸缩性和可维护性等。

• 知识共享:提供有关软件体系结构的最佳实践、模式和框架的信息,帮助开发人员跟上软件体系结构的最新趋势,提高在该领域的整体水平。

(3)代码生成和优化

(4)测试用例和测试代码等生成

(5)错误检测和解决

(6)协作和知识共享

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档