课程概述:
《软件体系结构》是高等工科院校计算机专业的一门基础课程。在该课程的学习过程中,将学习软件体系结构的基本概念,设计原则和方法。通过本课程的学习,使学生掌握软件架构实践的基本知识理论与相关技能。通过企业真实案例教学与项目实践的学习,掌握行业所需的架构技能。
适用对象:
计算机科学与技术,软件工程,计算机技术等计算机相关专业硕士研究生。
考核要求:
考核方式为课堂考核与考试考核相结合,课堂考核(课堂讨论、论文汇报等)占40%~50%,考试考核(期末考试等)占50%~60%。最终考核成绩实行百分制。
课程大纲:
第一章 软件架构的意义
第一节 什么是软件架构
第二节 软件架构的重要性
第三节 软件架构师的职责
第二章 软件质量属性
第一节 质量属性的定义
第二节 质量属性的性能和可移植性
第三节 质量属性的可维护性和安全性
第四节 质量属性的可用性和易用性
第五节 质量属性的互操作性和可测试性
第三章 软件架构设计
第一节 软件架构设计的重要性
第二节 自顶向下与自底向上的设计方法
第三节 软件架构设计需遵循的设计原则和现有的设计方案
第五节 微软的设计和架构技术
第六节 以架构为中心的设计方法
第四章 软件开发原则
第一节 设计松耦合,高内聚的软件
第二节 遵循Soc,DRY,信息隐藏等原则降低软件复杂度
第三节 使用面向对象的设计原则(六大设计原则)
第四节 使用单元测试提高软件系统的质量
第五章 软件体系结构
第一节 软件体系结构模式
第二节 分层体系架构
第三节 事件驱动体系架构
第四节 MVC架构模式
第五节 MVP架构模式
第六节 MVVM架构模式
第七节 命令查询职责分离架构模式
第八节 面向服务的架构模式
第六章 现代应用的结构
第一节 单体架构
第二节 微服务架构
第三节 Serverless架构
第四节 云原生应用
第七章 软件体系结构里的横切关注点
第一节 横切关注点(Cross-Cutting Concerns)的概念
第二节 横切关注点使用基础
第三节 实现横切关注点的几种方法
第四节 软件系统中常见的一些横切关注点类型
第五节 微服务里的横切关注点(chassis and the sidecar pattern)
第八章 软件体系结构性能考量
第一节 性能的重要性
第二节 度量性能的相关术语
第三节 使用系统的方法提高性能
第四节 改进服务端缓存性能的策略
第五节 改进数据库性能的策略
第九章 软件体系安全性考量
第一节 信息的三种状态
第二节 威胁模式分析
第三节 创建安全的软件设计原则
第四节 身份认证和访问管理
第五节 最常见的web应用程序安全风险
第十章 软件结构的审查和文档构建
第一节 软件架构文档的使用
第二节 创建架构描述和架构视图
第三节 UML描述
第四节 审查软件架构
第十一章 软件体系结构和DevOps
第一节 DevOps概述
第二节 DevOps工具链
第三节 DevOps实践
第四节 软件架构中的DevOps
第五节 部署到云
教材和参考资料:
Len Bass,Paul Clements,Rick Kazman等著,车立红译,《软件架构实践》(第二版),北京:清华大学出版社
oseph Ingeno著,《Software Architect's Handbook》(第一版),Packt Publishing