没有合适的资源?快使用搜索试试~ 我知道了~
我不知道你是谁,你是谁,你是谁。本杰明·本尼Sophia A n ti p olis(i3s)的计算机科学、信号和系统讲座从他的角度来看,他是一个有能力的人 EN In形成 从l’Uni由以下人员共同指导:S'ebastienMosser,教授sseur,Univt'eeduQueb与'aMontreal'和我是一个很好的老师,也是一个很好的老师。UnivErsiteNiceCOteD '陪审团的名字是:ClaudinePeyrat-Niceoted 'Az ur大学教授OlivierBarais-教授s.eur desUnivrs.i.t.e.,Univrs.i.t.e.deRennes1GunterMussbacher-教授作为soce,Univer-site麦吉尔大学LionelSeinturier-里尔大学教授,法国里尔大学本作品根据知识共享署名4.0国际许可证授权。这是一个很好的例子。一种黑盒描述陪审团:主席:Claudine Peyrat-尼斯蓝色海岸大学教授报告员:— Olivier Barais-雷恩第一大学教授— Gunter Mussbacher -麦吉尔— Lionel Seinturier-里尔大学教授来宾:— Sébastien Mosser,魁北克蒙特利尔大学(UQAM)教授— Michel Riveill,尼斯蓝色海岸大学教授一种黑盒描述的软件组合摘要计算机系统的复杂性使得有必要在重新组合之前对其这种分离是一个已知的挑战,开发人员已经在预先划分任务然而,在不考虑最终重组的情况下分离会导致仓促和耗时的团聚。这种组合必须以最小的人力产生正确和最好的合成运算符通常是临时的,由非专业人员开发 他们不遵循高层次的形式主义,变得过于复杂或非正式,无法进行推理。我们称之为"黑匣子":需要了解其内部的技术然而,这些黑盒子必须保证属性:任何人都必须检查它的速度,以便在分布式环境中使用它;知道它在反应式系统中的执行时间;检查冲突,以便将它与公司规则进行比较。 这些需求都不是特定于应用程序领域的。在这篇论文中,我们提出了一种域无关的方法,它允许在现有的算子上,(i)推理合成方程,(ii)安全地合成它们,(iii)提出类似于现有技术的性质的验证。 我们在不同的领域验证了这种方法:19个版本的Linux内核有54个重写规则,修复了22个Android应用程序中的13个反模式,并验证了它在合成20kDocker图像方面的有效性。以与域无关的方式对黑盒合成运算符启用白盒推理摘要软件系统的复杂性使得有必要将它们分开,然后再重新组合。将关注点分开是一个经过充分研究的挑战,团队将手头的工作分开。然而,在不考虑重组的情况下进行分离会导致匆忙、不安全和耗时的重组。组合应该以最小的人力努力创建正确和最好的系统 Composition Operators通常是由非专业开发团队开发的临时解决方案。它们不是在高层次的形式主义中发展起来的,最终过于复杂或形式化太差,无法支持自己的理由。 我们称之为"黑匣子",因为需要了解其内部结构的现有技术既不能应用,也不能误用。然而,黑匣子操作员和其他操作员一样,必须确保保证:必须评估他们在分布式环境中使用它们的幂等性;提供平均运行时时间来评估在反应式系统中的使用;检查冲突以验证复合工件是否符合业务属性。尽管有黑框外观,但这些属性都不是特定于域的。在本文中,我们提出了一种域无关的方法,可以(i)对合成方程进行推理,(ii)安全地组合它们,(iii)通过评估与现有技术中的性质类似的我们在异构应用领域验证了该方法:19个版本的Linux内核有54条重写规则,修复了22个Android应用中的13个反模式,并验证了该方法在20k Docker映像合成中的有效性。谢谢。首先,我想谢谢你,读者!有人曾经告诉我,保护你的钱安全的最好地方是你的论文,因为你是唯一愿意打开它的人他错了! 也许你正在读一个在线版本...首先,我要感谢我的论文委员会的成员。我相信读一个完整的博士学位。 这不是一个容易的任务,我想为此感谢你。我很自豪能把这部作品呈现给你,我希望你会发现它令人理解和兴奋。我想感谢我的顾问,Pr.塞巴斯蒂安·莫瑟和Pr.米歇尔·里维尔,感谢他们的参与。感谢顾问成为博士学位的一部分这篇论文可能看起来很愚蠢,但我可以向你保证它不是。我有很多博士学位。学生们,来自不同的背景,有着不同的目标,再次感谢我的顾问们的善良,只是为了意识到我是多么幸运。 我并不意味着要成为一个棕色鼻子的人,但我认为很少能找到这样一个敬业的顾问,你可以信任,谁信任你回来。特别和额外的感谢塞巴斯蒂安坚定不移的支持,有时以令人惊讶的形状和形式出现。 你对博士学位的影响的反复警告没有让我放弃,我为这次冒险感到骄傲。谢谢你的电话,谢谢你给我的所有机会,谢谢你的信任,谢谢你的友好建议,谢谢你的床。这是一个惊人的经验(博士,不是沙发)。旅程的一部分是结束,我猜,这是一个什么样的旅程。直到几年后,我才意识到人的因素是一个巨大的问题。 我很幸运有一位伟大的导师,也是一个充满激情的团队的一员。我记得当我第一次听说我的顾问塞巴斯蒂安在他的博士学位期间做了什么。我还记得发现一个全新的宇宙是多么令人兴奋。在元级别工作的人第一次明白我的意思。 就像那些时候,当你把你脑海中遥远的东西联系起来,这些东西开始变得有意义,你发现了新的意义,感谢这种新的联系。谈到一个充满激情的团队,我想感谢所有的火花成员的欢迎。谢谢你,Mireille,谢谢你开放的思想,你的快乐和我们的互动,科学与否。谢谢你,菲利普,谢谢你不断提供巧克力和笑话,帮助我度过了艰难的时期。感谢Gerald和Franck在我们的咖啡休息时间对Swiss-Precision的友好支持。谢谢你,安妮-玛丽,谢谢我们在早上的早期谈话,它让我的日子开始了,经常改变我看待事物的方式。在此期间,博士我有助教的职位。 我想真诚地感谢塞巴斯蒂安、米雷耶、菲利普、吉勒姆、安妮-玛丽、米歇尔和埃里克。感谢您的信任和建议,我能够建立的东西,课程,辅导,项目,并从人和教师的角度学习了很多。谢谢你们所有人的善良,专业精神,花时间让我学习。 谢谢你给我的责任,也谢谢你没有给我的责任。由于研究是由会见新的人、合作、思想交流和哲学讨论组成的,我想感谢所有帮助我成为今天这个人的研究人员。谢谢你让-米歇尔丹尼尔。Gunter、Jörg、Xavier、Houari、Eugene和许多其他人为我们进行了精彩的讨论,这些讨论从暑期学校或会议期间的正式讨论开始,最终是争论谁是滑雪最快的人或赢得了棋盘游戏的最后一轮。最后,我想感谢我的家人。 非常感谢帕斯卡尔,我的妈妈,她支持我,不管怎样,不管付出什么代价,即使是在非常艰难的时候。显然,如果没有她前进的能量,我就不会是原来的我。感谢我的兄弟巴斯蒂安,他总是告诉我"一切都会好起来的",感谢我们在布沙尼埃山脉的休息,感谢你的支持,即使你不明白我为什么要做这一切感谢Coline,感谢您的周到服务,感谢您在撰写大量文章时在午夜准备咖啡,感谢您在我排练演讲时表现得像一个听众,感谢您尽最大努力理解"使用合成操作员发现基于容器的技术中的不良做法"的利弊,感谢您在所有这些方面所取得的平衡谢谢你在过去的9年半里分享的所有回忆,以及未来的一切。感谢我的朋友塞巴斯蒂安·P.Anais、Nabil、Hugo、Maxime和Franck理解"我有工作要做"不是借口,并感谢他们过去8年来的感谢Coline的家人,他们总是以令人惊讶的方式支持我 感谢马克西姆、让·巴蒂斯特、奥利维尔、蒂埃里、亚亚、埃尔韦、西尔维和其他人。我至少可以说,没有人有这样的法律家庭。感谢热烈的欢迎和一瓶葡萄酒和其他我们分享的东西,这也有助于这个博士学位。结束。最后,我想感谢阿尔弗雷德在我博士学位结束时对我的坚定支持本博士这篇论文是献给我的父亲让-路易斯的。“BounceJ-L.B.内容内容图表列表表列表1引言六xxii11.1背景问题。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...21.2贡献。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...31.3大纲。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...41.4出版物。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...52动机72.1超大规模系统。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...82.2关注的分离:分而治之... ... ... ... ... ... ... ... ... ... ... ... ...92.3示例:物联网中的组成。... ... ... ... ... ... ... ... ... ...102.3.1特定领域用例。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...112.3.2单独的域特定用例建模。. . . . . ...112.3.3匹配分布式上下文。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...122.3.4组合运算符的匹配要求。... . . . . . ...132.3.5通过合并FMS进行行为。... ... ... ... ... ... ... ... ... ... ... ...132.3.6问题和结论... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...162.4野外。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...162.4.1服务部署。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...172.4.2代码管理。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...172.4.3 Linux维护。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...172.4.4 Android自动优化。... ... ... ... ... ... ... ... ... ... ... ... ... ... ...182.4.5目录结构。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...182.5结论。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...193最新技术203.1引言。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..21. ... ... ...3.2模型变换。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...213.2.1总结。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...223.3模型级别的。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...233.3.1标准。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...233.2组成方法。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...243.3.3总结。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...263.4代码级别的。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...27六内容七3.4.1引言。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...... ... ... ... ...273.4.2标准。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...... ... ... ... ... ... ... ...273.4.3考虑的工具。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...... ...283.4.4摘要。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...... ... ... ... ... ... ...323.5结论334背景和挑战344.1导言354.2白框重写规则是不够的4.2.1使用重写规则优化自动机364.2.1.1订单相关问题。...............................................................................374.2.1.2非订单相关问题。..................................................................... 384.2.2具有重写系统的属性394.2.3软件开发人员使用白盒Ap的挑战-接近404.3黑盒重写规则414.3.1黑盒环境中的合成414.3.2经典合成运算符apply424.3.3并行合成运算符||......................................................................................434.4黑箱环境下的财产保险挑战4.4.1导言434.4.2挑战C.1-黑盒环境中的白盒属性4.4.3挑战C.2-领域独立性444.5结论455确保黑盒重写规则5.1导言485.2从黑盒规则到行动485.2.1Delta作为模型,反之亦然485.2.2表演模特之间的差异()495.2.3在给定一系列操作的模型上执行修补程序()。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...515.3基于行动的方法的组合运算符525.3.1与Apply52兼容5.3.2序列合成运算符525.3.3ISO合成运算符535.4从重写规则的理由到行动的理由5.4.1重叠三角洲时的语法冲突5.4.2作为后条件违反的语义冲突555.5评估跑步时的属性示例555.5.1检测不兼容的重写规则565.5.1.1重写系统的描述565.5.1.2范式转变565.5.1.3语法冲突565.5.1.4Overcame挑战575.5.2检测语义问题585.5.2.1重写系统的描述585.5.2.2范式转变585.5.2.3语法冲突58八、内容5.5.2.4语义冲突585.5.2.5Overcame挑战595.5.3域独立性615.6结论616在受控环境中编写黑盒重写函数 第63章6.1导言646.2Coccinelle和Linux内核用例646.2.1自动重写内核64的工具6.2.2语义补丁示例656.2.3作为黑盒的语义补丁666.3映射到我们的提案676.4语义补丁的重叠应用示例676.5确保Linux内核70中重写规则的组合6.5.1实践状态(应用)不提供保证706.5.2应用贡献(ISO操作员)706.5.3验证不存在语法冲突726.5.4Yielding以前沉默的语义冲突6.6克服挑战C1747在Wild75中编写黑盒重写函数7.1导言767.2SPOON、Paprika和Android使用案例76...........................................................7.2.1Powerr-应用程序中的消费实践-第76章7.2.2SPOON处理器示例777.2.3映射到我们的提案787.2.4SPOON处理器的重叠应用示 例 。797.2.5Energy反模式在A&D应用程序中的重叠817.2.5.1重叠反模式检测817.2.5.2混凝土示例837.2.6结论857.3Docker867.3.1快速优化的服务交付867.3.1.1上下文描述867.3.1.2重叠指南示例877.3.1.3指南示例877.3.1.4上下文示例887.3.2映射到我们的提案897.3.3验证:问题和重叠897.3.3.1数据集897.3.3.2违反指南(问题)907.3.3.3重叠917.3.4结论927.4克服C2928结论和展望948.1结论95内容IX8.2前景968.2.1让Git合并更智能968.2.1.1上下文968.2.1.2建议方法968.2.1.3早期结果978.2.2特征化黑盒合成运算符978.2.2.1上下文978.2.2.2建议方法978.2.3构建适当高效的机器学习管道988.2.3.1上下文988.2.3.2建议方法998.2.4利用代数性质优化等长合成99号决议8.2.4.1上下文998.2.4.2100项挑战8.2.4.3建议方法100A 官方码头工人指南101B收集Dockerfiles103参考书目105*∩图列表2.1UC112领域专家设计的WSF XP 12.2UC212领域专家设计的HSM XP 22.3FMCUC1(左)和FMCUC2(右)遵循操作要求和合成操作员的期望132.4WSFR代表WSF(L1)和WSF(L2)2.5WSFM表示WSFUC1和WSFUC2的最小化交集154.1初始项t,合并过程的自动机结果。............................................................................ 364.2规则R0合并等价状态示例374.3规则R2示例,删除挂起状态374.4R1,R037的替代版本4.5t21=(R1(R2(t)384.6t12=(R2(R1(t)384.7规则R3将循环边ω'从S2重定向到S0384.8将规则改写为黑盒414.9黑盒规则的Daisy链(共享输入-I和输出-O)(R)424.10 合并操作的规则并行组合435.1自动机(左)和动作序列(右)之间的等价性5.2黑匣子重写规则R(中间)、输入I(左)、输出O(右)的应用示例495.3从规则R到动作序列A(差异A的元素部分以O着色)5.451的应用5.5与Apply52兼容5.6将我们的建议与实践状态seq运算符52进行5.7使用iso运算符的转换的孤立应用示例5.8考虑(t,R0,R3)的合成的两个序列系统575.9初始期限T595.10t2=R2(t)595.11t1=R1(t)595.12t21=R1(R2(t))595.13t12=R2(R1(t))595.14 ISO在t、R1和R2中的应用5.15 T出605.16xy1和xy2在tout60中的应用x图XI列表6.1将35个语义修补程序应用于19个版本的Linux内核(执行时间)6.2Linux用例72的实验过程6.3我们的建议书的执行时间(分钟)(线路为平均时间)737.1Spoon:将处理器应用于Java代码807.2识别22个Android应用程序中反重叠模式的对7.3表示反模式搭配837.4重写RunnerUp Android应用程序(全文)847.5违反既定准则的码头文件数量917.6违反既定准则的指令编号91表列表2.1FMSUC1和FMSUC2表。142.2通过等价群优化建立的等价状态。... ...153.126级模型合成方法综述3.2代码级别32的合成方法摘要6.1识别CoCC上的语义冲突将是一个示例。他们的元素顺便说一句,用户69不知道6.2给定行上语义补丁的对等交互表特定代码文件。....................................................................................................737.1在勺子上识别语义冲突示例817.2Dockerfile包含违反对等准则的准则927.3包含违反对等体指南的说明(即真正的冲突..................................................................92十二第一章简介"集成两个软件系统通常更像是执行心脏移植,而不是将乐高积木粘在一起。这是可以做到的--如果有足够的近距离比赛,而且做比赛的人有足够的技能--但这些碎片不会微不足道地组合在一起失败可能不会立即明显;可能需要一段时间才能看到拒绝的迹象。约翰·D.库克[1]内容1.1背景问题21.2贡献31.3大纲41.4出版物512第一章. 引言1.1背景问题软件系统已经变得如此庞大,以至于必须一点一点地开发它们。 我们根据不同的实践对软件系统进行分解:给出已知的指南,考虑最终系统的功能,或者给出每个部分开发的技术。这种分解导致了一个(重新)合成的后续步骤,这不是微不足道的。不良的重组可能导致结构不良、效率低下或不合规的系统。模型驱动的开发旨在通过形式化和保证人工制品上的功能和非功能属性以及它们的(重新)组合来简化这样的软件系统的构建。在过去的几十年里,我们看到了模型驱动方法的发展,如模型组合和转换。这些方法允许对这些组合进行推理,并允许安全地组合它们,以确保对同一工件应用许多变换将以良好的形式和声音系统结束。 这些方法具有很强的形式主义背景,并用于(元)建模(例如使用图形重写技术的元模型转换。软件工程是工程学在软件开发中的系统应用。即使它的定义不是唯一的和形式化的,它也意味着,像任何工程实践一样,科学和技术知识、方法和经验在软件设计、实现、测试和文档中的系统应用。因此,这篇软件工程论文分析了在工业环境中使用合成的实际情况。软件工程涉及到了解该领域正在发生的事情,其主要目的是帮助从业者和实际开发人员更有效地构建更好的软件系统。因此,本文以软件工程为重点,分析了该领域的实践,并将其与最先进的假设和方法进行了比较。很明显,在最先进的方法将工件视为白盒与合成本身一起合成的地方,实践者在使用软件合成时面临着黑盒机制。他们的白盒方法允许验证诸如终止或冲突分析之类的属性,在工程上下文中用于确保自动化转换最终将终止,或者识别实例的不兼容转换。不幸的是,这些特性都不能在黑匣子工业工具的背景下进行评估。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功