基于模型的软件开发方法综述

文章目录

  • 前言
  • 1 基于模型的软件开发概述
  • 2模型驱动架构
    • 2.1 模型驱动的软件体系结构
    • 2.2 模型驱动的软件开发步骤
  • 3 建模语言
    • 3.1UML
    • 3.2 SysML
    • 3.3 AADL
  • 4 软件建模工具
    • 4.1 Rhapsody
    • 4.2 SCADE
    • 4.3 Matlab
      • 4.3.1 Matlab Coder
      • 4.3.2 Simulink Coder
    • 4.4 其他工具
      • 4.4.1 Enterprise Architect
      • 4.4.2 MagicDraw
      • 4.4.3 RT-CASE
      • 4.4.4 STUDIO
      • 4.4.5 Capella
    • 4.5 工具比较
  • 5 基于模型的软件工程的实施方法
    • 5.1 软件建模工具选择方案
    • 5.2 非图形界面的嵌入式软件开发的建模方案
    • 5.3 图形化界面的嵌入式软件开发的建模方案
      • 5.3.1 基于SCADE工具的软件开发
      • 5.3.2 基于Rhapsody+Simulink+QT/VC的多软件协同开发
  • 6 总结


前言

本文详细介绍了基于模型的软件开发方法的概念、模型驱动的体系结构和开发步骤、建模语言、建模工具,对各种建模工具进行了比较、分析;本文从软件算法复杂度和架构复杂度两个维度来选择建模工具,最后针对非图形界面的嵌入式软件和图形化界面的嵌入式软件,分别给出软件建模方案。

1 基于模型的软件开发概述

基于模型的软件开发(MBSD:Mode Based Software Development)、模型驱动的软件开发(MDSD: Mode Driven Software Development)、基于模型的软件工程(MBSE: Model Based Software Engineering)、模型驱动的软件工程(MDSE: Model Driven Software Engineering)是软件工程发展的一个重要方向,是一种以建模和模型转换为主要途径的软件开发方法。
模型是实际系统或过程的代表或描述,它是实际系统一部分属性的抽象或模仿,而不是全部属性的复制,模型的实质是在一组简化的假设条件下,描述一个实体活动的最本质的属性。模型用于描述项目相关人员对复杂系统的理解和认知,是项目相关人员之间交流的基础,是系统开发的依据。
基于模型的软件开发方法是指建立一个完整的软件系统模型,依据模型验证软件系统的需求及设计方案,产生和调试软件程序代码的方法。模型的可视化意味着可视化软件开发。
模型驱动工程的优势在于,使用更接近于人的理解和认识的模型,尤其是可视化模型,有利于设计人员将注意力集中在和业务逻辑相关的信息上,而不用过早地考虑与平台相关的实现细节。在MBSD中模型不再是一种设计辅助工具,而是实际开发过程中的产品,并随着开发过程的迭代不断改变。模型与代码地位同样重要,模型与代码可同步化。
基于模型的软件开发流程将发生重大转变,如图1所示,省去了编码和单元测试,在代码之前及完成绝大部分的设计验证。
图1 开发流程比较

2模型驱动架构

模型驱动架构(MDA:Mode Driven Architecture)是模型驱动软件工程(MBSE: Model Based Software Engineering)的一个具体和部分的实现途径。
模型驱动架构(MDA)是由对象管理组织(OMG)提出的一种新的软件体系结构开发的框架。模型驱动架构不仅把建模语言用作是一种设计语言,还用作是一种编程语言,并让模型在软件开发中扮演一种极其重要的角色,一切都是模型就是模型驱动架构的基本思想。然后通过架构性的分离来使软件的可重用性、可维护性、互操作性、可编制性以及轻便性实现,并将软件的开发效率提高。

2.1 模型驱动的软件体系结构

在模型驱动架构中,模型成了软件开发的主干及核心,不再只是一种辅助沟通的工具和描绘系统,而且从不同的视角可以用不同的模型对一个系统进行描述。因此,MDA 中将这些模型分为了以下三个结构。
1)CIM(Computation Independent Model计算无关模型)
通常所讲的“业务模型”就是指计算机无关模型,这个层次的模型就只是对控制过程、步骤进行详细的表述,在如何用软件来实现控制过程、步骤方面毫无涉及。
2)PIM(Platform Independent Model平台无关模型)
这一层次的模型将如何用软件来实现控制过程、步骤方面进行了详细的表述,并将一些与基础功能毫无关系的技术细节进行了去除,所以用于构造平台无关模型的语言不仅要抽象性较高,与具体的细节能够互相脱离,必须还要能对系统的动态行为与静态结构进行精准的建模。
UML是与具体实现平台无关的建模语言,它利用图形符号标示系统中的对象和关系,在MDA中能精确、全面表达目标系统的静态结构和动态行为。
3)PSM(Platform Specific Model平台相关模型)
这一层次的模型是与代码一级最贴近的,能够将特定技术对软件系统功能具体的实现进行详细的描述,所以,用于构造平台相关模型的语言不仅必须要有一定的扩展性,还必须要具备足够的精确性,这样才能使与各种实现技术紧密挂钩的要求得到有效的满足。

2.2 模型驱动的软件开发步骤

1)分析、确定软件的业务需求,建立计算无关模型(CIM);
2)利用模型驱动软件开发的专用建模工具将业务模型(即PIM )的图形画出来,并注意不管使用的目标平台是什么,画出来的UML 模型都是相同的,因为这个UML 模型是核心的业务组件和服务的代表,与任何具体实现它的开发技术都毫无关系;
3)建立平台相关模型(PSM)画出来,并注意在这个阶段的模型图中,不仅指定与某种技术相关,而且还有某些特定技术的元素包含在内;
4)最后利用模型驱动的软件开发工具进行应用程序代码的生成工作,并对UML无法进行建模的细节开展填补工作,手动编写代码。
目前,可通过软件工具完成PIM到PSM之间,以及模型和代码之间的自动转换。

3 建模语言

3.1UML

统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML使用面向对象设计的建模工具,但独立于任何具体程序设计语言。UML可以从不同角度描述人们所观察到的软件视图,也可以描述在不同开发阶段中的软件的形态。UML可以建立需求模型、逻辑模型、设计模型和实现模型等。
UML采用一组图形符号来描述软件模型,这些图形符号具有简单、直观和规范的特点,开发人员学习和掌握起来比较简单。
UML为软件系统建立可视化模型。UML符号具有良好的语义,不会引起歧义;基于UML的可视化模型,使系统结构直观、易于理解;使用UML进行软件系统的模型不但有利于系统开发人员和系统用户的交流,还有利于系统维护。有了正确的模型就可以实现正确的系统设计,保证用户的要求得到满足,系统能在需求改变时站得住脚。对于一个软件系统,模型就是开发人员为系统设计的一组视图。这组视图不仅描述了用户需要的功能,还描述了怎样去实现这些功能。
UML为软件系统建立构件。UML不是面向对象的编程语言,但它的模型可以直接对应到各种各样的编程语言。例如,它可以使用代码生成器工具将UML模型转换为多种程序设计语言代码,如可生成C++,JAVA, Visual basic等语言的代码。
UML为软件系统建立文档。UML可以为系统的体系结构及其所有细节建立文档。不同的UML模型图可以作为项目不同阶段的软件开发文档。

3.2 SysML

对象管理组织OMG 决定在对UML2.0 的子集进行重用和扩展的基础上,提出一种新的系统建模语言——SysML(Systems Modeling Language),作为系统工程的标准建模语言。和UML用来统一软件工程中使用的建模语言一样,SysML的目的是统一系统工程中使用的建模语言。它可以支持系统工程应用的多领域系统包含硬件、软件、信息等系统的需求分析、系统设计、功能描述、系统验证等。

3.3 AADL

AADL(Architecture Analysis & Design Language,架构分析和设计语言)主要用于对嵌入式实时系统的体系结构进行分析何设计,是一个支持MBE(Model Based Engineering )的建模基础架构。

4 软件建模工具

模型驱动的软件开发方法为软件的开发和设计提供了新的思路,通过围绕模型进行软件的开发,实现了问题的统一描述,通过开发工具的使用,可以实现模型的自动转换,代码以及文档的同步生成,大大提高了软件的开发效率;下面给出了几种较为成熟的模型驱动的开发工具和平台。

4.1 Rhapsody

IBM Rational Rhapsody是遵循UML/SysML的模型驱动的软件开发平台。Rational Rhapsody为系统工程师及软件开发者提供了可视化开发环境,以支持嵌入式和实时系统软件的设计开发。
通过Rhapsody的模型驱动体系结构可以快速地将与平台无关的应用模型部署到实时嵌入式操作系统。Rhapsody适应迭代设计与开发,软件开发可以在宿主机环境持续的执行和验证,继而生成嵌入式应用,下载到目标机进行测试。Rational Rhapsody 产品家族提供了多个版本来帮助系统工程师及嵌入式软件开发人员分析、设计、开发、测试和交付嵌入式及实时系统与软件。
对于系统工程师,Rational Rhapsody Architect for Systems Engineers基本版带来了采用SysML/UML的需求分析管理功能。Rational Rhapsody Designer for Systems Engineers基本版还包括了设计验证模拟功能。
对于软件开发人员,Rational Rhapsody Architect for Software版提供了逆向工程和支持 C、C++、Java 和 C# 的代码框架生成功能。Rational Rhapsody Developer版还额外提供了可视化开发环境,可以支持目标嵌入式实时操作系统(RTOS)的 C、C++、Java 和 Ada 行为代码生成。

4.2 SCADE

SCADE是法国爱斯特尔技术有限公司的主要产品系列。SCADE是高安全性应用开发环境(Safety Critical Application Development Environment)的简称,用于开发达到航空业 DO-178B 标准的嵌入式软件。产品涵盖了高安全性嵌入式系统开发的各个内容和阶段。其主要产品有:
1)SCADE Suite:业内领先的面向高安全性的集成软件开发环境,通过采用scade语言和统一的形式化语义,可实现基于模型的设计、仿真、验证、认证级代码生成以及与其他开发工具和平台的交互。SCADE Suite代码生成器可以自动生成C代码和 Ada代码。SCADE Suite采用图形建模实现系统概要设计和详细设计后就能直接生成高安全性嵌入式代码,并且由于 SCADE 的代码生成工具 KCG经过认证,满足航空业 DO-178B 的 A 级标准,能够确保自动生成代码与模型设计完全一致,不会引入任何错误,可以省略所生成代码的单元测试 ,保证软件需求和代码执行的高度同步,具有开发周期短,安全性高,交互界面友好等优点。
2)SCADE Display:是一套灵活的面向高安全性图形显示和HMIs的设计与开发环境。是新一代图形软件开发平台,基于该平台可完成原型生成、设计仿真、验证和认证级代码生成等工作,可与 SCADE Suite 的联合仿真。SCADE Display能够帮助工程师进行嵌入式图形,显示和人机界面的开发和认证代码生成,用于高安全要求的显示系统,如驾驶舱,抬头显示,头盔,飞行管理系统,交通和防撞系统,以及车载导航系统和数字地图,符合最严格的质量标准和目标。
3)SCADE LifeCycle:主要功能包括需求和可追溯性管理工具、符合DO-178B标准的认证计划模板以及自动化文档生成器。
4)SCADE System:基于SysML和Eclipse 标准,通过使用SCADE System来联接 SCADE Suite、SCADE Display和SCADE LifeCycle,系统工程师和软件工程师可以在同一构架下工作,从而避免重复劳动以及系统结构和软件行为定义之间的偏差。

4.3 Matlab

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理等领域。
Simulink是MATLAB中的一种可视化仿真工具, 是一种基于MATLAB的框图设计、建模和仿真环境,借助 Simulink能够将模型组合成一个系统级仿真,即使模型不是在 Simulink 中构建;能与Ansiy(有限元分析软件)、Saber、Rhapsody等多种软件进行协同仿真,具有多学科协同设计、仿真的优势。
基于模型的软件设计中,代码生成主要用到MATLAB Coder和Simulink Coder、Embedded Coder这三个工具。
MATLAB Coder用于从MATLAB的m函数生成 ANSI C/C++ 代码,同时也是使用Simulink Coder的一个前置条件。Simulink Coder是从Simulink模型来生成ANSI C/C++代码。Embedded Coder 则允许更进一步的针对MATLAB Coder或者Simulink Coder 生成的代码进行优化和定制,从而生成可以应用到嵌入式产品中去的产品级代码。

4.3.1 Matlab Coder

MATLAB Coder可从 MATLAB代码生成 C 和 C++ 代码,适用于从桌面系统到嵌入式硬件等多种硬件平台。支持大多数MATLAB 代码和各种工具箱。您可以将生成的代码作为源代码、静态库或动态库集成到您的项目。生成的代码可读且可移植。您可以合并现有的 C 代码和库,以保证算法关键部分的高效能或高可信代码的重用。您还可以将生成的代码打包为 MEX 函数,用于在 MATLAB 环境中执行验证或加速。
Embedded Coder增强了 MATLAB Coder 在生产方面的用途,支持代码自定义、目标特定的优化、代码可追溯性以及软件在环 (SIL) 和处理器在环 (PIL) 验证。
MATLAB Coder 利用范围广泛的 MATLAB 语言特性来生成代码,设计工程师使用这些语言特性来开发作为大型系统组件的算法。这包括来自 MATLAB 以及配套工具箱 的超过 1900 个运算符和函数。

4.3.2 Simulink Coder

Simulink Coder(以前称为 Real-Time Workshop)可从 Simulink模型、Stateflow图和 MATLAB函数生成并执行 C 和 C++ 代码。生成的源代码可用于实时和非实时应用,包括仿真加速、快速原型建立和硬件在环测试。
1)集成现有代码:可以使用 C Caller 模块或Legacy Code Tool合并手写的现有 C/C++ 代码,以便与生成的代码进行仿真和集成。
2)实时仿真与测试:使用硬件在环仿真和快速原型设计,在各种实时机器(包括使用 Simulink Real-Time的Speedgoat 目标计算机硬件)上测试嵌入式系统设计及建立原型。
3)部署到嵌入式目标:使用 I/O 模块库配置和访问外围设备及通信接口,在支持的嵌入式目标上运行模型中的代码。Simulink Coder支持众多厂家的硬件接口,包括TI的C2000 系统芯片。
4)调试参数和记录数据:使用 Simulink Coder,当代码在外部设备执行的同时,可以通过 XCP、TCP/IP 和串行 (RS-232) 通信从模型层传输信号,可以通过使用控制板模块中的示波器、仪表板和实时流数据图等查看数据和调试参数,以访问和优化您在Simulink中的设计。

4.4 其他工具

4.4.1 Enterprise Architect

Enterprise Architect 是Sparx Systems 公司的旗舰产品,它覆盖了系统开发的整个周期,除了开发类模型之外,还包括事务进程分析,使用案例需求,动态模型,组件和布局,系统管理,非功能需求,用户界面设计,测试和维护等。EA为用户提供一个高性能、直观的工作界面,联合UML 2.0最新规范,为桌面电脑工作人员、开发和应用团队打造先进的软件建模方案。EA 支持文档生成及部分代码生成。

4.4.2 MagicDraw

MagicDraw UML是一款UML建模和面向对象系统设计分析工具。
1)仿真分析功能:支持模型调试和执行动画环境;支持用户交互界面建模和执行;内嵌求解器,支持与专业数学分析工具集成(Matlab/Simulink、Mathmatics、Maple、FMU 等)。
2)设计优化功能:提供SysML 参数模型和多学科分析模型接口,支持需求验证、权衡对比分析、设计空间探索、自动设计优化等功能。
3)自动代码生成功能:支持C/C++、Java、C# 语言的部分代码生成,能够从系统行为模型自动生成可执行代码,支持代码的仿真及目标环境执行功能。
4)自动文档生成功能

4.4.3 RT-CASE

RTCASE实时系统结构分析/设计工具是专业性软件工程工具,完全支持实时系统软件的分析和设计,支持UML建模和代码框架生成。

4.4.4 STUDIO

STUDIO是欧洲Ellidiss公司开发的可视化建模工具,使用自上而下的建模方法以缩小模型与代码之间的差距,可以从AADL代码生成Ada代码和C++代码。

4.4.5 Capella

Capella是目前在欧洲航空航天界广泛应用的一种开源MBSE工具,其目的在于提供一种针对高安全性要求的复杂系统进行开发建模的图形化环境。

4.5 工具比较

国内常用的几个商用MBSE软件功能对比如表1所示。

从上面几个常用的MBSE工具来看,针对嵌入软件设计,且只有SCADE Display支持图形界面软件的开发。

5 基于模型的软件工程的实施方法

5.1 软件建模工具选择方案

复杂软件可从两个维度定义:1)算法复杂度;2)架构复杂度;软件建模方法、建模工具选择可以从这两个维度确定。
1)算法复杂度低、架构复杂度低:手工编写软件;
2)算法复杂度高、架构复杂度低:采用Simulink建模,便于算法设计仿真,如伺服驱动器软件;
3)算法复杂度低、架构复杂度高:采用UML建模,如火控软件、车控软件、综控软件;
4)算法复杂度高、架构复杂度高:采用UML与Simulink联合建模,如飞控计算机软件;
UML是一种通用的建模语言,缺少对嵌入式领域的强力支持,因此采用专门的仿真软件可以弥补UML动态行为建模方面的不足。Simulink就是一款功能强大的仿真工具,支持在交互式、图形化环境中对动态系统进行仿真和分析。更重要的是,针对嵌入式的领域特点,Simulink提供了许多具有特殊功能的工具包,以方便软件开发人员使用。

5.2 非图形界面的嵌入式软件开发的建模方案

Rhapsody 是开发反应式系统方面市场领先的环境,而 Simulink 是作基于模型的设计,开发动态控制和信号处理系统方面的组件。随着技术的发展,现在Rhapsody/ Simulink这两个工具均相互支持协同仿真,这两个工具的集成使开发者能够通过易于应用的建模环境来开发健壮的高质量的系统。
因此对于复杂系统,采用Rhapsody、Simulink这两个工具协同建模、设计、仿真、代码生成,使用Rhapsody完成软件的架构设计,使用Simulink完成软件中的算法设计,最后进行协同仿真、模型验证。

5.3 图形化界面的嵌入式软件开发的建模方案

5.3.1 基于SCADE工具的软件开发

使用SCADE一套软件(含SCADE Suite和SCADE Display)即可完成图形化软件的开发,代码生成率高,可靠性好。

5.3.2 基于Rhapsody+Simulink+QT/VC的多软件协同开发

采用Rhapsody+Simulink+QT/VC三种类型软件工具协同使用,完成图形化界面的软件建模和开发。此方法中,软件设计采用MVC设计模型。MVC全名是Model View Controller,是模型(model)、视图(view)、控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分,采用UML/Simulink建模,使用Rhapsody/Simulink工具生成代码。View(视图)是应用程序中处理数据显示的部分,采用QT、VC等专业软件设计界面,这些工具支持很多的控件,并且有很多第三方控件库支持,采用拖、拽方式设计界面,能自动生成绝大多数代码。Controller(控制器)是应用程序中处理用户交互的部分;一般程序员手动编写代码。

6 总结

随着时代的进步,基于模型的软件开发模式成为软件系统创新的新路径,为软件开发率的提高,软件的可移植性增强以及文档编制的便利性等方面都进行了创新。
目前基于模型的软件开发方法还是严重依赖的工具的一种开发方式,商用MBSE设计工具各有优缺点,单个MBES工具不能完全独立完成一个复杂软件的开发,而多个MBES工具协同建模、开发、代码生成,必然存在接口、代码风格不统一等多种问题,仍需要程序花费大量时间进行手工编码;而且有些工具不能完全确保生成的代码的完全正确性,还需要进行软件测试以及手工更改部分代码。虽然存在一些不足,但基于模型的软件开发模式在嵌入式软件设计、复杂软件的部分功能设计、软件原型设计中应用广泛。

参考文献
[1]赵晓峰. 模型驱动的软件开发模式研究[J]. 信息技术与信息化. 2015(7)
[2]郭鹏,李亚辉等. 面向嵌入式软件开发的UML到Simulink模型转化方法[J]. 计算机科学, 2016(2):192–198
[3]傅亮. 基于 SCADE 模型驱动的软件集成设计[J]. 航空电子技术. 2013(09):26–30
[4]王西超等. 基于Rhapsody的飞控系统虚拟样机设计环境[J]. 振动、测试与诊断. 2013(2)
[5]周彰毅等. 基于SCADE的航空发动机FADEC软件开发[J]. 测控技术. 2018(1)
[6]UML百度百科

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/57932.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(附源码)spring boot流浪动物救助系统 毕业设计180920

目 录 摘要 1 1 绪论 1 1.1 研究背景 1 1.2国内外研究现状 1 1.3论文结构与章节安排 1 2 流浪动物救助系统系统分析 3 2.1 可行性分析 3 2.2 系统流程分析 3 2.2.1 数据流程 3 3.3.2 业务流程 4 2.3 系统功能分析 4 2.3.1 功能性分析 4 2.3.2 非功能性分析 5 2.4 系统用例分析 …

大气污染扩散模型Calpuff教程

详情点击链接:大气污染扩散模型Calpuff教程一,Calpuff 1.Calpuff模型 2、Calpuff模型基础 3、Calpuff模型下载安装 1)Calpro系统安装 2)安装环境要求 3)需安装的辅助软件二,数据预处理 1.网格设置 …

北大核心期刊2012《科技通报》杂志简介《科技通报》论文范文

北大核心期刊2012《科技通报》杂志简介《科技通报》论文范文 转载▼ 标签: 刘兴 柳林 科技通报 中文核心期刊 动态规划 文化 刊名: 科技通报 Bulletin of Science and Technology 主办: 浙江省科学技术协会 周期&#x…

【论文阅读】社交网络识别影响力最大节点方法综述-05

Vital nodes identification in complex networks 识别单个重要节点的方法基于结构信息一、结构中心性(Structural centralities)1.度中心性(基于邻域的中心性)2.四阶邻居信息(基于邻域的中心性)3.ClusterR…

【论文阅读】基于整合项目反应理论(IRT)的深度神经网络的解析自动作文评分

摘要 作文考试一直以来作为一种衡量应试者的更高等级的能力的方式吸引大家的注意,但是目前在对他们进行评分评定等级的时候有两个主要的缺陷,一是人力成本昂贵,二是存在公平性的问题。作为一种克服这些困难的方式,自动作文评分&a…

JSP基于WEB网上论坛设计与实现(源代码+论文+开题报告+答辩PPT+外文翻译)

cc学院 毕业设计(论文)开题报告 题 目: 基于JSP的学生学籍管理系统 学 科 部: 信工学科部 专 业: 计算机科学与技术 班 级: 学 号: 姓 名: 指导教师: 填表日期&…

【文本生成】必读论文合集推荐 丨剑桥大学等提出全新的 MAGIC 框架,得到明显优于弱监督模型的文本生成质量

文本生成是自然语言处理中一个重要的研究领域,具有广阔的应用前景。国内外已有如Automated Insights、Narrative Science以及“小南”机器人和“小明”机器人等文本生成系统投入使用。这些系统根据格式化数据或自然语言文本生成新闻、财报或者其他解释性文本。 AMin…

百篇论文纵览大型语言模型最新研究进展

© 作者|王晓磊 机构|中国人民大学 方向 | 对话式信息获取 来自 | RUC AI Box 进NLP群—>加入NLP交流群(备注nips/emnlp/nlpcc进入对应投稿群) 本文整理了2022年以来发表在顶级会议上的大语言模型相关论文。 导读 去年底,OpenA…

#论文阅读# MORAN

论文地址:https://arxiv.org/pdf/1901.03003.pdf 代码地址:MORANv2-pytorch版本 1 abstract 不规则文本识别由于有着各种各样的形状,因此仍有较大的困难,本文提出MORAN:包含一个多目标蒸馏网络(multi-obj…

论文阅读_MAE

论文信息 name_en: Masked Autoencoders Are Scalable Vision Learners name_ch: 带遮蔽的自编码器是大规模的视觉学习者 paper_addr: https://ieeexplore.ieee.org/document/9879206/ doi: 10.1109/CVPR52688.2022.01553 date_read: 2023-04-08 date_publish: 2022-06-01 tag…

eval有时候也可以用,而且有奇效

ChatGPT取代程序员还是给程序员加Buff? 这两周,AI新闻一个接着一个,3月23日,Google开放了内测已久的AI对话服务Bard,Google强调,这是一款定位为用户提供创意之源的产品,可生成写作草稿或生活中…

chatgpt赋能python:Python数据散点图:用于数据可视化的强大工具

Python数据散点图:用于数据可视化的强大工具 数据可视化是将数据转化为图表或图形的过程,以使人们更容易理解和解释数据。散点图是一个强大的数据可视化工具,可以使用Python来制作。 什么是散点图 散点图是一种在二维平面上以点的形式展示…

chatgpt赋能python:PythonU盘:如何使用Python为U盘增加更多功能

Python U盘:如何使用Python为U盘增加更多功能 Python已经成为了世界上使用最广泛和最流行的编程语言之一。它具有易于上手,简洁明了的语法,以及强大的库和工具生态系统,使得Python在开发各种不同类型的应用程序和系统时非常受欢迎…

缓存那些事

作者:熊明辉,美团点评酒旅事业群酒店住宿研发团队B端商家业务平台负责人,主导构建商家业务平台系统,支撑美团点评酒店住宿业务的飞速发展需求。曾任职于联想集团、百度。 责编:钱曙光,关注架构和算法领域&a…

《程序员》3月精彩内容:大数据技术辨析与深度实践

随着技术迭代的不断加速,大数据极大改变了行业领域对信息流动的限制。本期封面报道聚焦领域内热门技术与应用实践,带领大家深度解析大数据技术难点和发展趋势。厉兵秣马今点将,群雄逐鹿正当时——本期精彩不容错过。 探讨数据时代构建高可用…

关于缓存

作者:熊明辉,美团点评酒旅事业群酒店住宿研发团队B端商家业务平台负责人,主导构建商家业务平台系统,支撑美团点评酒店住宿业务的飞速发展需求。曾任职于联想集团、百度。 责编:钱曙光,关注架构和算法领域&…

旅游推荐系统的演进

作者:郑刚,美团点评高级技术专家。2010年毕业于中科院计算所,2011年加入美团,参与美团早期数据平台搭建,先后负责平台、酒旅数据仓库和数据产品建设,目前在酒旅事业群数据研发中心,重点负责酒店…

逻辑学 导论1

2010 中山大学大一新生的导论课,熊明辉视频46节每节22分钟左右,以前居然没看过,先看前6章 在中国大学MOOC上有 李静 的课程,不太一样 大学生和中学生最主要的区别是什么?就是学习要主动。 第一章 引论 4个问题 逻辑学…

大连工业大学计算机科学与技术在哪个学院,大连工业大学信息科学与工程学院到计算机与软件工程学院交流...

1月11日,大连工业大学信息科学与工程学院副院长于晓强一行到计算机与软件工程学院调研。计算机与软件工程学院院长何明星、副院长杜亚军及学院各系、办公室相关老师参加了此次交流会。双方在6A519进行了两个多小时的热烈研讨与交流。 何明星代表学院向到访的于晓强一…

ChatGPT刷力扣面试题01.01:判定字符是否唯一

Java解法: 方法一:我们可以使用一个HashSet来存储已经遍历过的字符,如果遍历到的字符已经存在于HashSet中,则说明字符串中有重复字符,返回false;否则,将字符加入HashSet中。最后,如果…