写在前面
我大抵是困在这课程的围城里了。案头翻出泛黄的本科笔记,那些工整字迹竟像被水渍晕染的碑文,横竖都透着混沌;油印的讲义在台灯下泛着冷光,铅字排成的方阵倒显出些魑魅魍魉的形状。这软件体系结构的学问,原是极玄妙的,横竖都逃不过“晦涩”二字——譬如赤脚人走长街,偏要学那穿绣鞋的太太们量布裁衣。
诸君且看我这窘态:既无那经手项目的阅历,亦缺那敲烂键盘的功夫,倒要对着满纸架构图学《体系结构》。这等滑稽光景,恰似荒村野店的厨子,捧着西餐刀叉要解五香卤煮的筋络。那些个分层架构、设计模式,原是先生们用粉笔描摹的渡河石,如今浸了冷汗,竟在石板上洇出团团墨迹,教人辨不清是路标还是符咒。
夜半风起时,忽觉这课程倒似铁屋子里的煤油灯——灯芯燃得焦苦,光晕却照不破四壁的暗。诸君且备好火把罢,学问的深潭里原没有桥,横竖都得摸黑泅渡。只得用 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 模型训练范围