1. 背景

  • 许多大型制造企业通过专注于最强大的产品市场和专业化能力,降低了内部成本并增加市场和灵活性,并将“非核心”职能(许多零部件和子组件的设计和生产、成品分销和备件)转移到供应商组织。随着产品部件的设计和生产越来越多地被分配给供应商,而且这个过程对客户需求的变化反应更加迅速,整合问题变成了在企业边界的系统(制造的信息现在通常分布在几十个甚至几百个独立公司的软件系统)之间建立信息流。

    也就是说,由于在供应商组织间的多种系统间传递的信息流,是的决策层对于需求变化的感知不明显、也不及时。

  • 在此背景下,美国国家标准与技术研究所(NIST)开始了一项研究项目:集成系统的自动化方法(AMIS)。旨在研究我们现在是否有技术来实现一些制造软件集成过程的自动化。项目的目标:

    • to identify integration activities that may benefit from automation (自动化对于集成有益)
    • to identify methods and technologies that may be brought to bear on automation of those activities(确定可用于这些活动的自动化的方法和技术)
    • to characterize a set of common manufacturing integration problems that may be wholly or partly solved by automated means(确定可用于这些活动的自动化的方法和技术)
    • to compare the cost of the automation with the cost of the point solutions, that is, to determine whether engineering for automated integration is easier, better, and/or more feasible than ad hoc engineering of the integrated systems themselves(比较自动化集成和集成系统解决方案的成本)

【概述】

该篇报告记录了AMIS项目第一阶段的成果,该项目涉及前两个目标:

  • 确定整合活动
  • 确定可用于自动化的方法和技术。

以下是这篇报告的大概内容:

  • 第2节定义了基本概念和本文中使用的术语。
  • 第3节确定了经验丰富的软件工程师所执行的集成过程。
  • 第4节对集成问题进行分类。
  • 第5节指出了在集成独立开发的软件组件时遇到的常见问题。
  • 第6节指出了一些系统工程和软件工程的技术,这些技术可能会被应用于集成过程中的各种要素中发挥作用。
    • 建模与验证
    • 语义网:本体论(ontologies)相关、知识框架相关
    • 人工智能和机器学习
    • 代码生成、重用、中间件等
  • 第7节介绍了第一阶段的结论,并概述了未来的计划。

2. 基本概念

2.0 什么是自动化系统集成?

如下图1,我们用一张UML来概述整个系统的构成:

image-20230517115043595

关于图1的介绍:

TODO

2.1 Systems, agents and components

  • 对于系统的定义,是共同完成一项或多项业务功能的软件、硬件和人力资源的综合体。一个系统可以是预先设计的,也可以是通过一个或多个参与的人力或软件资源的行动临时产生的。

System = a complex of software, hardware, and human resources that jointly accomplishes one or more business functions. A system may be pre-designed or arise ad hoc by action of one or more of the participating human or software resources.

  • 系统设计包含两方面内容:
    1. 系统结构的说明,包括组件视图、信息视图和计算过程视图。
    2. 将系统功能分解为分配给标称组件子系统的子功能序列(图形),以及为实现子功能而必须在组件接口处提供的信息和材料的规范

System design =

(1) a specification of the structure of the system, including the component view, the information view, and the computational process view.

(2) a breakdown of system functions into sequences (graphs) of subfunctions assigned to nominal component subsystems, coupled with a specification for the information and materials that must be available at the component interfaces in order for the subfunctions to be accomplished.

  • 对于组件,其扮演特定角色的系统,通过在较大系统的功能中提供其部分或全部功能作为子功能,无论是预先设计的还是临时的。

Component (or agent) = a system that plays a particular role, by providing some or all of its functions as subfunctions, in the functions of a larger system, either pre-designed or ad hoc.

  • 特定于系统的组件:一个系统,旨在适应某个更大系统中一组特定的命名角色,其设计以及组件的接口规范都是先验已知的

System-specific component = a system designed to be fitted into a specific set of named roles in some larger system for which the design, and therefore the interface specifications for the component, are known a priori.

  • 系统特定的组件设计:子系统的规范,以在特定系统中扮演特定组件的角色。

System-specific component design = specification of a subsystem to play the role of a particular component in a specific system.

  • 可重用的组件:一个系统被设计成适合于一些待设计(或待出现)的大系统中的一组特定的指定角色,其中大系统的设计并不是先验的,组件的接口规格是基于对目标角色的接口要求的假定而定义的。更大的系统设计被期望在一个或多个预期的角色中纳入这个组件,并指定其他组件提供这个组件被设计为与之交互的角色。进一步的期望是,这些其他的组件将被设计成在其预期的角色中使用可重用的组件的已发布的接口。然而,在现实中,这种设计可能发生在事后,而且组件的使用可能与预期的角色有些不同。

Reusable component (or strange agent) = a system designed to be fitted into a specific set of named roles in some larger systems to-be-designed (or to-arise), where the larger system designs are not known a priori and the interface specifications for the component are defined based on presumptions of the interface requirements for the target roles. The larger system design is expected to incorporate this component in one or more of the anticipated roles and to specify the other components providing the roles this component is designed to interact with. The further expectation is that these other components will have been designed to use the published interfaces of the reusable component in its intended roles. In reality, however, this design may happen after the fact and the component may be used in roles somewhat different from those anticipated.

  • 可重复使用的组件设计:规范一个子系统,它表现出一组行为(可以执行一组子功能),这些行为对具有一些名义业务功能的未定义系统是有用的。这包括预期的信息流和用于激活行为和启用信息流的明确接口的规范。可重用组件的设计通常明确地包括一些功能,通过这些功能,可重用组件可以被 "配置 "为其主要行为和接口的若干变化中的任何一种,通过设置某些参数,一些在构建时,一些在运行时。

Reusable component design = specification of a subsystem that exhibits a set of behaviors (can perform a set of sub-functions) that are useful to an undefined system with some nominal business functions. This includes the specification of the expected information flows and the explicit interfaces used to activate the behaviors and enable the information flows. The design of a reusable component often explicitly includes capabilities by which the reusable component can be “configured” to exhibit any of several variations in its principal behaviors and interfaces, by setting certain parameters, some at build time and some at runtime.

例子

  • 安装在服务器系统上的ERP软件包,并配置给某一特定企业使用,连同其终端和经过培训的人类操作员,是一个预先设计的系统。ERP软件包本身是一个可重复使用的组件。终端和训练有素的操作员是系统特定的组件。一个附加的第三方软件包,可以使额外的业务功能自动化,是一个可重复使用的组件,可以被添加到这个系统中,成为一个更大的系统。
  • 一家公司的购买代理和另一家公司的销售代理在谈判销售条款和条件时的互动是一个特别的系统。买方代理和卖方代理是陌生的代理(或可重复使用的组件)。

2.2 Functions, processes, resources and roles

  • 行为意味着一个系统或者组件做了什么。系统组件的活动,通过其对环境的影响和/或通过组件本身的可测量属性,由其自身、系统的其他组件和/或系统工程师观察到。信息系统元素的行为可能会受到环境条件、过去的操作或配置的影响。

Behavior = what the system/component does — the activities of a system component as observed by itself, by other components of the system and/or by the system engineer, via its effect on its environment and/or through measurable attributes of the component itself. Behavior of an information system element can be influenced by environmental conditions, past actions, or configuration.

  • ***功能(或函数)*** 可以从两方面来解释:
    1. 一个部件的行为中满足某种目标或目的的部分。如果人们将行为建模为观察环境中的一组状态转换,那么功能可以被建模为这些转换的子集,为系统的目的服务。如果这些效果的不同子集被认为对某些目标业务流程有用,那么这套效果可以被看作是实现了一个以上的功能。
    2. 行为所达到的结果,特别是当实际行为并不重要时。

Function =

(1) the part of a component’s behavior that satisfies some objective or purpose. If one models behavior as a set of transitions of state in the observed environment, then function can be modeled as the subset of those transitions that serves the purpose of the system. That set of effects can be seen as implementing more than one function, if different subsets of those effects are considered useful with respect to some target business process.

(2) the result that behavior achieves, particularly when the actual behaviors are not important.

  • 过程是功能(函数)的“分解”:完成一个或多个功能(函数)的事件/活动的时间或逻辑排序(图表)。
    • 如果一个过程的启动或执行没有人的参与,那么这个过程就被称为是***自动的(Automatic)***
    • 如果一个过程在启动后没有人的干预,除非在特殊情况下,则被称为***自动化的(Automated)***。(也就是说,自动机可以允许人的干预来推翻它的自动决定,而且如果它检测到一个它没有决策算法的情况,它可以要求人类干预。)
    • 如果一个过程的一部分是自动化的,但在这个过程中,在做出重要决定和完成目标的过程中使用了人的智慧,那么这个过程被称为半自动化 semi-automated (或计算机辅助)。
    • 如果在执行过程中没有重要的计算机协助,则称该过程为***手动的(manual)***
1
TODO...