西门子选择Sonarqube作为跨部门代码质量分析的主要工具

西门子软件工厂通过集成 SonarQube 与 Microsoft ALM 工具和技术,提高了 4000 万行代码的质量。

西门子提供独特的自动化产品组合,从集成驱动器、智能控制器到创新的 PLM 软件,从产品设计到生产规划和设置,一直到实际生产和后续服务。西门子软件工厂在该投资组合链中发挥着重要作用,因为它为软件开发提供 PLM 流程以及支持服务。

SonarQube 是西门子使用的全球软件代码分析和技术深度监控服务之一。它管理着超过 4000 万行代码 (LoC),擅长Microsoft 工具(C#、C++、Microsoft Team Foundation Server (TFS)、Microsoft Visual Studio)以及TypeScript、Java、JavaScript 等技术。SonarQube 拥有超过 150 个正在生产的项目,其开发团队分布在三大洲,由 1000 多名开发人员组成,提供集成能力、可扩展性和统一指标以控制风险并最大限度地提高软件组合的可靠性。

西门子数字工厂依赖于多种代码分析工具,这让管理人员和开发人员都感到困惑。

直到 2015 年,西门子数字工厂一直在其各个业务部门使用多种工具进行软件代码质量分析。项目经理将使用特定于语言的工具,如 FXCop (C#) 和 PC-Lint (C/C++) 等来识别和报告软件代码问题。除了这些工具之外,他们还会参考其他第三方工具来获取有关技术债务、冗余和潜在错误的信息。

由于多种原因,这种方法并不理想。不同的工具产生不同的衡量标准,这使得管理人员难以全面了解代码质量。多种工具还增加了管理人员的学习曲线,要求他们在高效使用每种工具之前,都先了解它们的详细信息。最后,每个工具都会生成自己的报告,这就导致了对代码质量的讨论有多个切入点。

2015 年,西门子数字化工厂技术管理团队决定协调流程,并采用一个通用工具,用于跨业务部门和开发团队的软件代码分析。与现有 Microsoft 工具和技术的集成是一个关键需求,安全性和可扩展性也很重要。

西门子数字工厂选择 SonarQube 作为跨业务部门代码质量分析的主要工具。

项目团队为工具评估过程确定了许多标准:

  • 支持多种编程语言
  • 支持各种 C++类型
  • 微软团队基础服务(TFS)构建集成
  • 集成开发环境(IDE)
  • 支持单元测试覆盖率结果
  • 安全性和可扩展性

基于这些标准,项目团队对比了多种工具,并通过实际使用所选择的开发项目进行了进一步评估。重点放在工具可用性、用户指标呈现以及跨编程语言的功能上。系统安全性和单元测试覆盖率也在此原型阶段得到验证。在考虑了结果后,该团队选择了 SonarQube 作为他们的首选平台。

“当我们定义工具选择标准时,与 Microsoft 技术的流畅集成、多语言支持和统一的软件代码质量仪表板是不可妥协的项目要求。SonarQube非常符合定义的各项标准,并拥有集成我们定制的构建工具和在旧程序上进行代码质量分析的能力。”

——西门子 SonarQube 服务经理

西门子自动化软件产品组合使用 SonarQube 及其 Microsoft TFS 集成,用于旧项目以及新项目。

如今,SonarQube 与 Microsoft Team Foundation Server 的 C/C++ 和 C# 项目构建流程,以及来自 Visual Studio 测试平台 (VSTest.Console) 和 NUnit 的单元/集成测试结果紧密集成。下图显示了使用此集成的典型构建过程:

 

使用MSBuild的SonarQube扫描仪将 SonarQube 集成到 TFS 构建过程中。结果会显示在 SonarQube 仪表板中。

除此之外,西门子SonarQube服务还为使用特殊编程语言和自定义构建环境的项目开发了统一的项目配置方法。这些项目现在也可以用SonarQube进行分析,结果显示在SonarQube的项目仪表板上。

“SonarQube 最棒的地方之一就是它强大的仪表板。这使我们的项目经理和开发人员能够根据他们在开发过程中的角色,在不同环境中查看可用的度量标准。通过统一这些数据并使其对所有相关人员可见,SonarQube 显著提高了有关代码质量的内部讨论的质量和深度。”

——西门子 SonarQube 服务经理

未来,西门子 SonarQube 服务计划使用虚拟机或容器重新部署其 SonarQube 服务器基础架构。这将有助于更好地管理工作负载,并使开发团队更容易在整个公司范围内访问 SonarQube 服务。西门子 SonarQube 服务团队正在与 SonarSource 支持和产品开发团队密切合作,定期就 SonarCFamily 代码分析器和 TFS 实施等各种产品特性提供反馈,以不断推动其软件质量政策和实践向前发展。

SonarQube 为西门子软件工厂带来的商业利益

  • 一致、统一的报告
  • 与微软ALM套件流畅集成
  • 大量代码分析器
  • 针对用户角色和环境的个性化强大仪表板
  • 由于基于浏览器的直观界面,学习曲线更短
  • 安全性和可扩展性