写在前面
我大抵是困在这课程的围城里了。案头翻出泛黄的本科笔记,那些工整字迹竟像被水渍晕染的碑文,横竖都透着混沌;油印的讲义在台灯下泛着冷光,铅字排成的方阵倒显出些魑魅魍魉的形状。这软件体系结构的学问,原是极玄妙的,横竖都逃不过“晦涩”二字——譬如赤脚人走长街,偏要学那穿绣鞋的太太们量布裁衣。
诸君且看我这窘态:既无那经手项目的阅历,亦缺那敲烂键盘的功夫,倒要对着满纸架构图学《体系结构》。这等滑稽光景,恰似荒村野店的厨子,捧着西餐刀叉要解五香卤煮的筋络。那些个分层架构、设计模式,原是先生们用粉笔描摹的渡河石,如今浸了冷汗,竟在石板上洇出团团墨迹,教人辨不清是路标还是符咒。
夜半风起时,忽觉这课程倒似铁屋子里的煤油灯——灯芯燃得焦苦,光晕却照不破四壁的暗。诸君且备好火把罢,学问的深潭里原没有桥,横竖都得摸黑泅渡。只得用 AI 写些个注解,聊作考试大纲之补阙。
诸君自求多福哉。
Final Exam
总评成绩 = 平时作业 40% + 期末考试 60%
简答题、论述/问答题、设计分析题
英文题目、中文或英文答题
个别题目可能需画图
卷面分数 = 前六讲基础内容 60% + 后三讲高阶内容 40%
【往年考试题汇总和 2025Spring 押题】软件系统设计-复习 | EagleBear2002 的博客
【另一份可供参考的复习笔记】南京大学软件学院-2024-软件体系结构(研究生)期末复习参考 - 知乎
Software Architecture in General
软件架构设计-01-Introduction | EagleBear2002 的博客
What is software architecture?
Structure, Elements, Relationships, Design
What does a software architect do?
Liaison, Software engineering Tech, knowledge, Risk mgmt
Where do architectures come from?
NFRs, ASRs, Quality Requirements; Stakeholders, Organizations, Technical Environments...
Architecture (4+1)Views
Logical view, Process view, Physical view, Development view + Use case scenarios...
Architectural activities and process
Software architecture knowledge areas
Architecture Process
Quality Attributes
软件架构设计-02-Quality Attributes | EagleBear2002 的博客
Software Requirements
Functional requirements, Quality requirements (NFRs), Constraints
Quality Attributes
Internal vs. External Attributes
Modeling quality attribute scenarios: Source, Stimulus, Artefact, Environment, Response, Measure
Availability, Interoperability, Modifiability, Performance, Security, Testability, Usability, X-ablility...
Tactics for quality attributes
Architecturally Significant Requirements
How to gather and identify ASRs: Requirements, Interviews, Business goals, Utility tree
Architecture Patterns
软件架构设计-03-Architectural Pattern | EagleBear2002 的博客
Architecture Patterns
Context, Problem, Solution: elements + relations + constraints
Module Patterns
Layered pattern (micro-kernal pattern)
Component-Connector Patterns
Broker pattern, Model-view-controller pattern, Pipe-and-filter pattern, Client-server pattern, Peer-to-peer pattern,Service-oriented pattern, Publish-subscribe pattern, Share-data pattern
Allocation Patterns
Map-reduce pattern, Multi-tier pattern
Patterns vs. Tactics
Designing Architecture
软件架构设计-04-Designing Architecture | EagleBear2002 的博客
General Design Strategy
Abstraction, Decomposition, Divide & conquer, Generation and test, Iteration, Reuse
Categories of design decisions
Responsibilities, Coordination, Data, Resources, elements mapping, Binding time, Technology
Attribute-Driven Design (ADD 2.0)
Inputs to and outputs of ADD
8-step process: 1. confirm requirements, 2. choose an element to decompose, 3. identify ASRs, 4. choose a design satisfying ASRs, 5. instantiate elements & allocate responsibilities, 6. define interface, 7. verify & refine requirements, 8. repeat step 2-7 until all ASRs satisfied
Step 4: 4.1 identify concerns, 4.2 list alternatives, 4.3 select patterns/tactics, 4.4 determine relations, 4.5 capture views, 4.6 resolve inconsistencies
Microservices Architecture
软件架构设计-07-Microservice Architecture | EagleBear2002 的博客
核心特征
微服务的六大特性、架构对比
微服务设计模式
挑战问题、模式和模式语言
拆分设计模式
通信模式
部署模式
运维模式
AI-native Application Architecture
核心特征
以模型驱动和数据为中心、Agent 协作、数据闭环、云原生集成
关键组件与工具链实践
AI 网关(Higress)、配置与发现(Nacos)、可观测性(OTel)、事件驱动(RocketMQ:提升 RAG 数据实时性)
典型场景与客户实践
内部工具(阿里云通义 App)、企业服务(零一万物)、工业场景(震坤行)
未来规划
以数据为中心的智能体平台
MCP 协议生态
多 Agent,多模态,多场景
Enterprise Architecture
核心定义
涵盖范围、结构化、分解战略目标、管理系统复杂度、标准化
方法论
TOGAF、业务组件建模、数据建模
实践与工具
案例、建模/开发/治理工具
AI 融合
设计辅助、智能治理、分工升级
Domain-Driven Design
软件体系结构-08-Domain-Driven Design | EagleBear2002 的博客
核心框架
战略设计:子领域,限界上下文,统一语言
战术设计:聚合,领域事件,资源库/工厂
关键实践与案例
设计原则、事件风暴建模、领域模型设计
AI 与 DDD 协同
AI for DDD:领域模型、代码骨架与测试用例
DDD for AI:为 AI 明确逻辑输入、简化 AI 模型训练范围