历些毛子代技大学 软件定义一切 XIDIAN UNIVERSITY 计算机软件开发模式、工具 与标准发展历程 徐悦甡 ysxu@xidian.edu.cn 计算机科学与技术学院 西安电子科技大学
计算机软件开发模式、工具 与标准发展历程 徐悦甡 ysxu@xidian.edu.cn 计算机科学与技术学院 西安电子科技大学 软件定义一切
软件开发模式与工具起源 软件开发模式与工具历程 目录 3 软件产业与机遇 CONTENTS 软件开发标准
1 软件开发模式与工具起源 2 软件开发模式与工具历程 3 软件产业与机遇 实例演示 目录 CONTENTS 2 4 软件开发标准
软件开发模式与工具起源 口计算机软件开发标准化发展历程 出现背景:软件危机 >60年代中期前:通用硬件相当普遍,软件却是为某个具体应用编写; 软件的编写组织模式极不规范,被称为“软件作坊” 导致 √对软件开发成本和进度的估计不准确 开发软件所需的高成本 √用户对完成的软件系统不满意; !√软件常常不可维护,经常修改; 同产品的低质量之间 软件没有适当的文档资料; 存在着尖锐矛盾,导致了 √软件成本在总成本中所占比例逐年上升 软件危机(Software Crisis) 计算机科学与技术学院
计算机软件开发标准化发展历程 出现背景:软件危机 ➢ 60年代中期前:通用硬件相当普遍,软件却是为某个具体应用编写; 软件的编写组织模式极不规范,被称为“软件作坊” ✓ 对软件开发成本和进度的估计不准确; ✓ 用户对完成的软件系统不满意; ✓ 软件常常不可维护,经常修改; ✓ 软件没有适当的文档资料; ✓ 软件成本在总成本中所占比例逐年上升 导致 开发软件所需的高成本 同产品的低质量之间 存在着尖锐矛盾,导致了 软件危机(Software Crisis) 软件开发模式与工具起源 计算机科学与技术学院 4
软件开发模式与工具起源 什么是计算机软件开发标准 ■软件危机的出路在于软件开发的工程化和标准化 程序设计语言的标准化:为某一程序设计语言规定若干个标准子集, 对于语言的实现者和用户都带来了很大方便 >软件过程的标准化:软件生存期各个阶段的工作建立标准或规范 补充与回顾软件工程发展历程,同时 也是计算机软件开发标准化的起源 计算机科学与技术学院
软件开发模式与工具起源 什么是计算机软件开发标准 ◼ 软件危机的出路在于软件开发的工程化和标准化 ➢ 程序设计语言的标准化:为某一程序设计语言规定若干个标准子集, 对于语言的实现者和用户都带来了很大方便 ➢ 软件过程的标准化:软件生存期各个阶段的工作建立标准或规范 计算机科学与技术学院 5 补充与回顾软件工程发展历程,同时 也是计算机软件开发标准化的起源
软件开发模式与工具起源 口计算机软件开发标准化发展历程 解决方案:软件工程 NATO 1968 E.Austin J.D.Babcock R.S.Barton F.L.Baue R.Bemer NATO Software Engineering Conferences (1968) >11个国家 ⊥.Berghuis E.E.David E.W.Dijkstra M.Engeli LK.Flanigan >100余位软件职业人士(厂商、大学、政府、用户) D.Gries J.A.Harr I.Hugo J.N.P.Hume H.A.Kinslow A.I.Llewelyn R.M.McClure M.D.Mcllroy P.Naur M.Paul 会议现场 与会人员 计算机科学与技术学院
解决方案:软件工程 NATO 1968 NATO Software Engineering Conferences (1968) ➢ 11个国家 ➢ 100余位软件职业人士(厂商、大学、政府、用户) 会议现场 与会人员 软件开发模式与工具起源 计算机软件开发标准化发展历程 计算机科学与技术学院 6
软件开发模式与工具起源 口计算机软件开发标准化发展历程 解决方案:软件工程 NATO 1968 >在NATO1968上,先后制定并发布了《Software Engineering》与 《Software Engineering Techniques)》两本会议集,宣告了软件工程的诞生 OFTWVANEENGEERING SOFTWARE ENGINEERING TECHNIQUES SC CO m 《Software Engineering》 《Software Engineering Techniques》 会议集的写作过程 计算机科学与技术学院
解决方案:软件工程 NATO 1968 ➢ 在 NATO 1968 上 , 先 后 制 定 并 发 布 了 《Software Engineering》 与 《Software Engineering Techniques》两本会议集,宣告了软件工程的诞生 会议集的写作过程 《Software Engineering》 《Software Engineering Techniques》 软件开发模式与工具起源 计算机软件开发标准化发展历程 计算机科学与技术学院 7
软件开发模式与工具起源 口计算机软件开发标准化发展历程 软件工程:解决危机 什么是软件工程? >1968年NAT0会议,软件工程:为了经济地获得可靠的且能在实际机器上有效地运行 的软件,而建立和使用完善的工程原理 >1993年IEEE:软件工程是研究系统的、规范的、可度量的途径,可应用于软件开发、 运行和维护过程 引申出了软件工程学,并进一步发展为了软件工程学科 >应用工程的方法和技术研究软件开发与维护的方法、工具和管理的一门交叉学科 计算机科学与技术学院
➢ 应用工程的方法和技术研究软件开发与维护的方法、工具和管理的一门交叉学科 软件工程:解决危机 什么是软件工程? ➢ 1968年NATO会议,软件工程:为了经济地获得可靠的且能在实际机器上有效地运行 的软件,而建立和使用完善的工程原理 ➢ 1993年IEEE:软件工程是研究系统的、规范的、可度量的途径,可应用于软件开发、 运行和维护过程 引申出了软件工程学,并进一步发展为了软件工程学科 软件开发模式与工具起源 计算机软件开发标准化发展历程 计算机科学与技术学院 8
软件开发模式与工具起源 软件开发模式与工具历程 目录 3 软件产业与机遇 CONTENTS 软件开发标准 10
1 软件开发模式与工具起源 2 软件开发模式与工具历程 3 软件产业与机遇 实例演示 目录 CONTENTS 10 4 软件开发标准
软件开发模式与工具起源 软件开发发展脉络 程序自动生成: 软件构件化出现; 软件库挖掘: 协作化开发 J2EE诞生 CORBA诞生 代码检索与推荐 开发模式 中间件流行 智能化软件开发 搜狐、阿里等成立; 时代特证 众包 Intere成为软件开发云与移动开发 主战场 面向服务开发 云计算出现并流行 协作化 C语言诞生 智能机流行,移动服务出现; 企业 结构化程序设计出现: APP开发流行 程序验证方法出现 面向对象开发C+流行,Java/C#诞生;UML出现 形式化方法出现 软件质量管控体系(COCOMO); 工业化 C++出现 互联网诞生,前后端开发诞生; 小组 面向过程开发 桌面开发流行,企业级开发流行; 设计模式诞生 工程化 高级语言 编译器出现;COBOL语言诞生;命令式程序设计兴起 集成开发环境出现;软件工程诞生;大型机与小型机出现 60年代 70-80年代 90年代 2000年代 2010年代 现代 对期 计算机科学与技术学院 11
软件开发发展脉络 ~60年代 70~80年代 90年代 2000年代 2010年代 高级语言 编译器出现;COBOL语言诞生;命令式程序设计兴起 集成开发环境出现;软件工程诞生;大型机与小型机出现 面向过程开发 C语言诞生 结构化程序设计出现; 程序验证方法出现 形式化方法出现 C++出现 面向服务开发 软件构件化出现; J2EE诞生 CORBA诞生 中间件流行 搜狐、阿里等成立; Internet成为软件开发 主战场 智能化软件开发 程序自动生成; 软件库挖掘; 协作化开发; 代码检索与推荐 协作化 工业化 工程化 时代特征 时期 开发模式 个人 小组 企业 众包 面向对象开发 C++流行,Java/C#诞生;UML出现; 软件质量管控体系(COCOMO); 互联网诞生,前后端开发诞生; 桌面开发流行,企业级开发流行; 设计模式诞生 现代 云与移动开发 云计算出现并流行 智能机流行,移动服务出现; APP开发流行 软件开发模式与工具起源 计算机科学与技术学院 11
软件开发模式与工具历程 60年代:高级语言出现 特征:以个人开发为开发模式,初步形成江程化 i> 代表性事件: √编译器出现/Fortran流行;Pascal、COBOL语言流行;进入命令式程序设计时代; 集成开发环境出现,软件工程诞生(NATO1968); 一阿帕网建立;大型机与小型机流行。 1952年,Hopper编写了初代的编译 1957年,John Backus实现了第一个 器,并为A-0系统实现了第一个初代 完整的编译器,即Fortran编译器 编译器 ortran ther of foriran: OHN BACKUS 程序员们终于可以依托“编译器” 程序员们终于可以使用高级语言编写软件,也带 编程,进而开发软件,而不是初代 来了Fortran的流行;直到2000年初,中学信息学 批处理系统或直接机器 竞赛仍然有一部分使用Fortran编程 12
~60年代:高级语言出现 ➢ 特征:以个人开发为开发模式,初步形成工程化 ➢ 代表性事件: ✓ 编译器出现/Fortran流行;Pascal、COBOL语言流行;进入命令式程序设计时代; ✓ 集成开发环境出现,软件工程诞生(NATO 1968); ✓ 阿帕网建立;大型机与小型机流行。 软件开发模式与工具历程 12 • 1952年,Hopper编写了初代的编译 器,并为A-0系统实现了第一个初代 编译器 程序员们终于可以依托“编译器” 编程,进而开发软件,而不是初代 批处理系统或直接机器 • 1957年,John Backus实现了第一个 完整的编译器,即Fortran编译器 程序员们终于可以使用高级语言编写软件,也带 来了Fortran的流行;直到2000年初,中学信息学 竞赛仍然有一部分使用Fortran编程