《软件设计与体系结构(Software Design and Architecture)》教学大纲
制定时间:2025年4月
一、课程基本信息
(一)适用专业:软件工程
(二)课程代码:3DX1150A
(三)学分/课内学时:2学分/32学时
(四)课程类别:专业教育
(五)课程性质:必修/选修理论课
(六)先修课程:程序设计基础、数据结构C语言程序设计与应用、计算机导论、面向对象的程序设计方法
(七)后续课程:软件测试、毕业设计等
二、课程教学目标
《软件设计与体系结构》是工科高等学校软件工程专业的一门核心课程,在培养学生创造性思维、综合设计能力和软件设计实践能力方面占有重要的地位。
本课程的主要任务是通过课堂教学、实验教学等环节培养学生面向复杂软件系统的设计思维与工程能力,通过学习使学生了解当今优秀编程人员如何灵活运用面向对象的技术进行可复用程序设计,同时使他们对面向对象技术和原理有更加深刻的认识理解,并能使用这些设计模式的应用当中,另外还培养学生具有分析和解决问题的基本思路,以及面向对象程序设计中的可复用的思想,为日后从事大型复杂软件开发打下良好的基础。课程目标及能力要求具体如下:
(一)具体目标
目标1:能通过独立查阅相关文献资料,并在对文献资料进行综合分析后,理解课题任务。提出可能的解决方案;
目标2:通过学习本课程内容,培养学生灵活可复用的程序设计思想以及熟练运用该思想进行程序设计和软件开发的能力,使学生理解并掌握良好的软件体系架构和特征。能够跟踪软件工程及相关领域的前沿技术,具备创新能力,能将新技术成果应用于工程实践,并运用现代工具从事本专业领域相关产品的设计、开发和生产, 负责完成一个以上产品关键技术的方案设计和研发工作。
(二)课程目标与毕业要求的对应关系
毕业要求 |
毕业要求指标点 |
课程目标 |
教学单元 |
评价方式 |
2.问题分析:能够应用数学、自然科学和工程科学的基本原理,识别、表达、并通过文献研究分析复杂工程问题,以获得有效结果 |
2.4:能够正确表达一个工程问题的解决方案能够表达工程问题的解决方案或实验步骤以便实施 |
目标1 |
|
平时表现 期末考核 |
3.设计/开发解决方案:能够设计针对复杂软件工程问题的解决方案,设计满足特定需求的软件系统、可复用模块或组件,并能够在设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。 |
3.1:能够根据复杂软件工程问题的需求确定基本思路和方案能够根据 软件工程知识和数学知识给出复杂软件工程设计的基本思路和解决方 案 3.2:能够针对特定需求,进行软件应用系统的解决方案设计,完成软件单元(部件)和软件体系架构的设计,在设计中体现创新意识 |
目标2 |
|
课内测试 课内实验 期末考核 |
三、教学内容与方法
(一)教学内容及要求
序 号 |
教学单元 |
教学内容 (知识点) |
学习产出要求 |
推荐学时 |
推荐教学方式 |
支撑 教学目标 |
备注 |
1 |
概述、软件体系结构 |
1. 软件工程方法学 2. 软件设计与体系结构 3. 软件体系结构的定义 4. 软件体系结构的研究内容 5. 软件体系结构风格 |
•掌握结构化和面向对象软件工程方法学; •了解软件设计的概念; •了解软件体系结构的概念。 •理解软件体系结构的定义; •了解软件体系结构的研究内容。 |
2 |
讲授、讨论 |
目标1 |
|
2 |
软件设计的目标 |
1. 概述 2. 健壮性 3. 可复用性 4. 可维护性 5. 高效性 6.软件设计度量、软件再工程和逆向工程 |
掌握软件设计中的健壮性、可复用性、可维护性、高效性、软件设计度量 |
2 |
讲授、讨论 |
目标1 目标2 |
|
3 |
面向对象设计原则 |
1. 开-闭原则 2. 里氏替换原则 3. 依赖倒转原则 4. 合成/聚合复用原则 5. 迪米特法则 6. 单一职责原则 7. 接口隔离原则 |
掌握面向对象设计原则及应用 |
2 |
讲授、讨论 |
目标1 目标2 |
|
4 |
设计模式 |
1. 创建型模式概述 2. 简单工厂模式 3. 工厂方法模式 4. 抽象工厂模式 5. 单例模式 6. 原型模式 7. 建造者模式 |
掌握创建型模式、简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、原型模式、建造者模式的特征及应用 |
2 |
讲授、讨论 |
目标1 目标2 |
|
5 |
实验1:实现“创建型设计模式” |
选择并编码实现一个创建型设计模式的实例,并测试它的行为符合预期 |
能根据案例需求,选择“创建型设计模式”完成软件设计 |
2 |
讲授、实验 |
目标2 |
|
6 |
设计模式 |
1. 结构型模式概述 2. 外观模式 3. 适配器模式 4. 桥接模式 5. 组合模式 |
掌握结构型模式、外观模式、适配器模式、桥接模式、组合模式的特征及应用 |
2 |
讲授、讨论 |
目标1 目标2 |
|
7 |
设计模式 |
6. 结构型模式 7. 装饰模式 8. 代理模式 9. 享元模式 |
掌握结构型模式、装饰模式、代理模式、享元模式的特征及应用 |
2 |
讲授、讨论 |
目标1 目标2 |
|
8 |
实验2:实现“结构型设计模式” |
选择并编码实现一个结构型设计模式的实例,并测试它的行为符合预期。 |
能根据案例需求,选择“结构型设计模式”完成软件设计 |
2 |
讲授、实验 |
目标2 |
|
9 |
设计模式 |
1. 行为型模式概述 2. 模板方法模式 3. 策略模式 4. 状态模式 5. 责任链模式 6. 解释器模式 7. 命令模式 |
掌握行为型模式、模板方法模式、策略模式、状态模式、责任链模式、解释器模式、命令模式的特征及应用 |
2 |
讲授、讨论 |
目标1 目标2 |
|
10 |
设计模式 |
1. 观察者模式 2. 中介者模式 3. 迭代器模式 4. 访问者模式 5. 备忘录模式 6. 解释器模式 |
掌握观察者模式、中介者模式、迭代器模式、访问者模式、备忘录模式、解释器模式的特征及应用 |
2 |
讲授、讨论 |
目标1 目标2 |
|
11 |
实验3:实现“行为型设计模式” |
10. 选择并编码实现一个行为型设计模式的实例,并测试它的行为符合预期。 |
能根据案例需求,选择“行为型设计模式”完成软件设计 |
2 |
讲授、实验 |
目标2 |
|
12 |
体系结构核心理论 |
4+1视图模型(逻辑/开发/进程) |
从需求分析到部署运维,均能通过多视角建模实现复杂系统的可控性与可维护性。 |
2 |
讲授、讨论 |
目标2 |
|
13 |
体系结构核心理论 |
4+1视图模型(逻物理视图+场景) |
2 |
讲授、讨论 |
目标2 |
|
14 |
架构风格与模式 |
分层架构、C/S与B/S混合架构、微服务架构 |
掌握各种软件架构的特征及应用 |
2 |
讲授、讨论 |
目标2 |
|
15 |
现代技术实践 |
Docker容器化部署与Tomcat项目发布 基于UML的体系结构建模(用例图、类图、时序图 |
掌握现代化工具的使用使用场合及具体用法 |
|
讲授、讨论 |
目标1、目标2 |
|
16 |
现代化技术实践 |
Docker容器化部署 |
使用Docker 完成项目的容器化部署 |
|
讲授、实验 |
目标1、目标2 |
|
(二)教学方法
1.课堂讲授
(1)采用启发式教学,激发学生主动学习的兴趣,培养学生独立思考、分析问题和解决问题的能力,引导学生主动通过实践和自学获得自己想学到的知识。
(2)在教学内容上,系统讲授软件体系结构风格、软件质量属性的概念以及实现这些质量属性的基本战术,设计模式等内容。使学生对面向对象技术和原理有更加深刻的认识理解,并能使用这些设计模式的应用当中,培养学生具有分析和解决问题的基本思路,以及面向对象程序设计中的可复用的思想。
(3)在教学过程中采用电子教案,多媒体教学与传统板书相结合,提高课堂教学信息量,增强教学的直观性。
(4)理论教学与学生课下阅读、思考以及实践应用相结合,培养学生实际应用系统开发思维,培养学生包括非技术要素在内的工程研究及创新能力训练与素质提升。
2.实验教学
实验教学是软件设计与体系结构课程中重要的实践环节,目的是培养学生运用实验方法研究解决软件设计工程问题的能力。课程必做实验4个,各实验按照实验指导书的要求学生独立或分组完成,并提交实验报告。
3.互动教学
小组讨论:针对架构设计中的矛盾(如性能与扩展性)进行讨论或辩论。
翻转课堂:学生主导讲解设计模式的应用场景(如单例模式在数据库连接池中的使用)。
四、考核及成绩评定
(一)考核内容及成绩构成
课程考核以考核学生能力培养目标的达成为主要目的,以检查学生对各知识点的掌握程度和应用能力为重要内容,包括平时考核和期末考核两个部分。平时考核采用平时作业、线上学习、课内测试等方式评定学生成绩;期末考核采用期末考核评定学生成绩。各课程目标的考核内容、成绩评定方式、目标分值建议如下:
课程目标 |
考核内容 |
成绩评定方式 |
成绩占总评分比例 |
目标成绩占当次考核比例 |
学生当次考核平均得分 |
目标达成情况计算公式 |
目标1:能通过独立查阅相关文献资料,并在对文献资料进行综合分析后,理解课题任务。提出可能的解决方案 |
软件设计体系结构风格分析,根据需求选择合适的软件设计模式 |
平时表现(含平时作业、线上资源学习等) |
10% |
100% |
|
|
根据需求和目标分析,选择合适的设计模式给出解决方案,结论分析及报告等 |
期末考核 |
20% |
50% |
|
目标2:通过学习本课程内容,培养学生灵活可复用的程序设计思想以及熟练运用该思想进行程序设计和软件开发的能力,使学生理解并掌握良好的软件体系架构和特征。 |
软件设计模式、软件体系结构、综合项目实践 |
课内测试 |
10% |
100% |
|
|
利用的软件思想及设计模式,完成程序设计和软件开发 |
期末考核 |
30% |
50% |
|
实验一:实现“创建型设计模式” |
课内实验1 |
8% |
100% |
|
实验二:实现“结构型设计模式” |
课内实验2 |
8% |
100% |
实验三:实现“行为型设计模式” |
课内实验3 |
8% |
100% |
实验四:Docker 容器化部署 |
课内实验4 |
6% |
100% |
总评成绩(100%)=平时作业(20%)+实验(30%)+期末考核(50%) |
100% |
—— |
—— |
|
(二)平时考核成绩评定
1.平时作业:平时表现(含线上学习、平时作业、讨论等)及课内测试,支持目标1、2,共占总评分20%,对应目标的评分标准如下:
对应目标 |
目标1:能通过独立查阅相关文献资料,并在对文献资料进行综合分析后,理解课题任务。提出可能的解决方案 |
目标2:通过学习本课程内容,培养学生灵活可复用的程序设计思想以及熟练运用该思想进行程序设计和软件开发的能力,使学生理解并掌握良好的软件体系架构和特征。 |
考查点 |
软件设计体系结构风格分析,根据需求选择合适的软件设计模式 |
利用可复用设计思想,基于软件设计模式和软件体系结构,实现综合项目实践 |
成绩比例 |
50% |
50% |
评分标准 |
100% 至 90% |
对案例的软件设计结构风格分析正确,表述正确;根据需求,软件设计模式选择正确,表述正确 |
设计项目架构选择合理,系统可复用性、可维护性好,各项指标满足项目需求 |
89.9% 至 75% |
对案例的软件设计结构风格分析较正确,表述较正确。根据需求,软件设计模式选择较正确,表述较正确。 |
设计项目架构选择较合理,系统可复用性、可维护性较好,各项指标较好的满足项目需求 |
74.5% 至 60% |
对案例的软件设计结构风格分析存在正确,表述存在错误。根据需求,软件设计模式选择和表述部分不合适,存在部分错误。 |
设计项目架构选择基本合理,系统可复用性、可维护性较好,各项指标基本满足项目需求 |
59.9%至 0 |
对案例的软件设计结构风格分析和表述不恰当,错误较多。根据需求,软件设计模式选择和表述不恰当,错误较多。 |
设计项目架构选择不合理,系统可复用性、可维护性不好,各项指标未能满足项目需求 |
2.实验:必做实验4次,支撑目标2,共占总评分30%。对应目标的评分标准如下:
对应目标 |
目标2:通过学习本课程内容,培养学生灵活可复用的程序设计思想以及熟练运用该思想进行程序设计和软件开发的能力,使学生理解并掌握良好的软件体系架构和特征。 |
考查点 |
实验操作 |
实验内容 |
实验报告 |
成绩比例 |
30% |
30% |
40% |
评分标准 |
100% 至 90% |
能够根据项目需求,制定很好的软件设计方案,能选择正确的设计模式完成实验。实验过程正确,实验结果达到预期要求。 |
实验记录全部完成无遗漏,内容丰富、图文并茂,实验方案有自己独到的思路与见解。 |
有很强的总结实验和撰写报告的能力,实验报告内容完整、正确,有很好的分析与见解。文本表述清晰,格式规范。 |
89.9% 至 80% |
能够根据项目需求,制定良好的软件设计方案,能正确利用设计模式完成实验。实验过程正确。 |
实验记录比较完整,内容比较丰富、图文并茂,实验方案有自己的思路与见解。 |
有较强的总结实验和撰写报告的能力,实验报告内容完整、正确,有较好的分析与见解。文本表述较为清晰,格式规范。 |
79.9 至 70% |
能够根据项目需求,制定软件设计方案,能够较好使用设计模式完成实验。实验结果比较正确。 |
实验记录比较完整,内容比较丰富。 |
有良好的总结实验和撰写报告的能力,实验报告内容较完整、正确,有自己的分析与见解。文本表述较为清晰,格式较为规范。 |
69.9% 至 60% |
基本能够根据项目需求,制定软件设计方案,能够使用设计模式完成部分实验内容,实验结果基本正确。 |
实验记录基本完整,内容基本完整。 |
有一定的总结实验和撰写报告的能力,实验报告内容基本完整、正确,没有分析或见解。文本表述基本清晰,格式基本规范。 |
59.9%至 0 |
实验能力差,不能利用设计思想和设计模式完成实验内容,未能达到实验效果。 |
实验记录未完成,内容不够。 |
总结实验和撰写报告的能力差,实验报告内容不完整、错误多。文本表述不清晰,格式不规范。 |
五、参考学习资料
推荐教材1:《软件设计与体系结构》,秦航,清华大学出版社,2021,第2版,ISBN:9787302564294
推荐教材2:《Java设计模式》,刘伟,清华大学出版社,2024,第2版,ISBN:9 9787302663386
推荐教材3:《软件构架实践》,Len.Bass, Clements,清华大学出版社,2013,第3版,ISBN:978-7-302-31293-2
推荐教材4:《软件设计与体系结构》,齐志昌,高等教育出版社,2010,第2版,ISBN:978-7-040-28408-9
参考资料1:《软件体系结构》,Mary.Shaw, David.Garlan,清华大学出版社,2007,第1版,ISBN:978-7-302-14550-9
参考资料2:《软件体系结构原理、方法与实践(第2版)》,张友生,清华大学出版社,2014,第2版,ISBN:9787302335047
参考资料3:《设计模式:可复用面向对象软件的基础》,Erich.Gamma, Richard Helm,机械工业出版社,2007,第1版,ISBN:987-7-111-07575-2