高职院校面向对象分析与设计教学方法探讨

时间:2022-10-28 06:26:40

高职院校面向对象分析与设计教学方法探讨

摘要:面向对象分析与设计,涉及的内容新、实践性强。文章着眼于高等职业院校,分析了课程体系、教学目标,以类模型图为例,阐述了抽象-实现-建模的三步教学法。

关键词:教学方法;面向对象分析与设计;统一建模语言;课程体系;教学目标

中图分类号:G642文献标识码:A文章编号:1009-3044(2008)34-1939-02

Discussion on the Method of Teaching OOAD in Vocational Colleges

JI Fei

(Software Institute,Nanjing College of Information Technology,Nanjing 210000,China)

Abstract: OOAD covers some new and practical contents. Based on the analysis of the curriculum and the instructional objectives in vocational colleges, we expatiate on abstraction-implementation-modeling teaching method with class diagram.

Key words: teaching method; OOAD; UML; curriculum; instructional objectives

1 引言

目前,高等院校(包括高职院校)在计算机相关专业都开设了“面向对象分析与设计”这门课程。课程涉及的内容新、实践性强,目前仍在不断发展、不断完善;对于学生,只有理解相关概念、技术、方法,而不是死记硬背,才能学以致用,才能在以后的实际工作中跟上技术发展的步伐。所以,探索一种新的、行之有效的教学方法是完成教学任务、达到教学目标的关键。这里,我们着眼于高职院校,来探讨“面向对象分析与设计”这门课程的教学方法。

2 课程体系与教学目标

高等职业教育属于技术应用型教育,以培养高技能的实用型、应用性人才为目标,这一目标在专业设置、课程体系、教学大纲中逐步得到明确、落实。

在计算机相关专业的课程体系中,“面向对象分析与设计”是一门专业课程,开设于“程序设计基础”等专业基础课程之后;目前,绝大多数学校的“程序设计基础”课程以C++、Java、C#等作为教学语言。所以,学生在学习“面向对象分析与设计”之前,已经能够在编程语言级别上认识“面向对象”,这是学生认知的基础,因而也就是我们展开教学的基础。

在教学大纲中,“面向对象分析与设计”的教学目标包括:①理解面向对象的概念、思想、方法;②理解软件建模的意义、方法、步骤;③具有阅读、理解软件模型图的能力;④具有使用软件建模工具绘制软件模型图的能力。

3 教学方法

马克思主义的认识论告诉我们:认识是一个由“实践到认识”再由“认识到实践”的不断反复、提高的过程。综合学生的认知基础和课程的教学目标,我们通过“抽象-实现-建模”这三个步骤来展开各个知识点的教学:①抽象(实践到认识):分析现实世界中的事物,抽取、讲解与知识点有关的概念、思想、方法等,以加深学生的理解,防止死记硬背;②实现(认识到实践):通过程序代码,来分析这些知识点对应着实际编程过程中的哪些工作,升华学生对知识点的理解;③建模(反复、提高):引入UML的模型图和和图形符号,讲述模型图的作用,同时演示、讲解建模工具的使用。

下面,我们通过类、继承、关联这些概念的简化教学过程来演示这一方法。

3.1 类的教学

[抽象] 张三是一个学生,李四是一个学生,学校有许多学生。为了指定一个具体的学生,我们必须指定其学号、姓名、班级、系部等信息。这些信息用来描述学生的特征,以便将不同的学生区分开来;同时学生也有行为,如:报到注册、考试、借书、请假,等等。可见,学生是具有相同特征、行为的群体,为了方便,我们给定一个包含共同特征、共同行为的描述框架,通过指定这个框架中的特征,就能明确指定群体中的一员。这个描述框架是群体共同特征及行为的抽象,我们称之为类,这个类取名为“学生”。对于教师,又是另外一个群体,我们需要另一个框架来描述,即“教师”类。可见类是一组具有相同特征和行为事物的抽象描述,类有三个要素:名称、一组特征、一组行为。

[实现] 在编程语言中,类是一个自定义的数据类型,C++使用“class”来标识这种定义。在C++语言中,前述的三个要素分别是类名称、成员变量、成员函数,考虑到信息隐藏的需要,需要控制对成员变量、成员函数的访问。例如:

class Student //定义一个类

{

private:

String no;//学号

String name;//姓名

……

public:

void register();//报到注册

void borrow(String bookID); //借书

……

};

[建模]在实际的软件项目中,需求明确之后,并不是直接编程,而是将构思的软件系统画在图纸上,以便讨论、推敲、修改,完了之后才是编程,这样可以避免一时的仓促或疏忽,导致返工,浪费工时。在图纸上构建软件系统,就是系统分析和设计,在这里,就是绘制系统的类图。UML使用一个上下分成三个部分的矩形来表示,上面是类名称,中间是成员变量,下面是成员函数,如下图所视。这样,我们就可以根据类图来编写代码,反之,也可以根据代码来构建类图。

在Rational Rose中,用属性(attribute)来表示成员变量,用操作(operation)来表示成员函数(由于篇幅关系,这里略去具体的操作,在实际教学中,可以采用讲练结合的一体化教学方法)。

3.2 继承的教学

[抽象] 有一些学生是党员,需要入党介绍人、入党时间、交党费这样的一些不同于其他学生的特征和行为,即具有党员这样的特殊性,怎样来描述这一群体的学生呢?从哲学的角度来讲,学生党员是学生,不仅具有党员这个特殊性,而且具有学生这个一般性。这样,我们可以在原来描述框架的基础上,添加有关党员的一些描述信息,就可以得到一个适合于学生党员的、新的描述框架。这种一般与特殊的关系,我们使用继承来表示:

继承是让某个类型的对象具有其它类的特征和行为。通过继承,可以使类的实例拥有另一个类的特征和行为。

[实现]在编程语言中,一个类(子类)从另一个类(父类)继承成员变量或函数,就是在父类的基础上再定义一个新类(子类),在其中添加自己所特有的成员变量或函数。在C++中,学生党员类可以如下定义(这里的CPStudent不仅具有自己的成员,而且还包含了Student中的成员):

class CPStudent: public Student//定义一个子类

{

private:

String introducer;//介绍人

……

public:

void payDues(Double amount);//交党费

……

};

[建模]UML使用一个带空心箭头的实线来表示继承,由子类指向父类。在Rational Rose 中继承使用泛化(generalization)关系表示。上述CPStudent和Student的关系表示如图2所示。

3.3 关联的教学

[抽象] 学生的图书证,是一类事物,可以通过编号、发放日期、有效期等信息来描述,另外上面还包含了学生的信息,以确定学生的身份。这里,图书证和学生存在一种关系,这种关系是关联。

一类事物其特征信息可能是另一类事物,我们说这两类事物之间存在关联。

[实现]在编程语言中,关联关系表示:一个类的属性其类型是另一个类。在C++中,上述图书证和学生的关联在代码上实现如下:

class LibraryCard //图书证类

{

private:

String code;//编号

Student stu;//持证学生

……

};

[建模] UML使用一个带箭头的实线来表示关联,由包含类指向被包含的类。这里,不再需要在图中给LibraryCard添加stu属性,这个stu属性蕴涵在关联关系中。上述LibraryCard和Student的关系表示如图3所示。

4 小结

本文从高等职业教育的性质、目标出发,分析了计算机相关专业的课程体系、“面向对象分析与设计”课程的教学目标,以类模型图为例,阐述了“抽象-实现-建模”的三步教学法,这种教学方法是马克思主义认识论的一个具体应用。教学实践表明,该方法能够活跃课堂的气氛、启发学生的思维,教学效果达到了教学目标的要求,符合高等职业教育对人才培养目标的要求。

参考文献:

[1] 卢红学.对我国高等职业教育人才培养目标的再认识[J].荆门职业技术学院学报,2007(4).

[2] Boggs W,Boggs M.UML与Rational Rose 2002 从入门到精通[M].邱仲潘,译.北京:电子工业出版社,2002.

[3] 国刚,周峰,孙更新.UML与Rational Rose 2003 软件工程 统一建模原理与实践教程[M].北京:电子工业出版社,2008.

[4]上海市高校《马克思主义哲学基本原理》编写组.马克思主义哲学基本原理[M].上海:上海人民出版社,1980.

上一篇:基于ARM9的铁路客车发电机系统试验台的设计 下一篇:基于NANDFlash的嵌入式文件系统μC/FS的实现