软件分析与架构设计(Software Analysis and Architecture)

课程信息

课程简介:课程融合软件分析与软件架构设计两部分内容,前者主要介绍软件分析的基本概念、方法和工具,后者主要介绍软件架构设计的基本原则、模式和实践。课程内容涵盖静态分析、程序语义、符号执行、抽象解释、架构风格、设计模式等方面,旨在培养学生的软件分析和架构设计能力,提高软件质量和可维护性。

授课教师何冬杰      课程助教陈豪杰(2570081320@qq.com)

说点什么:软件分析相关课程内容较为晦涩,大家上课时需要认真听讲,并在必要时提前预习;软件架构相关内容相对简单,学习起来会轻松愉快许多 :-)

课程安排

学期:2025-2026学年第二学期(共8周)
时间:周一1-4节
周次:2-5、7-9、11周
地点:虎溪DZ121

课程讲义

日期 课件 [PDF] 作业
2026-03-09(周一) 1. 导引, 2. 软件架构设计 项目1:软件架构分析
2026-03-16(周一) 3. 程序语义, 4. 指针分析 AST:作业1, 作业2, 项目2 ; 结构归纳:作业 ;收集语义:作业
2026-03-23(周一) 4. 指针分析 (continue), 5. 控制流分析 指针分析:作业,项目3 ; 控制流分析:作业
2026-03-30(周一) 6. 数据流分析 DFA: 作业, 项目4
2026-04-13(周一) 6. 数据流分析 (continue), 7. CFL可达性 项目5
2026-04-20(周一) 8. 符号执行, 9. SAT求解器理论 SE: 作业, 项目6
2026-04-27(周一) 9. SAT求解器理论(continue), 10. SMT求解器理论

作业说明