Index
• Why and What?
为什么和什么?
• Understanding Architecture
了解架构
• Typical Architecture Views
典型架构视图
• On Software Architects
论软件架构师
• Diagraming and Presenting Architecture
绘制和呈现架构
• A Practical Way to Think About Architecture
思考架构的实用方法
• Evolutionary Design
进化设计
• Essentials of Architectural Styles
架构的风格要点
• How to get started
如何开始
Why and What?
Consider architectural alternatives at a stage when making design changes is still relatively easy
在设计更改仍然相对容易的阶段考虑架构替代方案
The structure of your application or system
应用程序或系统的结构
Understanding Architecture
Architecture is the structure, including the principles and guidelines governing their design and evolution over time
架构是结构,包括管理其设计和随时间演变的原则和指南
Typical Architectural Views
Logical Architecture – describes the system in terms of its organization in layers, packages, classes, interfaces and subsystems
逻辑架构——根据层、包、类、接口和子系统的组织来描述系统
Deployment Architecture – describes the system in terms of the allocation of processes to processing units and network configurations
部署架构——根据处理单元的进程分配和网络配置来描述系统
Technical Architecture
技术架构
On Software Architects
- Enterprise architect
企业架构师 - Solution architect
解决方案架构师 - Application architect
应用架构师 - Data architect
数据架构师 - Information architect
信息架构师 - Security architect
安全架构师 - Cloud architect
云架构师
......
Diagraming and Presenting Architecture
Diagraming Standard:
制图标准:
• UML, SysML, ArchiMate, C4
UML、SysML、ArchiMate、C4
• Commonly Used UML diagrams:
常用的UML图:
• Package diagram, Composite Structure Diagram, Deployment Diagram
封装图、组合结构图、部署图
A practical way to think about architecture
可用性,可靠性,可测试性,可扩展性,安全性,敏捷性,容错性,弹性,可恢复性,性能,可部署性,可学习性
Evolutionary Design
- Designs evolve but not from the simple to the difficult
设计不断发展,但不是从简单到困难 - Evolutionary design means that we can add to it as we go
进化设计意味着我们可以随时添加- Incremental design
- Flexible design
- Iterative, incremental development
增量设计
灵活设计
迭代,增量发展
- Unified Process
- Architecture Centric
- Use Case Driven
- Iterative Process
Essentials of Architectural Styles
Examples:
Implicit-invocation
Pipes-and-filters
Layered style
Repository style
Model-View-Controller (MVC)
隐式调用
管道-过滤器
分层风格
存储库风格
模型-视图-控制器 (MVC)
How to get started?
- Logical architecture
逻辑架构- Subsystems and Components
子系统和子组件- Separation by responsibilities: Computational, Controller, Memory and Manager
按职责划分:计算、控制器、内存和管理器
- Separation by responsibilities: Computational, Controller, Memory and Manager
- Services & Interfaces
服务和接口 - Connectors
连接器
- Subsystems and Components
- Technology architecture
技术架构- Platforms
平台- Runtime Environment
运行环境 - Containers
容器 - DB
数据库 - External Resources and Services
外部资源与服务
- Runtime Environment
- Frameworks and Libraries
框架和库 - Infrastructures
基础设施 - Protocols and standards
协议与标准
- Platforms
- Deployment and Distribution
部署与分发