TommyHu的技术小馆

微信公众号:TommyHu的技术小馆

0%

APP架构核心技术

APP架构师能力要求,例:

  1. 熟悉TOGAF、BPMN、UML、IBM LOVEM、ARIS EPC等企业架构和业务流程建模知识;
  2. 掌握ARIS、Axure等建模和原型设计工具;
  3. 掌握DDD、RBAC等设计知识;
  4. 掌握Linux平台上的Java编程、MySQL数据库和Spring Boot或MyBatis等常用框架。

企业架构和业务流程建模

TOGAF(The Open Group Architecture Framework)开放组体系结构框架

引言

开放组体系结构框架是一个企业架构框架,提供了一种设计、规划、实施和管理企业信息技术架构的方法,是一种高层设计方法。通常被建模为四个级别:业务、应用程序、数据和技术。在很大程度上依赖于模块化、标准化、以及已有的经过验证的技术产品。它是国际开放标准组织于1995年开发的,基于美国国防部的信息管理技术架构框架TAFIM。截止2016年,国际开放标准组织报告称,TOGAF被使用于80%的全球50强企业和60%的财富美国500强企业。

概要

架构框架是一组工具,可用于开发各种不同的架构,这应该是:

  • 描述了一种用于根据一组构建块来定义信息系统的方法
  • 展示构建块如何组合在一起
  • 包含了一组工具
  • 提供一个共同的词汇
  • 包括推荐标准列表
  • 包括可用于实现构建块的兼容产品列表

ANSI/IEEE标准1471-2000体系结构(软件密集型系统)规范可以表述为:“系统的基本组织,体现在其组件中,它们之间的关系和环境,以及管理它的原则、设计和演化”。

然而,TOGAF有自己的观点,可以指定为“系统的正式描述,或系统在组件级别的详细计划以指导其实施”,或者“组件的结构,它们的相互关系,以及管理其设计和演变的原则和指导方针”。

架构开发方法(ADM)是TOGAF的核心,它描述了一种开发和管理企业架构生命周期的方法。

历史

TOGAF是在1990年代初期开始作为技术架构开发的方法,并由国际开放标准组织开发成一个广泛的企业架构框架。1995年,提出了第一版TOGAF。该版本主要基于美国国防部于20世纪80年代末开始开发的信息管理技术架构框架(TAFIM)。

2001年12月出版了“技术版本”TOGAF 7.TOGAF 8(“企业版本”)于2002年12月首次被发布,并于2003年12月以TOGAF 8.1的形式重新发布。2005年左右,TOGAF成为国际开放标准组织的注册商标。2006年11月,国际开放标准组织发布了TOGAF 8.1.1。据国际开放标准组织称,截止2011年2月,超过15000位个人获得了TOGAF认证TOGAF。截止2018年4月,官方注册者的认证超过了77500个认证。

最新版本是TOGAF 9.2,于2018年4月16日推出。

国际开放标准组织为组织内部非商业目的免费提供TOGAF。

详情

企业架构从IT架构发展而来,一些定义中会把企业架构简单定义为企业信息系统建设的规划。上世纪七十年代美军想建立一个系统来管理通讯指挥作战的所有相关资源,建立这个系统的方法后来形成理论并于03年发展成DoDAF(美国国防部体系架构框架),之前,民间就发展出好几个框架雏形,如87年John Zachman发表论文首次提出“信息系统架构框架”的概念,后改称“企业架构框架”奠定了企业架构的理论基础。现在讲的企业架构,一般包括业务架构(流程、组织)、应用(应用、服务)、数据架构(数据、信息)和技术架构(硬件、网络)这几方面的内容。

BPMN(Business Process Modeling Notation)业务流程建模与标注

https://zhuanlan.zhihu.com/p/59587931

BPMN(Business Process Modeling Notation),业务流程建模与标注,可以用其定义的一系列业务组件,组成业务流程图。

1 流对象(Flow Objects)

1.1 事件(Events)

事件都是用一个圆圈来代表,影响流程的流动,一般有一个原因(trigger)或者一个影响(result)。标准定义了三种事件:开始,中间和结束。从定义和分类名称上来看也能猜到事件的作用了,控制流程的开始,中间流转和结束,这些控制可能采取触发器(trigger)来完成,或者是导致一个结果(结束或抛出)。

(1)开始事件

(2)中间事件 Intermediate event

中间事件的使用有两种方式:

  1. 出于两种目的在一个正常的工作流中放置中间事件:中间事件可以用于“catch”事件触发器,或者是“throw”事件触发器。

  2. 一个中间事件放置于一个活动(Activity)中间,仅能够用于“catch”事件触发器,也就是捕获一个事件,做相应的处理。

(3)结束事件 End Event

结束事件必须是一个顺序流的目标,不能是源头,可以有多个顺序流指向同一个结束流。一个流程可以有多个结束事件,也可以没有结束事件,但是如果存在开始事件,就必须有至少一个结束事件。如果不使用结束事件,那么所有流对象没有任何流出序列(顺序)流(即不同为一个源序列流)来标志流程过程结束。流程不会结束,直到所有的并行路径完成了。

1.1 活动(Activities)

(1)Tasks 任务

task在流程流中是一个原子性的活动,当流程中的作业不能被打断时task被用作一个更细级别的细节。通常,一个终端用户或者应用其执行操作表现为task的形式。task对象在子流程中具有相同的形状,都是长方形有着圆角。

有三种特殊的task图标:循环、多重实例和补偿,一个task可能会有一个或两个这类图标。

这些任务中,需要人参与自身完成的有Manual Task和User Task。Manual Task是一个不受任何商业流程引擎管理的任务,User Task是。不受管理意味着流程引擎无法追踪其任务的开始和完成。举个例子,这个可能就是一张充满指令的纸,为电话技术人员帮顾客安装电话。

(2)Sub-Processes 子流程

子流程是一个活动的内部细节建模,使用活动、事件和网关以及序列流。子流程是流程内部的一个图形对象,但是它也能够被打开来展现更低一层的流程。子流程定义了一个上下文范围,可用于属性可见性、事务的范围,异常处理,事件或者是补偿。

BPMN定义了五种子流程,其中Collapsed Sub-Process可以被另外四种组合取代。另外四种是loop、multi-instance、Compensation、Ad-Hoc。

(3)Call Activity 调用活动

调用活动确定使用了全局流程或者全局任务的流程中的一点。调用过程用作为包装器来调用全局流程或全局任务执行中。激活调用活动将导致称为全局流程或者全局任务的控制转移。

调用活动必须满足数据要求,同时调用CallableElement返回数据。这意味着在活动的InputOutputSpecification中需要包含这些元素,并且必须精确的和CallableElement的元素匹配。这些元素包括:DataInputs、DataOutputs、InputSets、OutputSets。

1.3 网关(Gateways)

网关用于控制序列流如何在一个流程中收敛和发散的交互。如果一个流程不需要控制,那么网关就是非必需的。“网关”一词意味着有一个门机制。允许或不允许通过网关——也就是说,执行到网关的时候,当网关机制被调用,输入可以被合并在一起,或者输出分离成若干部分。

2 数据(Data)

传统的流程建模要求能够模拟物品(物理或信息的)在流程中的创建、操作和执行过程。重要的方面就是能够捕获数据的结构,并且查询或者操作结构。

BPMN本身并不提供内置的模型来描述数据结构或查询数据的语言表达式。相反,它规范hooks来允许使用外部定义的数据结构和表达式语言。此外,在同一个模型中,BPMN允许不同的数据结构和表达式语言。这些语言的兼容性和验证是在规范的范围之外,变成了工具供应商的职责。

BPMN使用XML Schema和XPath作为其默认的数据结构和表达式语言,但是供应商可以自由替换他们自己的语言。

3 连接对象(Connecting Objects)

4 泳道(Swimlanes)

4.1 池子(Pools)

池是一个容器,与其他的池相隔离。通常用在交互流程中。池主要作用于两个独立的实体或者参与者之间的物理划分。各个池中的活动通常是有自身的流程的。因此,顺序流通常不会越过多个池,而消息流是可以的。

4.2 泳道(Lanes)

Pool的子划分,可以垂直或者水平,用来对活动的组织和分类。Lane更加接近我们传统的泳道的概念。Lane常用来将活动按照角色划分,流程可以在一个pool中跨Lane流转,但是在一个pool中一般不会这样(出处与上面相同)。

5 工件(Artifacts)

5.1 组(Group)

将一部分元素按逻辑或特定目的进行分组,便于查看和管理,用于解释和描述目的,不会影响流程的流转。

5.2 文字注释(Text Annotation)

提供一些附加性的文本信息给流程图的阅读者。

UML(Unified Modeling Language)统一建模语言

UML 能帮我们做什么?

我们在进行项目的时候,通过使用 UML 的面向对象图的方式来更明确、清晰的表达项目中的架设思想、项目结构、执行顺序等一些逻辑思维。

UML 介绍:

 1997年,OMG 组织(Object Management Group对象管理组织)发布了统一建模语言(Unified Modeling Language,UML)。UML 是一种编制软件蓝图的标准化语言,它的目标之一就是为开发团队提供标准通用的设计语言来开发和构建计算机应用。UML 提出了一套 IT 专业人员期待多年的统一的标准建模符号。通过使用UML,这些人员能够阅读和交流系统架构和设计规划。UML支持面向对象的技术,能够准确的方便地表达面向对象的概念,体现面向对象的分析和设计风格.

UML统一了什么?

UML 统一了Booch、OMT、OOSE和其他面向对象方法所涉及的基本概念和建模符号。

UML 模型:

UML的模型主要有三部分构成:

  • 事物(Things):UML模型中最基本的构成元素,是具有代表性的成分的抽象
  • 关系(Relationships):关系把事物紧密联系在一起
  • 图(Diagrams ):图是事物和关系的可视化表示

UML 特点:

面向对象
可视化,表达能力强
独立于过程
独立于程序设计
容易掌握使用

UML概述

什么是 UML?

UML 是 OMG 在1997年1月提出了创建由对象管理组和 UML1.0 规范草案;

UML 是一种为面向对象开发系统的产品进行说明、可视化、和编制文档的标准语言;

UML 作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现;

UML 是不同于其他常见的编程语言,如 C + +,Java中,COBOL 等,它是一种绘画语言,用来做软件蓝图;

UML 不是一种编程语言,但工具可用于生成各种语言的代码中使用 UML 图;

UML 可以用来建模非软件系统的处理流程,以及像在一个制造单元等.

UML 的目标:

UML 的目标是定义一些通用的建模语言并对这些建模语言做出简单的说明,这样可以让建模者理解与使用。UML 也是为普通人和有兴趣的人而开发的系统,它可以是一个软件或者使用非软件,它必须是明确的。我们不将 UML 作为一个开发方法,而是随着流程做一个成功的系统。

现在我们可以明确的了解 UML 的目标就是 UML 被定义为一个简单的建模机制,帮助我们按照实际情况或者按照我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化。

UML 面向对象的概念:

面向对象 (Object Oriented,OO) 是软件开发方法,面向对象的概念和应用已超越了程序设计和软件开发。我们可以将 UML 描述为面向对象的分析和设计的继任者。

一个对象中包含了数据和控制数据的方法,其中数据表示对象的状态,类描述的对象,他们也形成层次结构模型真实世界的系统。表示为继承层次结构,也可以以不同的方式按要求相关的类。

对象是现实世界的实体存在我们周围像抽象,封装,继承,多态的基本概念,都可以使用 UML 表示。因此,UML 是强大到足以代表所有的概念存在于面向对象的分析和设计。

UML 图是面向对象的概念的表示,因此,学习 UML 之前,详细了解面向对象的概念就变得非常重要。

以下是一些面向对象基本概念:

  • 对象: 对象代表一个实体的基本构建块.

  • 类: 类是对象的蓝图.

  • 抽象化: 抽象代表现实世界中实体的行为.

  • 封装: 封装是将数据绑定在一起,并隐藏他们外部世界的机制。

  • 继承: 继承是从现有的机制作出新的类。

  • 多态性: 定义的机制来以不同的形式存在.

UML教程

建模类型:
  • 结构建模:捕捉静态的功能。
    • 类图
    • 对象图
    • 部署图
    • 包图
    • 复合结构图
    • 组件图
  • 行为建模:显示系统的动态性质。
    • 活动图
    • 交互图
    • 用例图
  • 架构建模:表示一个系统的总体框架。
    • 包图
UML基本表示法

UML是流行的图解符号。UML符号是最重要的建模元素。

结构事物:

  • 接口
  • 协作
  • 用例
  • 活动类
  • 组件
  • 节点

类注释:下图表示的 UML 类,分为四个部分。顶端部分被用来命名类。第二个是用来显示类的属性。第三部分是用来描述由类执行的操作。第四部分是可选的显示附加组件。

对象表示法:以同样的方式作为类,唯一的区别是有下划线的名称。

接口表示法:接口用圆来表示。用来描述功能,而不执行,像一个模板,定义不同的功能但不执行,当一个类实现了接口,也按要求实现功能。

协作表示法:协作表示职责,一般职责在一组。

用例表示法:用例是用来捕捉系统的高层次功能。

角色表示法:某些内部或外部的与系统进行交互的实体,可以被定义为一个角色。

初始状态表示法:显示一个过程的起点。

最终状态表示法:显示一个过程的终止点。

活动类表示法:活动类一般是用来描述一个系统的并发行为。

元件表示法:一个组件,元器件是用来表示系统的任何部分的 UML 图。

节点表示法:一个节点表示一个物理的系统组件。节点用来表示物理系统的一部分,如服务器,网络等。

行为事物:动态部分是UML中最重要的元素之一

相互作用

建模和原型设计工具-ARIS模型

ARIS模型是德国Scheer教授提出的一种面向过程的、集成化的信息系统模型框架。ARIS结构是从过程链模型抽取、发展而来的。

简介

在ARIS概念中,“过程”是由起始事件和终止事件定义的。过程的对象可以是物质的转变过程,也可以是信息的转变过程。在ARIS结构中,控制视图是ARIS区别于其它建模框架的重要特征,被用来记录和维护数据视图、组织视图和功能视图之间的关系,而组织、数据、功能视图的发展过程是相对独立的;面向系统的生命周期,ARIS定义了需求定义、设计说明和实施描述三个建模层次。为减少结构的复杂性以及冗余,ARIS还对过程链模型做了简化,更加关注信息的转变,舍弃与信息过程无关的因素,利用分阶段的或者程序化的模型来减少描述视图相互之间的关系。例如:真实的物质转变过程、物质转变过程中人的行为、所需的物料及设备,都以“环境条件”的形式出现在信息描述中,从而,从信息过程的角度看,生产过程不再是物料、人力和生产设备的使用,而是生产过程中数据的交换,这个信息过程的操作还涉及:过程计划、能力规划、生产进度控制等。

发展

ARIS有一套标准的、可相互集成的软件工具集支持ARIS建模及仿真分析,并可与SAP R/3(由德国SAP公司所研创)等企业资源计划系统(ERP)商业套件集成在一起,提供BPR(Business Process Reengineering,业务流程重组)、ERP系统实施、企业流程监控及持续改进等一体化的解决方案。ARIS成为目前世界上极具影响力的建模框架。