软件工程与盒图示例-解决软件危机

需积分: 0 9 下载量 63 浏览量 更新于2024-08-23 收藏 3.5MB PPT 举报
"盒图例子-软件工程清华大学课件" 软件工程是一门综合性的学科,旨在解决计算机软件开发和维护中的“软件危机”。这个概念在20世纪60年代中期到70年代中期逐渐形成,因为当时软件开发过程中的诸多问题变得日益严重,包括对成本和进度的不准确估计、用户满意度低、质量问题频发、软件难以维护、缺乏适当的文档、软件成本增加以及开发效率跟不上计算机应用的发展。 软件危机的典型表现包括:开发成本和时间估算的不准确性,用户对完成系统的不满,产品质量不可靠,软件的可维护性差,缺乏必要的文档支持,以及软件成本在整体计算机系统成本中的比例不断上升。这些问题的根源在于软件本身的复杂性和易变性,以及采用的开发和维护方法的不当。 软件危机的产生原因主要有两方面:软件的内在特性,如复杂性、易变性和无形性,以及开发方法的不正确,比如忽视需求分析、将编程等同于软件开发、轻视软件维护等。在不同的开发阶段进行修改所需的成本差异显著,早期修改成本相对较低,随着项目的进展,修改成本会急剧增加。 为应对软件危机,人们提出了多种解决方案,包括采用成熟的软件工程技术和方法,发展更高效的软件工具,以及实施良好的项目管理策略。软件工程学由此诞生,它侧重于运用工程化的理念和技术来研究软件开发和维护,而程序设计方法学则更关注数学方法在程序设计理论和实践中的应用。 软件工程的核心目标是通过规范化的流程、有效的工具和严格的管理来确保软件的质量、可维护性和成本效益。这包括了需求分析、设计、编码、测试、维护等各个阶段,每个阶段都需要相应的技术和方法支持。例如,盒图(Box Diagram)就是一种用于系统设计的图形表示方法,它能够清晰地展示程序的结构和控制流,有助于软件设计的可视化和理解。 在软件工程学的框架下,1968年的北约(NATO)会议首次提出了“软件工程”这一术语,标志着软件开发从此走向了系统化和科学化的道路。软件工程学的发展不断推动着新的方法论和技术的出现,如敏捷开发、DevOps、持续集成/持续部署(CI/CD),以及模型驱动的软件工程等,以适应快速变化的软件开发环境。