软件工程:王福利讲解表达及其格式——UML状态转换

需积分: 12 1 下载量 171 浏览量 更新于2024-08-23 收藏 3.53MB PPT 举报
"王福利软件工程课件,涵盖了软件工程的基础知识,强调理解软件开发的本质和方法,讲解了软件过程、需求分析、开发方法学以及CMM等关键概念。课件特别提到了在UML中状态转换的表示方式,转换触发器、监护条件和动作表达式的格式,并通过实例解释了软件开发中的抽象过程,如数据抽象和过程抽象。" 在软件工程中,表达及其格式是沟通和记录系统行为的重要工具。在UML(统一建模语言)中,状态转换的表示是一个关键概念。一个状态转换表现为一条从源状态出发并终止于目标状态的带箭头的实线。这个转换可以被标记,其格式包括转换触发器、监护条件和动作表达式: 转换触发器描述了一个带参数的事件,如“事件名(参数表)”,它定义了导致状态改变的特定条件。例如,当用户点击按钮(ButtonClick)时,系统可能从一个状态转换到另一个状态。 监护条件通常是一个布尔表达式,用于确定转换是否可以发生。它可以引用事件参数、对象的属性、链,甚至可以直接指定对象是否处于特定状态,如“in State1”或“not in State2”。 软件工程不仅关注技术实现,更关注如何有效地进行软件开发和评估。北京大学软件工程国家工程研究中心的王福利教授强调了软件开发的本质,即问题域到不同抽象层的概念和计算逻辑的映射。他通过三个示例说明了这一过程: 1. 数据抽象:将问题空间的概念映射到解空间的模型化概念,例如,将现实世界的人物“张山”抽象为一个对象。 2. 过程抽象:将问题空间的处理逻辑转化为解空间的处理逻辑,如计算学生成绩的算法,将原始数据转换为处理逻辑。 3. 交互图:用于描述对象间的交互,如在需求分析和设计阶段,用面向对象方法描绘计算学生成绩的场景。 软件开发过程涵盖了软件生命周期的各个阶段,包括需求分析、系统/产品需求规约、开发方法学选择(如结构化、面向对象等)、以及过程能力的保障(如CMM)。每个阶段都对最终产品的质量和可维护性有着深远影响。软件工程的基本知识结构为这些活动提供了理论支持和实践指导,帮助开发者理解并掌握软件开发的正确路径。