Start here

Home
About Klocwork
What's new
Fixed issues
Release notes
Installation

Reference

C/C++ checkers
Java checkers
C# checkers
MISRA C 2004 checkers
MISRA C++ 2008 checkers
MISRA C 2012 checkers
MISRA C 2012 checkers with Amendment 1
Commands
Metrics
Troubleshooting
Reference

Product components

C/C++ Integration build analysis
Java Integration build analysis
Desktop analysis
Refactoring
Klocwork Static Code Analysis
Klocwork Code Review
Structure101
Tuning
Custom checkers

Coding environments

Visual Studio
Eclipse for C/C++
Eclipse for Java
IntelliJ IDEA
Other

Administration

Project configuration
Build configuration
Administration
Analysis performance
Server performance
Security/permissions
Licensing
Klocwork Static Code Analysis Web API
Klocwork Code Review Web API

Community

View help online
Visit RogueWave.com
Klocwork Support
Rogue Wave Videos

Legal

Legal information

Connected desktop and synchronization

Connected desktop and synchronization

Prerequisites

To use the connected desktop, you need:

  • an integration project and build analysis
  • IDE plug-ins or kwcheck installed on developer desktops
  • each developer desktop to be connected to the integration project

How connected desktop works

The term connected desktop refers to a desktop project that is connected to a related integration project on the Klocwork Server. This connection enables synchronization, which:

  • provides the accuracy of an integration build with the speed of a local analysis

    Connected desktop allows you to analyze your code locally, before check-in, while achieving the same analytical consistency and accuracy that would occur if you were to check in your code and then have it validated during an integration build analysis. How? When you analyze your code (through on-the-fly analysis, continuous analysis, or a project analysis), knowledge base files are synchronized from the integration build analysis to your connected project (for relevant files on your desktop). These knowledge bases record the function and class-method behavior of the entire code base. This allows the engine to propagate values, ranges and symbolic logic evaluations across function and module boundaries, whether those functions are located within a single file, or within different build units (such as dependent shared libraries).

  • updates issue status changes and comments among connected desktop users and the integration build
    Typically, you fix whatever issues you can fix immediately and change the status for issues that you either don't care about or regard as false positives. You can change an issue's status in your IDE plug-in, Klocwork Desktop, Klocwork Code Review and kwcheck.
    Note: Status changes are updated among connected desktop users even if they're not reported in the current integration project analysis. If connected desktop users don't update their source code or have code that does not contain issues detected and updated by other users, then these issues are not displayed.
  • provides centralized project configuration between the integration build and the connected desktops

    Analysis settings, such as checker taxonomies to support internal coding policies, can be set up for the integration build and automatically transmitted to connected users. You can then assess your performance against these policies before you check your code in. For more information about configurable integration build settings, see Integration build analysis.

    Note: If you have permission to change your local project configuration, such as enabling or disabling issue types for the analysis, then your local configuration settings take precedence over the integration build settings.

Synchronization timing

Synchronization is automatic and occurs when:

  • a file or project is analyzed
  • detected issues are cited in a connected desktop project
    Note: Citing pushes and pulls only citing information, not configuration changes or KBs.
  • you connect to the integration project (something you typically do only once)

Additionally, a scheduled synchronization occurs on your open, active project to update citing and configuration information.

Synchronization information

As you can see from the diagram above, synchronization:

  • updates citing information among connected desktop users and the integration build analysis
  • pulls configuration changes and knowledge bases into connected desktops
Note: System knowledge base files, checker configuration and override files are passed to Visual Studio during synchronization.

What synchronization does not do

When you fix issues on your desktop project, those fixes won't show up in Klocwork Static Code Analysis (in reports such as Fix Activity) until another integration build analysis is run on your checked-in code. Synchronization does not relay fixed issues to Klocwork Static Code Analysis.