软件工程基础:王立福教授讲解操作的多态性

需积分: 32 23 下载量 95 浏览量 更新于2024-08-20 收藏 3.86MB PPT 举报
"王立福教授的软件工程2012研修班课件,主要探讨了操作的多态性,结合矩形类Rectangle的例子,展示了不同实例可能有不同的实现方式。课程涵盖了软件工程的基础,软件过程,需求分析,开发方法学以及CMM等核心概念。" 在软件工程中,"操作的多态性"是一个关键概念,特别是在面向对象编程中。多态性是指一个接口可以有多种不同的行为或实现,这允许不同的对象对同一消息做出不同的响应。例如,课程中的Rectangle类定义了三个操作:`add()`,`grow()`和`move()`,以及一个属性`isEmpty`。然而,Rectangle类的两个实例Rectangle1和Rectangle2可能对`move()`操作有不同的实现(算法1和算法2),这就体现了多态性。这种特性使得代码更具通用性和可扩展性,因为我们可以定义一个通用的行为,然后由具体的对象根据其自身特性和需求来实现。 软件过程是软件开发的重要组成部分,它涉及到从需求获取到软件维护的各个阶段。需求分析是软件生命周期的起点,用于确定软件应该做什么,是后续设计、实现和测试的基础。系统/产品需求规约是确认软件是否符合预期的标准,它也是测试的关键依据。 软件开发方法学是指导开发活动的理论框架,包括结构化方法、面向对象方法、面向数据结构的方法以及维也纳开发方法等多种。选择合适的方法学能有效提高开发效率和产品质量。 CMM(Capability Maturity Model for software)是一种评估和改进软件开发过程成熟度的框架,旨在确保能产出正确的产品。它提供了一种过程改进的途径,通过管理活动的支持和实施有效的工程管理,以达到预定的工程目标。 软件开发的本质是将问题域的概念和处理逻辑转化为不同抽象层的概念和计算逻辑,包括需求、设计、实现和部署四个主要阶段。每个阶段都有其特定的模型,如概念模型、设计模型、实现模型和部署模型。映射过程涉及到将问题域(如操作系统、语言处理系统)与运行平台之间的逻辑转换,以适应不同环境和场景。 通过王立福教授的讲解,我们可以深入理解软件开发不仅仅是编写代码,更是一个涵盖广泛领域,包括理论、方法、过程和管理在内的系统工程。正确的理解和应用软件工程原理,对于开发高质量、高效能的软件产品至关重要。