EA的真正意义是告诉你怎样去思考,怎样去沟通,怎样去做决策,以及怎样去控制项目。EA保证不同层面的人看到一个更宏观的视图,从而避免“ 只见树木、不见森林”的无效工作。 EA是一个把战略、业务与IT进行有效匹配的方法论,从而使 IT真正为业务和战略服务,从而使战略能够有效执行。 EA就是现代企业的DNA,它是一个能够整合各种方法的机制 ,从而解决各种挑战和问题。
上述图片中呈现了EA方法论的5类具体的实践,由于篇幅有限,我这里不挨个展开介绍概念及具体内容。如果想了解详情请大家自行搜索。
可以说我们在做一个复杂系统的设计及规划时,正确的方法论会知道我们正确的做事,做正确的事,所以这对我们每个架构师来说非常重要,请大家务必了解,当然对于EA理论的具体实践也有很多具体的方法实践模式,这里也可以归纳为几类,后面我们将详细阐述。
3.2、ADMEMS(Architecture Design Method has been Extended to Method System)
ADMEMS是Architecture Design Method has been Extended to Method System的简称,是由CSAI顾问团架构设计专家组于2009年11月在第六届中国软件大会上公开发布的一个软件架构设计方法。作为方法体系,ADMEMS通过3个阶段和1个贯穿环节,来覆盖“需求进,架构出”的架构设计完整工作内容。其中“3个阶段”是指预备架构阶段(PA阶段:把握需求特点,确定架构驱动力)、概念架构阶段(CA阶段:根据重大需求,确定概念架构)、细化架构阶段(RA阶段:细化架构设计,关注不同视图),“1个贯穿环节”是指对非功能目标的考虑。
PA阶段的任务是全面理解需求,从而把握需求特点,进而确定架构设计驱动力。其中,ADMEMS矩阵居于方法的核心;CA阶段必须考虑包括功能、质量、约束在内的所有方面的需求,ADMEMS方法有自己的概念架构设计步骤和做法;RA阶段的总体方法为5视图方法,涉及逻辑架构、物理架构、开发架构、运行架构和数据架构。
后面我们将主要参考该架构方法来落地实践HRMS系统的架构设计过程。
3.2、质疑驱动架构设计(始终抱着质疑的思想来思考架构设计方案)
架构师需始终保持质疑的意识来不断驱动整个架构设计的过程,这是一个架构设计成功的关键,通过质疑可引入更多的“质量属性”,同时结合“特殊功能场景”驱动后续架构设计,最终形成最优的架构设计方案。
以HRMS系统为例:
上面我们发现在架构设计的过程中,我们需要从多维度去思考架构设计考虑的内容及方式,我们需要从不同的方向去考虑架构过程中出现的各类问题,通过质疑并不断解决质疑的方式来设计出最终的解决方案。我们的终极目标是设计出一套先进有持续竞争力的HRMS系统,满足各类企业在经营过程中对人力资源管理所需的各类需求(功能、质量属性、约束),架构师需要用挑毛病的方式来去评估当前的架构设计方案,直到挑不出毛病(架构师自己先质疑问题并解决了),这个架构基本就成型了。
3.3、多阶段/多视图
业界软件架构设计的方法论很多,各有各自的应用场景和特点,下文结合ADMEMS(Architecture Design Method has been Extended to Method System)架构设计方法论说明软件架构的过程:
架构设计的过程和内容的不是固定不变的,现实中,比如售前提供解决方案中,很多时候需要架构师提供细化架构中才会深思的逻辑架构、物理架构等,这时候,架构师就需要有螺旋思维和跳跃思维的方式,就像武功中,招式是死的,人是活的,要学会灵活运用。
3.3.1、架构设计过程(3个阶段)
A、Pre-architecture阶段:架构实践中最常见的最短板
最大误区:架构师是技术人员,不必懂需求
实践要点:摒弃“需求列表”方式,建立二维需求观
思维工具:二维矩阵(需求层次-需求方面矩阵)
B、Conceptual Arch阶段:大型系统成败关键
最大误区:概念架构=理想设计
实践要点:重大需求塑造概念架构
思维工具:鲁棒图、目标-场景-决策表
C、Refined Arch阶段:团队大规模并行开发基础
最大误区:架构=模块 + 接口
实践要点:贴近实践的5视图法
思维工具:包图、包-接口图、灰盒包图、序列图、目标-场景-决策表
3.3.2、架构设计5视图
5视图法分析的意义:
● 全面分析软件系统方方面面的问题 ● 尽早地发现和排除项目风险与不确定因素 ● 从不同角度去展现要设计的软件系统 ● 为项目进行中不同的干系人提供指导: -- 逻辑架构描述系统功能,并指导系统测试 -- 开发架构规范软件的层次及代码风格 -- 数据架构指导数据库的设计 -- 运行架构定义了一些关键过程的设计 -- 物理架构明确软件如何部署与实施
关于架构5视图的实践过程:
3.4、内置最佳实践(经验总结)
&nbs |