第一周学习总结
招聘解读
主要是看职位的要求,就是自己需要掌握的技能
软件架构图
软件架构师的主要职责(如何做软件架构)
架构师的主要职责编写架构设计文档
开发编程框架
重构软件代码
设计系统架构
进行技术选型,解决技术应用中的问题
优化系统性能
模块分解与微服务架构重构
保障系统安全与高可用
大数据应用
技术创新
沟通管理
架构师的主要能力
编程能力
基础技术堂握能力
常用技术产品的理解与应用能力
性能优化与分析故障的能力
常用架构模式和框架的理解与应用能力
建模以及设计文档的方法和能力
业务理解与功能模块及非功能模块拆解能力
快速学习能力
沟通与领导能力
4+1视图模型
软件架构 =(元素,形式,关系/约束)
单一的视图无法完整的表达架构,因此需要具备完整的视图集
逻辑视图 (Logical View),设计的对象模型
过程视图(Process View),捕捉设计的并发和同步特征
物理视图(Physical View),描述了软件到硬件的映射,反映了部署特性
开发视图(Development View),描述了在开发环境中软件的静态组织结构
场景视图(scenarios),描述用例场景
逻辑视图
相关方∶客户,用户,开发组织管理者。
视角∶系统的功能元素,以及它们接口,职责,交互。
主要元素∶系统,子系统,功能模块,子功能模块,接口。
用途∶开发组织划分,成本/进度的评估。
开发视图
相关者∶开发相关人员,测试人员视角∶系统如何开发实现
主要元素∶描述系统的层,分区,包,框架,系统通用服务,业务通用服务,类和接口,系统平合和相关基础框架。
用途∶指导开发组织设计和开发实现
物理视图
相关者∶系统集成商,系统运维人员。
视角∶系统逻辑组件到物理节点的物理部署和节点之间的物理网络配置。
主要元素∶物理节点以及节点的通信。
过程视图
相关者∶性能优化,开发相关人员。视角∶系统运行时线程,进程的情况。
主要元素∶系统进程,线程以及处理队列等。
场景视图
相关者∶用户,设计和开发人员。
视角∶概括了架构上最重要的场景(最典型或者最有风险)及其非功能性需求,通过这些场景的实现,阐明了架构的广度或众多架构元素运行的方式。
UML的使用(统一建模语言)
模型及画图的作用
为什么要建造模型?建造传统模型的目的
为了证明某件事物能否工作
前提∶建造模型的成本远远低于建造实物的成本
为了与它人沟通为了保存软件设计的最终成果
前提∶除非模型比代码更说问题
何时、何处画图?何时画图?
讨论、交流时
最终设计文档只保留少量的、重要的图
避免涉及过多内容和实现细节
何处画图?
白板
绘图工具,如∶Visio、Aastah o draw.io
UML 图的分类-静态图
静态图-通过描述类、对象和数据结构以及它们之间存在的关系,来描述软件要素中不变的逻强结构。
用例图(Use Case Diagrams)
对象图(Object Diagrams)
类图(Class Diagrams)
组件图(Component Diagrams)
包图 (Package DiaOrams)
部署图(Deployment Diagrams)
UML 图的分类-动态图
动态图-通过描绘执行流程或者实体状态变化的方式,来展示软件实体在执行过程 中的变化过程。
协作图Collaboration Diagrams)
序列图(Sequence Diagrams)
活动图(Activity Diagrams)
状态图(State Diagrams)
通用模型元素
设计文档的编写
参看文档模板
评论