面向对象分析与设计课程教学改革探索与实践
面向对象分析与设计(OOAD)课程是软件工程专业课程的必修学科。主要任务是在学生已掌握的面向对象程序设计语言的基础之上,使学生们能够深入理解面向对象方法的精髓和实质,全面了解面向对象分析与设计相关领域的主要研究内容及关键技术,包括面向对象的需求建模、面向对象的系统分析、面向对象的系统设计及设计模式、软件架构和软件构件技术等内容[1-4]。 面向对象分析与设计是现代软件企业广为采用的一项有效技术[5],由于其较强的理论性与实践性,历来是教学的难点。掌握面向对象分析与设计原理和技术对软件开发有着重要的指导作用。高校是承担软件人才培养的主要场所,但长期以来,一个不争的事实是,IT用人单位常常对刚进入工作岗位的毕业生不满意,他们认为学生在学校里并没有为自己将来所从事的工作做好必要的准备,而教育界也意识到存在的问题,采取措施进行教学改革。面向对象分析与设计课程教学改革的一个主要方向是使课程的教学、实践等环节与现实软件开发中的情形更加相符。 一、面向对象分析与设计课程现状
面向对象分析与设计方法是目前软件开发的主流方法,它是软件工程人才必须掌握的基础知识和必备的能力[6]。可以说OOAD是软件系统开发中最能体现从业人员创新思维以及其技术精髓闪光点之处[7],而与这门课程在软件行业的重要性形成鲜
明对比的是,目前OOAD课程教学体系与模式已然落后。由于软件工程专业2008年开始建设,该课程目前已完成08、09、10、11级软件工程专业,10、11级电子商务专业讲授,教学体系、师资队伍、教学资源亟须完善。理论讲授如何和项目实践相关联,学生的学习兴趣和积极性如何提高等等,教学改革迫在眉睫。 随着教学的不断深入,通过对国内多个高校面向对象分析与设计课程设置和教学目标运行的调查,结合社会对人才需求和该课程人才培养目标的分析,发现课程存在如下问题: 1.教学内容有待完善,缺乏相对应的教学方法和手段。教育教学内容的制定,只针对了课程本身,没有很好地注重学生解决实际问题的能力,对面向应用的要求认识不足,过多重视理论教学,弱化了技术应用和实践能力培养,缺少面向对象思维培养,从而导致学生分析和设计能力提升较慢,更多地停留在基础知识和基本的应用层面。
2.教学资源匮乏。多媒体辅助教学是一种非常有效的现代化教学手段,是现代教学改革的方向之一[8],由于课程开设时间较短,课程教材、多媒体课件、参考资料不足,建立配套的教学资源,提供网络教学交流手段,提供教学效果和教学水平方面开展的工作还不够,不能很好满足教师备课、课程教学和学生学习的需要。
3.实验教学环节有待完善,缺乏设计性、综合性、应用性实验项目。实验教学环节,只针对章节所学内容进行实习,而对综
合应用、实际问题的解决缺乏有效的实验教学内容和教学环节。 4.教学手段和方法较单一。目前《面向对象分析与设计》课程仅仅完成了对相应的教学课件、教案、讲义的建设,在教学方法、教学手段、网络教学平台上还需要进一步探索和研究。 5.考核与评价方式单一,缺乏整体考核体系。目前采用单一考试成绩作为评价课程学习的主要依据。只注重知识考核,缺乏教学过程考核,应建立健全考试系统,实现知识学习和能力培养相结合的考核方式,使考核更加合理、公平、公正。因此,我们积极进行新的教学体系和教学方法的改革。 二、面向对象分析与设计课程改革的探索
针对课程目前的实际情况,进行面向对象分析与设计课程改革时,既要照顾到课程基础理论,又要照顾到分析与设计技术的新动向,因此我们在以下方面进行改革。
1.提高师资队伍水平,建设结构合理的课程组。师资队伍是课程建设的基础,一流的师资才能保证有一流的课程,按照多年在其他课程中的教学经验[9],成立以课程负责人任组长,长期从事该门课程教学的主讲教师为成员的课程小组,课程小组成员必须具有职称梯队、学历梯队、专业及年龄结构合理的特点。同时课程小组负责研究课程的目标及课程体系,制定教学大纲及教学计划,设计教学方案及教学过程,开展教学研讨,监督教学质量和效果,集中解决教学中出现的问题。课程小组成员针对课程情况,不定期地外出考察,参加教学研讨会,或进高校、公司、
企业进修,了解国内外面向对象分析与设计课程的教学、应用的现状、学科发展动态及社会人才需求,与时俱进地完善教学体系,修订教学大纲。
2.更新教学内容,改善教学组织方法,构建合理的教学、实验架构。在教学组织和课程讲授过程中引用先进的教学理念,利用网络技术、多媒体技术进行辅助教学,提高教学质量和效果。不同的教学方法和教学手段在不同章节合理搭配,扬长避短。教学组织方法如下:(1)不断更新教学内容、完善教学过程、提高学生能力。课程组制定并规范了教学内容,制作电子教案,并及时进行更新。同时,任课教师根据学生的实际情况课前做适当调整,各教师间定期交流、相互听课、优势互补。(2)根据教学情况,结合课程特点,以案例为基础,以实践为导向来组织教学。《面向对象分析与设计》是一门理论与实践并重的课程,Java语言程序设计、数据库原理与应用、软件工程、Web程序设计等课程是其先修课程。本课程对学生对项目的实践能力要求较高,通常要求学生开课前要具备一定的项目开发经验,这样学生在问题的理解和掌握上会更加准确。在近三年的授课过程中,课程组还发现仅仅拥有项目开发的经验还不够,如果能够跟进项目,对项目进行不断的更新和升级对OOAD的理解起到更加重要的作用。因为在项目功能增加、系统逻辑变复杂的过程中,学生很容易发现自己编写的程序存在的问题,更加深刻地理解OOAD及其使用方法。但由于教学条件的限制,大部分学生在本课程前并没
有参与过项目的开发,因此课程的教学方法显得尤为必要。教学过程中启发式教学、项目驱动教学、案例教学贯穿始终。启发式教学主要用在问题的提出部分,或引出解决方法部分。如:什么样的表示方法易与不同领域的人员沟通,引出UML;怎样表达对象的调用顺序,引出顺序图等。 项目驱动教学法[10]是指在教学中引入若干个项目,按照实际软件开发中的方法与步骤展开教学。课程组目前主要采用两个项目贯穿课程始终,3~5个学生为一组,该分组保持在教学的各个部分。首先进行系统设计编码,在教学过程中根据课程进度,进行面向对象的分析与设计,实习过程中进行修改。一个是学生信息管理系统,一个是综合教务管理系统。学生管理信息系统要求具有课程查询、课表查询(分别按班级、教师、教室)、选课、成绩查询等基本功能。学生对系统较熟悉,因此对问题域的了解较清楚。这个项目实际上是使学生能够利用面向对象分析与设计的知识来解决熟悉领域的问题。综合教务管理系统在学生信息管理系统的基础上增加教师模块和管理员模块,使管理员能够排课、查询课表(同学生),教师模块能够提交成绩,生成多种报表。该项目是在前一个项目的基础上完成的,使学生能够在原有基础上进行系统更新和维护,总结接口、类、属性、方法设计的缺点和漏洞,体会和理解面向对象分析和设计方法的作用。
案例教学[11-13]是由美国哈佛法学院前院长Langdel于1870年首创,后经哈佛企管研究所Doham进行推广,并从美国