面向未来的设计:管理软件的演进:DFG优先项目的长期生存外文翻译资料

 2022-06-20 23:08:40

英语原文共 14 页,剩余内容已隐藏,支付完成后下载完整资料


面向未来的设计:管理软件的演进:DFG优先项目的长期生存。

软件系统

摘要:创新的软件工程方法、概念和工具,侧重于支持复杂软件的持续发展,特别是对于其不断适应不断变化的功能和质量要求以及长周期的平台。支持软件系统和它们的环境共同进化是一项非常具有挑战性的任务,因为它需要不同软件工程学科的方法和见解的结合甚至集成。为了迎接这些挑战,由德国提供资金的优先方案于1593设计了未来管理软件的发展。

在整个生命周期中,研究基础,发展基本方法学和专注于长期生活的软件系统,保持高质量和支持进化。优先项目的目标是集成和集中研究软件工程,以开发软件和软件/硬件系统的持续发展方法,使系统能够适应不断变化的需求和环境。为了评估,我们关注两个特定的应用领域:自动化工程中的信息系统和生产系统。特别是两个应用领域的联合案例研究促进了优先项目各个项目之间的密切合作。我们考虑了一些共同感兴趣的研究主题,例如模型和实现代码的共同进化,模型和测试的共同进化,以及各种类型的模型。另一个共同感兴趣的研究主题是运行时模型,通过持续的系统监控,将软件系统与抽象模型自动同步。这两个概念、共同进化和运行时模型都有助于我们的愿景,我们称之为“知识承载软件”。我们认为这是这类软件系统长期使用的主要需求。

关键词:软件生命周期·设计、维护和操作·遗产系统·共同进化·知识。

1引言:当今软件业面临的挑战。

软件已经成为许多突破性发展的一个有利因素。在这个角色中,软件被认为提供了一定程度的灵活性,是惊人的,尤其是对软件开发人员来说。例如,Amazon平均每11秒就会发布其服务和产品的新版本、发行版等[7]。如果这一现象是通用方向软件开发的一个指示器,那么它将在未来显示出该公司的这个特定系统的良好流程。然而,即使变化不那么频繁,在一般软件开发中保持这样的速度也将是一个重大的挑战。

软件的这一角色使得它有必要解决快速的新出现的机会,不断变化的客户需求,环境变化等等。问题是什么是挑战,如何解决它们。这种快节奏的效果通常是软件系统显示出老化的迹象。因此,软件质量在长寿命的软件系统的生命周期中常常会降低,例如,对用户和系统的需求、功能、性能、可靠性和可维护性的一致性。这是老化,不是磨损,而是迅速适应所需要的变化,而不是因为太慢而过时。因此,在不考虑质量控制和管理的情况下,对软件系统进行了快速的修改。几十年来,软件工程专家一直很清楚这种现象,称为软件退化[11,14]。此外,需求软件必须满足,底层的硬件和基础设施(例如,执行平台)也在不断变化。如果软件不能持续地适应,它将会与环境相适应。在业务信息系统领域,我们对遗留系统所提到的这些问题非常熟悉。软件行业仍然需要处理基于不透明和整体的FORTRAN或COBOL系统的大规模业务应用程序,这些应用程序由于其巨大的复杂性,甚至是缺乏对它们工作方式的知识而无法替代。同样的问题出现在嵌入式软件系统领域,软件工程必须解决为可能存在的长期技术设备和系统提供复杂软件的问题。

在这些问题之后,一个叫做DevOps的倡议出现了。在DevOps的开发和操作中,为了避免两个部门之间的间隔太大,他们一起工作。然而,这仅仅是一个愿望和一个高层次的管理策略。系统的方法是什么还有待观察。我们通过提供适当的详细模型和过程来解决这个问题。的确,需要考虑软件工程的几个领域,并评估它们各自的贡献。此外,需要在保持长期软件系统的软件质量方面进行巨大的投资。开发长寿命软件系统的下列三个问题领域特别值得注意:

(1)缺乏对功能和质量要求之间的相互依赖性的理解。软件系统的交互结构,以及对其他硬件和软件系统组件的依赖,阻碍了软件系统的高效和有效的发展。这导致了软件系统用户生产力的主要缺陷,最终导致了验收问题。

(2)软件演化的具体方面有多种方法和技术。然而,在开发、操作和质量保证的同时,还不存在一个涵盖开发、操作和质量保证的全面和全面的方法。当然,这包括和处理基于模型的方法。

(3)一方面是应用程序开发的复杂性和时机,另一方面是平台的开发。而另一方面,技术往往相互干扰,阻碍了重点和持续的发展。

为了应对这些挑战,2012年8月,德国研究基金会(DFG)启动了优先项目1593 (SPP1593),鼓励德国软件工程社区开发软件和软件/硬件系统的进化方法。

第2节介绍了软件系统的进化生命周期,包括设计和构建阶段以及操作阶段,涉及不同的学科,第三节介绍了我们对托管软件演化的展望。联合案例研究对于促进个别项目之间的密切合作至关重要,见第4节。优先方案项目,他们的协作和一种聚类在第5节中提出,在第6节结束之前。

2进化软件生命周期。

传统的发布周期,软件更新为一个整体,消失。如今,软件依赖于几个独立或松散耦合的组件,这些组件使用复杂的技术栈,包括硬件、中间件和可重用软件组件和其他(软件)系统。关于软件进化,我们必须找到方法来处理不同的发布周期中发生的这些不同部分的共同进化。在自动化工程技术系统的背景下,图1描述了将不同层次的操作和开发集成在一起的挑战。

系统的进化生命周期包括设计和施工阶段以及操作阶段,涉及到不同的学科。生命周期从最初的设计和基础设施的建设和软件。

图1

在操作开始之前,整个系统的调试(即:所有学科的合并是必要的。在运行过程中,机械施工阶段的时间要比设计平台和软件的时间要长得多,特别是在生产自动化系统领域。通常技术系统或平台运行多年,导致的变化频率比软件工程要小。由于变更、修改和更新可能会影响系统的必要部分,系统可能不得不关闭,以便委托整个重新设计的系统。在生产系统的自动化中,通常需要非常短的时间来保持这些停机时间。在上图中,不同的区域(软件、平台和技术系统)在不同的灰色尺度下描述,每条曲线的高度表示这些区域所需的工作量。正如人们所看到的,每个领域都有自己的动力,而挑战在于如何以一种有意义的方式开发和运作整个系统。

事实上,我们需要一个紧密集成的结构/设计、部署和操作阶段。如上图所示,这意味着我们需要新的组合软件生命周期管理方法,它反映了现代面向服务系统的复杂技术栈、生产自动化系统等。此外,还需要进一步集成设计时和运行时的软件信息。例如,在系统运行和演化过程中,大量的关于操作软件的设计时信息丢失了。一方面,在设计阶段之后,开发人工制品并没有得到及时更新,另一方面,运行时管理信息与设计时人工制品之间的关系几乎没有被考虑。因此,开发过程应该明确地考虑到软件系统的运行和演进。

3管理软件进化

在优先项目1593中,软件和软件/硬件系统的持续共同进化通过使系统能够适应不断变化的需求和环境而得到解决。软件工程学科的几个领域有助于实现这一愿景,并可能集中和集成,以达到一种新的长期软件系统开发方法的目标,在生命周期中保持高质量和支持演进。但是,这些方法需要进一步开发和集成,并特别关注长寿命的软件系统。为此,我们提出了一种新的范式,即(1)软件及其平台的开发、适应和演化,以及(2)操作、监控和维护不再分离,而是集成。目标是定义元模型来保存和访问系统开发过程中提供和获得的知识。此外,还将提供方法和过程模型,以及适当的基础设施,以全面支持软件开发和演进的集成。

为优先方案及其项目拟订了三个指导主题:

指导主题I:知识携带软件。在软件或基础设计中所包含的知识需要集成,并使其能够在结果的人工制品中获得,无论是功能还是质量要求。需要对软件和软件/硬件系统的持续演进提供特定支持的合适的元模型,尤其是在推进基于模型和模型驱动的软件工程方面。

指导主题II:方法和过程。软件的设计和演变需要有方法来支持这些知识得以保存和整合。

新模型生命周期的软件或软件/硬件系统需要开发,允许在不同级别和考虑不同发展周期的软件/平台/硬件栈。

图2

引导主题三:进化的平台和环境。在适当的中间件和健壮的运行时环境中,软件或软硬件系统的发展基础设施,在运行过程中监视和更改,需要提供。设计和运行时信息需要在需要的地方进行访问。

在系统运行期间。上图总结了当今软件的相关领域。工程研究和说明优先级方案的总体结构如何与软件工程的这些领域有关。

该优先方案是为两个时期的筹资而设计的,每一期为期三年。图3显示了融资周期的方向。在第一阶段,我们专注于引导主题I和II,为软件系统的演进定义新的概念,从而奠定基础。在第二阶段,我们将更加注重评估和适当的基础设施建设。

图3着重于优先方案的筹资期间

4案例研究

在优先方案中,有几个项目开发了针对自动化工程中生产系统领域的方法和方法。他们使用“选择和地点”单元[8]来评估他们的研究结果。[0]是一种实验室规模的演示者,位于慕尼黑工业大学自动化和信息系统研究所。另一组项目集中于信息系统和嵌入式系统。对于这些项目,我们提供了一个基于CoCoME[15]的联合案例研究,该研究是基于一个与超市相关的库存管理的现金服务台,由位于Karlsruher技术学院的软件设计和Quality2的主席监督。本案例研究已经被部署为基于组件的建模方法的国际基准,但现在已经适应了优先级方案的目标。

第4.1和4.2节分别介绍了这两个案例研究。稍后,第5节将介绍单个项目如何工作并在这些案例研究上进行协作。

4.1 Pick and place unit

制造系统的自动化软件工程与传统的嵌入式系统软件设计不同。运行时环境,在iec61131 -3(例如,顺序函数图)中标准化的编程语言中实现,从几个技术平台的详细信息中抽象出来。然而,自动化软件与物理硬件之间的依赖关系,即,语境和平台,依然存在。制造系统的复杂性,通常有成千上万的输入和输出信号,传感器和执行器在一个工厂内使用仍然很高。此外,复用也有几个方面的缺陷:几乎每一种植物都是根据技术要求、当地标准、当地维修人员的资格和要求的部件来定制的。

在这种情况下,用于制造系统的自动化软件的模型驱动开发变得越来越重要。第一个工具原型可以使用面向对象的机制,并将UML集成到传统的iec61131 -3环境中[17],这是多年来制造系统的编程和开发标准。此外,面向服务的方法应用于制造系统在传感器和致动器集成的水平,所谓的设备描述语言(2、3)以及动态适应的水平在运行时使用基于代理的方法来代替传感器由软传感器[4][16]或调整控制行为的失败。然而,一个主要的缺点仍然存在:现有的工厂和机电类库的非结构化遗留代码经常被重用。因此,需要一种方法来分析遗留代码,并将移植概念发展为模型驱动的开发或用于新工厂的面向服务。生产系统的自动化软件的演变并不总是以模型驱动的方式作为计划的变更。在工厂站点,在停机时间的情况下,软件代码经常在高时间压力下进行调整,限制了所有工程数据和有限的知识。这两项挑战都是通过使用制造自动化演示者的优先方案项目来解决的。产品线方法和delta工程似乎是支持制造系统软件演进的好方法,但需要对标准化和已建立的编程语言进行更改,以及在工程和运行时平台上的适应。

评估方法的适用性对自动化制造系统软件,9个项目使用选择amp;所在单位(PPU)[8]作为模范lab-size示威者制造系统(见图4)。的发展机械、电子和软件部分的PPU过去十年划分为16个场景。除了功能驱动的进化,即处理其他类型的工件(颜色、材质)、质量要求[9],例如精度、吞吐量和可靠性,导致这些演进步骤。详细描述了PPU的演化场景,为优先级方案制定[10]。PPU的最终配置包括四个模块:一个邮票、一个堆栈、一个起重机和一个分类器。在将工件(圆柱形的chumps)与堆栈分离后,一个气缸,可以由起重机运输到邮票上进一步加工或直接到分类器。对于具有不同压力分布的冲压材料,也可配置气动气缸。在sorter上安装的各种传感器可以识别工作部件(颜色、材料)的类型,并通过使用气动钢瓶的相应的斜坡正确地将其喷射出来。

图4 PPU实验室尺寸[8]

作为项目的接口,SysML中的每个场景都有完整的文档,以及相应的iec61131 -3程序。为评估目的,提供了一个MATLAB/Simulink所有进化步骤的模型,该模型提供了在一个基于pc的逻辑控制器(PLC)上运行程序代码的机会。此外,该项目的定制控制软件可以通过仿真和通过OPC[13]连接到PPU上进行评估,这是自动化工程中一个标准化的接口。

4.2常见的组件建模示例

案例研究的通用组件建模示例(CoCoME)描述了一个虚构的业务信息管理系统,它最初是作为一个基于多个组件的建模方法的基准系统开发和国际使用的[6]。CoCoME是一个开放源代码系统,包含详细的需求规范、多种建模语言的体系结构模型和两个可运行的实现版本:基于组件的实现。

CoCoME的背景是一个超市或类似零售部门的交易系统。CoCoMe的系统结构如图5所示。

它包括现金柜台、商店和企业。收银台有几个连接到它的设备,比如条形码扫描器或收据打印机。多个收银台连接在CoCoME存储服务器。

图5 CoCoME系统概述

这些设备属于存储环境。此外,存储服务器通过存储客户端连接到企业服务器,包括企业CoCoME环境。可以在独立节点上安装现金台应用程序、存储服务器应用程序、存储客户端、企业应用程序和企业客户端,也可以复制。通信通过RMI在传统的CoCoME实现中运行,并通过WS调用在基于soa的变体中进行。基于soa的实现也可以在云中部署。

CoCoME系统的使用场景反映了顾客在超市购买商品。顾客想要购买的物品在收银台扫描,可以用现金或信用卡支付。在交易结束时,客户会收到一张收据。如果某些商品的供应即将结束,关于再供应的查询将通过商店客户端发送到企业服务器。在那里,它被加工,物品被运往超市。

目前的CoCoME变体并不打算支持针对进化的方法的评估。因此,我们提出以下的进化场景:

-交换AMPL[5]优化库-错误抵抗和性能适应。lt;

全文共11364字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[10834],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

发小红书推广免费获取该资料资格。点击链接进入获取推广文案即可: Ai一键组稿 | 降AI率 | 降重复率 | 论文一键排版