在汽车行业的嵌入式软件开发怎么确保很低的bug发生率?

阅读量:
0
发表时间:
2022-04-24 17:22:57

  确保构建与购买

  有效的定制软件开发项目的第一个关键是确保确实需要定制软件,而不是购买打包的解决方案-并且有充分的理由确定。据相关人士调查发现,有75%的业务和IT高管预计他们的软件项目将会失败,并且在一年多的时间内,不到三分之一的项目能够按时,按预算完成。

  一种构建与购买对比分析的方法是询问是否已经存在一个打包的软件解决方案,该解决方案可以提供以下功能的80%以上的功能:

  支持或自动化独特的业务流程和交易

  处理特定于行业或业务线的信息和数据

  满足独特的隐私或安全要求

  促进与遗留应用程序和数据的集成

  以更低的成本替换或帮助整合现有解决方案

  替换或帮助合并现有解决方案以提高生产率

  创造新机会或提高竞争优势

  成长并适应不断变化的需求。.

  合作是关键

  如果要做出决定,那么一个重要的初始考虑就是从主要参与者那里买入并确保他们在项目上进行沟通和协作。协作者包括组织之外的发起人,用户,开发人员,甚至客户和业务合作伙伴。

  协作意味着“与业务用户就需求进行协作,在全球开发团队之间共享知识,并在开发和运营团队中携手合作,以提高质量和响应能力。”

  要求是必需的

  协作的关键成果之一是对软件需要做什么(而不是不做什么)的清晰,共同的愿景。已经确定“组织需要有效地定义和管理需求,以帮助确保它们满足客户需求,同时解决合规性问题并按计划并在预算范围内进行”,并且“需求定义和管理是一项有可能实现以下目标的活动:高,快速的投资回报率。”

  根据我们的“良好”要求是……

  正确(技术上和法律上可行)

  完成(表达一个完整的想法或陈述)

  清晰(明确无误)

  一致(不与其他要求冲突)

  可验证(可以确定应用程序符合要求)

  可追溯(唯一标识和跟踪)

  可行(可以在成本和进度范围内完成)

  模块化(可以更改而不会产生过多影响)

  独立于设计(不对设计强加特定的解决方案)。

  方法,技术和实践

  在定义了需求之后(它们可能会不止一次地发生变化),应用成熟的现代开发方法和实践可以帮助快速有效地交付有效的,甚至创新的软件。

  要考虑的开发方法:

  敏捷开发将需求分解为易用功能,并通过增量开发快速实现这些功能。随着功能的不断部署,反馈循环有助于发现并修复缺陷。

  DevOps是开发和运营的结合。它是一种基于敏捷的方法,它将软件开发和IT运营整合到软件的设计,开发,部署和支持中。

  快速应用程序开发是一种非线性方法,可将设计和代码构建浓缩为一个相互关联的步骤。

  扩展敏捷框架提供了一种将敏捷方法扩展到大型组织(例如全球开发团队)的方法。

  要考虑的技术和实践:

  开源是向公众和开发社区开放的软件源代码。例如,Linux是开放源代码操作系统。它可以通过软件组件的重用来提高开发效率,并通过避免专有体系结构来提高互操作性。

  通过在云中托管开发环境,基于云的开发将云计算的优势带到了软件开发中。这些环境支持编码,设计,集成,测试和其他开发功能,以构建本地应用程序和云原生应用程序,并以云技术承诺的成本控制,速度和按需便利性来实现。

  人工智能(AI)使软件能够模仿人类的决策和学习。它可用于改善开发过程。例如,自然语言处理(计算机和软件能够理解人类语言的能力)可用于分析需求文本并根据最佳实践提出改进建议。还可以通过云中的应用程序编程接口(API)和服务来获取诸如机器学习和建模之类的AI技术并将其整合到应用程序中。

  区块链是一种安全的数字链接分类帐,可消除银行,监管机构和其他中介机构等各方引入的成本和漏洞。开发人员正在使用区块链分类账和开源Hyperledger技术来构建新型的安全交易和金融应用程序,这些应用程序可以释放资金并加速业务流程。

  低代码是一种开发实践,可以减少编码需求,并使非编码人员或公民开发人员可以以较低的成本快速构建或帮助构建应用程序。

  分析技术正在通过仪表板,可视化和预测功能帮助软件应用程序及其用户充分利用大量数据。与AI一样,基于云的服务和API使将分析合并到应用程序中相对容易。

  移动应用技术可能只是必须的。54%的全球高管认为,客户购买行为正在从产品和服务转变为体验。其中许多经验是通过移动软件发生的。将移动应用程序与数据连接以改善和丰富用户体验是开发人员的关键需求。