第一周总结
1.架构师所要具备的能力
编程能力
基础技术掌握能力
技术产品的理解与应用能力
常用架构模式和框架的理解与应用能力
性能优化和故障分析能力
建模以及设计文档的方法和能力
业务理解与功能模块以及非功能模块拆解能力
快速学习能力
够沟与领导能力
2.什么是软件架构?
软件架构是有关软件与组件的抽象描述,用于指导大型软件系统各个方面的设计。
主要包含:架构元素 、元素间关系、架构、系统、架构文档、相关方、架构视图、关注点
4+1架构视图
软件架构 = {元素,形式,关系/约束}
逻辑视图:设计的对象模型
相关方:客户、用户、开发组织管理者
视角:系统功能元素,以及它们的接口、职责、交互
主要元素:系统,子系统、功能模块,子功能模块,接口
用途:开发组织划分,成本/进度评估
过程视图:捕捉设计的并发和同步特征
相关方:性能优化,开发相关人员。
视角:系统运行时线程,进程的情况。
主要元素:系统进程,线程以及处理队列等。
物理视图:描述了软件到硬件的映射,反映了部署特性。
相关方:系统集成商,系统运维人员。
视角:系统逻辑组件到物理节点的物理部署和节点之间的物理网络配置。
主要元素:物理节点以及节点的通信。
开发视图:描述了在开发环境中软件的静态组织结构
相关方:开发相关人员,测试人员。
视角:系统如何进行开发。
主要元素:描述系统的层,分区,包,框架,系统通用服务,业务通用服务,类和接口,系统平台和相关基础架构。
用途:指导开发组织设计和开发实现。
场景视图:描述用例场景
相关者:用户、设计和开发人员
视角:概括了架构上最重要的场景及其非功能行需求,通过这些场景的实现,阐明了架构的广度和众多架构元素运行的方式。
4.UML建模语言
UML图分类
静态图:
用例图、对象图、类图、组件图、包图、部署图
动态图:
协作图、序列图、活动图、状态图
UML图的使用时机:
需求分析:用例图,时序图,活动图,状态图
概要设计:框架图,部署图,组件图,时序图,活动图
详细设计:类图,时序图,活动图,状态图
模型元素:类、对象、状态、用例、节点、接口、包、注释、组件。
元素间的关系常见的有:关联、泛化、依赖、聚合
评论