第1章软件工程概述 11软件的概念、特点和分类 软件的概念 软件是计算机系统中与硬件相互依存的另一部 分,它是包括程序、数据及其相关文档的完整集合。 其中,程序是按事先设计的功能和性能要求编 写的指令序列;数据是使程序能正常操纵信息的数 据结构;文档是与程序开发、维护和使用有关的图 文材料。 注:程序并不是软件,程序只是软件的组成部分
第1章 软件工程概述 1.1 软件的概念、特点和分类 一、 软件的概念 软件是计算机系统中与硬件相互依存的另一部 分,它是包括程序、数据及其相关文档的完整集合。 其中,程序是按事先设计的功能和性能要求编 写的指令序列;数据是使程序能正常操纵信息的数 据结构;文档是与程序开发、维护和使用有关的图 文材料。 注:程序并不是软件,程序只是软件的组成部分
第1章教件工程概述 软件的特点 (1)软件是一种逻辑实体。 (2)软件的开发,是人的智力的高度发挥,而不是 传统意义上的硬件制造 (3)软件维护与硬件的维修有着本质的差别 (4)软件的开发和运行常常受到计算机系统的限制, 对计算机系统有着不同程度的依赖性。 (5)软件的开发至今尚未完全摆脱手工艺的开发方 式,使软件的开发效率受到很大限制。 (6)软件的开发是一个复杂的过程。 (7)软件的成本非常高昂
第1章 软件工程概述 二、软件的特点 (1)软件是一种逻辑实体。 (2)软件的开发,是人的智力的高度发挥,而不是 传统意义上的硬件制造。 (3)软件维护与硬件的维修有着本质的差别。 (4)软件的开发和运行常常受到计算机系统的限制, 对计算机系统有着不同程度的依赖性。 (5)软件的开发至今尚未完全摆脱手工艺的开发方 式,使软件的开发效率受到很大限制。 (6)软件的开发是一个复杂的过程。 (7)软件的成本非常高昂
第1章教件工程概述 、软件的分类 基于软件功能的划分 系统软件 应用软件 支撑软件 2基于软件工作方式的划分实时处理软件 分时软件 交互式软件 批处理软件
第1章 软件工程概述 三、软件的分类 1.基于软件功能的划分 系统软件 应用软件 支撑软件 2.基于软件工作方式的划分 实时处理软件 分时软件 交互式软件 批处理软件
第1章教件工程概述 12软件的发展和软件危机 计算机系统的发展历程 第一代(20世纪60年代中期以前):程序设计阶段。 第二代(从20世纪60年代中期到70年代中期):程 序系统阶段“软件工程”学科诞生。 第三代(从20世纪70年代中期到80年代中期):软 件工程阶段 第四代(从20世纪80年代中期至今):软件产业在 世界经济中已经占有举足轻重的地位
第1章 软件工程概述 1.2 软件的发展和软件危机 一、计算机系统的发展历程 第一代(20世纪60年代中期以前):程序设计阶段。 第二代(从20世纪60年代中期到70年代中期):程 序系统阶段——“软件工程”学科诞生。 第三代(从20世纪70年代中期到80年代中期):软 件工程阶段。 第四代(从20世纪80年代中期至今):软件产业在 世界经济中已经占有举足轻重的地位
第1章教件工程概述 软件危机 20世纪60年代末70年代初,西方工业发达国 家经历了一场“软件危机”。这场软件危机表现 在:一方面软件十分复杂,价格昂贵,供需差日 益增大,另一方面软件开发时又常常受挫,质量 差,指定的进度表和完成日期很少能按时实现, 研制过程很难管理,即软件的研制往往失去控制 我们称软件开发和维护过程中所中遇到的这一系 列严重问题为软件危机 软件危机包含下述两方面的问题:如何开发软 件,以满足对软件日益增长的需求;如何维护数 量不断膨胀的已有软件
第1章 软件工程概述 二、软件危机 20世纪60年代末70年代初,西方工业发达国 家经历了一场“软件危机” 。这场软件危机表现 在:一方面软件十分复杂,价格昂贵,供需差日 益增大,另一方面软件开发时又常常受挫,质量 差,指定的进度表和完成日期很少能按时实现, 研制过程很难管理,即软件的研制往往失去控制。 我们称软件开发和维护过程中所中遇到的这一系 列严重问题为软件危机。 软件危机包含下述两方面的问题:如何开发软 件,以满足对软件日益增长的需求;如何维护数 量不断膨胀的已有软件
第1章教件工程概述 13软件工程 软件工程的定义 软件工程是指研究软件生产的一门学科,也就 是将完善的工程原理应用于经济地生产既可靠又 能在实际机器上有效运行的软件。 1983年美国《IEEE软件工程标准术语》对软件 工程下的定义为:软件工程是开发、运行、维护 和修复软件的系统方法,其中“软件”的定义为: 计算机程序、方法、规则、相关的文档资料以及 在计事机上运行时所必需的数据
第1章 软件工程概述 1.3 软件工程 一、软件工程的定义 软件工程是指研究软件生产的一门学科,也就 是将完善的工程原理应用于经济地生产既可靠又 能在实际机器上有效运行的软件。 1983年美国《IEEE软件工程标准术语》对软件 工程下的定义为:软件工程是开发、运行、维护 和修复软件的系统方法,其中“软件”的定义为: 计算机程序、方法、规则、相关的文档资料以及 在计事机上运行时所必需的数据
第1章教件工程概述 二、软件工程方法学 通常把在软件生命周期全过程中使用的一整套技 术的集合,称为软件工程方法学。软件工程方法学 包括三个要素:方法、工具和过程。 其中:软件工程方法是完成软件开发的各项任务 的技术方法,为软件开发提供了“如何做”的技术 软件工具为软件工程方法提供了自动的或半自动的 软件支撑环境。软件工程的过程则是将软件工程的 方法和工具综合起来以达到合理、及时地进行计算 机软件开发的目的。 注:传统方法学和面向对象方法学是目前使用得最广 泛的两种软件工程方法学
第1章 软件工程概述 二、软件工程方法学 通常把在软件生命周期全过程中使用的一整套技 术的集合,称为软件工程方法学。软件工程方法学 包括三个要素:方法、工具和过程。 其中:软件工程方法是完成软件开发的各项任务 的技术方法,为软件开发提供了“如何做”的技术。 软件工具为软件工程方法提供了自动的或半自动的 软件支撑环境。软件工程的过程则是将软件工程的 方法和工具综合起来以达到合理、及时地进行计算 机软件开发的目的。 注:传统方法学和面向对象方法学是目前使用得最广 泛的两种软件工程方法学
第1章教件工程概述 14软件生存期和软件开发模型 软件生存期 如同任何其他事物一样,软件也有一个孕育 诞生、成长、成熟、衰亡的生存过程,一般称之 为计算机软件的生存期。 般说来,软件生命期由软件定义、软件开 发和软件维护三个时期组成,每个时期又可进 步划分成若干个阶段
第1章 软件工程概述 1.4 软件生存期和软件开发模型 一、软件生存期 如同任何其他事物一样,软件也有一个孕育、 诞生、成长、成熟、衰亡的生存过程,一般称之 为计算机软件的生存期。 一般说来,软件生命期由软件定义、软件开 发和软件维护三个时期组成,每个时期又可进一 步划分成若干个阶段
第1章教件工程概述 1.软件定义时期 (1)问题定义:这是软件生存期的第一个阶段, 主要任务是弄清用户要计算机解决的问题是什么。 (2)可行性研究:任务是为前一阶段提出的问 题寻求一种至数种在技术上可行、且在经济上有 较高效益的解决方案
第1章 软件工程概述 1.软件定义时期 (1)问题定义:这是软件生存期的第一个阶段, 主要任务是弄清用户要计算机解决的问题是什么。 (2)可行性研究:任务是为前一阶段提出的问 题寻求一种至数种在技术上可行、且在经济上有 较高效益的解决方案
第1章教件工程概述 2.软件开发时期 (1)需求分析:弄清用户对软件系统的全部需求, 主要是确定目标系统必须具备哪些功能 (2)总体设计:设计软件的结构,即确定程序由哪 些模块组成以及模块间的关系。 (3)详细设计:针对单个模块的设计。 (4)编码:按照选定的语言,把模块的过程性描述 翻译为源程序 (5)测试:通过各种类型的测试(及相应的调试)使软 件达到预定的要求
第1章 软件工程概述 2.软件开发时期 (1)需求分析:弄清用户对软件系统的全部需求, 主要是确定目标系统必须具备哪些功能。 (2)总体设计:设计软件的结构,即确定程序由哪 些模块组成以及模块间的关系。 (3)详细设计:针对单个模块的设计。 (4)编码:按照选定的语言,把模块的过程性描述 翻译为源程序。 (5)测试:通过各种类型的测试(及相应的调试)使软 件达到预定的要求