基于CDIO的面向对象系列课程教学模式

2015-05-30 15:41郭艳燕童向荣杨军
计算机教育 2015年10期
关键词:编程语言面向对象软件工程

郭艳燕 童向荣 杨军

摘要:以达到CDIO工程教育目标为导向,结合面向对象系列课程抽象性强、蕴含知识面广、实战性强的特点,提出以面向对象编程语言、面向对象的数据结构、面向对象建模语言UML、面向对象分析与设计、面向对象的软件工程课程为主线,对面向对象系列课程的教学知识体系和教学实践体系进行整合和优化,建立从初级基础到中级提高再到高级深入的三段式课程体系。

关键词:面向对象;编程语言;数据结构;软件建模;软件工程;CDIO

0、引言

面向对象技术已成为软件工程学中的主流技术,在现代软件企业中得到广泛应用。面向对象技术的优点是可以构建与现实世界相对应的问题模型,并保持它们的结构、关系和行为模式,基本特征是抽象性、封装性、继承性和多态性。面向对象技术所涵盖的领域广泛,可应用在软件开发的全过程;面向对象思想还能应用在编程语言、数据结构、算法分析与设计、软件建模、软件工程等各领域。相关领域的知识形成了计算机及软件工程专业完整的面向对象课程体系。

课程体系是指既相互独立、又相互联系的各门课程组成的有机整体,是按照学生认知规律、能力培养规律和知识的科学层次规律形成的具有专业特色的课程系统。面向对象系列课程体系是计算机和软件工程专业以面向对象技术为驱动的课程体系,通过一系列课程让学生掌握基本的面向对象知识,深入理解面向对象技术的精髓和实质,全面了解面向对象相关领域的主要内容和关键技术。合理科学的课程体系是实现专业培养目标以及取得良好教学质量和效果的重要保证,直接影响学生掌握知识的广度和深度,因此对面向对象系列课程教学模式进行探索与实践有着重要意义。

1、面向对象系列课程教学模式改革的总体思路

面向对象系列课程将面向对象的相关知识完美结合,完成从基于UML建模语言描述的面向对象的分析和设计过程,到最终以面向对象编程语言实现的软件工程过程。这一系列课程紧密衔接,不断发展,并随着业界许多新方法和新技术的不断涌现,其教学内容、教学环节和教学方法都需要与时俱进。

2、面向对象系列课程学习的3个阶段

面向对象系列课程以面向对象编程语言和面向对象数据结构为基础,以面向对象建模为提高,以面向对象分析设计和面向对象的软件工程为综合深入,形成由浅到深的3个学习阶段。面向对象系列课程各阶段的知识体系如图1所示,每个阶段要达到的能力目标如图2所示。这3个阶段的学习不是孤立的,而是紧密联系的,知识层次由浅入深,逐渐系统化,专业技能由简单到综合。

2.1初级阶段

初级阶段通过学生学习面向对象编程语言,帮助学生直观理解和掌握面向对象技术的基础知识;通过学生学习面向对象的数据结构,帮助学生加强理解面向对象思想,提高编程能力、数据抽象能力以及在具体实践和工程中解决问题的能力。

通过面向对象系列课程中的C++程序设计与Java程序设计课程中的语法代码结构,直观了解面向对象程序设计的基本概念与方法,对抽象、封装、继承和多态形成初步认识,建立面向对象程序设计的基本思想,掌握基本的面向对象编程方法,利用面向对象编程语言解决一般应用问题,为后续的专业课程奠定面向对象程序设计基础,这是面向对象技术课程体系的初级基础阶段建设目标。对于面向对象的数据结构采用面向对象的方法,根据数据的逻辑结构进行抽象,将数据的存储和操作进行分类封装,提高抽象数据类型的可扩展性和可复用性,尤其为面向对象编程语言的高级应用如C++的STL和Java中泛型的理解打下基础。

2.2中级阶段

中级阶段通过对软件的可视化建模,提高学生对面向对象思想的理解程度。统一建模语言UML课程通过可视化方法为软件系统建模,便于学生对软什开发分析和设计阶段的理解和系统展示,为软件开发后期的面向对象编程实现提供技术保证。通过课程学习,学生可以从具体和抽象两方面更好地理解软件设计模型与代码实现之间的关系,使用相应的建模工具(如Rose、EA、Visio等),用标准化的图形方式展示所设计的软件系统。

面向对象的建模语言UML是一种定义良好、易于表达、功能强大的可视化建模语言,目前已成为软件行业建模的标准语言。使用UML可以帮助用户对软件系统进行面向对象的描述和建模,并且支持软件开发全过程。例如,用例图展示系统需求;用类图展示系统分析设计阶段的静态结构;用顺序图、通信图、交互纵览图、定时图、状态图展示系统的动态交互;用组件图和配置图展示系统的物理视图以及使用用例进行系统测试。

2.3高级阶段

高级阶段通过软件工程的实践的应用,帮助学生深入理解面向对象思想。面向对象分析与设计课程主要介绍面向对象分析与设计的基本原则和方法、UML的软件应用以及设计模式相关知识。学生通过课程学习可掌握面向对象系统分析、设计的原理与方法,通过案例分析熟练使用UML语言描述面向对象的分析与设计。面向对象的软件工程主要是从面向对象的角度对软件工程进行重新演绎。将面向对象分析设计与软件工程相结合,可以使学生更好地理解软件开发过程各个阶段的目标和任务。

通过对面向对象系列课程3个阶段由浅入深、从点到线的学习,学生能够系统了解和掌握面向对象的相关知识和技术,利用面向对象思想进行软件需求分析,通过软件建模完成软件的系统分析和设计,采用面向对象编程语言完成软件功能实现,对软件系统进行测试和维护。学生通过软件开发全过程,可以掌握不同软件开发方法中的分析设计技巧和不同阶段中开发和建模工具的使用,增强思维能力和综合技术应用能力。

3、面向对象系列课程改革的主要方面

3.1优化面向对象系列课程的知识体系结构

优化面向对象系列课程的知识体系结构,必须处理好面向对象系列课程的教学内容前后衔接问题,设置好3个学习阶段的教学内容。原有系列课程的知识体系结构存在前期准备知识不完整、知识点衔接不连续、部分知识点多次同角度重复等问题。这些问题的存在使得学生的课程学习效果不能达到培养目标的要求,需要教师对系列课程的理论教学知识体系结构重新整合和优化。在优化教学知识体系的过程中,教师需遵循以下两个原则。

(1)必须从全局和整体上把握面向对象知识,对各门课程内容进行合理整合,既要避免同一知识点重复出现,又要体现相同知识点在不同应用背景下的不同侧重。例如,仅仅是对于面向对象技术主要特点即封装性、继承性和多态性的讲解,在不同课程中的侧重点有所不同。在初级阶段,C++程序设计课程侧重于面向对象的基础:独立的具体类的代码构成;统一建模语言UML课程侧重于类之间的关系和类对象之间动态交互细节的UML图展示;面向对象分析与设计课程侧重于用面向对象设计的基本原则,以保证系统设计的正确性,关注设计模式的应用,以保证系统设计的灵活性、扩展性和可复用性。

(2)分析面向对象系列课程之间的层次关系,合理设计教学内容的衔接,注重课程的连贯性。教师应做好前后知识的铺垫和良好过渡,既要保证后续课程的教学内容以前序课程内容为基础,又要保证后续课程可将多门前序课程进行综合扩展,使整个过程呈现螺旋上升的状态,形成有序、统一、科学的课程知识体系结构。

例如,在讲解面向对象的数据结构课程中的双向链表时,如图3所示,对于链表中的每一个节点,需要用前序C++程序设计课程中所学的类代码表示;在学习面向对象建模语言课程时,又可以使用UML中的静态类关系图展示双向链表中节点的关系结构,如图4所示,双向链表自身作为抽象数据类型的UML类图如图5所示:在学习面向对象编程语言的高级应用STL时,可以从更高的抽象层次理解双向链表的操作。在学习面向对象分析与设计时,使用开闭原则能更好地理解序列化容器问题,如图6所示。通过这样的方式,学生可以将多门课程中学习到的知识融合在一起,从不同角度和深度理解面向对象的思想及应用。

3.2优化面向对象系列课程的实践体系结构

优化面向对象系列课程的实践体系结构必须确定好理论教学环节与实践教学环节的最佳比例,构建合理科学的实践体系结构,培养学生在软件项目体系结构的实践平台上综合运用所学知识的能力。实践体系结构的构建要结合面向对象系列课程的特点,以CDIO工程教育模式为指导思想,借鉴“设计一实施”的基本思想。

教师可搭建全新的面向对象的实践体系结构,以实践为导向,采用项目驱动的教学方法,使其成为驱动其他教学环节的有效手段。教师在实践中讲授知识,将理论知识的关键点通过实践环节传授给学生,使学生能更准确地理解实践和理论的要点,不仅能让学生感到学有所用,提高学习兴趣,而且能增强学生综合应用所学技术的能力。

项目驱动的教学方法关键在于项目的遴选和项目教学的持续性。由于单门课程项目驱动存在驱动持续时间短、扩展项目难度困难等问题,因此对一系列课程采用同一个项目进行驱动是较为合适且科学的方法。教师选择项目时,应考虑项目的实用性和可扩展性以及是否符合系列课程的整体教学需求。在项目实践实施中,各门课程的授课教师应及时进行反馈和总结,改进和完善教学项目。

例如,在系列课程教学中都可以采用图书管理系统开发项目。在初级阶段,关注图书管理系统控制台应用程序面向对象代码的C++或Java实现,此阶段需求较简单,类的抽象相对容易。在中级阶段,要求采用UML建模语言对图书管理系统进行展示,以用例图展示需求,以类图展示类之间的关系,以顺序图展示类对象之间的动态交互,以状态图展示类对象状态的变化等。通过应用各种UML图,学生可以更好地理解所开发的系统。在高级阶段,关注设计的正确性、灵活性和扩展性,利用面向对象思想的基本设计原则加以验证,如通过Liskov替换原则判断中级阶段建立的类之间的继承关系是否正确,通过开闭原则和接口隔离原则判断建立的系统是否在保证正确性的同时具有扩展性,并可以将分析类中的实体类与数据库中的表对应统一,使用适当的设计模式进行高级应用,提高系统的稳定性。

4、面向对象系列课程教学模式改革的目标

面向对象系列课程的教学改革通过优化理论体系结构和实践体系结构,形成了课程学习的3个阶段,达到了以下两个目标。

(1)将面向对象技术人才中所需要的知识、技能、系统构造能力培养整合其中,使学生掌握扎实、深厚的知识与技术基础,这是CDIO工程教育的第1个总体目标。

(2)以从软件需求到软件运行的生命周期为载体,让学生以主动的、实践的、课程之间有机联系的方式学习工程,注重培养学生掌握工程基础知识,具备个人能力、团队能力和工程实践能力,这与CDIO构思、设计、实施和运行的理念一致,可以达到CDIO工程教育的第2个总体目标。

5、结语

针对原有系列课程中各门课程教学环节和实践环节存在的问题,笔者重新整合教学和实践环节,让原本独立或重复的各门课程从教学内容到实践环节都前后衔接,形成一体,符合面向对象的软件开发过程。通过一系列的整合和优化,学生可以逐渐掌握面向对象软件开发过程中各个阶段应具备的技能和所需的开发工具,更好地培养符合CDIO工程教育模式要求的“厚基础、强实践”的应用型、实践型工程人才。

猜你喜欢
编程语言面向对象软件工程
压力-体积转换在CFC编程语言中的实现解析
Java编程语言的特点与应用
面向对象的计算机网络设计软件系统的开发
浅谈不同编程语言对计算机软件开发的影响
面向对象的数据交换协议研究与应用
依托工作室的软件工程实践教学研究
基于工程教育认证的《软件工程》课程教学质量建设研究 
关于如何创新和完善计算机软件工程管理的探讨
面向对象Web开发编程语言的的评估方法
面向对象信息提取中影像分割参数的选择