第一周学习总结
架构师的职责以及必须具备的能力
架构师的职责
编写架构文档,面对不同人员的文档
设计系统架构,模块分解
技术选型,解决技术应用的问题,开发编程框架,对整个开发过程进行约束
保障系统的安全性和高可用性
系统优化,架构重构,代码重构,利用设计模式重构,保持代码的整洁,易扩展等等
沟通与管理,贯穿整个项目的立项和落地
架构师必须具备的能力
建模和编写设计文档的能力
业务功能的拆解能力
对常用架构模式和框架的理解与应用能力
编程能力
性能优化和分析故障的能力
快速学习能力
沟通和领导能力
什么是软件架构
软件架构是软件整体结构和内部组件的抽象描述,最终体现为架构视图,单一的视图无法完整的表达架构
4+1 架构视图
逻辑视图:对客户,用户,开发组织者描述系统的功能模块,方便进行功能划分,成本/进度评估
开发视图:对开发人员和测试人员描述系统的具体实现,指导开发设计和实现
物理视图:对系统集成商和运维人员描述系统逻辑组件和物理部署之间的关系
过程视图:对性能优化人员和开发人员描述系统的运行过程
场景视图:对用户,设计和开发人员描述系统功能场景和一些非功能性需求
UML 软件架构设计和建模
以图形视图的形式描述软件的架构设计
通用模型元素
比较常见的原型元素有:类,用例,组件等等。
通用模型关系
比较常见的模型关系有:继承,实现, 依赖,关联等等
依赖,关联,聚合,组合的关系:
静态图
描述类,对象和数据之间的静态逻辑关系
用例图
描述系统的功能需求,外部执行者所理解的功能。
用例图由执行者和用例组成,用例由执行者执行动作,执行者可以是人,可以是系统
类图
类图表达了模型对象的静态结构,能够有效的帮助开发人员建立计算机对象模型
类图主要包括属性和操作
组件图
组件可以看成包与类对应的物理代码模块,描述系统中存在的软构件以及他们之间的依赖关系
部署图
描述系统硬件的物理拓扑结构以及在此结构上执行的软件
动态图
动态图主要描述系统的动态行为和控制逻辑
时序图
用来描述对象之间的动态交互过程,重点体现对象间消息传递的时间顺序
活动图
描述操作的内部逻辑行为,可以用来描述用户和对象的内部的工作过程,类似于流程图
状态图
描述特定对象所有可能的状态以及引起状态转移的事件
评论