软件危机与软件工程概念:殷仁昆教授讲解

需积分: 32 2 下载量 10 浏览量 更新于2024-08-14 收藏 196KB PPT 举报
"这篇内容来自清华大学郑人杰和殷仁昆教授的《软件工程讲义》,探讨了软件工程的起源及其重要概念。" 在计算机科学领域,软件工程是一门专门应对“软件危机”的学科。软件危机指的是在软件开发过程中普遍遇到的一系列问题,如软件成本过高、开发周期延误、质量难以保证以及后期维护困难。这些问题的根本原因在于开发人员创建的软件无法满足用户的需求,这既可能涉及到人的因素,如沟通不足或理解偏差,也可能涉及到技术问题,如设计缺陷或方法不恰当。 软件工程的出现是为了提供一套系统化、规范化的解决方案。1968年,Bauer在北大西洋公约组织会议上首次提出“软件工程”这一概念,强调以经济高效的方式开发可靠的软件。随着时间的推移,国际电气和电子工程师协会(IEEE)对软件工程的定义进行了多次修订,以反映其在开发、运行、维护和修复软件方面的系统方法和工程化应用。 在软件工程实践中,有一套完整的框架来指导开发过程。该框架包括软件工程的目标,如提高软件的可用性、正确性和经济性;软件工程过程,涵盖需求获取、分析、设计、实现、测试、确认和维护;以及软件工程的原则,如选择合适的开发模型、采用适当的设计方法、提供高质量的工程支持,并重视管理。 软件工程过程中的关键环节涉及多种建模方法,如结构化分析时的数据流图、实体关系图、状态迁移图和数据字典;结构化设计时将数据流图转化为系统结构图;结构化程序设计时的程序流程图、N-S图和PAD图;还有程序环路复杂性计算、测试用例设计(逻辑覆盖、循环测试、基本路径覆盖、因果图)、可靠性分析以及后期的维护。随着技术发展,OMT和UML等现代建模语言也成为了软件工程的重要工具,如对象模型、动态模型(状态图、事件追踪图)、用例图、类图、顺序图和活动图等。 此外,软件被分为应用软件、系统软件和支撑软件三大类,它们与硬件、数据库、人以及各种过程共同构成了计算机系统。软件的发展经历了从早期的程序设计阶段到程序系统阶段,最终演变为现在的软件工程阶段。 软件工程是一个综合性的学科,它不仅关注技术层面,还重视管理和工程方法,旨在解决软件开发中的实际问题,提高软件质量和效率,确保软件能够满足用户需求并适应不断变化的环境。