《软件设计与体系结构》实验教学大纲
课程代码 | 045101652 |
课程名称 | 软件设计与体系结构 |
英文名称 | Software Design and Architecture |
课程类别 | 专业课 |
课程性质 | 选修 |
学时 | 总学时:32 实验学时:8理论学时:24 |
学分 | 2 |
开课学期 | |
开课单位 | 计算机科学与工程学院 |
适用专业 | 计算机科学与技术 |
授课语言 | 中文授课 |
先修课程 | 软件工程、面向对象程序语言 |
毕业要求(专业培养能力) | (本学院开设的专业课填写;根据专业所列的毕业要求来填写) |
课程培养学生的能力(教学目标) | 本课程对学生达到如下毕业要求有如下贡献: 1.工程知识:掌握扎实的计算机专业基础知识、专业基本原理、方法和手段,能够将程序语言、面向对象设计、软件工程等基础知识和专业知识用于解决复杂软件系统设计问题,并接触和掌握大型软件系统设计知识,为解决以后从事大型软件系统设计与开发打下知识基础。 2.问题分析:能够利用软件工程、UML、面向对象设计、本专业基本原理、方法和手段研究分析软件设计与体系结构中的复杂问题,以获得有效的软件设计与结构。 3.设计/开发解决方案:能够设计针对大型软件系统复杂问题的解决方案,设计满足特定需求的软件系统,并能够在系统设计环节中体现实用和可靠性,考虑行业及主流技术等因素。 4.研究:能够基于科学原理并采用科学方法对大型软件系统复杂问题进行研究,包括设计实验、分析与解释案例、并通过信息综合得到合理有效的结论。 5.使用现代工具:能够针对软件系统中的复杂问题,设计、开发、选择与使用恰当的技术、资源和工具,包括对系统中复杂问题的预测与模拟,并能够理解其局限性。 |
课程简介 | 完成课程后,学生将具备以下能力: (1)掌握软件设计的基本原理和基本知识,培养学生发现问题、解决问题的基本能力。[1、2] (2)掌握软件体系结构的基本知识,学生具有设计大型软件系统的初步能力。[1、3、4] (3)掌握常用的软件体系结构建模能力(主要指UML和软件设计模式),并具有初步设计能力,培养学生的实践能力。[3、5] |
主要仪器设备与软件 | UML、RationalRose 2003或其他UML建模软件 |
实验报告 | 根据指导老师布置的题目,选择合适的软件体系架构及软件设计模式,给出相应的软件系统设计,并完成相应的实验报告。实验报告内容应该给出需求的分析、设计的目的、采用的设计方案和设计模式、最后的解决方案。 |
考核方式 | 本课程注重过程考核,成绩比例为: 实验报告:20% 期末考试(闭卷):80% |
教材、实验指导书及教学参考书目 | 现用教材:孙玉山, 刘旭东等编写“软件设计模式与体系结构”,高等教育出版社 参考书: [1]AlanShalloway、JamesR.Trott著、熊节译,《设计模式精解》,清华大学出版社,2005.1 [2] ErichGamma等著、李英军等译,《设计模式——可复用面向对象软件的基础》,机械工业出版社,2004.9 |
制定人及发布时间 | 黄松,2019年4月14日 |
《课程名称》实验教学内容与学时分配
实验项目编号 | 实验项目名称 | 实验学时 | 实验内容提要 | 实验类型 | 实验要求 | 每组人数 | 主要仪器设备与软件 |
1 | 经典软件体系结构风格 | 2 | 熟悉管道-过滤器软件体系结构、基于事件的隐式调用风格和层次软件体系结构 | 验证性 | 必做 | 1 | UML和Java |
2 | 分布式软件体系结构风格 | 2 | C/S体系结构风格和B/S体系结构风格 | 验证性 | 必做 | 1 | UML和Java |
3 | MVC风格 | 2 | MVC的应用和编程实现 | 验证性 | 必做 | 1 | UML和Java |
4 | 设计原则和设计模式 | 2 | 熟悉主要的面向对象设计原则和设计模式 | 验证性 | 必做 | 1 | UML和Java |
“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: (1)masterthe basic theory and knowledge of software designs, train studentsthe basic ability to find problems and solve problems.[1、2] (2)ownthe basic knowledge of software architecture and yield the abilityto design large software systems.[1、3、4] (3)understandcommon software architecture, modeling capability (mainly UML andsoftware design patterns), and have preliminary design ability,train students' practical ability.[3、5] |
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. (One)Introductionto 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) (Two)Modelingof 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) (Three)softwarearchitecture 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) (Four)designpatterns 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) (Five)Creativedesign patterns 4 hours 1. Abstract Factory 2. Builder 3. Factory Method 4. Prototype 5. Singleton Keyand difficult points: 1. Abstract Factory 2. Factory Method (Six)Structuraldesign 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 (Seven)Behavioraldesign patterns 6 hours 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 Keyand difficult points: 1. CHAIN OF RESPONSIBIL ITY 2. COMMAND 3. OBSERVER 4. STRATEGY 5.TEMPLATE METHOD |
Instrumentsand Equipments | UML、RationalRose 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 | HuangSong,2019/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 |
…… | …… |