学术界的定义
软件工程定义,尚有诸多争议,教材主流认可的定义:研究和应用如何以系统化、规范化、可定量的过程化方法去开发和维护软件,把经过时间检验的管理和当前技术结合起来的学科ISO(国际标准化组织)的定义

行业协会的定义
IEEE(电气和电子工程师协会)定义软件工程为“应用系统的、学科的和可量化的方法来开发、运行和维护软件,以及对这些方法的研究。”美国军方的定义
美国国防部(DoD)对软件工程的定义是“在预算、时间、性能和质量的限制下,使用系统工程原则和方法开发、操作和维护软件系统。”02 软件工程关注的重点
总结
软件开发的效率和质量软件开发和维护的一致性和可控性软件系统的可靠性、可维护性和安全性03 不同历史时期软件工程的痛点及软件质量保障
1960s - 1970s
痛点:软件危机:软件项目经常超预算、延期交付,且质量低下。质量保障理论:PDCA(Plan-Do-Check-Act):由Walter A. Shewhart提出,后由W. Edwards Deming推广。用于质量控制和持续改进,适用于软件开发过程中的各个阶段。质量保障模型:瀑布模型质量标准:ISO 90001980s - 1990s
痛点:软件复杂性增加,需求变化频繁,开发周期长。质量保障理论:六西格玛(Six Sigma):由Motorola公司1980年代中期提出,DMAIC(Define, Measure, Analyze, Improve, Control)过程改进方法被引入软件工程中,以提高开发过程的效率和质量。IPD(集成产品开发):由Hewlett-Packard(HP)1990年代初提出,通过跨职能团队合作,实现产品开发的全面管理和优化,适用于复杂的软件项目开发。质量模型/标准:CMM(能力成熟度模型)工具:UML建模工具、版本控制系统(如RCS)2000s
痛点:计算机互联网高速发展、全球化和分布式开发的挑战,敏捷开发方法的兴起。质量保障理论/模型:敏捷方法(Scrum、XP)标准:ISO/IEC 15504(SPICE)、IATF 16949(1999首版)工具:JIRA、Subversion、Hudson2010s
痛点:移动互联网、云计算和大数据的应用,快速迭代和持续交付的需求。质量保障理论:混沌工程(Chaos Engineering)由Netflix在2010年代初提出,通过故意引入系统故障来测试和提高系统的韧性,适用于需要高可靠性和可维护性的AI驱动软件系统。注:混沌工程本质是系统工程学科中正常事故理论的实践,可以认为是软件和系统工程两个学科的交叉应用。模型:DevOps、CI/CD工具:Git、Docker、Kubernetes、Hudson/Jenkins2020s
痛点:人工智能和机器学习的集成,安全性和隐私问题。理论:DataOps、AI驱动开发04 收录书籍和参考资料书籍
《软件工程》 作者:Ian Sommerville,出版社:Addison-Wesley《设计模式:可复用面向对象软件的基础》 作者:Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides,出版社:Addison-Wesley《敏捷软件开发:原则、模式与实践》 作者:Robert C. Martin,出版社:Prentice Hall《持续交付》 作者:Jez Humble, David Farley,出版社:Addison-Wesley《云原生模式》 作者:Cornelia Davis,出版社:Manning Publications
工具
Docker 企业名称:Docker, Inc.,Git地址:https://github.com/docker/dockerKubernetes 企业名称:Google,Git地址:https://github.com/kubernetes/kubernetesTensorFlow 企业名称:Google,Git地址:https://github.com/tensorflow/tensorflowPyTorch 企业名称:Meta,Git地址:https://github.com/pytorch/pytorch
框架模型
瀑布模型 提出者:Winston W. Royce,出处:《Managing the Development of Large Software Systems》,1970年敏捷方法 提出者:Kent Beck 等,出处:《敏捷宣言》,2001年CMM(能力成熟度模型) 提出者:SEI(软件工程研究所)微服务架构 提出者:James Lewis, Martin FowlerPDCA 提出者:Walter A. Shewhart, W. Edwards Deming六西格玛 提出者:MotorolaIPD 提出者:Hewlett-Packard
本篇文章,是【数据库、数据业务价值、大数据设计/架构/技术/工程】系列的第五篇。喜欢请关注作者,并点赞收藏。