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

    文章

    18711

    浏览量

    186424
  • 操作系统
    +关注

    关注

    37

    文章

    7457

    浏览量

    129733
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    群联电子创新推出Hybrid方案,助力客户降低成本降低AI应用门槛

    电子发烧友网报道(文/李弯弯)在AI浪潮席卷全球的当下,存储产业正深陷多重困境:供需矛盾日益尖锐,产业价值重心加速上移,高端存储供给瓶颈凸显,价格下行缺乏支撑,成本压力如影随形。与此同时,AI发展
    的头像 发表于 04-10 09:09 6539次阅读

    Vishay推出车规级光伏MOSFET驱动器,提升高压系统可靠性并降低成本

    。Vishay Semiconductors VODA1275专门用来提升高压车载应用的安全性和可靠性,同时简化设计并降低成本,器件导通时间、开路电压和短路电流均达到业内先进水平。 日
    的头像 发表于 04-01 15:48 510次阅读

    低成本高精度:组合导航系统如何重塑现代精准农业

    在当今的农业生产中,精准农业已不再是遥远的概念,而是提升效率、降低成本、实现可持续发展的关键路径。
    的头像 发表于 02-01 11:11 1494次阅读

    降低LDO功耗延长运行时间

    响应,那么相关设备就能在维持主要性能的同时最大限度地延长整机电池的运行时间。   静态电流是指LDO空载和非开关但启用状态下消耗的电流,对于LDO来说这一电流的主要贡献来自电压参考和误差放大器
    发表于 01-08 07:13

    宏集案例 | 加勒比最大石油企业如何用DataHub实现SCADA现代化与IoT设备集成?

    软件,实现了对现有SCADA系统的现代化升级,并无缝集成了新型物联网(IoT)油井监测设备。关键价值点数据全集成:利用宏集CogentDataHub的MQTT智能代
    的头像 发表于 12-16 17:04 631次阅读
    宏集案例 | 加勒比<b class='flag-5'>最大</b>石油企业如何用DataHub实现SCADA<b class='flag-5'>现代化</b>与IoT设备集成?

    利用DMA如何降低MCU功耗?

    利用DMA(直接内存访问)降低MCU功耗的核心在于最小CPU介入,通过硬件自动完成数据传输任务,使CPU能尽可能长时间处于休眠状态。 CPU休眠时间最大化 DMA接管数据搬运(如外设↔内存、内存
    发表于 11-18 07:34

    风华电阻:低成本与高稳定性家电应用

    :风华RT系列电阻采用铜镍合金替代传统银、钯等贵金属,规避贵金属价格波动风险,同时实现无铅设计,满足RoHS、REACH等环保指令,降低供应链成本。 定制化工艺 :通过氮气保护烧结
    的头像 发表于 10-29 15:39 622次阅读

    SD-WAN如何帮助企业降低网络运维成本

    巨大的成本负担。为了满足不断变化的业务需求和日益复杂的网络环境,越来越多的企业开始选择采用SD-WAN(软件定义广域网)作为其网络解决方案。SD-WAN的出现不仅改变了传统网络架构的局限,还有效地降低了企业的网络运维
    的头像 发表于 10-24 18:24 463次阅读

    Molex推出蜂窝柔性天线的特性与优势-赫联电子

      Molex蜂窝柔性天线支持不断发展的LTE和4G蜂窝技术。该器件采用平衡的传输设计,可通过消除额外的电路、频率调谐和电子元件集成,最大限度地减少地面-平面效应、降低成本并减少所需的工程资源。该
    发表于 10-14 09:37

    SMA连接器类型:低损耗款性能优势全解析

    对需要高精度、高频段、远距离传输的场景来说,SMA 低损耗款不是 “可选项”,而是 “必选项”—— 普通款的损耗看似不大,但叠加后会严重影响系统性能,而低损耗款通过材质、结构、工艺的优化,能最大限度 “守住” 信号能量,提升系统效率、降低成本
    的头像 发表于 09-19 10:10 2337次阅读
    SMA连接器类型:低损耗款性能优势全解析

    NetApp助力对象存储现代化,提升速度、扩展性和安全性

    智能数据基础设施公司NetApp® (NASDAQ: NTAP) 今天宣布推出NetApp StorageGRID® 12.0,这是一款扩展的软件定义对象存储解决方案,专为非结构数据而设
    的头像 发表于 09-11 10:41 726次阅读

    微型气象站系统:为智慧气象建设和应急管理体系现代化提供关键技术支撑

    微型气象站系统:为智慧气象建设和应急管理体系现代化提供关键技术支撑【WX-PQX6】不仅简化了传统气象监测流程、降低成本,更通过云平台数据管理(支持多设备登录、曲线分析、数据导出)和远程监控功能,推动气象服务向智能
    的头像 发表于 08-13 14:47 869次阅读
    微型气象站系统:为智慧气象建设和应急管理体系<b class='flag-5'>现代化</b>提供关键技术支撑

    现代化智慧农业四情监测设备方案

    现代化智慧农业四情监测设备方案 柏峰【BF-NYSQ】强农固本,为推进中国现代化提供基础支撑,农稳社稷,粮安天下。强化耕地保护和质量提升、推进农业科技力量,全方位夯实国家粮食安全根基,坚持产量产能、生产生态、增产增收一起抓,切
    的头像 发表于 08-01 10:11 1061次阅读
    <b class='flag-5'>现代化</b>智慧农业四情监测设备方案

    定制嵌入工业平板电脑的低功耗技术策略分享——聚徽

    得低功耗技术成为保障设备续航、降低能耗的关键。如何在满足高性能运算需求的同时,最大限度降低功耗,已成为定制嵌入工业平板电脑研发与应用的重
    的头像 发表于 07-01 15:13 1045次阅读

    斑马技术:84%决策者认为,仓储现代化运营是当务之急

    准确性,降低营运成本,进而提升营运效率、优化供应链管理,为传统仓储行业带来了深刻变革与价值创造。 ​ 斑马技术公司发布的最新《2025 全球仓储愿景研究报告》(以下简称 “《报告》”)显示,84% 的决策者表示,现代化运营是当
    的头像 发表于 05-26 07:34 3787次阅读