Lecture 05 - 软件架构设计基础

May 30, 2026
#软件工程 #架构设计 #教学课件

本讲目标

完成本节课后,你应该能够:


什么是软件架构

软件架构(Software Architecture)描述系统的:

Architecture is about the important stuff. Whatever that is.

— Ralph Johnson


为什么架构重要

随着系统规模增长:

代码增加

模块增加

依赖增加

复杂度增加

如果缺少合理架构:


分层架构(Layered Architecture)

最经典的软件架构模式。

graph TD
A[Presentation Layer] --> B[Business Layer]
B --> C[Data Access Layer]
C --> D[Database]

优点

缺点


MVC 模式

MVC:

Model
View
Controller

结构如下:

graph LR
User --> View
View --> Controller
Controller --> Model
Model --> View

职责划分

组件职责
Model数据与业务逻辑
View用户界面
Controller请求处理

微服务架构

近年来广泛应用于互联网系统。

示例:

graph TD
Gateway --> UserService
Gateway --> OrderService
Gateway --> PaymentService
Gateway --> ProductService

特点:


架构质量属性

设计架构时需要考虑:

可扩展性

系统是否能够支持增长?

可维护性

修改成本是否可控?

可用性

系统能否持续提供服务?

性能

响应速度是否满足需求?


课堂案例

假设我们需要设计一个在线书店系统。

主要需求:

请思考:

问题1

应该采用:

为什么?


问题2

支付模块是否应该独立部署?

请给出理由。


课堂练习

练习一

分析以下系统:

校园选课系统

回答:

  1. 核心模块有哪些?
  2. 数据流如何组织?
  3. 哪些模块耦合度最高?

练习二

比较:

架构优点缺点
单体架构简单扩展困难
微服务灵活运维复杂
事件驱动解耦调试困难

本讲总结

今天学习了:

请记住:

软件架构的目标不是追求最新技术,而是在复杂性、成本和需求之间取得平衡。


推荐阅读

必读

  1. Clean Architecture
  2. Fundamentals of Software Architecture

选读

  1. Designing Data-Intensive Applications
  2. Building Microservices

下节课预告

Lecture 06

主题:

领域驱动设计(DDD)

内容包括:


课程:软件工程导论

讲师:王教授

更新时间:2026-05-30