软件工程概论(第3版)教学课件第1章 软件与软件工程介绍-new

举报
资源描述
教材和参考书教材和参考书教材教材软件工程概论软件工程概论(第(第3版),版),郑人杰、马素霞郑人杰、马素霞 等编著,机械等编著,机械工业出版社,工业出版社,2020年年1月。月。参考书参考书软件工程:实践者的研究方软件工程:实践者的研究方法(第法(第8版)版)Roger S.Pressman著,郑人著,郑人杰、马素霞杰、马素霞 等译,机械工业出等译,机械工业出版社,版社,2016年年11月。月。第1章软件与软件工程的概念软件的概念、特性和分类软件的概念、特性和分类软件危机与软件工程软件危机与软件工程系统工程的目标系统工程的目标软件生存期软件生存期软件工程方法概述软件工程方法概述软件工具概述软件工具概述软件工程知识体系及知识域软件工程知识体系及知识域1.1软件的概念、特性和分类软件的作用软件的作用具有具有产品产品和和产品生产载体产品生产载体的双重作用。的双重作用。(1)作为产品,软件显示了由计算机硬件体现的计作为产品,软件显示了由计算机硬件体现的计算能力,扮演着信息转换的角色:产生、管理、算能力,扮演着信息转换的角色:产生、管理、查询、修改、显示或者传递各种不同的信息。查询、修改、显示或者传递各种不同的信息。(2)作为产品生产的载体,软件提供了计算机控制作为产品生产的载体,软件提供了计算机控制(操作系统)、信息通信(网络),以及应用(操作系统)、信息通信(网络),以及应用程序开发和控制的基础平台(软件工具和环境)程序开发和控制的基础平台(软件工具和环境)。1.1软件的概念、特性和分类软件的概念软件的概念 虽然软件对于现代的人并不陌生,但很多人对于虽然软件对于现代的人并不陌生,但很多人对于软件的理解并不准确,软件的理解并不准确,“软件就是程序,软件开软件就是程序,软件开发就是编程序发就是编程序”的这种错误观点仍然存在。的这种错误观点仍然存在。什么是软件?1.1软件的概念、特性和分类软件软件是计算机系统中与硬件相互依存的另一部分,是计算机系统中与硬件相互依存的另一部分,是计算机系统中与硬件相互依存的另一部分,是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。它是包括程序,数据及其相关文档的完整集合。它是包括程序,数据及其相关文档的完整集合。它是包括程序,数据及其相关文档的完整集合。程序程序是按事先设计的功能和性能要求执行的指令序是按事先设计的功能和性能要求执行的指令序是按事先设计的功能和性能要求执行的指令序是按事先设计的功能和性能要求执行的指令序列。列。列。列。数据数据是使程序能正常操纵信息的数据结构。是使程序能正常操纵信息的数据结构。是使程序能正常操纵信息的数据结构。是使程序能正常操纵信息的数据结构。文档文档是与程序开发,维护和使用有关的图文材料。是与程序开发,维护和使用有关的图文材料。是与程序开发,维护和使用有关的图文材料。是与程序开发,维护和使用有关的图文材料。1.1软件的概念、特性和分类软件的特性软件的特性(1)(1)形态特性形态特性形态特性形态特性:软件是无形的、不可见的逻辑实体。软件是无形的、不可见的逻辑实体。软件是无形的、不可见的逻辑实体。软件是无形的、不可见的逻辑实体。度量常规产品的几何尺寸、物理性质和化学成分度量常规产品的几何尺寸、物理性质和化学成分度量常规产品的几何尺寸、物理性质和化学成分度量常规产品的几何尺寸、物理性质和化学成分对它却是毫无意义的。对它却是毫无意义的。对它却是毫无意义的。对它却是毫无意义的。(2)(2)智能特性智能特性智能特性智能特性:软件是复杂的智力产品,它的开发:软件是复杂的智力产品,它的开发:软件是复杂的智力产品,它的开发:软件是复杂的智力产品,它的开发凝聚了人们的大量脑力劳动,它本身也体现了知凝聚了人们的大量脑力劳动,它本身也体现了知凝聚了人们的大量脑力劳动,它本身也体现了知凝聚了人们的大量脑力劳动,它本身也体现了知识实践经验和人类的智慧,具有一定的智能。它识实践经验和人类的智慧,具有一定的智能。它识实践经验和人类的智慧,具有一定的智能。它识实践经验和人类的智慧,具有一定的智能。它可以帮助我们解决复杂的计算、分析、判断和决可以帮助我们解决复杂的计算、分析、判断和决可以帮助我们解决复杂的计算、分析、判断和决可以帮助我们解决复杂的计算、分析、判断和决策问题。策问题。策问题。策问题。(3)(3)开发特性开发特性开发特性开发特性:尽管已经有了一些工具(也是软件)尽管已经有了一些工具(也是软件)尽管已经有了一些工具(也是软件)尽管已经有了一些工具(也是软件)来辅助软件开发工作,但到目前为止尚未实现自来辅助软件开发工作,但到目前为止尚未实现自来辅助软件开发工作,但到目前为止尚未实现自来辅助软件开发工作,但到目前为止尚未实现自动化。软件开发中仍然包含了相当份量的个体劳动化。软件开发中仍然包含了相当份量的个体劳动化。软件开发中仍然包含了相当份量的个体劳动化。软件开发中仍然包含了相当份量的个体劳动,使得这一大规模知识型工作充满了个人行为动,使得这一大规模知识型工作充满了个人行为动,使得这一大规模知识型工作充满了个人行为动,使得这一大规模知识型工作充满了个人行为和个人因素。和个人因素。和个人因素。和个人因素。(4)(4)质量特性质量特性质量特性质量特性:目前还无法得到完全没有缺陷的软:目前还无法得到完全没有缺陷的软:目前还无法得到完全没有缺陷的软:目前还无法得到完全没有缺陷的软件产品件产品件产品件产品 。1.1软件的概念、特性和分类(5)(5)生产特性生产特性生产特性生产特性:与硬件或传统的制造业产品的生产完与硬件或传统的制造业产品的生产完与硬件或传统的制造业产品的生产完与硬件或传统的制造业产品的生产完全不同,软件一旦设计开发出来,如果需要提供全不同,软件一旦设计开发出来,如果需要提供全不同,软件一旦设计开发出来,如果需要提供全不同,软件一旦设计开发出来,如果需要提供多个用户,它的复制十分简单,其成本也极为有多个用户,它的复制十分简单,其成本也极为有多个用户,它的复制十分简单,其成本也极为有多个用户,它的复制十分简单,其成本也极为有限限限限 。(6)(6)管理特性管理特性管理特性管理特性:由于上述的几个特点,使得软件的:由于上述的几个特点,使得软件的:由于上述的几个特点,使得软件的:由于上述的几个特点,使得软件的开发管理显得更为重要,也更为独特开发管理显得更为重要,也更为独特开发管理显得更为重要,也更为独特开发管理显得更为重要,也更为独特 。1.1软件的概念、特性和分类(7)(7)环境特性环境特性环境特性环境特性:软件的开发和运行都离不开相关的计软件的开发和运行都离不开相关的计软件的开发和运行都离不开相关的计软件的开发和运行都离不开相关的计算机系统环境,包括支持它的开发和运行的相关算机系统环境,包括支持它的开发和运行的相关算机系统环境,包括支持它的开发和运行的相关算机系统环境,包括支持它的开发和运行的相关硬件和软件。软件对于计算机系统的环境有着不硬件和软件。软件对于计算机系统的环境有着不硬件和软件。软件对于计算机系统的环境有着不硬件和软件。软件对于计算机系统的环境有着不可摆脱的依赖性。可摆脱的依赖性。可摆脱的依赖性。可摆脱的依赖性。(8)(8)维护特性维护特性维护特性维护特性:软件投入使用以后需要进行维护,:软件投入使用以后需要进行维护,:软件投入使用以后需要进行维护,:软件投入使用以后需要进行维护,但这种维护与传统产业产品的维护概念有着很大但这种维护与传统产业产品的维护概念有着很大但这种维护与传统产业产品的维护概念有着很大但这种维护与传统产业产品的维护概念有着很大差别。差别。差别。差别。1.1软件的概念、特性和分类(9)(9)废弃特性废弃特性废弃特性废弃特性:与硬件不同,软件并不是由于被与硬件不同,软件并不是由于被与硬件不同,软件并不是由于被与硬件不同,软件并不是由于被“用用用用坏坏坏坏”而被废弃的而被废弃的而被废弃的而被废弃的。(10)(10)应用特性应用特性应用特性应用特性:软件的应用极为广泛,如今它已渗:软件的应用极为广泛,如今它已渗:软件的应用极为广泛,如今它已渗:软件的应用极为广泛,如今它已渗入国民经济和国防的各个领域,现已成为信息产入国民经济和国防的各个领域,现已成为信息产入国民经济和国防的各个领域,现已成为信息产入国民经济和国防的各个领域,现已成为信息产业、先进制造业和现代服务业的核心,占据了无业、先进制造业和现代服务业的核心,占据了无业、先进制造业和现代服务业的核心,占据了无业、先进制造业和现代服务业的核心,占据了无可取代的地位。可取代的地位。可取代的地位。可取代的地位。1.1软件的概念、特性和分类1.1软件的概念、特性和分类软件的分类软件的分类(1 1)系统软件系统软件 操作系统操作系统操作系统操作系统 数据库管理系统数据库管理系统数据库管理系统数据库管理系统 设备驱动程序设备驱动程序设备驱动程序设备驱动程序 通信和网络处理程序通信和网络处理程序通信和网络处理程序通信和网络处理程序等等等等 (2 2)支撑软件(工具软件)支撑软件(工具软件)纵向支撑软件纵向支撑软件纵向支撑软件纵向支撑软件:分析、设计、编码、测试工具等:分析、设计、编码、测试工具等:分析、设计、编码、测试工具等:分析、设计、编码、测试工具等 横向支撑软件横向支撑软件横向支撑软件横向支撑软件:项目管理工具,配置管理工具等:项目管理工具,配置管理工具等:项目管理工具,配置管理工具等:项目管理工具,配置管理工具等 1.1软件的概念、特性和分类软件的分类软件的分类 (3 3)应用软件)应用软件 工程与科学计算软件工程与科学计算软件工程与科学计算软件工程与科学计算软件 商业数据处理软件商业数据处理软件商业数据处理软件商业数据处理软件 ERPERPERPERP软件软件软件软件 计算机辅助设计制造软件计算机辅助设计制造软件计算机辅助设计制造软件计算机辅助设计制造软件 系统仿真软件系统仿真软件系统仿真软件系统仿真软件 智能产品嵌入软件智能产品嵌入软件智能产品嵌入软件智能产品嵌入软件 事务管理、办公自动化软件事务管理、办公自动化软件事务管理、办公自动化软件事务管理、办公自动化软件(4 4)可复用软件)可复用软件 标准函数库、类库、构件库等标准函数库、类库、构件库等标准函数库、类库、构件库等标准函数库、类库、构件库等l软件危机暴发于上个世纪六十年代末。l主要表现为:软件的发展速度远远滞后于硬件的发展速度,不能满足社会日益增长的软件需求。软件开发周期长、成本高、质量差、维护困难。1.2软件危机与软件工程软件危机软件危机l典型例子:美国IBM公司在1963年至1966年开发的IBM 360机的操作系统。l这个项目的负责人F.D.Brooks事后总结了他在组织开发过程中的沉痛教训时说:正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深。最后无法逃脱灭顶的灾难,程序设计工作正像这样一个泥潭,一批批程序员被迫在泥潭中拼命挣扎,谁也没有料到竟会陷入这样的困境1.2软件危机与软件工程具体来说,软件危机主要有以下一些典型表现具体来说,软件危机主要有以下一些典型表现:对软件开发成本和进度的估计常常很不准确。对软件开发成本和进度的估计常常很不准确。用户对用户对“已完成的已完成的”软件系统不满意的现象经常发生。软件系统不满意的现象经常发生。软件产品的质量往往靠不住。软件产品的质量往往靠不住。软件常常是不可维护的。软件常常是不可维护的。软件通常没有适当的文档资料。软件通常没有适当的文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件成本在计算机系统总成本中所占的比例逐年上升。软件开发生产率提高的速度,既跟不上硬件的发展速度,软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。也远远跟不上计算机应用迅速普及深入的趋势。1.2软件危机与软件工程除了软件本身的特点,软件危机发生的主要原因有:除了软件本身的特点,软件危机发生的主要原因有:(1)(1)缺乏软件开发的经
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索

当前位置:首页 > 高等教育 > 大学课件


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号