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

课程代码

045101652

课程名称

软件设计与体系结构

英文名称

Software Design and Architecture

课程类别

专业课

课程性质

选修

学时

总学时:32 实验学时:8理论学时:24

学分

2

开课学期

第五学期

开课单位

计算机科学与工程学院

适用专业

计算机科学与技术

授课语言

中文授课

先修课程

软件工程、面向对象程序语言

毕业要求(专业培养能力)

(本学院开设的专业课填写;根据专业所列的毕业要求来填写)

课程培养学生的能力(教学目标)

本课程对学生达到如下毕业要求有如下贡献:

1.工程知识:掌握扎实的计算机专业基础知识、专业基本原理、方法和手段,能够将程序语言、面向对象设计、软件工程等基础知识和专业知识用于解决复杂软件系统设计问题,并接触和掌握大型软件系统设计知识,为解决以后从事大型软件系统设计与开发打下知识基础。

2.问题分析:能够利用软件工程、UML、面向对象设计、本专业基本原理、方法和手段研究分析软件设计与体系结构中的复杂问题,以获得有效的软件设计与结构。

3.设计/开发解决方案:能够设计针对大型软件系统复杂问题的解决方案,设计满足特定需求的软件系统,并能够在系统设计环节中体现实用和可靠性,考虑行业及主流技术等因素。

4.研究:能够基于科学原理并采用科学方法对大型软件系统复杂问题进行研究,包括设计实验、分析与解释案例、并通过信息综合得到合理有效的结论。

5.使用现代工具:能够针对软件系统中的复杂问题,设计、开发、选择与使用恰当的技术、资源和工具,包括对系统中复杂问题的预测与模拟,并能够理解其局限性。

课程简介

完成课程后,学生将具备以下能力:

1)掌握软件设计的基本原理和基本知识,培养学生发现问题、解决问题的基本能力。[12

2)掌握软件体系结构的基本知识,学生具有设计大型软件系统的初步能力。[134

3)掌握常用的软件体系结构建模能力(主要指UML和软件设计模式),并具有初步设计能力,培养学生的实践能力。[35

主要仪器设备与软件

UMLRationalRose 2003或其他UML建模软件

实验报告

根据指导老师布置的题目,选择合适的软件体系架构及软件设计模式,给出相应的软件系统设计,并完成相应的实验报告。实验报告内容应该给出需求的分析、设计的目的、采用的设计方案和设计模式、最后的解决方案。

考核方式

本课程注重过程考核,成绩比例为:

实验报告:20%

期末考试(闭卷):80%

教材、实验指导书及教学参考书目

现用教材:孙玉山刘旭东等编写“软件设计模式与体系结构”,高等教育出版社

参考书:

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

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

制定人及发布时间

黄松,2019414


《课程名称》实验教学内容与学时分配

实验项目编号

实验项目名称

实验学时

实验内容提要

实验类型

实验要求

每组人数

主要仪器设备与软件

1

经典软件体系结构风格

2

熟悉管道-过滤器软件体系结构、基于事件的隐式调用风格和层次软件体系结构

验证性

必做

1

UMLJava

2

分布式软件体系结构风格

2

C/S体系结构风格B/S体系结构风格

验证性

必做

1

UMLJava

3

MVC风格

2

MVC的应用和编程实现

验证性

必做

1

UMLJava

4

设计原则和设计模式

2

熟悉主要的面向对象设计原则和设计模式

验证性

必做

1

UMLJava




































CourseTitle”Syllabus

Course Code

045101652

CourseTitle

Software Design and Architecture

CourseCategory

Specialty-relatedCourse

CourseNature

ElectiveCourse

Class Hours

24

Credits

2

Semester

6th

Institute

College ofComputer Science and Engineering

ProgramOriented

ComputerScience and Technology

TeachingLanguage

Chinese

Prerequisites

SoftwareEngineering, Object-Oriented Programming Language

StudentOutcomes (Special Training Ability)

Afterthis course, students will own the following abilities:

1masterthe basic theory and knowledge of software designs, train studentsthe basic ability to find problems and solve problems.12

2ownthe basic knowledge of software architecture and yield the abilityto design large software systems.134

3understandcommon software architecture, modeling capability (mainly UML andsoftware design patterns), and have preliminary design ability,train students' practical ability.35

TeachingObjectives

Softwaredesign and architecture is an elective course in computer scienceand technology. It mainly researches on good design patterns andgood structure that contains valuable experience and specificsolutions to the problems, and train and improve students' insightand analysis ability on designing flexible and reusable softwarefor future work.

The maintask of this course is to master the basic knowledge of softwarearchitecture, principle and types of design patterns, a morein-depth understanding of software architecture, to analyzeexisting software systems from the viewpoint of systemarchitecture, specific problems in the practical design andunderstand how to use the specific design patterns related to thestructure of the software system and use the knowledge to designeffectively software systems.

CourseDescription

Thiscourse has two main parts: the first part introduces the commonlyused architecture style, composition of software architecture andcommon description method, software development method based onarchitecture. The second part introduces the actual design patterndescription, including: creative type, structural type andbehavioral type with a total number of 23 design patterns.

OneIntroductionto software architecture     2 hours

1.software reuse

2.organization and retrieval of software components

3.software component

4.software architecture

Keyand difficult points:

1.software components

2.software architecture (difficulties)

TwoModelingof software architecture   2 hours

1.software architecture model

2.formal description of software architecture

3.software architecture life cycle

4.software architecture modeling language

5.software architecture based development

Keyand difficult points:

1.software architecture life cycle

2.software architecture modeling language

3.software architecture based development (difficulties)

Threesoftwarearchitecture style, 4 hours

1.software architecture style overview

2.common software architecture style

3.pipeline / filter architecture style

4.event-driven architecture style

5.tiered architecture style

6.C2architecture style

7.data sharing architecture style

8.interpreter architecture style

9.software architecture style overview

10.feedback control loop architecture style

11.client / server architecture style

12.browser / server architecture style

13.common object request broker architecture style

14.orthogonal architecture style

15.architecture style based on hierarchical message bus

16.MVCarchitecture style

Keyand difficult points:

1.client / server architecture style

2.browser / server architecture style

3.MVCarchitecture style (difficulty)

Fourdesignpatterns overview   2 hours

1.what is design pattern?

2.Design patterns in Smalltalk MVC

3.describe design patterns

4.cataloging of design patterns

5.organization cataloging

6.how design patterns solve design problems?

7.how to choose design patterns?

8.how to use design patterns

Keyand difficult points:

1.what is design pattern?

2.,how design pattern solves design problems (difficulties)?

3.,how to choose design patterns (difficulties)?

4.how to use design patterns (difficulties)

FiveCreativedesign patterns   4 hours

1. Abstract Factory

2. Builder

3.  Factory Method

4. Prototype

5. Singleton

Keyand difficult points:

1. Abstract Factory

2.  Factory Method

SixStructuraldesign patterns   4 hours

1. Adapter

2. Bridge

3. Composite

4. Decorator

5. FACADE

6. Flyweight

7. Proxy

Keyand difficult points:

1. Adapter

2. Bridge

3. Composite

4. Flyweight

SevenBehavioraldesign patterns   6 hours

1. CHAIN OF RESPONSIBILITY

2. COMMAND

3. INTERPRETER

4. ITERATOR

5. MEDIATOR

6. MEMENTO

7. OBSERVER

8. STATE

9. STRATEGY

10TEMPLATE METHOD

11VISITOR

Keyand difficult points:

1. CHAIN OF RESPONSIBIL ITY

2. COMMAND

3. OBSERVER

4. STRATEGY

5TEMPLATE METHOD

Instrumentsand Equipments

UMLRationalRose 2003 or other UML modeling software

ExperimentReport

Accordingto the topics assigned by the instructor, select the appropriatesoftware architecture and software design model, give thecorresponding software system design, and complete thecorresponding experimental report. The content of the experimentreport should give the analysis of the demand, the purpose of thedesign, the design pattern and the final solution.

Assessment

Thiscourse focuses on process assessment, and the schore ratio is:

Experimentreport: 20%

Finalexamination (closed): 80%

TeachingMaterials and Reference Books

Currentteaching materials: Sun Yushan, Liu Xudong, etc., "softwaredesign patterns and architecture", Higher Education Press

Referencematerials

[1]AlanShalloway, James R.Trott, "design patterns explained",Tsinghua University press, 2005.1

[2] ErichGamma, Li Yingjun et al., "design patterns: Reusable ObjectOriented Software Based",  Mechanical Industry Press, 2004.9

Preparedby Whom and When

HuangSong2019/4/14

CourseTitle”ExperimentalTeaching Arrangements

No.

ExperimentItem

ClassHours

ContentSummary

Category

Requirements

Numberof StudentsEach Group

Instruments,Equipments and Software

1

Classicsoftware architecture style

2

Familiarwith the pipeline-filter software architecture, event-basedimplicit call style, and hierarchical software architecture

Verification

Compulsory

1

UML andJava

2

Distributedsoftware architecture style

2

C/Sarchitecture style and B/Sarchitecture style

Verification

Compulsory

1

UML andJava

3

MVC style

2

Applicationof MVC and its implementations

Verification

Compulsory

1

UML andJava

4

Designprinciple and design pattern

2

Familiarwith main object-oriented design principles and design patterns

Verification

Compulsory

1

UML andJava

























……

……