架构方法

用户头像
shangyu
关注
发布于: 2020 年 06 月 11 日
架构方法

什么是架构师

架构师是一个角色,而不是一个职位。只要从事架构设计工作,对系统架构负责,便可以称为架构师



架构师的职责

  • 编写软件设计文档,指导项目开发

  • 划分系统模块,定义边界

  • 开发编程框架及通用公共组件

  • 重构系统

  • 技术选型

  • 性能调优

  • 沟通管理



架构师的能力要求

  • 编程能力,在某些技术领域比较资深

  • 熟悉常见基础软件、编程框架、架构模式

  • 量化能力、权衡取舍

  • 抽象建模

  • 业务理解

  • 文档编写方法论

  • 沟通表达能力



如何成为架构师

  • 跳槽

  • 主动寻求进行架构设计的机会

什么是架构

软件架构是有关软件整体结构与组件的抽象描述,用于指导软件系统各方面的设计

指导代码编写、服务部署,最终交付出有价值的软件服务产品。



架构由元素与元素之间的关系组成,每个系统都有架构,系统有多个相关方,会对架构由不同的关注点

架构可以用架构文档来表达,对不同的相关方关注点,可以有不同的架构视图

如何做软件架构设计



如何展现一个架构

  • 抽象建模

  • 输出用统一建模语言表达的图形及文档



架构图及文档要点

  • 明确目标读者,是给谁看的,他的关注点是什么

  • 保留少数、重要的图

  • 避免过多的内容及实现细节

4+1架构视图

表达完整的架构需要完整的视图集合

逻辑视图:系统的功能元素以及交互,指导开发组织划分

开发视图:系统如何开发实现,指导开发设计及实现

物理视图:系统逻辑组件与物理设备的部署配置映射,指导发布部署

过程视图:系统运行时的情况(线程、队列、资源消耗等),指导运维及性能管控

场景:最典型或最有风险的场景及非功能性需求,阐明架构的广度和约束

UML

统一建模语言:以图形的方式描述软件的概念



静态图:描述系统、组件、类之间不变的逻辑关系

  • Use Case Diagrams:描述系统的功能需求,包括参与者、用例及用例之间的关系

  • Class Diagrams:描述类信息,包含对象属性、操作,对象之间的关系

  • 属性:类的特征、需要处理什么数据

  • 操作:类能做什么工作,对属性数据的具体处理方法



动态图:描述执行流程或实体状态变化的过程

  • Sequence Diagrams:对象之间的交互关系及行为次序,着重体现对象间消息传递的时间顺序

  • Activity Diagrams:操作实现过程中完成的步骤工作,执行流程

  • State Diagrams:系统的状态及转换方式



实现模型:描述系统实现时的一些特性,包括代码的静态结构及运行时的实现结构

  • Component Diagrams:代码的逻辑结构,系统中存在的构件及之间的依赖关系

  • Deployment Diagrams:系统的运行时结构,软硬件部署配置结构,节点之间的通信类型



对于软件开发过程中的不同阶段可以有针对性地选择

需求分析:用例图,时序图,活动图,状态图

概要设计:部署图,组件图,时序图,活动图

详细设计:类图,时序图,活动图,状态图



UML等工具的细节不是重点,重点是在进行架构设计时,什么时候用,如何用好这些工具

用户头像

shangyu

关注

还未添加个人签名 2017.10.22 加入

还未添加个人简介

评论

发布
暂无评论
架构方法