EagleBear2002 的博客

这里必须根绝一切犹豫,这里任何怯懦都无济于事

软件体系结构-复习

写在前面

我大抵是困在这课程的围城里了。案头翻出泛黄的本科笔记,那些工整字迹竟像被水渍晕染的碑文,横竖都透着混沌;油印的讲义在台灯下泛着冷光,铅字排成的方阵倒显出些魑魅魍魉的形状。这软件体系结构的学问,原是极玄妙的,横竖都逃不过“晦涩”二字——譬如赤脚人走长街,偏要学那穿绣鞋的太太们量布裁衣。

诸君且看我这窘态:既无那经手项目的阅历,亦缺那敲烂键盘的功夫,倒要对着满纸架构图学《体系结构》。这等滑稽光景,恰似荒村野店的厨子,捧着西餐刀叉要解五香卤煮的筋络。那些个分层架构、设计模式,原是先生们用粉笔描摹的渡河石,如今浸了冷汗,竟在石板上洇出团团墨迹,教人辨不清是路标还是符咒。

夜半风起时,忽觉这课程倒似铁屋子里的煤油灯——灯芯燃得焦苦,光晕却照不破四壁的暗。诸君且备好火把罢,学问的深潭里原没有桥,横竖都得摸黑泅渡。只得用 AI 写些个注解,聊作考试大纲之补阙。

诸君自求多福哉。

Final Exam

  1. 总评成绩 = 平时作业 40% + 期末考试 60%
  2. 简答题、论述/问答题、设计分析题
  3. 英文题目、中文或英文答题
  4. 个别题目可能需画图
  5. 卷面分数 = 前六讲基础内容 60% + 后三讲高阶内容 40%

【往年考试题汇总和 2025Spring 押题】软件系统设计-复习 | EagleBear2002 的博客

【另一份可供参考的复习笔记】南京大学软件学院-2024-软件体系结构(研究生)期末复习参考 - 知乎

Software Architecture in General

软件架构设计-01-Introduction | EagleBear2002 的博客

  1. What is software architecture?
    • Structure, Elements, Relationships, Design
  2. What does a software architect do?
    • Liaison, Software engineering Tech, knowledge, Risk mgmt
  3. Where do architectures come from?
    • NFRs, ASRs, Quality Requirements; Stakeholders, Organizations, Technical Environments…
  4. Architecture (4+1)Views
    • Logical view, Process view, Physical view, Development view + Use case scenarios…
  5. Architectural activities and process
  6. Software architecture knowledge areas

Architecture Process

Quality Attributes

软件架构设计-02-Quality Attributes | EagleBear2002 的博客

  1. Software Requirements
    1. Functional requirements, Quality requirements (NFRs), Constraints
  2. Quality Attributes
    1. Internal vs. External Attributes
    2. Modeling quality attribute scenarios: Source, Stimulus, Artefact, Environment, Response, Measure
    3. Availability, Interoperability, Modifiability, Performance, Security, Testability, Usability, X-ablility…
    4. Tactics for quality attributes
  3. Architecturally Significant Requirements
    1. How to gather and identify ASRs: Requirements, Interviews, Business goals, Utility tree

Architecture Patterns

软件架构设计-03-Architectural Pattern | EagleBear2002 的博客

  1. Architecture Patterns
    1. Context, Problem, Solution: elements + relations + constraints
  2. Module Patterns
    1. Layered pattern (micro-kernal pattern)
  3. Component-Connector Patterns
    1. 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
  4. Allocation Patterns
    1. Map-reduce pattern, Multi-tier pattern
  5. Patterns vs. Tactics

Designing Architecture

软件架构设计-04-Designing Architecture | EagleBear2002 的博客

  1. General Design Strategy
    1. Abstraction, Decomposition, Divide & conquer, Generation and test, Iteration, Reuse
  2. Categories of design decisions
    1. Responsibilities, Coordination, Data, Resources, elements mapping, Binding time, Technology
  3. Attribute-Driven Design (ADD 2.0)
    1. Inputs to and outputs of ADD
    2. 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
    3. 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 模型训练范围