1. 软件具有多个显著特征,包括**无形性**(没有物理形态,以逻辑形式存在)、**复杂性**(代码逻辑和功能交互通常非常复杂)、**可复制性**(易于无成本地复制传播)、**易变性**(需要不断适应需求变化和修复问题)以及**非磨损性**(不会物理磨损,但会因环境变化而逐渐过时)。
2. 软件危机是指在计算机软件开发过程中,普遍存在的**项目延期、预算超支、质量低劣、难以维护**等问题,甚至导致项目失败的现象。其主要成因包括**软件复杂度高**、**开发方法不规范**、**需求管理混乱**、**缺乏有效的项目管理**以及**开发工具和支持不足**。
3. 软件工程的核心内容是**应用系统化、规范化、可量化的工程方法于软件的开发、运行和维护全过程**,旨在高效地构建**可靠、高效且满足用户需求**的软件产品,其核心实践包括需求分析、系统设计、编程、测试和维护等一系列工程化活动。
4. 软件工程涵盖多个关键领域,主要包括**软件需求工程**(识别和分析用户与系统需求)、**软件设计**(定义架构与组件)、**软件构造**(编码与调试)、**软件测试**(验证与确认)、**软件维护**(演化与升级)、**软件配置管理**(版本与变更控制)、**软件工程管理**(项目规划与质量保障)以及**软件工程过程**(定义和改进开发流程)。