本文不是介绍架构设计方法,只是给出一种E2E的架构设计流程的实现,具体的架构设计方法须要参考相关的资料。多线程
架构设计流程分析:
架构
具体步骤说明:框架
一、需求收集,包括从用户收集到的原始需求和项目经过友商的竞争分析获得的需求,需求分为功能需求和非功能需求两大类。ide
二、需求分析,针对1中搜集到的需求,首先按类划分整理,再对原始需求进行分解,生成子业务需求,在根据业务需求作用例分析。用例分析中,须要对每一个用例业务模型和场景进行分析,推荐使用鲁棒图和时序或者协做图,用例分析清楚后获得了分析模型连同场景以及业务用例就获得了设计需求。模块化
三、进入架构设计的重点——逻辑架构设计工具
a) 系统上下文须要分析所开发软件与系统周边系统的关系。优化
b) 经过设计需求(包括内部的业务场景和模型分析)咱们给领域模型分析提供了语境,在领域分析过程当中进一步对业务领域模型作分析,包括其领域范围、领域间边界、调用关系、领域内部的流程细化、模型细化,最终获得领域模型,其一方面能够为用例分析提供领域词汇,优化用例分析,另外一方面未来可能做为设计模型的原型。编码
c) 框架分析,主要分析系统中涉及的第三方框架的架构,因软件自己的架构是可能受到第三方的架构的影响的。spa
d) 子系统划分,即模块化的过程,在业务模型和领域模型的基础上,须要将系统细分为多个更小的单元,便于分析和理解,模块化过程能够参考:线程
e) 分层化,虽然能够基于子系统划分进行设计,但多个子系统间的关系还须要总体把握,防止后期设计的偏离,经过分层的方式将子系统划分到层中,这里一般会套用已有的架构模式来实现。
四、运行架构主要关注系统内进程间、线程间的通讯,包括多线程的分析,这部分主要基于对业务模型、子系统功能的分析来作,输出的运行视图将做为后续实现设计的输入。
五、物理设计主要考虑系统的部署方式,主要基于业务需求和逻辑架构来分析,其输出也会影响到实现的设计。
六、实现架构分析,能够理解为系统设计的过程,以前从逻辑架构开始理解为系统分析过程。
a) 基于子系统的划分,继续模块化的工做,须要划分子系统内部的模块,即子系统内部的静态结构分析。
b) 模块划分好后,进一步分析其之间的调用关系,须要分析出模块对外暴露的接口。
c) 再对模块进行模块化划分,将模块分解为多个功能单元。分析功能单元间的调用关系,须要分析出功能单元对外暴露的接口。
d) 分析设计模型,深刻功能单元内部,基于领域模型与业务分析模型,设计具体的功能单元内部类模型。
e) 分析功能单元内类的调用流程,对设计功能的流程作分析。
七、实现架构的分析清楚后,根据设计模型经过UML工具生成代码,就能够进行编码工做了,整个架构设计工做结束。