课程概述
软件体系结构是软件类专业的主干课,其在提升软件开发效率以及做出优秀软件设计上起着极其重要的作用。本课程从软件体系结构的思想、面向对象设计原则和设计模式三个层面展开教学,学生需要学习软件体系结构的基础概念、软件体系结构的风格、面向对象的设计原则、设计模式、软件产品线、质量属性,学生在学习过程中需要深入理解知识点,掌握软件设计方法的根本思路,达到可以根据工程实际情况,应用所学理论解决实际工程问题。
本课程旨在帮助学生理解软件工程领域体系结构设计的思想;帮助学生在实际项目架构设计中灵活应用软件体系结构风格;帮助学生在实际项目详细设计中灵活应用设计模式;帮助学生在实际项目开发中能抽象出新的体系结构风格或设计模式;同时可为学生后续课程的学习以及从事计算机软件开发工作打下良好的基础。
证书要求
1. 完成课程所有的学习内容、视频、课件等;
2. 完成所有的在线练习和单元测试,占总成绩20%;
3. 完成课程中的所有单元作业,并完成作业互评,占总成绩30%;
4. 参加期末考试,考试成绩占总成绩50%;
预备知识
需对"软件系统分析与设计"和"面向对象设计与编程"有一定的了解。
授课大纲
软件体系结构基础
课时
1.1 软件开发的历史,1.2 软件架构的定义,1.3 软件架构的价值,1.4 软件架构的研究热点
软件体系结构风格
课时
2.1 软件体系结构风格,2.2 软件体系结构风格优势,2.3 管道过滤器模型,2.4 仓库模型,2.5 客户/服务器模型,2.6 MVC,2.7 分层架构,2.8 Peer-to-Peer风格,2.9 事件驱动风格
面向对象设计原则
课时
3.1 SRP原则,3.2 OCP原则,3.3 LSP原则,3.4 DIP原则,3.5 ISP原则,3.6 六个分包原则
设计模式
课时
4.1 设计模式定义,4.2 应用设计模式的优势,4.3 创建型模式,4.4 结构型模式,4.5 行为型模式
质量属性
课时
5.1 质量属性定义,5.2 质量属性对架构的影响
参考资料
建议的教材和参考书:
1.Software Architecture in Practice, Third Edition,By Len Bass, Paul Clements, Rick Kazman,Publisher:Addison Wesley,Pub Date:October 5, 2012,ISBN:0321815734. 2
2.Agile Software Development, Principles, Patterns, and Practices, by Robert C. Martin, Publisher: Prentice Hall, ISBN-10: 0135974445, ISBN-13: 978-0135974445.
3.The Design Patterns Java Companion, Free online book by James W. Cooper.