软件工程:功能划分与发展历程

需积分: 9 0 下载量 139 浏览量 更新于2024-07-12 收藏 226KB PPT 举报
软件工程是一门将系统化、工程化的方法应用于软件开发、维护和管理的学科,旨在提高软件质量、降低成本和时间,以及增强软件产品的可靠性。它将软件视为计算机系统的核心组成部分,与硬件、数据库、人和各种开发过程相互作用。 第一章介绍了软件的基本概念,包括软件的构成,如由计算机程序、数据和相关文档组成。软件的特性强调了其抽象性,即它是逻辑上的实体而非物理形态,且生产过程中缺乏明显的制造过程。软件没有物理磨损,但对硬件有高度依赖,同时手工开发方式的局限性和软件本身的复杂性导致了开发成本较高。 软件可以根据不同的维度进行分类: 1. 按功能分类:分为应用软件(如办公软件、游戏),系统软件(如操作系统、编译器)和支撑软件(如数据库管理系统、中间件)。 2. 按规模分类:从小型(适合个人使用)、中型到大型企业级应用,再到超级计算机级别的甚大型和极大型软件。 3. 按工作方式分类:有分时软件(多人共享)、实时软件(对响应时间有严格要求)、交互式软件(用户直接操作)和批处理式软件(后台处理大量任务)。 4. 按服务对象或使用频度分类:项目软件(针对特定项目)和产品软件(长期使用),一次性使用软件和频繁使用的软件。 5. 按失效影响分类:高可靠性软件(关键系统中的软件)和一般可靠性软件(非关键系统)。 软件的发展历程可以划分为三个阶段:程序设计阶段(50-60年代)、程序系统阶段(60-70年代)和软件工程阶段(70年代以后)。软件工程的诞生是为了解决软件开发过程中出现的复杂性、成本超支和质量问题,即所谓的软件危机。 软件工程定义为一种利用现代科技知识来设计、构建和维护计算机程序,并创建相关文档的过程。而软件工程学则进一步扩展,它关注如何建立一套完整的体系和方法论,确保软件开发的高效、可控制和高质量。 理解软件工程的关键在于掌握这些分类和开发方法,因为它们直接影响软件产品的设计、开发流程、项目管理和质量控制。随着技术的进步,软件工程还在不断演进,包括敏捷开发、DevOps等新兴实践,以适应快速变化的市场需求和技术环境。