首页 > 范文大全 > 正文

《软件设计模式》课程教学过程设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇《软件设计模式》课程教学过程设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:本文针对当前《软件设计模式课程教学中存在的问题,提出一种教学设计方法,并给出了一个教学案例,最后对提出的教学设计方法进行了分析。

关键词:《软件设计模式》;教学设计;教学案例

中图分类号:G642.41 文献标志码:A 文章编号:1674-9324(2013)04-0207-02

《软件设计模式》是一套多数人知晓的、经过分类编目的、被反复使用的代码设计经验的总结。学生感觉这门课程学习起来比较困难。市场上也有一部分教材以生活中的例子或典故为主导,授课时容易只注重细节,而很难上升到一定高度,最终学生只会简单应用,不会分析,更不会进行合理的选择。本文主要针对我校学生特点及当前教学中存在的问题,总结出一个相对合理的教学方法来提高教学效果。

一、教学过程设计

本课程在讲授时采用教材为《Head First设计模式》,参考教材为《实用软件设计模式教程》、《Java与模式》、《大话设计模式》等。《软件设计模式》课程只有30(22+8)学时,要对本课程中各个具体的设计模式都一一介绍是不现实,也是不可能的。在制定教学大纲时,充分考虑到了学时、办学定位、学生特点等方面,选取了其中12个设计模式作为课堂教学的内容。选取标准主要为:①在以后工作中常用的模式。②在模式分类中具有典型代表的模式。结合传统的教学方法,在讲授本课程时使用了以下教学过程设计。

1.给出场景。即提出一个与本次课程要讲授的设计模式相关的设计问题。这一步选取场景时要注意,此场景必须是学生们比较感兴趣的、熟悉的,且学生能够依据此场景给出一个合理的设计方案。

2.场景分析。引导学生思考,给出此场景的设计方案,针对其中存在的问题,依据设计原则进行一步一步的“优化”,最后得出良好的设计方案。

3.讲授该设计模式中体现的设计原则。由于每个设计模式中体现的设计原则不同,并且同一个设计原则会在不同的设计模式中体现,所以此处的讲解关键在于设计原则的内涵及其使用。

4.引出欲讲授的设计模式的定义、意图、结构图、适用场景、优缺点、效果分析等,并用代码演示第一步提出的场景。

5.课堂练习。针对刚才的讲解,再给出1~3个不同的场景,让学生当堂给出其设计方案。

6.布置作业。此作业为课外作业,要求学生给出完整的设计及代码。

二、教学案例

观察者模式(又称/订阅模式)是软件设计模式的一种。观察者模式定义了对象间的一对多的依赖关系,当一方的对象改变状态时,所有的依赖者都会被通知并自动被更新。此种模式通常被用来实现事件处理系统。下面以该设计模式的教学为例,阐述前面的教学过程设计。

1.提出场景——报纸订阅系统。报社出版报纸,客户可随时向报社订阅或取消订阅报纸,即只要报社在运营,就会一直有人(或单位)向它们订阅或取消订阅报纸。当报社有新报纸时,就会给处于订阅状态的客户送去。如果你取消了订阅,则将收不到新的报纸。

2.场景分析。引导学生一起分析得出,该场景中主要涉及到的“角色”有:报社、报纸、客户(包括人或单位)。行为方式有:(报社)出版(报纸)、(客户)订阅(报纸)、(客户)取消订阅(报纸)。根据课堂提问及学生上课反馈情况给出其初始设计方案,如图1所示:

在初始设计方案的基础上,引导学生进一步分析,当报社有新的报纸出现时,会送到客户手中,说明客户是受到报社的影响的;并且客户向报社订阅或取消订阅报纸,其数据应放在报社方,即报社方要清楚当有报纸出版时,应发送给谁。为使此设计方案更有弹性,即当出现新的客户向报社订阅报纸或客户欲向新的报社申请订阅时,我们不影响到对方且不用修改代码,这就是说要“针对抽象编程”,如何完善已有的设计方案?也就是说我们要给报社及客户提供一个“抽象”概念。具体见图2:

3.总结模式要点。观察者定义了对象之间一对多的关系,主题用一个共同的接口来更新观察者,观察者和被观察者之间用松耦合方式结合,可观察者不知道观察者的细节,只知道观察者实现了观察者接口。使用此模式,可以从可观察者推或者拉数据,有多个观察者时,不可以依赖特定的通知次序。

4.体现的设计原则。观察者设计模式中出现体现的设计原则中“针对抽象编程”、“多用组合,少用继承”、“里氏替换原则”、“为交互对象之间的松耦合而努力”等。在课堂上对前面未讲过的设计原则再进行详述。

5.课堂练习。气象站(教材上的例子):关键是抽象出主题和观察者;图形显示系统。

6.作业布置——班会通知。设计模式:班长临时通知大家一件事,辅导员有事,班会取消。当大家听到这个消息的时候,不再去教室开会,而是各忙各的事。

三、教学分析

从学生提交的作业、课下学生反馈及期末考核等多方面来看,本课程的教学设计基本上能达到预期的目标。但存在问题有:学生水平参差不齐,有一部分学生并没有完全理解设计模式的精髓,只会简单地去“套用”。如观察者模式中,个别学生并没有完全明白主题和观察者之间的关系,即观察者的状态是随着主题状态的改变而改变的。所以作业中有的同学只让“班长”充当观察者,而有的同学仅让“班长”充当主题,这都是不正确的。作业中的“班长”具有双重身份,充当“辅导员”的观察者,而又是班内其他同学的“主题”。

参考文献:

[1]徐宏喆,侯迪.实用软件设计模式教程[M].北京:清华大学出版社,2009.

[2]黄洪.PBL的改进及在“软件设计模式”课程教学中的应用研究[J].计算机教育,2008,(8).

作者简介:李勇军(1983-),女,河南驻马店人,助教,硕士,主要研究方向为服务计算、服务组合等;余雨萍(1982-),男,河南驻马店人,助教,硕士,主要研究方向网络安全、可视化等。