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

需积分: 29 20 下载量 22 浏览量 更新于2024-08-20 收藏 3.53MB PPT 举报
"王立福教授的2011年软件工程课件,主题聚焦在操作的多态性,通过Rectangle类的实例展示了多态性的应用。内容涵盖软件工程的基础,软件开发的本质,软件过程,需求分析,以及不同的软件开发方法学。特别提到了结构化方法、面向对象方法等,并探讨了CMM在软件过程能力保障中的角色。" 在软件工程中,操作的多态性是面向对象编程的核心概念之一。多态性允许不同对象对同一消息(方法调用)做出不同的响应,这在Rectangle类的演示中体现得淋漓尽致。Rectangle类有三个操作:add()、grow()和move(),在Rectangle1和Rectangle2中,move()操作有不同的实现算法,这就是多态性的具体表现,即同名方法在不同子类中有不同的行为。 软件开发的本质在于将问题域(问题空间)映射到解域(计算空间),这个过程中包括数据抽象和过程抽象。数据抽象是指将问题空间中的概念转化为模型化概念,如将“张山”映射为对象。而过程抽象则是将问题的处理逻辑转换为可执行的计算逻辑,如计算学生的平均成绩。 软件过程涉及一系列相互关联的活动,从需求获取、规格定义、设计、编码、测试到维护。软件需求及系统/产品需求规约是软件开发的起点,它们不仅是开发的指导,也是测试和确认的标准。软件开发方法学则提供了实现这些过程的不同途径,如结构化方法强调自顶向下的设计,面向对象方法强调对象的封装、继承和多态。 CMM(Capability Maturity Model)是一种评估和改进软件开发过程成熟度的框架,它旨在确保软件开发过程中能够产出正确的系统或产品。通过遵循CMM,团队可以逐步提高其过程能力和产品质量。 软件工程的基本知识结构包括了对软件开发本质的理解,对软件生存周期过程的掌握,以及对各种支持和管理技术的应用。这包括选择合适的开发方法(如面向对象、面向数据结构或结构化方法等),并利用这些方法进行需求分析、设计、实现和测试等活动。 王立福教授的课件深入浅出地介绍了软件工程的关键概念,特别是多态性的实际应用,对于自学软件工程的人来说,是一份宝贵的学习资料。