架构师架构流程

首先是需求分析 数据库

需求分析从三个层次进行,客户,用户以及开发,客户级别就是公司的领导意图以及需求方投资人的意图,比较高层的需求,好比项目周期,资金,目的,以及其余需求;用户级别,就是真正的使用的需求,,第三个就是开发级别,好比项目的团队成员,须要哪方面的技能;接着是每一个层次都从三个维度进行分析,功能性的,好比机务维修系统,这个系统的目的就是要算明白钱,深航领导就是想要知道钱都花在哪些地方,由于以前他们使用Orcal海波龙的财务系统,计算的维度和口径比较粗,并且和领导的想要看到的内容不太同样;质量 windows

 

功能(系统的目标是什么)缓存

质量(对于系统在使用层面上达到那些标准)可用性,性能,伸缩,扩展等tomcat

约束(用户的水平,特殊的要求)服务器

客户架构

机务维修系统,这个系统的目的就是要算明白钱,深航领导就是想要知道钱都花在哪些地方,由于以前他们使用Orcal海波龙的财务系统,计算的维度和口径比较粗,并且和领导的想要看到的内容不太同样数据库设计

可以相对准确的计算出成本性能

历史遗留系统amicos,须要和它进行交互;须要和现有的财务系统进行交互;交互的方式只能是经过深航的数据交换中心;spa

用户架构设计

预算,C检(机身,其余)

使用人数上面100人左右,对于性能要求不高;海尔那个项目就须要考虑用户20万

机务维修用户水平比较高,能够在操做上有一些高要求;对于中广核项目,由于供应商接口使用者不可控,因此要求易用性要高;

开发

 

海尔项目对于质量要求性能比较高,伸缩性要求比较高,设计须要考虑

海尔项目开发人员经验很少;技术要求基于Linux;开发语言Java;中广核项目要求基于windows2008,C#开发;

需求分析以后,做为架构师了解了项目状况开始对需求进行梳理,使用序列图对流程、职责、业务内容进行梳理;这种梳理不是所有需求的梳理,而是核心业务的梳理;核心业务的含义:必作的,共同的,特殊的;

接下来就是需求转设计,高层架构设计。

首先使用鲁棒图对业务进行时概念设计,鲁棒图用来识别终端,控制以及实体三种图例,好比中广核的调拨,经过画鲁棒图,识别出来,终端包括:仓库管理员输入页面,SAP;业务包括:输入业务,校验,入库,通知SAP,实体是调拨历史记录,仓库信息;接着是基于Layer以及tire进行分层,顶层是UI,中间是逻辑,逻辑划分为应用层,核心层以及基本信息层,其中最重要的就是核心层,就是将操做的原子操做进行识别,好比中广核项目,尽管流程比较负责,其实本质就是UP的添加修改,以及仓库的进出,订单操做,发货操做,检验、入库都是基于底层的本质的操做一种组合而已;基本信息就是字典表等,配置信息表的封装;

第三部就是落地架构设计

从逻辑视图,数据视图,物理视图以及开发视图四个视图分别进行设计,好比逻辑视图,上面基本划分出来职能块了,那接下来就是设计职能类;调拨系统,调拨分为同场调拨和跨场调拨,基本操做是同样的,可是有一个差异就是通知SAP,这里就抽象出调拨的基类,实现入库功能,一般和跨长分别继承基类;再好比海尔物联家电的架构,由于MINA系统自己就是事件驱动的架构,作的扩展也是基于事件驱动,架构出事件接收器(继承AdapterHandler,实现messagereceive,实现对上报协议的解析),事件分发器(dispatcher,相似于factory,基于解析的出来的协议内容,转发给相应的事件处理器)以及事件处理器(好比上报协议,下发协议,升级协议等);数据视图就是数据库设计;物理视图就是物理部署,需求转设计中也有一个基于分层分块的设计,可是那个是"能够达到"的设计,物理视图则是根据须要,设计到底部署几台服务器,每台服务器功能职责是什么(商用空调和家用空调,在部署上必定要分开部署,两个tomcat);最后一个是开发视图,就是基于质量需求,选择技术(缓存,数据库,代理服务器),项目树结构怎样,包来怎么设计,还包括管理机制,Maven+Jekins,仍是ant等等;