0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

增量式软件现代化可最大限度地降低风险,降低成本

星星科技指导员 来源:嵌入式计算设计 作者:DR. KEVIN NILSEN 2022-11-08 10:59 次阅读

实际上,软件现代化包括用更好的替换坏的渐进过程。选择专注于软件可移植性而不是条件编译是现代化不可或缺的一部分。

考虑与部署平台现代化相关的工作。假设最初在Windows上使用C++语言开发的应用程序现在需要集成到运行专有操作系统ARM处理器的现代智能手机中。移植活动需要标识并替换 Microsoft 基础类上的所有依赖项。它还必须分析和解决对Microsoft编译器和Microsoft Windows实现的底层线程调度模型的所有依赖关系。虽然其中一些移植问题是由手机供应商的编译器和链接器输出的诊断消息识别的,但 Microsoft 和智能手机编译器的代码生成方法之间的细微差异只能通过对各自技术进行广泛的测试和/或仔细审查和分析来检测。同样,Microsoft 和智能手机操作系统对线程调度队列、互斥锁和优先级反转避免策略的处理之间的差异必须取决于对各自操作系统和应用程序源代码以及任何可用应用程序设计文档的广泛测试和/或仔细审查和分析。

请注意,通过独立开发的可重用软件组件的模块化组合来构建新应用程序的能力取决于这些组件的可移植性。因此,实现软件可移植性对于开发新系统和维护现有系统至关重要。

条件编译增加了复杂性

对于典型的C++移植工作,必须更改以支持新平台的代码量相对较小,通常不到总代码的 10%。找出必须更改的 10% 的线路是任何移植工作的最大障碍之一。随着各种移植障碍的识别和解决,尽职尽责的软件工程师通过插入有条件编译的代码块并创建文档来帮助阐明将此代码移植到另一个平台(如 Linux、INTEGRITY 或 VxWorks)可能需要的额外工作,从而使应用程序现代化。当然,不能保证从Windows到智能手机的端口可以识别到另一个操作系统或处理器的后续端口可能出现的所有问题。但是,从第一个端口中吸取的经验教训为其他端口提供了宝贵的指导。

软件现代化的一个相互冲突的目标是减少纠正错误、解决性能缺陷或随着系统需求的发展添加增量新功能所需的工作量。通过插入条件编译指令和每个新端口要考虑的问题的文档列表来使应用程序变得可移植,这很难发展。如果对原始应用程序的更改影响有条件编译的代码,则必须将更改传播到表示对每个相关平台的支持的所有有条件编译的代码块中。此外,每个增量更改都必须使用合法条件编译选项的每个组合进行测试。这大大增加了与常见软件维护活动相关的工作量。

可移植语言避免条件编译

使用条件编译指令的一种流行的替代方法是使用更可移植的编程语言实现软件。Java通常是首选,许多人使用短语“软件现代化”来描述将Ada,C或C++软件迁移到Java语言的过程。Java,包括某些实时版本的Java,解决了Java运行时环境(所谓的虚拟机)本身的可移植性问题,而不是要求应用程序中的条件编译指令。Java 语言甚至提供了用于解决多处理问题的特殊控制结构,包括用于识别互斥代码区域的语法以及各个处理器缓存之间的一致性。通过抽象这些可移植性注意事项,Java 语言在典型的软件维护活动中节省了大量成本。一个开发团队报告说,与 C 语言相比,在一个项目中节省了 20 倍的成本,该项目包括组装独立开发的现成软件组件以部署到新的嵌入式平台上。

在一次整体式工作中将整个遗留应用程序重写为 Java 语言在经济上很少可行。当今的典型应用程序由数十万或数百万行代码组成;因此,以增量步骤对旧版应用程序进行现代化改造更为常见。随着每个功能的添加,新功能都在Java中实现,并固定在现有的遗留系统上。如果维护活动显示遗留应用程序的特定方面难以移植或发展,则应用程序的一部分将替换为更现代的 Java 实现。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 智能手机
    +关注

    关注

    66

    文章

    18429

    浏览量

    179811
  • 操作系统
    +关注

    关注

    37

    文章

    6734

    浏览量

    123184
收藏 人收藏

    评论

    相关推荐

    中国AI企业创新降低成本打造竞争力模型

    在中国,面对美国实施的芯片限制以及相较于西方企业更为有限的预算,人工智能(AI)公司正积极寻求降低成本的方法,以开发出具有市场竞争力的模型。初创公司如01.ai(零一万物)和DeepSeek(深度求索)等,通过聚焦小数据集进行AI模型训练,并聘请价格适中但技术熟练的计算机工程师,成功
    的头像 发表于 10-22 14:56 341次阅读

    最大限度地提高MSP430™ FRAM的写入速度

    电子发烧友网站提供《最大限度地提高MSP430™ FRAM的写入速度.pdf》资料免费下载
    发表于 10-18 10:09 0次下载
    <b class='flag-5'>最大限度</b>地提高MSP430™ FRAM的写入速度

    在饱和状态下运行UCC2888x离线降压以降低成本

    电子发烧友网站提供《在饱和状态下运行UCC2888x离线降压以降低成本.pdf》资料免费下载
    发表于 10-14 09:47 0次下载
    在饱和状态下运行UCC2888x离线降压以<b class='flag-5'>降低成本</b>

    降低成本城域网

    电子发烧友网站提供《降低成本城域网.pdf》资料免费下载
    发表于 10-12 11:46 0次下载
    <b class='flag-5'>降低成本</b>城域网

    CC2340系统降低成本的方案剖析

    电子发烧友网站提供《CC2340系统降低成本的方案剖析.pdf》资料免费下载
    发表于 08-27 09:43 0次下载
    CC2340系统<b class='flag-5'>降低成本</b>的方案剖析

    低电容探头最大限度降低对电路操作的影响

    本应用指南介绍了泰克高带宽、低电容无源电压探头怎样降低示波器用户的总拥有成本、改善性能和测量精度、节省用户设置时间。大多数示波器标配的无源电压探头都提供了低成本通用探测解决方案。一般来说,这些探头
    的头像 发表于 08-19 10:49 213次阅读
    低电容探头<b class='flag-5'>最大限度</b>地<b class='flag-5'>降低</b>对电路操作的影响

    600ma线性锂电池充电方案 兼容CL4054/LP4054/BCC4054 降低成本

    600ma线性锂电池充电方案 兼容CL4054/LP4054/BCC4054 降低成本
    的头像 发表于 06-18 11:05 658次阅读
    600ma线性锂电池充电方案 兼容CL4054/LP4054/BCC4054 <b class='flag-5'>降低成本</b>

    工业触摸显示屏在提升生产效率、降低成本等方面具有显著优势

     工业触摸显示屏在提升生产效率、降低成本等方面发挥着显著的作用。具体来说,其主要优势体现在以下几个方面。
    的头像 发表于 04-23 10:16 448次阅读

    如何最大限度降低差分测量误差?

    今天我们来详细讲下如何最大限度降低差分测量误差 首先,我们要清楚,把差分放大器或探头连接到信号源上一般是最大的误差来源。为保持输入匹配,两条通路应尽可能完全相同。对两个输入,任何线缆的长度都应该
    的头像 发表于 04-19 09:57 466次阅读
    如何<b class='flag-5'>最大限度</b>地<b class='flag-5'>降低</b>差分测量误差?

    ZR机械手:提高生产效率,降低成本的有效途径-速程精密

    ZR机械手:提高生产效率,降低成本的有效途径-速程精密 在制造业中,如何提高生产效率、降低成本一直是企业追求的目标。随着科技的不断进步,ZR机械手作为一种新型的自动设备,逐渐成为实现这一
    的头像 发表于 02-28 15:14 654次阅读
    ZR机械手:提高生产效率,<b class='flag-5'>降低成本</b>的有效途径-速程精密

    搬运机器人已经成为提高效率、降低成本的关键技术

    物流、制造业和仓储等领域,搬运机器人已经成为提高效率、降低成本的关键技术。近年来,随着技术的不断突破,搬运机器人正朝着更加智能、高效和可靠的方向发展。
    的头像 发表于 01-22 12:00 499次阅读
    搬运机器人已经成为提高效率、<b class='flag-5'>降低成本</b>的关键技术

    用于并行采样的EVADC同步转换,如何在最大化采样率的同时最大限度地减少抖动?

    在我的应用程序中,HSPDM 触发 EVADC 同时对两个通道进行采样。 我应该如何配置 EVADC 以最大限度地减少采样抖动并最大限度地提高采样率? 在用户手册中,它提到 SSE=0,USC=0
    发表于 01-18 07:59

    如何最大限度减小电源设计中输出电容的数量和尺寸?

    如何最大限度减小电源设计中输出电容的数量和尺寸?
    的头像 发表于 12-15 09:47 448次阅读
    如何<b class='flag-5'>最大限度</b>减小电源设计中输出电容的数量和尺寸?

    电路板pcb打样降低成本的方法

    电路板pcb打样降低成本的方法
    的头像 发表于 12-13 17:25 746次阅读

    最大限度保持系统低噪声

    最大限度保持系统低噪声
    的头像 发表于 11-27 16:58 409次阅读
    <b class='flag-5'>最大限度</b>保持系统低噪声