软件工程:变换模型与程序开发方法

需积分: 32 2 下载量 45 浏览量 更新于2024-08-14 收藏 196KB PPT 举报
"变换模型-清华大学郑人杰_殷仁昆教授_《软件工程讲义》-01" 本文档是清华大学计算机系郑人杰和殷仁昆教授关于软件工程讲义的一部分,主要讨论了变换模型及其在软件开发中的应用。变换模型是一种基于形式化规格说明语言和程序变换的开发模型,强调通过一系列自动或半自动的程序变换,将形式化的软件规格转化为可执行的程序系统。在这一过程中,每一步骤的正确性只依赖于当前的规范和对下一步的假设。 软件工程是一个广泛的概念,源于解决所谓的“软件危机”,包括软件价格上升、开发成本超预算、周期延误、质量难以保证以及维护困难等问题。软件工程的目标是通过工程化的方法来经济有效地开发可靠且符合需求的软件。从1968年到1993年,软件工程的定义不断发展,强调了系统化、规范化和可度量的方法在软件生命周期中的应用。 在软件工程框架中,涵盖了三个关键方面:软件工程目标,如可用性、正确性和经济性;软件工程过程,涉及需求获取、分析、设计、实现、测试、确认和维护等环节;以及软件工程的原则,包括选择合适的开发模型、采用适当的设计方法、提供高质量的工程支持和强化管理。 讲义还提到了软件工程中的一些经典方法和技术,例如结构化分析中的数据流图、实体关系图和状态迁移图,以及结构化设计的转换。此外,还涵盖了程序设计的不同表示方式,如程序流程图、N-S图和PAD图,以及程序环路复杂性的计算。在测试方面,讨论了逻辑覆盖、循环测试、基本路径覆盖和因果图等测试用例设计方法。对于更现代的建模方法,OMT和UML也有所提及,包括对象模型、动态模型(如状态图和事件追踪图),以及用例图、类图、顺序图和活动图。 软件可以分为应用软件、系统软件和支撑软件,其发展经历了程序设计阶段、程序系统阶段和软件工程阶段。软件危机的根本原因是开发人员的产品无法满足用户需求,这既涉及人的因素,也涉及技术问题。因此,软件工程不仅仅是技术层面的挑战,也是管理和组织层面的挑战,需要综合运用各种方法和工具来确保软件的成功开发和维护。