从流程建模到自动化系统设计(第 1 部分)

“松鼠生命中的一天”或从建模流程到设计物质资产会计自动化系统“Belka-1.0”(第 1 部分)

从流程建模到自动化系统设计(第 1 部分)
A.S. 普希金的《沙皇萨尔坦的故事》中使用了插图,由儿童文学出版,莫斯科,1949 年,列宁格勒,K. Kuznetsov 绘图

“松鼠”与它有什么关系?

我会立即解释“松鼠”与它有什么关系。 在互联网上遇到过一些有趣的项目,用于学习基于童话故事主题领域的 UML(例如, 这里 [1]),我还决定为我的学生准备一个类似的例子,以便他们一开始就可以只学习三种类型的图:活动图、用例图和类图。 我故意不将图表名称翻译成俄语,以免引起“翻译困难”的争议。 稍后我会解释它的用途。 在此示例中,我使用一家澳大利亚公司的 Enterprise Architect 框架 Sparx Systems [2] – 价格合理的好工具。 作为我培训课程的一部分,我使用 模型 [3],一个很好的免费面向对象设计工具,支持UML2.0和BPMN标准,在视觉功能方面没有不必要的花里胡哨,但对于学习语言基础知识来说已经足够了。

我们将使这些流程中出现的物质资产会计活动自动化。

...
海中有一座岛,(E1, E2)
冰雹岛看台(E3、E1)
拥有金色圆顶的教堂,(E4)
有塔楼和花园; (E5, E6)
云杉生长在宫殿前,(E7,E8)
在它下面是一座水晶屋; (E9)
松鼠住在那里,驯服,(A1)
是的,真是个艺人! (A1)
松鼠唱歌,(P1,A1)
是的,他啃了所有的坚果,(P2)
坚果并不简单,(C1)
所有的贝壳都是金色的,(C2)
仁纯翡翠; (C3)
仆人看守松鼠,(P3,A2)
伺候她做各种仆人(P4)
并分配了一名职员 (A3)
严格核算坚果新闻; (P5, C1)
给她的军队荣誉; (P6, A4)
从贝壳中倒出一枚硬币,(P7,C2,C4)
让他们漂浮在世界各地; (P8)
女孩扔绿宝石(P9、A5、C3)
在储藏室里,但在蒲式耳下; (E10, E11)
...
(A.S.普希金《沙皇萨尔坦的故事,关于他光荣而强大的英雄吉顿·萨尔坦诺维奇王子和美丽的天鹅公主的故事》, 有关童话故事的创作大概始于 1822 年;童话故事首次由普希金出版于《普希金诗集》(第三部分,1832 年,第 130-181 页)中 — 顺便说一句,从概念到出版花了 10 年时间!)

关于写在行右侧的代码的一些信息。 “A”(来自“Actor”)表示该行包含有关流程参与者的信息。 “C”(来自“Class”)——有关在进程执行期间处理的类对象的信息。 “E”(来自“环境”)——有关描述执行进程的环境的类对象的信息。 “P”(来自“流程”)——有关流程本身的信息。

顺便说一句,流程的确切定义也被认为是方法论争议的原因,即使只是因为存在不同的流程:业务、生产、技术等。 等等。 (例如,您可以发现, 这里 [4和 这里 [5])。 为了避免争议,我们同意 从其随时间的可重复性和自动化需求的角度来看,我们对该过程感兴趣, IE。 将流程操作的任何部分的执行转移到自动化系统。

使用活动图的注意事项

让我们开始对流程进行建模并为此使用活动图。 首先,让我解释一下上述代码将如何在模型中使用。 用图形示例更容易解释,但同时我们将分析活动图的一些(几乎所有我们需要的)元素。
我们来分析一下下面的片段:

...
松鼠唱歌,(P1,A1)
是的,他啃了所有的坚果,(P2)
坚果并不简单,(C1)
所有的贝壳都是金色的,(C2)
仁纯翡翠; (C3)
...

我们有两个流程步骤 P1 和 P2、参与者 A1 和三个不同类的对象:类 C1 的对象被输入到该步骤,类 C2 和 C3 的对象作为我们的步骤 P2 的活动的结果输出。过程。 对于该图,我们使用以下建模元素。

从流程建模到自动化系统设计(第 1 部分)

我们的流程的一个片段可以用这样的方式表示(图 1)。

从流程建模到自动化系统设计(第 1 部分)

图 1. 活动图片段

为了组织活动图的空间和结构,我们将使用非标准方法,从 UML 符号的经典使用的角度来看。 但这有几个原因。 首先,在开始建模之前,我们将编译所谓的 模特协议,其中我们记录了使用该符号的所有特征。 其次,这种方法在实际项目的业务建模阶段被多次成功地应用来创建软件系统;结果被我们的小作者团队记录在相应的版权对象中[6],并且也被用于培训手册中[ 7]。 对于活动图,我们定义图字段是使用“泳道”构建的。 轨道名称将与将放置在该轨道上的图表元素的类型相对应。

“输入和输出工件”: 该轨道将包含对象元素 - 使用的对象或执行某些流程步骤的结果。
「流程步骤」: 在这里,我们将放置“活动”元素 - 流程参与者的操作。
“参与者”: 表示流程中动作执行者角色的元素路径;对于他们,我们将使用相同的建模元素对象 - 一个对象,但我们将向其添加“Actor”构造型。
下一首曲目名为 “商业规则” 在此轨道上,我们将以文本形式放置用于执行流程步骤的规则,为此,我们将使用建模元素“注释” - 注释。
我们将在这里停下来,尽管我们也可以使用路径 “工具” 收集有关过程自动化水平的信息。 路径也可能派上用场 “参与者的职位和分工”,它可用于将角色链接到流程参与者的职位和部门。

我刚才描述的一切都是一个片段 建模约定,协议的这一部分涉及组织图表的规则,以及相应的书写和阅读规则。

“食谱”

现在让我们考虑专门对系统进行建模的选项 从活动图中。 这只是其中一种选择,我注意到它当然不是唯一的一种。 从流程建模到自动化系统设计的过渡中,活动图的作用会让我们感兴趣。 为此,我们将遵循方法论建议 - 一种仅包含五个阶段并仅提供三种类型图表的开发的方法。 使用这个秘诀将帮助我们获得我们想要自动化的过程的正式描述并收集系统设计的数据。 对于刚开始学习 UML 的学生来说,这是一种救生圈,不会让他们淹没在 UML 和现代建模工具中的各种可视化手段和技术中。

事实上,这就是食谱本身,然后按照为我们的“童话”主题区域构建的图表进行操作。

第 1 阶段。我们以活动图的形式描述该流程。 对于超过 10 个步骤的流程,应用流程步骤分解原则来提高图表的可读性是有意义的。

第 2 阶段:选择可以自动化的内容 (例如,可以在图表上突出显示这些步骤)。

阶段 3. 必须为自动化步骤分配系统的一个或多个功能 (关系可以是多对多),画出Use-case图。 这些就是我们系统的功能。

Stage 4. 让我们用类图来描述AS的内部组织 - 班级。 活动图中的“输入和输出对象(文档)”泳道是构建对象模型和实体关系模型的基础。

阶段 5. 让我们分析一下“业务规则”轨道上的注释,它们提供了各种限制和条件,逐渐转化为非功能性需求。
由此产生的一组图表(活动、用例、类)以相当严格的符号为我们提供了形式化的描述,即有明确的读数。 现在您可以制定技术规范、阐明需求规范等。

让我们开始建模吧。

阶段1.以活动图的形式描述流程

让我提醒您,我们使用“游泳”泳道构建图表字段;每个泳道包含相同类型的元素(图 2)。 除了上面描述的图表元素之外,我们还将使用其他元素,让我们来描述它们。

从流程建模到自动化系统设计(第 1 部分)

决策(Decision)在图中表示我们流程的分支点,而合并线程(Merge)——它们的重新统一点。 转换条件写在转换的方括号中。

在两个同步器(Fork)之间,我们将显示并行进程分支。
我们的流程只能有一个开始 - 一个入口点(初始)。 但可能有几种补全(Final),但不是针对我们具体的图。

箭头相当多,有大量元素和联系,您可以首先识别流程的各个阶段,然后对这些阶段进行分解。 但为了清楚起见,我想完全在一张图表上展示我们的“童话”过程,同时,当然,我们需要确保箭头“不会粘在一起”,这样就可以准确地跟踪连接的内容到什么。

从流程建模到自动化系统设计(第 1 部分)

图 2. 活动图 - 流程的总体视图

因为在诗行中,一些过程的细节被省略,它们必须被恢复,它们通过白色背景的元素来表现。 这些细节包括存储和处理步骤的传输/接收以及多个输入和输出工件。 值得注意的是,这一步也并没有完全揭示过程,因为我们需要分别指定发送步骤和接收步骤,甚至为外壳添加单独的步骤,并且还认为首先所有这些材料值应该暂时存储在某个地方等等。 等等。
我们还要注意,坚果的起源问题仍然没有答案——它们从哪里来以及如何到达松鼠那里? 而这个问题(在注释中以红色字体突出显示 - Note 元素)需要单独研究! 这就是分析师的工作方式——一点一点地收集信息,做出假设,并从主题专家那里获得“好”或“不好”的信息——在创建系统时的业务建模阶段非常重要且不可替代的人员。

还要注意,处理步骤P5由两部分组成。

从流程建模到自动化系统设计(第 1 部分)

我们将分解每个部分并更详细​​地考虑它(图3、图4),因为在这些特定步骤中执行的活动将被自动化。

从流程建模到自动化系统设计(第 1 部分)

图 3. 活动图 - 详细说明(第 1 部分)

从流程建模到自动化系统设计(第 1 部分)

图 4. 活动图 - 详细说明(第 2 部分)

第 2 阶段:选择可以自动化的内容

要自动化的步骤在图表上以颜色突出显示(参见图 3、图 4)。
从流程建模到自动化系统设计(第 1 部分)

所有这些都由流程中的一名参与者 - 书记员执行:

  • 将有关坚果重量的信息输入到报表中;
  • 将有关螺母转移的信息输入到报表中;
  • 记录坚果转变为果壳和果仁的事实;
  • 在语句中输入有关坚果仁的信息;
  • 将有关坚果壳的信息输入到列表中。

分析已完成的工作。 下一步是什么?

因此,我们做了很多准备工作:我们收集了有关我们要自动化的流程的信息; 开始就建模达成一致(到目前为止仅在使用活动图方面); 对流程进行了模拟,甚至分解了其中的几个步骤; 我们确定了将自动化的流程步骤。 我们现在准备好继续下一步并开始设计系统的功能和内部组织。

众所周知,没有实践的理论是没有任何意义的。 您绝对应该尝试用自己的双手“建模”,这对于理解所提出的方法也很有用。 例如,您可以在建模环境中工作 模型 [3]。 我们只分解了整个流程图的部分步骤(见图2)。 作为一项实际任务,您可能会被要求重复 Modelio 环境中的所有图表,并执行“传输/接收以进行存储和处理”步骤的分解。
我们尚未考虑在特定的建模环境中工作,但这可能会成为独立文章和评论的主题。

在本文的第二部分中,我们将分析第 3-5 阶段所需的建模和设计技术;我们将使用 UML 用例和类图。 待续。

来源清单

  1. 网站“UML2.ru”。 分析师社区论坛。 一般部分。 例子。 UML 图形式的童话示例。 [电子资源] 获取方式: 互联网: http://www.uml2.ru/forum/index.php?topic=486.0
  2. Sparx 系统网站。 [电子资源] 获取方式: 互联网: https://sparxsystems.com
  3. 模型网站。 [电子资源] 获取方式: 互联网: https://www.modelio.org
  4. 大百科辞典。 过程(解释)。 [电子资源] 获取方式: 互联网: https://dic.academic.ru/dic.nsf/enc3p/246322
  5. 网站“有效管理的组织”。 博客。 标题为“业务流程管理”。 业务流程的定义。 [电子资源] 获取方式: 互联网: https://rzbpm.ru/knowledge/pochemu-processy-stali-s-pristavkoj-biznes.html
  6. 第18249号智力活动成果产品登记保藏证书。 Alfimov R.V.、Zolotukhina E.B.、Krasnikova S.A. 题为“使用 Enterprise Architect 对主题领域进行建模”的教具手稿 // 2011。
  7. Zolotukhina E.B.、Vishnya A.S.、Krasnikova S.A. 业务流程建模。 - M .: KURS, NITs INFRA-M, EBS Znanium.com。 — 2017 年。

来源: habr.com

添加评论