【软件工程】是一门综合性的学科,旨在解决计算机软件开发和维护过程中遇到的"软件危机"问题。软件危机主要体现在成本、进度、质量、维护、文档、效率等多个方面。为应对这一危机,1968年北约会议提出了"软件工程"的概念,强调采用工程化的方法和技术,将软件视为工业产品,注重规范、计划和管理。
软件工程涵盖了计算机科学、管理科学、工程学和数学等多领域的知识。它不仅关注技术方法,如结构化分析、面向对象设计,还涉及项目管理,如成本估算、进度安排和质量管理。软件工程理论和技术建立在计算机科学基础上,利用管理学、工程学和数学的原理,对软件开发过程进行系统化、规范化管理。
软件开发的过程通常包括以下几个关键阶段:
1. **问题定义与可行性研究**:确定软件项目的目标,分析其可行性和经济性。
2. **需求分析**:需求分析是软件开发的基础,包括需求分析概述、结构化分析方法(如数据流图和数据字典)等,确保明确并完整地理解用户需求。
3. **软件设计**:设计阶段分为概要设计和详细设计,其中概要设计定义软件的整体架构和模块划分,详细设计则关注每个模块的具体实现。设计方法有结构化设计和面向对象设计,后者更强调对象的封装、继承和多态性。
4. **软件编程**:根据设计文档编写源代码,实现软件功能。
5. **软件测试**:包括测试用例设计、测试实例设计和软件调试,确保软件的质量和稳定性。
6. **软件维护**:软件上线后的修复错误、改进性能和适应新需求的过程,是软件生命周期中持续时间最长的阶段。
软件工程强调在整个开发过程中产生清晰、全面的文档,以便管理和控制软件开发,同时也有助于后续的维护工作。国际上制定了一系列软件工程的技术标准,例如中国的GB8655、GB8567和GB1526等,这些标准对规范软件开发和提高软件质量起到了积极的推动作用。
软件生存周期是指软件从构思、开发、使用到废弃的全过程,包括需求分析、设计、编码、测试、部署和维护等多个阶段。每个阶段都有其特定的任务和目标,通过合理的管理可以有效地控制软件项目的质量和进度,降低软件危机的影响,提高软件开发的效率和成功率。