软件设计模式课程教学大纲

一、课程说明

2、课程名称(中/英文):软件设计模式/Software Design Patterns

3、课程类别:专业课/限选

4、学时/学分:32/2.0

5、先修课程:Java面向对象程序设计、软件工程

6、适用专业:软件工程,计算机科学与技术,信息管理与信息系统

7、教材、教学参考书:

[1] 刘伟. Java设计模式. 北京: 清华大学出版 , 2018.

[2] 刘伟. 设计模式实验及习题解析. 北京: 清华大学出版 , 2018.

[3] Erich Gamma, Richard Helm, Ralph Johnson, JohnVlissides. Design Patterns: Elements of Reusable Object-Oriented Software.Addison-Wesley, 1995.

[4] 结城浩. 图解设计模式. 北京: 人民邮电出版 , 2016.

[5] 秦小波. 设计模式之禅(2). 北京: 机械工业出版 , 2014.

[6] 陈臣, 王斌. 研磨设计模式. 北京: 清华大学出版 , 2010.

二、课程性质和教学目的

《软件设计模式》是软件工程、计算机科学与技术、信息管理与信息系统等专业本科生的一门专业课,本课程是一门具有较强理论性和实践性的软件设计和开发类课程。

本课程主要学习软件设计模式基础知识、UML类图、面向对象设计原则、常用的创建型设计模式、结构型设计模式和行为型设计模式。本课程要求学生掌握常用软件设计模式的动机、定义、结构、实现、使用效果以及应用实例,能够将所学知识应用到实际软件项目设计与开发中,进一步培养学生的工程实践能力和专业技术水平,为今后从事相关工作奠定基础。

本课程首先学习软件设计模式的基本知识和UML类图;接着介绍常见的七个面向对象设计原则;然后重点介绍使用频率较高的软件设计模式,包括五种创建型设计模式(简单工厂模式、工厂方法模式、抽象工厂模式、原型模式、单例模式)、六种结构型设计模式(适配器模式、桥接模式、组合模式、装饰模式、外观模式、代理模式)和七种行为型设计模式(职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式、模板方法模式)。此外,为了帮助学生深入理解所学知识,提高实践动手能力并将所学知识应用于解决实际问题,本课程设置了相应的实践环节,针对具体问题合理选择设计模式,绘制相应的模式结构图并使用代码实现模式结构,通过实践环节,进一步理解和掌握所学知识并将所学知识应用于软件设计和开发。

三、课程目标(知识目标、能力目标)

(1) 知识目标

①掌握软件设计模式的概念和分类,理解设计模式的优势。

②掌握UML类图的绘制以及如何使用UML类图构建软件的静态设计模型。

③掌握常用的面向对象设计原则,并学会使用面向对象设计原则对软件设计方案进行重构。

④掌握常见软件设计模式的动机、定义、结构、效果和应用,结合实例学习如何在实际开发中运用设计模式。

(2) 能力目标

①结合具体问题要求学生合理选择设计模式提供设计方案,有助于提高学生的独立思考能力、问题解决能力和分析设计能力。

②学会使用所学知识来解决实际问题并绘制结构图,培养学生的知识运用能力和工程实践能力。

③有助于培养和提高学生的创新思维与创造能力。

四、教学内容、重点难点及教学设计

章节

教学内容

参考学时

学时分配

教学重点

教学难点

教学方案设计(含教学方法、教学手段)

讲课

(含研讨)

实践

1章设计模式概述

设计模式的诞生与发展,设计模式的定义与分类,GoF设计模式简介,设计模式的优点

2

2

0

设计模式的定义、分类和优点

设计模式的优点

以课堂讲授为主,结合课堂讨论。

2UML类图

UML概述,类与类的UML表示,类之间的关系

3

2

1

类的UML表示、类之间的关系

类之间的关系

以课堂讲授为主,结合上机实验和课堂讨论。

3章面向对象设计原则

面向对象设计原则概述,单一职责原则,开闭原则,里氏代换原则,依赖倒转原则,接口隔离原则,合成复用原则,迪米特法则

3

2

1

单一职责原则、开闭原则、里氏代换原则、依赖倒转原则、合成复用原则

依赖倒转原则、合成复用原则

采用实例驱动教学法,以实例为中心讲解相关知识点。以课堂讲授为主,结合上机实验和课堂讨论。

4章创建型设计模式

创建型模式概述,简单工厂模式,工厂方法模式,抽象工厂模式,原型模式,单例模式

7

5

2

常用创建型设计模式的动机、定义、结构和实现

抽象工厂模式、原型模式

采用实例驱动教学法,以实例为中心讲解相关知识点。以课堂讲授为主,结合上机实验和课堂讨论。

5章结构型设计模式

结构型模式概述,适配器模式,桥接模式,组合模式,装饰模式,外观模式,代理模式

8

6

2

常用结构型设计模式的动机、定义、结构和实现

桥接模式、装饰模式、代理模式

采用实例驱动教学法,以实例为中心讲解相关知识点。以课堂讲授为主,结合上机实验和课堂讨论。

6章行为型设计模式

行为型模式概述,职责链模式,命令模式,迭代器模式,观察者模式,状态模式,策略模式,模板方法模式

9

7

2

常用行为型设计模式的动机、定义、结构和实现

命令模式、观察者模式、状态模式

采用实例驱动教学法,以实例为中心讲解相关知识点。以课堂讲授为主,结合上机实验和课堂讨论。

注:实践包括实验、上机等

五、实践教学内容和基本要求

本实践教学的主要任务是要求学生通过课内实验,熟悉UML类图的绘制以及双向工程;通过面向对象设计原则对不良设计方案进行重构;结合具体项目场景,实现常用的软件设计模式,包括简单工厂模式,工厂方法模式,抽象工厂模式,原型模式,单例模式,适配器模式,桥接模式,组合模式,装饰模式,外观模式,代理模式,职责链模式,命令模式,迭代器模式,观察者模式,状态模式,策略模式和模板方法模式等设计模式。通过对本实践课程的学习,学生将熟悉UML类图的绘制和使用;熟悉常用的面向对象设计原则并使用面向对象设计原则对软件设计方案进行重构;熟悉常用的设计模式,掌握常用的设计模式的定义与结构,理解其设计方案和实现原理,结合实例学习如何运用设计模式解决项目实际问题,提高系统设计水平和代码质量,并学会分析设计模式的优缺点,熟悉模式的适用场景,使用面向对象编程语言实现常用的设计模式并绘制相应的结构图。

要求学生在课外时间,分析并研究一个已有的开源Java项目,撰写论文说明该项目在何处使用了何种设计模式,以及为什么要使用这些设计模式;或者研究设计模式与某一软件质量属性(例如可扩展性、可复用性、可维护性、可靠性等)之间的关系,撰写一篇相应的论文。通过课外实验,深入理解在真实项目中如何应用软件设计模式以及如何通过设计模式提高软件质量,有助于学生更好地掌握所学软件设计模式。

本课程实践教学内容和基本要求如下表所示:

实验项目名称

实验学时

实践内容

基本要求

实验1 UML类图和面向对象设计原则实验

2

根据项目场景绘制对应的类图;使用常用的面向对象设计原则对面向对象系统中的类设计进行重构。

(1) 正确无误绘制项目场景对应的类图。

(2) 选择合适的面向对象设计原则对系统进行重构,正确无误地绘制重构之后的类图。

实验2 创建型设计模式实验

2

结合实例实现几种常见的创建型设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和单例模式,理解每一种设计模式的模式动机,掌握模式结构,结合实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。

(1) 结合实例,正确无误地绘制简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和单例模式的模式结构图。

(2) 使用任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和单例模式实例,代码运行正确无误。

实验3 结构型设计模式实验

2

结合实例实现几种常见的结构型设计模式,包括适配器模式、桥接模式、组合模式、装饰模式、外观模式和代理模式,理解每一种设计模式的模式动机,掌握模式结构,结合实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。

(1) 结合实例,正确无误地绘制适配器模式、桥接模式、组合模式、装饰模式、外观模式和代理模式的模式结构图。

(2) 使用任意一种面向对象编程语言实现适配器模式、桥接模式、组合模式、装饰模式、外观模式和代理模式实例,代码运行正确无误。

实验4 行为型设计模式实验

2

结合实例实现几种常见的行为型设计模式,包括职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式,理解每一种设计模式的模式动机,掌握模式结构,结合实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。

(1) 结合实例,正确无误地绘制职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式的模式结构图。

(2) 使用任意一种面向对象编程语言实现职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式实例,代码运行正确无误。

六、考核方式及成绩评定

考核内容

考核方式

成绩比例(%

备注

软件设计模式基本知识、面向对象设计原则基本知识

课堂提问和测验

10

测验

面向对象设计原则和软件设计模式的应用

实验 告

20

作业

软件设计模式的应用及其与软件质量之间的关系

论文

10

软件设计模式基本知识、面向对象设计原则基本知识和软件设计模式的应用

期末考核

60

笔试(闭卷)

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年2月1日
下一篇 2018年2月2日

相关推荐