《软件工程思考题答案》这份文档涉及了软件工程的基础概念、分类、危机表现、原因以及软件工程的核心要素、目标、原则和原理。以下是对这些知识点的详细解释:
1. **软件的特点**:
- 软件是逻辑实体,抽象性强,无形可见,需要通过分析理解其功能和性能。
- 软件由人脑创造,开发过程与硬件不同,涉及到质量控制和保护问题。
- 软件的运行受限于计算机系统,存在移植问题。
- 手工开发方式为主,导致开发效率低下。
2. **软件分类**(2006年国家分类标准):
- 按功能:系统软件、支撑软件、应用软件。
- 按规模:微型、小型、大型、甚大型、极大型软件。
- 按工作方式:实时、分时、交互式、批处理软件。
- 按服务对象:工程软件、产品软件。
- 按使用频度和失效影响进行区分。
3. **软件危机的表现**:
- 开发进度难以预测。
- 成本控制困难。
- 用户需求难以满足。
- 质量无法保证。
- 维护困难。
4. **软件危机的原因**:
- 用户需求模糊不清。
- 缺乏有效的理论指导。
- 软件规模增大,复杂度提高。
5. **软件工程三要素**:
- 方法:指导软件开发的具体步骤和技术。
- 工具:辅助软件开发的自动化工具。
- 过程:软件生命周期中的一系列有序活动。
6. **软件工程的根本目标**:
- 降低开发成本。
- 实现所需功能。
- 提高软件性能。
- 便于移植。
- 降低维护费用。
- 按时交付使用。
7. **软件工程的根本原则**:
- 抽象:通过层次结构管理和自顶向下的细化来控制复杂性。
- 信息隐蔽:模块内部实现细节对外部隐藏,实现封装。
- 模块化:将复杂问题分解为独立的模块。
- 局部化:模块内部紧密相关,模块间松散耦合。
- 确定性:避免歧义,规范表述。
- 一致性:系统内各方面保持一致。
- 完备性:确保软件完整实现所有功能。
- 可验证性:通过分层检查确保正确性。
8. **软件工程的根本原理**:
- 分阶段生命周期管理。
- 进展阶段评审。
- 严格的产品控制。
- 使用现代编程技术。
- 清晰审查结果。
- 精干的开发团队。
- 不断改进实践。
9. **瀑布模型的特点**:
- 最早的开发模型,提供基本框架。
- 一次性通过,每个阶段仅执行一次。
- 适用于大型项目,利于人员组织和管理。
以上就是文档中涉及的软件工程核心知识点的详细解析,这些内容涵盖了软件的基本性质、分类体系、开发挑战及其解决方案,以及软件工程的理论基础,对于理解和实践软件开发具有重要意义。