背景:工程人工智能 (AI) 软件是一个相对较新的领域,面临许多挑战、未知数和有限的经过验证的最佳实践。谷歌、微软和苹果等大公司提供了一套最新指南,以帮助工程团队构建以人为本的 AI 系统。目标:目前从业者为开发此类系统所采用的实践,尤其是在需求工程 (RE) 期间,迄今为止很少被研究和报道。方法:本文介绍了一项调查的结果,该调查旨在了解 AI 需求工程 (RE4AI) 的当前行业实践,并确定应遵循哪些以人为本的关键 AI 指南。我们的调查基于对现有行业指南、最佳实践和文献中的努力的映射。结果:我们调查了 29 名专业人士,发现大多数参与者都同意我们映射的所有以人为本的方面都应该在需求工程中得到解决。此外,我们发现大多数参与者都在使用 UML 或 Microsoft Office 来提出需求。结论:我们发现,目前使用的大多数工具都没有配备管理基于 AI 的软件的功能,而使用 UML 和 Office 可能会对捕获 AI 需求的质量造成问题。此外,指南中映射的所有以人为本的实践都应包含在 RE 中。© 2023 作者。由 Elsevier B.V. 出版。这是一篇根据 CC BY-NC-ND 许可开放获取的文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。
图 1 航空电子系统开发法规 ............................................................................................................. - 5 - 图 2 DO-178C 文档结构 [34] .............................................................................................. - 18 - 图 3 OSEE 的动作跟踪系统 [70] ............................................................................................. - 31 - 图 4 手术辅助工作站(SAW)架构 [71] ............................................................................................. - 32 - 图 5 OSEE - SAW 项目的产品分解 [71] ............................................................................. - 33 - 图 6 OSEE - 工件 [72] ............................................................................................................. - 34 - 图 7 OSEE - 要求 [71] ............................................................................................................. - 35 - 图 8 OSEE - Word 格式的机器人 API 要求 [71] ............................................................................. - 36 - 图 9 OSEE - TOPCASED 信息跟踪器 [71] ............................................................................................. - 37 - 图 10 OSEE – 测试管理 [71] ........................................................................................... - 38 - 图 11 OSEE – 可追溯性 [72] ......................................................................................... - 39 - 图 12 OSEE – Skywalker [71] .............................................................................................. - 40 - 图 13 OSEE - 团队管理 [71] ............................................................................................. - 41 - 图 14 OSEE - 用户管理 [71] ............................................................................................. - 42 - 图 15 OSEE - 版本控制 [71] ............................................................................................. - 43 - 图 16 OSEE - 发布管理 [71] ............................................................................................. - 44 - 图 17 示例组件图 [73] ............................................................................................. - 47 - 图 18 示例 UML 文件 [73] ............................................................................................. - 48 - 图 19 UML 模型验证 [73] ............................................................................................. - 49 - 图 20 从 UML 模型生成代码[73]................................................................................ - 50 - 图 21 CPPcheck 功能 [45].............................................................................................. - 51 - 图 22 移位负值警告 .................................................................................................... - 51 - 图 23 Cleanflight Github 项目概览 [77]............................................................................. - 52 - 图 24 BlackBox 解码器内部流程 ...................................................................................................... - 53 - 图 25 Blackbox 日志的典型标题 .............................................................................................. - 55 - 图 26 BlackBox 解码器数据 ...................................................................................................... - 56 - 图 27 案例研究图 ................................................................................................................ - 57 - 图 28 软件规划流程 ............................................................................................................. - 61 - 图 29 高级需求 ............................................................................................................. - 62 - 图 30 低级需求 ............................................................................................................. - 63 - 图 31 软件验证和测试 ............................................................................................................. - 67 - 图 32 分支管理 ............................................................................................................. - 68 - 图 33 问题报告系统 ............................................................................................................. - 68 - 图 34 分支变更报告 ............................................................................................................. - 69 - 图 35 版本和发布控制 ............................................................................................................. - 70 - 图 36 创建软件需求 ............................................................................................................. - 83 - 图 37创建高级别需求 ................................................................................................................ - 85 - 图 38 创建团队 ................................................................................................................ - 86 - 图 39 将需求与团队关联 ................................................................................................ - 87 - 图 40 将用户与团队关联 ................................................................................................ - 89 - 图 41 创建分支 ................................................................................................................ - 90 -......................... - 62 - 图 30 低级需求 ............................................................................................................. - 63 - 图 31 软件验证和测试 ............................................................................................................. - 67 - 图 32 分支管理 ............................................................................................................. - 68 - 图 33 问题报告系统 ............................................................................................................. - 68 - 图 34 分支变更报告 ............................................................................................................. - 69 - 图 35 版本和发布控制 ............................................................................................................. - 70 - 图 36 创建软件需求 ............................................................................................................. - 83 - 图 37 创建高级需求 ............................................................................................................. - 85 - 图 38 创建团队 ............................................................................................................. - 86 - 图 39 将需求与团队关联 ............................................................................................. - 87 - 图 40 将用户与团队关联 ............................................................................................. - 89 - 图 41 创建分支 ............................................................................................................. - 90 -......................... - 62 - 图 30 低级需求 ............................................................................................................. - 63 - 图 31 软件验证和测试 ............................................................................................................. - 67 - 图 32 分支管理 ............................................................................................................. - 68 - 图 33 问题报告系统 ............................................................................................................. - 68 - 图 34 分支变更报告 ............................................................................................................. - 69 - 图 35 版本和发布控制 ............................................................................................................. - 70 - 图 36 创建软件需求 ............................................................................................................. - 83 - 图 37 创建高级需求 ............................................................................................................. - 85 - 图 38 创建团队 ............................................................................................................. - 86 - 图 39 将需求与团队关联 ............................................................................................. - 87 - 图 40 将用户与团队关联 ............................................................................................. - 89 - 图 41 创建分支 ............................................................................................................. - 90 -........................................................................... - 89 - 图 41 创建分支 ................................................................................................................ - 90 -........................................................................... - 89 - 图 41 创建分支 ................................................................................................................ - 90 -
专家系统旨在模仿人类专家。这些系统可以处理那些被认为极其复杂且只有人类专家才能处理的任务。我们可以提供许多此类复杂任务的例子,例如医生诊断疾病并为患者开药,土木工程师根据用户需求设计房屋或其他土木结构(如桥梁或剧院),计算机科学家根据用户需求制作 UML 图表来表示解决这些需求的计算机化系统,安全专家查看网络流量并确定攻击者是否活跃等等。专家系统旨在获得处理类似问题的专业知识并为它们提供自动化解决方案。
为了降低验证成本并对软件更有信心,静态程序分析提供了证明源代码属性的方法。不幸的是,这些技术对于非专业人士来说很难理解和使用。建模允许用户以简单的方式指定软件的某些方面。更准确地说,在嵌入式软件中,状态机模型经常用于行为设计。本文的目的是通过提供从模型到源代码的注释自动生成来弥合模型和代码之间的差距。然后通过静态分析验证这些注释,以确保代码行为符合基于模型的设计。我们考虑的模型是具有正式非歧义语义的 UML 状态机,注释生成和验证在工具中实现并应用于案例研究。
先决条件:参见 COMS W1004 要点说明;COMS W1004 或讲师许可。如果已经获得 COMS W1007 学分,则不能计入学分。根据面向对象的设计模式和干净的编码实践,设计、记录、编码和测试强大的计算机软件的课程。以 Java 语言授课。面向对象的设计原则包括:用例;CRC;UML;javadoc;模式(适配器、构建器、命令、复合、装饰器、外观、工厂、迭代器、惰性求值、观察者、单例、策略、模板、访问者);契约设计;循环不变量;接口和继承层次结构;匿名类和空对象;图形小部件;事件和侦听器;Java 的对象类;泛型类型;反射;计时器、线程和锁
为了降低验证成本并对软件更有信心,静态程序分析提供了证明源代码属性的方法。不幸的是,这些技术对于非专业人士来说很难理解和使用。建模允许用户以简单的方式指定软件的某些方面。更准确地说,在嵌入式软件中,状态机模型经常用于行为设计。本文的目的是通过提供从模型到源代码的注释自动生成来弥合模型和代码之间的差距。然后通过静态分析验证这些注释,以确保代码行为符合基于模型的设计。我们考虑的模型是具有正式非歧义语义的 UML 状态机,注释生成和验证在工具中实现并应用于案例研究。
在许多情况下,第3层炼油厂提供的棕榈油被追溯到马来西亚,因此排除了这些炼油厂的供应百分比。供应商A的一级五级炼油厂之一来自四个级炼油厂,所有炼油厂都与印度尼西亚有关,其中两个属于供应商c,因此这些量重新分配给了第1层。在沿着贸易路线进行重新分配的量后,每个炼油厂的磨坊清单与全球森林手表的通用磨坊列表(使用UML ID)进行了交叉引用,以识别原点地区(Kabupaten)。使用Trase Earth的供应链数据工具,确定地区的2020年生产量以及来自每个地区的比例(%)。这些比例用于估计每个炼油厂供应链中每个地区的供应量,这些结果跨越了炼油厂。
Johannes Damarowsky ( Johannes.damarowsky@wiwi.uni-halle.de ) 在信息系统研究中,对组织内的信息及其流动进行建模已经很成熟。然而,信息的一个视角尚未用标准化的模型符号来表示:组织内的信息对象生命周期。将客户主数据(如姓名、地址、电话号码、电子邮件地址、出生日期)等信息理解为信息对象 (IO) 是一种视角和工具,它与可以表示它的著名静态建模符号非常吻合,例如实体关系模型 (ERM) 或 UML 类图。UML 部署图或 The Open Groups ArchiMate 等符号可以指示客户主数据 IO 的数字表示位于组织 IT 基础架构中的何处,例如哪些数据库在哪些物理服务器上包含它。但是,IO 在其生命周期内的行为没有可用的专用建模符号。重要的 IO 生命周期行为至少包括:1) 初始创建(即创建新客户)、2) 读取(例如,店员读取客户数据)、3) 向其添加新数据字段(例如,第二个地址)、4) 修改现有数据(例如,更新电话号码)、5) 实例化(例如,在纸质表格上打印客户数据或在另一个系统中创建数字副本)、6) 移动、7) 读取或 8) 修改实例(例如,将包含客户数据的纸质表格交给阅读并签名的主管或将客户主数据发送给供应商)、9) 销毁物理或数字实例或初始创建的对象。在最先进的技术中,可以使用行为图(如 UML 活动、用例或序列图)和业务流程符号(如事件驱动流程链 (EPC) 或业务流程模型和符号 (BPMN))来建模 IO 操作,但 IO 生命周期本身并不是一个流程。因此,与 IO 生命周期相关的任务可以包含在多个流程模型中,并且可能仅间接或隐含地引用 IO,从而妨碍快速轻松地概览组织内 IO 的交互。这意味着机会成本,因为 IO 行为与组织信息、业务流程、合规性和信息安全管理相关。一种新颖的信息对象生命周期模型和符号 (IOLMN) 可以简化识别哪些部门记录或更新客户数据的过程,从而更容易识别错误信息的原因。还可以更容易地发现数据是否在多个部门独立记录和存储,这增加了数据存储不一致的风险。从合规性和信息安全的角度来看,可以更容易地识别哪些人对数据具有读取或写入权限,以及数据的实例在哪里创建以及它们可能最终在哪里。在发生安全漏洞的情况下,这样可以更轻松地识别哪些组织单位、流程和 IT 系统使用(读取、写入、修改等)IO 并可能受到影响。为了使 IOLMN 有用并轻松地实现对组织内 IO 的有用视角,它应至少包括 IO 属性、其(及其实例)生命周期行为、这些操作的时间和逻辑顺序和条件,以及涉及的人员、角色、部门、流程或 IT 系统及其对 IO 执行生命周期操作的授权。
前言 如何阅读本文件?本文件使用自然和概念模式语言描述了由高程专题工作组 (TWG) 开发的“INSPIRE 高程数据规范 - 技术指南”版本 3.0。数据规范基于用于所有数据规范的通用模板 1,该模板已使用附件 I、II 和 III 数据规范的开发经验进行了协调。本文件为实施 INSPIRE 指令空间数据集和服务实施规则中规定的条款提供了指导方针。它还包括其他要求和建议,虽然这些要求和建议未包含在实施规则中,但与保证或提高数据互操作性有关。两个执行摘要简要概述了 INSPIRE 数据规范过程的总体情况,特别是高程数据规范的内容。我们强烈建议管理人员、决策者以及所有不熟悉 INSPIRE 流程和/或信息建模的人员首先阅读这些执行摘要。UML 图(第 5 章)提供了一种快速查看规范的主要元素及其关系的方法。空间对象类型、属性和关系的定义包含在要素目录中(也在第 5 章中)。具有主题专业知识但不熟悉 UML 的人可以完全理解专注于要素目录的数据模型的内容。用户可能还会发现要素目录特别有用,可以检查它是否包含他们运行的应用程序所需的数据。预计技术细节将成为那些负责在高程领域实施 INSPIRE 的组织的主要兴趣所在,同时也是其他利益相关者和空间数据基础设施用户的主要兴趣所在。技术条款和底层概念通常通过示例来说明。较小的示例在规范文本内,而较长的解释性示例和选定用例的描述则附在附件中。为了将 INSPIRE 空间数据主题与空间对象类型区分开来,INSPIRE 空间数据主题以斜体表示。