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