架构师训练营第一周
什么是软件架构?
软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。
每个系统都需要一个架构。架构是关于架构系统和元素间关系的通过架构文档描述。架构文档是由架构视图组成的。架构架构要满足相关方的诉求。
架构视图
最重要的是要搞清楚你的架构视图的目标观众是谁。要想想利益相关方能不能看懂。最重要的是当时的场景是什么。
UML建模 (Abstraction of a system)
统一建模语言(Unified Modeling Language)
静态图
用例图 (Use case Diagrams)
类图 (Class Diagrams)
组建图 (Component Diagrams)
部署图 (Deployment Diagrams)
动态图
序列图 (Sequence Diagrams)
活动图 (Activity Diagrams)
状态图 (State Diagrams)
用例图
描述系统的功能需求。角色,边界,关系(使用,扩展)
可以自定而下的精化,抽象出不同层次的用例图
活动图
泳道是一种分组机制
状态图
E.g. 支付状态变迁
元素之间6大静态关系
聚合(aggregation):生命周期不一致。
组合(composition):生命周期一致。
We say it's a composition if one parent class object owns another child class object and that child class object cannot meaningfully exist without the parent class object. If it can then it is called Aggregation.
继承
实现
依赖(dependency)
关联(association)
Association --> A has-a C object (as a member variable)
Dependency --> A references B (as a method parameter or return type)
使用场景
需求分析:用例图,部署图,时序图,活动图,状态图
概要设计:部署图,组件图,(服务器,子系统,组件)时序图,活动图
详细设计:类图,(类的)时序图,(方法的)活动图,状态图
推荐画图先画系统部署图。
评论