四川大学软件学院本科课程 教学大纲 课程号 课程属性 学分 开课学年 311082030 专业必修 3 总学时 □ 1 秋 课程名称 □专业选修 51 □ 1 春 软件设计与体系结构 是否双语教学 讲授 □2 秋 48 2 春 □是 上机 □ 3 秋 否 周学时 □ 4 秋 3 □ 4 春 黄武 0 □ 3 春 课程组教师 黄武 王湖南 张严辞 负责人 适用范围 (对选课学生的专业、基本知识和基本技能要求) 软件工程专业学生 (课程背景、专业地位、授课对象、主要内容、授课方式、课程目标和要求等) 课程背景: 进入二十一世纪以来,随着软件规模变得越来越大,其内部结构变得越来越复杂,特别是随着 Internet 的普及, 分布式网络化的程序成为主流, 分布于不同计算机上的程序的交互变得更加复 杂,这些程序的成功与否很大程度上取决于其构架设计是否合理。现在 , 软件体系结构变得和软 件算法、 数据结构同等重要, 甚至更加重要。 缺乏软件结构的知识会带来软件开发两方面的缺陷: 一是不能构建大型复杂的软件,二是不能构建高质量的软件,因此需要学习软件体系结构。 专业地位 软件体系结构已成为软件工程的重要组成部分 主要内容 本课程从不同的层次讲解了软件的结构设计, 式 。 包括软 件体系结构 、软件构架 以及 软件设计模 软件体系结构 是描述软件系统的高层设计,是从一个较高的层次考虑系统组件的结构组成,连接关系和约束条件,较为抽象。 软件构架 同样考虑软件组件以及组件之间的高层相互联系,但软件 课程描述 构架的设计更为具体,考虑到了如何利用构架实现各种具体软件质量属性。 设计模式 则是软件问 题高效和成熟的设计模板,模板包含了对固有问题的解决方案,设计模式通常是细粒度、小范围 的软件结构。本课程针对 体系结构 将讲解调用 - 返回体系结构,数据流风格体系结构,事件系统 体系结构,层次体系结构, MVC体系结构,客户 - 服务器体系结构,以及 SOA(面向服务)和云计算等 网络体系结构。针对 软件构架 将讲解软件质量属性及其实现的战术,这些质量属性包括可用 性,可修改性,性能,安全性以及易用性等,并作案例分析讲解。对于 设计模式 ,将介绍创建型 设计模式:工厂模式和单例模式;结构型设计模式:组合模式,适配器模式,外观模式,桥接模式;行为型设计模式:迭代器模式,访问者模式,中介者模式,命令模式等。 课程目标 让学生了解软件体系结构的重要性、体系结构不同层次的概念及其主要内容,掌握一些具体的 软件体系结构风格如:调用 - 返回,数据流,事件系统, MVC模型、服务器 - 客户机风格、云计算等;掌握软件质量属性的概念以及实现这些质量属性的基本战术,包括可用性、可修改性、易用性以及性能等,掌握几类设计模式,包括创建型、构造型以及行为型的设计模式。 课程要求 学生应该 1) 按时上课; 2) 按时完成作业和项目 ; 3) 按期完成课程设计 先行课程 面向对象程序设计导论 Java 或 C++程序设计语言 (书名、作者或译者、出版社、出版时间、版次) 选用教材 软件设计模式与体系结构 . 孙玉山 , 刘旭东 . 高等教育出版社 . 2013.5. ISBN: 978-7-040-37202-1 (主要参考书目、文献、资料、网站等) 1. 软件构架实践第 3 版 Len.Bass, Clements. 清华大学出版社 . 2013.2. ISBN: 978-7-302-31293-2 课程资源 2. 软件设计与体系结构 齐志昌 . 高等教育出版社 . 2010.2. ISBN: 978-7-040-28408-9 机械工业出版社 . 2007.4. ISBN: 987-7-111-07575-2 □考查 3. 软件体系结构 Mary.Shaw, David.Garlan. 清华大学出版社 . 2007.9. ISBN: 978-7-302-14550-9 4. 设计模式 . Erich.Gamma, Richard Helm. 考核类型 考试 (课程考核内容、方式、基本原则等) 考核内容 考核的知识包括软件体系结构、 软件构件和软件设计模式三部分。 对于软件体系结构, 包括: 调用 - 返回,数据流风格, 事件系统, MVC风格、 SOA风格以及云计算等软件体系结构的相关知识。 对于软件构件,包括:软件可用性、可修改性、性能以及易用性 4 个质量属性及其实现战术。对于设计模式,考核 3 类软件设计模式:创建型模式:工厂模式和单例模式;结构型模式:组合模 课程考核 式,适配器模式、外观模式和桥接模式;行为型模式:迭代器模式、访问者模式、命令模式等的相关知识。不仅考核这些知识的基本概念和原理,主要考核这些知识的灵活应用。 方式 采用堂上开卷考试的方式 基本原则 考核成绩由学生平时成绩和期末考试成绩相结合给出,平时成绩包括出勤、作业以及课堂讨论,期末考试则考查学生的知识整体掌握情况。 成绩评定 平时: 40%(平时成绩分配:考勤: 10% 作业: 10% 课堂讨论: 10%,项目: 10%) 期中考试: 10%(随堂测试) 期末考试: 50% ( 百分比 ) (各章节主要教学内容、教学要求、教学重点、教学难点、学时分配等) 1. 介绍软件体系结构知识的重要性、软件体系结构的层次性以及一些基本概念和内容,本课程的 上课内容安排,重点让学生了解这门课程的重要性和基本内容 2. 软件体系结构概述,调用 - 返回风格软件体系结构介绍, 3. 数据流体系结构及事件系统体系结构介绍, 5. 网格计算及云计算软件体系结构风格介绍, 7. 可用性、可修改性质量属性及其实现战术, 3 学时 3 学时 3 学时 3 学时 3 学时 3 学时 4. 层次体系结构、 MVC软件体系结构及客户端 - 服务器软件体系结构风格介绍, 3 学时 6. 软件构架的概念,软件质量属性的通用概念及其基本的软件质量属性, 教学内容 学时 3 8. 性能、安全性及易用性质量属性及其实现战术, 9.ADD 质量属性驱动设计方法, 3 学时 10. 构架设计案例 1 可用性构架介绍 + 期中考试, 3 学时 11. 构件设计案例 2 综合性构架介绍, 3 学时 12. 设计模式概述,创建型设计模式介绍:工厂模式和单例模式介绍,对于每一种设计模式,从 概念,问题的引出,解决方案,类图表达,程序示例及总结这几个方面进行全面介绍 13. 结构型设计模式介绍:组合模式、适配器模式及桥接模式介绍 3 学时 3 学时 3 学时 14. 行为型设计模式介绍迭代器模式、访问者模式以及命令模式介绍 2 15. 复习, 3 学时 本文来源:https://www.wddqw.com/doc/0442500f961ea76e58fafab069dc5022abea46e2.html