设为首页 加入收藏

TOP

HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(功能性、非功能性、关键约束)-上篇(二)
2019-09-17 17:45:52 】 浏览:89
Tags:HRMS 人力资源 管理系统 单机 用到 SaaS 应用 架构 分析 功能性 关键 约束 -上篇
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、质疑驱动架构设计(始终抱着质疑的思想来思考架构设计方案)

架构师需始终保持质疑的意识来不断驱动整个架构设计的过程,这是一个架构设计成功的关键,通过质疑可引入更多的“质量属性”,同时结合“特殊功能场景”驱动后续架构设计,最终形成最优的架构设计方案。

image

以HRMS系统为例:

image

      上面我们发现在架构设计的过程中,我们需要从多维度去思考架构设计考虑的内容及方式,我们需要从不同的方向去考虑架构过程中出现的各类问题,通过质疑并不断解决质疑的方式来设计出最终的解决方案。我们的终极目标是设计出一套先进有持续竞争力的HRMS系统,满足各类企业在经营过程中对人力资源管理所需的各类需求(功能、质量属性、约束),架构师需要用挑毛病的方式来去评估当前的架构设计方案,直到挑不出毛病(架构师自己先质疑问题并解决了),这个架构基本就成型了。

 

3.3、多阶段/多视图

       业界软件架构设计的方法论很多,各有各自的应用场景和特点,下文结合ADMEMS(Architecture Design Method has been Extended to Method System)架构设计方法论说明软件架构的过程:

image

       架构设计的过程和内容的不是固定不变的,现实中,比如售前提供解决方案中,很多时候需要架构师提供细化架构中才会深思的逻辑架构、物理架构等,这时候,架构师就需要有螺旋思维和跳跃思维的方式,就像武功中,招式是死的,人是活的,要学会灵活运用。

       3.3.1、架构设计过程(3个阶段)

image

A、Pre-architecture阶段:架构实践中最常见的最短板

最大误区:架构师是技术人员,不必懂需求

实践要点:摒弃“需求列表”方式,建立二维需求观

思维工具:二维矩阵(需求层次-需求方面矩阵)

B、Conceptual Arch阶段:大型系统成败关键

最大误区:概念架构=理想设计

实践要点:重大需求塑造概念架构

思维工具:鲁棒图、目标-场景-决策表

C、Refined Arch阶段:团队大规模并行开发基础

最大误区:架构=模块 + 接口

实践要点:贴近实践的5视图法

思维工具:包图、包-接口图、灰盒包图、序列图、目标-场景-决策表

 

         3.3.2、架构设计5视图

         5视图法分析的意义:

         ● 全面分析软件系统方方面面的问题
         ● 尽早地发现和排除项目风险与不确定因素
         ● 从不同角度去展现要设计的软件系统
         ● 为项目进行中不同的干系人提供指导:
            -- 逻辑架构描述系统功能,并指导系统测试
            -- 开发架构规范软件的层次及代码风格
            -- 数据架构指导数据库的设计
            -- 运行架构定义了一些关键过程的设计
            -- 物理架构明确软件如何部署与实施

image

关于架构5视图的实践过程:

image

3.4、内置最佳实践(经验总结)

 &nbs

首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇支付宝系统架构内部剖析 下一篇老王讲架构:负载均衡

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目