《软件设计与体系结构》教学大纲

《软件设计与体系结构》课程教学大纲

  

一、教学大纲说明

   (一)课程的性质、地位、作用和任务

《软件设计与体系结构》是计算机软件工程专业选修课程,主要研究结构良好的软件体系结构及所包含的设计模式、有价值的经验和针对特定问题的解决方案,能培养和提高学生的洞察力和分析能力,为今后能设计出灵活可复用的软件打下基础。

本课程的主要任务是掌握软件体系结构相关知识、原理和各种类型设计模式的基本结构,对软件体系结构有比较深入的理解,能够从系统结构角度分析现有的软件系统,在设计实际的特定问题是懂得运用具体相关的设计模式,并能利用所学到的有关软件体系结构的知识高效地设计软件系统。

(二)教学目的和要求

本课程介绍软件体系结构的基本概念和基本原理,明确提出软件体系结构的动态性和适应性的理念,通过学习本课程使学生了解当今优秀编程人员如何灵活运用面向对象的技术进行可复用程序设计,同时使他们对面向对象技术和原理有更加深刻的认识理解,并能使用这些设计模式于实际的应用当中,另外还可以培养学生具有分析和解决问题的基本思路,以及面向对象程序设计中的可复用的思想,为日后从事大型复杂软件开发打下良好的基础。

(三)课程教学方法与手段

采用理论与案例讨论相结合的教学方法,手段拟采用PowerPoint多媒体教学及分组讨论。

(四)课程与其它课程的联系

《面向对象程序设计》是本课程的先修课,通过该课程掌握面向对象方法与技术的基本概念、特点和原理,并能运用该技术设计简单的面向对象系统,是本课程的基础。同时,本课程与《软件工程》等相关专业课程有密切联系。

(五)教材与教学参考书

教材:张春祥等编《软件体系结构理论与实践》,中国电力出版社,2011

参考书:

[1]Alan Shalloway、James R.Trott著、熊节译,《设计模式精解》,清华大学出版社,2005.1

[2] Erich Gamma等著、李英军等译,《设计模式——可复用面向对象软件的基础》,机械工业出版社,2004.9

二、课程的教学内容、重点和难点

本课程有两个主要部分:一、介绍常用的体系结构风格,软件体系结构的组成与常用的描述方法,基于体系结构的软件开发方法;二、实际设计模式的分类描述,主要包括:创建型、结构型和行为型3类共23个设计模式。

(一)    软件体系结构概论

1. 软件复用

2. 软件构件的组织与检索

3. 软件构件化

4. 软件体系结构

重点难点:

1. 软件构件化

2. 软件体系结构(难点)

(二)    软件体系结构建模

1. 软件体系结构模型

2. 软件体系结构的形式化描述

3. 软件体系结构的生命周期

4. 软件体系结构的建模语言

5. 基于软件体系结构的开发

重点难点:

1. 软件体系结构的生命周期

2. 软件体系结构的建模语言

3. 基于软件体系结构的开发(难点)

(三)    软件体系结构风格

1. 软件体系结构风格概述

2. 常用的软件体系结构风格

3. 管道/过滤器体系结构风格

4. 事件驱动体系结构风格

5. 分层体系结构风格

6. C2体系结构风格

7. 数据共享体系结构风格

8. 解释器体系结构风格

9. 软件体系结构风格概述

10.反馈控制环体系结构风格

11.客户机/服务器体系结构风格

12.浏览器/服务器体系结构风格

13.公共对象请求代理体系结构风格

14.正交体系结构风格

15.基于层次消息总线的体系结构风格

16.MVC体系结构风格

重点难点:

1. 客户机/服务器体系结构风格

2. 浏览器/服务器体系结构风格

3. MVC体系结构风格(难点)

(四)    设计模式概述

1. 什么是设计模式

2. Smalltalk MVC中的设计模式

3. 描述设计模式

4. 设计模式的编目

5. 组织编目

6. 设计模式怎样解决设计问题

7. 怎样选择设计模式

8. 怎样使用设计模式

重点难点:

1. 什么是设计模式

2. 设计模式怎样解决设计问题(难点)

3. 怎样选择设计模式(难点)

4. 怎样使用设计模式(难点)

(五)    创建型设计模式

内容:

1. Abstract Factory(抽象工厂)

2. Builder(生成器)

3.  Factory Method(工厂方法)

4. Prototype(原型)

5. Singleton(单件)

重点难点:

1. Abstract Factory(抽象工厂)(难点)

2.  Factory Method(工厂方法)(难点)

(六)    结构型设计模式

内容:

1. Adapter(适配器)

2. Bridge(桥接)

3. Composite(组成)

4. Decorator(装饰)

5. FACADE(外观)

6. Flyweight(享元)

7. Proxy(代理)

重点难点:

1. Adapter(适配器)(难点)

2. Bridge(桥接)(难点)

3. Composite(组成)

4. Flyweight(享元)

(七)    行为型设计模式

内容:

1. CHAIN OF RESPONSIBILITY(职责链)

2. COMMAND(命令)

3. INTERPRETER(解释器)

4. ITERATOR(迭代器)

5. MEDIATOR(中介者)

6. MEMENTO(备忘录)

7. OBSERVER(观察者)

8. STATE(状态)

9. STRATEGY(策略)

10.TEMPLATE METHOD(模板方法)

11.VISITOR(访问者)

重点难点:

1. CHAIN OF RESPONSIBIL ITY(职责链)

2. COMMAND(命令)

3. OBSERVER(观察者)(难点)

4. STRATEGY(策略)(难点)

5. TEMPLATE METHOD(模板方法)(难点)

   三、建议学时分配

 

第二篇:《软件设计与体系结构》教学大纲-20xx-2月版

《软件设计与体系结构》教学大纲

一、课程基本信息

软件设计与体系结构教学大纲20xx2月版

二、课程目的和任务

软件体系结构是根植于软件工程发展起来的一门新兴学科,目前已经成为软件工程研究和实践的主要领域。专门和广泛地研究软件体系结构是从20世纪90年代才开始的,1993-19xx年之间,卡耐基梅隆大学的Mary Shaw与David Garlan,贝尔实验室的Perry,南加州大学的Barry Boehm,斯坦福大学的David Luckham等人开始将注意力投向软件体系结构的研究和学科建设。三、本课程与其它课程的关系。

体系结构在软件开发中为不同的人员提供了共同交流的语言,体现并尝试了系统早期的设计决策,并作为系统设计的抽象,为实现框架和构件的共享和重用、基于体系结构的软件开发提供了有力的支持。鉴于体系结构的重要性,Dewayne Perry将软件体系结构视为软件开发中第一类重要的设计对象,Barry Boehm也明确指出:“在没有设计出体系结构及其规则时,整个项目不能继续下去,而且体系结构应该看做是软件开发中可交付的中间产品”。 四、教学内容、重点、教学进度、学时分配 第一章 软件体系结构概论

1.1 从软件危机谈起 1.1.1 软件危机的表现 1.1.2 软件危机的原因 1.1.3 如何克服软件危机 1.2 构件与软件重用 1.2.1 构件模型及实现 1.2.2构件获取 1.2.3 构件管理

1

1.2.4构件重用

1.2.5 软件重用实例

1.3 软件体系结构的兴起和发展

1.3.1 软件体系结构的定义

1.3.2 软件体系结构的意义

1.3.3 软件体系结构的发展史

1.4 软件体系结构的应用现状

第二章 软件体系结构建模

2.1 软件体系结构建模概述

2.2 "4+1"视图模型

2.2.1 逻辑视图

2.2.2 开发视图

2.2.3 进程视图

2.2.4 物理视图

2.2.5 场景

2.3 软件体系结构的核心模型

2.4 软件体系结构的生命周期模型

2.5 软件体系结构抽象模型

2.5.1 构件

2.5.2 连接件

2.5.3 软件体系结构

2.5.4 软件体系结构关系

2.5.5 软件体系结构范式

第三章 软件体系结构风格

3.1 软件体系结构风格概述

3.2 经典软件体系结构风格

3.2.1 管道和过滤器

3.2.2 数据抽象和面向对象组织 2

3.2.3 基于事件的隐式调用

3.2.4 分层系统

3.2.5 仓库系统及知识库

3.2.6 C2风格

3.3 客户朋艮务器风格

3.4 三层C/S结构风格

3.4.1 三层C/S结构的概念

3.4.2 三层C/S结构应用实例

3.4.3 三层C/S结构的优点

3.5 浏览器朋艮务器风格

3.6 公共对象请求代理体系结构

3.7 正交软件体系结构

3.7.1 正交软件体系结构的概念

3.7.2 正交软件体系结构的实例

3.7.3 正交软件体系结构的优点

3.8 基于层次消息总线的体系结构风格

3.8.1 构件模型

3.8.2 构件接口

3.8.3 消息总线

3.8.4 构件静态结构

3.8.5 构件动态行为

3.8.6 运行时刻的系统演化

3.9 异构结构风格

3.9.1 为什么要使用异构结构

3.9.2 异构结构的实例

3.9.3 异构组合匹配问题

3.10 连系统构成的系统及其体系结构

3.10.1 连系统构成的系统

3.10.2 基于SASIS的软件过程

3.10.3 应用范围

3.11 特定领域软件体系结构

3

3.11.1 DSSA的定义

3.11.2 DSSA的基本活动

3.11.3 参与DSSA的人员

3.11.4 DSSA的建立过程

3.11.5 DSSA实例

3.11.6 DSSA与体系结构风格的比较

第四章 软件体系结构描述

4.1 软件体系结构描述方法

4.2 软件体系结构描述框架标准

4.3 体系结构描述语言

4.3.1 ADL与其他语言的比较

4.3.2 ADL的构成要素

4.4 典型的软件体系结构描述语言

4.4.1 UniCon

4.4.2 Wright

4.4.3 C2

4.4.4 Rapide

4.4.5 SADL

4.4.6 Aesop

4.4.7 ACME

4.5 软件体系结构与UML

4.5.1 UML简介

4.5.2 UML的主要内容

4.5.3 直接使用UML建模

4.5.4 使用UML扩展机制

第五章 基于体系结构的软件开发

5.1 设计模式

5.1.1 设计模式概述

5.1.2 设计模式的组成

5.1.3 模式和软件体系结构

5.1.4 设计模式方法分类

4

5.2 基于体系结构的设计方法

5.2.1 有关术语

5.2.2 ABSD方法与生命周期

5.2.3 ABSD方法的步骤

5.3 体系结构的设计与演化

5.3.1 设计和演化过程

5.3.2 实验原型阶段

5.3.3 演化开发阶段

5.4 基于体系结构的软件开发模型

5.4.1 体系结构需求

5.4.2 体系结构设计

5.4.3 体系结构文档化

5.4.4 体系结构复审

5.4.5 体系结构实现

5.4.6 体系结构演化

5,5 应用开发实例

5.5.1 系统简介

5.5.2 系统设计与实现

5.5.3 系统演化

5.6 基于体系结构的软件过程

5.6.1 有关概念

5.6.2 软件过程网

5.6.3 基本结构的表示

5.6.4 基于体系结构的软件过程Petri网

第六章 软件体系结构评估

6.1 体系结构评估概述

6.2 软件体系结构评估的主要方式

6.3 ATAM评估方法

6.3.1 ATAM评估的步骤

6.3.2 ATAM评估的阶段

6.4 SAAM评估方法

5

6.4.1 SAAM评估的步骤

6.4.2 SAAM评估实例

第七章 软件产品线体系结构

7.1 软件产品线的出现和发展

7. 1.1 软件体系结构的发展

7.1.2 软件重用的发展

7.2 软件产品线概述

7.2.1 软件产品线的基本概念

7.2.2 软件产品线的过程模型

7.2.3 软件产品线的组织结构

7.2.4 软件产品线的建立方式

7.2.5 软件产品线的演化

7.3 框架和应用框架技术

7.4 软件产品线基本活动

7.5 软件产品线体系结构的设计

7.5.1 产品线体系结构简介

7.5.2 产品线体系结构的标准化和定制

7.6 软件产品线体系结构的演化

7.6.1 背景介绍

7.6.2 两代产品的各种发行版本

7.6.3 需求和演化的分类

五、实践教学内容要求

软件设计与体系结构教学大纲20xx2月版

六、课程考核方式

闭卷、笔试;最终成绩包括试卷成绩(70%)、平时成绩(10%)、实验成绩(20%)。

七、建议教材与教学参考书

1、建议教材

[1]软件体系结构.第一版.北京:清华大学出版社,2006

6

2、教学参考书

[1]张友生 软件体系结构原理、方法与实践 清华大学出版社 2009

八、编制说明

编制者:青软实训王世广

执笔人:青软实训王世广

组长:马志强 编制时间:20xx年2月

7

相关推荐