架构方法 - 架构师如何做架构总结 (1)
什么是软件架构
架构是在组件,彼此间和与环境间的关系,引导设计发展原则中体现的系统的基本结构。[IEEE 1471]
许多架构的定义不但承认了他们自己的结构元素,而且还有结构元素的组成,关系(任何连接部分都需支持这样的关系),接口。这些部件都以不同方式被提供。例如,连接段可以是套接字,同步的或异步的,与某个协议相关等。
关于更多具体细节, 可以参考: https://www.ibm.com/developerworks/cn/rational/rationaledge/content/mar06/eeles/
关于架构师
首先, 架构师是一个角色而不是职位。
架构师的主要职责
编写架构设计文档
开发编程框架
重构软件代码
设计系统架构
进行技术选型, 解决技术应用中的问题
优化系统性能
模块分解与微服务架构
保证系统安全与高可用
大数据应用
技术创新
沟通管理
架构师主要能力
编程能力
基础技术掌握能力
常用技术产品的能力与应用能力
性能优化与分析故障的能力
常用架构模式和框架的理解与应用能力
建模以及设计文档的方法和能力
业务理解与功能模块
快速学习能力
沟通与领导力
如何进行软件架构设计
主要通过4+1架构图视图从不同的角度诠释架构, 提供不同角度方案给对应相关方。
比如对于运维或DevOps, 更加关注的是系统的搭建、部署、系统间的通信等;
比如对于开发人员, 关注系统如何开发, 关注点在于系统层级、框架, 系统通用服务、业务通用服务、类和接口的设计、系统平台以及相关基础框架;
由于单一的视图无法完整的表达架构, 因此需要具备完整的视图集:
逻辑视图(Logical View), 设计对象模型;
过程视图(Process View), 捕捉设计的并发和同步特征;
物理视图(Physical View), 描述了软件到硬件的映射, 反映了部署特性;
开发视图(Development View), 描述了在开发环境中软件的静态组织结构;
场景视图(Scenarios), 描述用例场景
版权声明: 本文为 InfoQ 作者【Paula_l】的原创文章。
原文链接:【http://xie.infoq.cn/article/7731de06f4b238e23a74c9a5d】。
本文遵守【CC BY-NC-ND】协议,转载请保留原文出处及本版权声明。
评论