《第一章:架构师如何做架构》总结
能够成为架构师可能是每个程序员最重要的目标之一。作为架构师如何进行架构?也是每个想成为架构师的程序员都会思考的问题,学完本章之后试着做一些总结。
首先,架构师承担的主要职责:
架构师要能承担以上十一主要职责,相应的就需要具备一些能力:
了解架构师承担的主要职责和具备的能力,回到最开始的问题。既然要学习如何做架构,那首先要回答什么是软件架构:
软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各方面的设计。
软件架构师定义和设计软件的模块化,模块之间的交互,用户界面风格,对外接口方法,创新的设计特性,以及高层事物的对象操作、逻辑和流程。
架构核心是要解决软件不同相关方的问题,如与客户商谈概念上的事情,与经理商谈广泛的设计问题,与软件工程师商谈创新的结构特性,与程序员商谈实现技巧,外观和风格。视图是所关注的问题,相应的架构蓝图的标记方式,描述和管理蓝图的工具。面对不同的相关方就需要有不同的视图描述所关注的问题,单一视图无法完整的表达架构,4+1 视图模型解决了上述问题:
逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。
过程视图(Process View),捕捉设计的并发和同步特征。
物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性。
开发视图(Development View),描述了在开发环境中软件的静态组织结构。
场景视图(scenarios),描述用例场景。
架构设计文档,通常遵循上述五个视图。
通常软件开发阶段分为三个阶段:需求分析阶段、概要设计阶段、详细设计阶段;
使用UML描述的视图,通常分为静态图和动态图:
静态图:用例图、类图、组件图、部署图;
动态图:时序图、状态图、活动图;
在软件开发三个阶段中可分别使用UML的静态图和动态图对系统关注问题进行建模。
评论