架构方法

什么是架构师
架构师是一个角色,而不是一个职位。只要从事架构设计工作,对系统架构负责,便可以称为架构师
架构师的职责
- 编写软件设计文档,指导项目开发 
- 划分系统模块,定义边界 
- 开发编程框架及通用公共组件 
- 重构系统 
- 技术选型 
- 性能调优 
- 沟通管理 
架构师的能力要求
- 编程能力,在某些技术领域比较资深 
- 熟悉常见基础软件、编程框架、架构模式 
- 量化能力、权衡取舍 
- 抽象建模 
- 业务理解 
- 文档编写方法论 
- 沟通表达能力 
如何成为架构师
- 跳槽 
- 主动寻求进行架构设计的机会 
什么是架构
软件架构是有关软件整体结构与组件的抽象描述,用于指导软件系统各方面的设计
指导代码编写、服务部署,最终交付出有价值的软件服务产品。

架构由元素与元素之间的关系组成,每个系统都有架构,系统有多个相关方,会对架构由不同的关注点
架构可以用架构文档来表达,对不同的相关方关注点,可以有不同的架构视图
如何做软件架构设计

如何展现一个架构
- 抽象建模 
- 输出用统一建模语言表达的图形及文档 
架构图及文档要点
- 明确目标读者,是给谁看的,他的关注点是什么 
- 保留少数、重要的图 
- 避免过多的内容及实现细节 
4+1架构视图
表达完整的架构需要完整的视图集合

逻辑视图:系统的功能元素以及交互,指导开发组织划分
开发视图:系统如何开发实现,指导开发设计及实现
物理视图:系统逻辑组件与物理设备的部署配置映射,指导发布部署
过程视图:系统运行时的情况(线程、队列、资源消耗等),指导运维及性能管控
场景:最典型或最有风险的场景及非功能性需求,阐明架构的广度和约束
UML
统一建模语言:以图形的方式描述软件的概念
静态图:描述系统、组件、类之间不变的逻辑关系
- Use Case Diagrams:描述系统的功能需求,包括参与者、用例及用例之间的关系 
- Class Diagrams:描述类信息,包含对象属性、操作,对象之间的关系 
- 属性:类的特征、需要处理什么数据 
- 操作:类能做什么工作,对属性数据的具体处理方法 
动态图:描述执行流程或实体状态变化的过程
- Sequence Diagrams:对象之间的交互关系及行为次序,着重体现对象间消息传递的时间顺序 
- Activity Diagrams:操作实现过程中完成的步骤工作,执行流程 
- State Diagrams:系统的状态及转换方式 
实现模型:描述系统实现时的一些特性,包括代码的静态结构及运行时的实现结构
- Component Diagrams:代码的逻辑结构,系统中存在的构件及之间的依赖关系 
- Deployment Diagrams:系统的运行时结构,软硬件部署配置结构,节点之间的通信类型 
对于软件开发过程中的不同阶段可以有针对性地选择
需求分析:用例图,时序图,活动图,状态图
概要设计:部署图,组件图,时序图,活动图
详细设计:类图,时序图,活动图,状态图
UML等工具的细节不是重点,重点是在进行架构设计时,什么时候用,如何用好这些工具












 
    
评论