Atomiq is a product by

Atomiq Developer Edition Overview

Below you'll find a description of Atomiq.

Just getting started? Be sure to look at this page.


Application Toolbar

Project Toolbar Block

New

Clicking the New button will bring up the Analysis Options dialog window. How the Analysis Options dialog window functions is described below. Any unsaved changes to a project will be discarded once a new project has been loaded.

Open

Clicking the Open button will show an open file dialog window. Navigate to the location of the Atomiq project file to open. Atomiq project files have an '.atomiqProj' extension. Open the project file by selecting the '.atomiqProj' file and clicking the open button on the dialog window. Any unsaved changes to a project will be discarded once another project has been opened from a file.

Save

Clicking the Save button will show a save file dialog window. Navigate to where the current Atomiq project is to be saved. Saving an Atomiq project to the same location as anther Atomiq project file with the same name will being up a confirmation dialog asking if the file is to be overwritten. Selecting 'Yes' will replace the file with the new Atomiq file changes, selecting no will go back to the save file dialog window allowing another name to be entered.

Reanalyze

Clicking the Reanalyze button will reanalyze the directories of the currently loaded Atomiq project. This will be used when changes have been made to the file types analyzed by the current project. The Reanalyze button is disabled until an Atomiq project has been loaded into the application by either creating a new project or opening a project.

Wheel

Clicking the Wheel button will bring up the WheelView window. How the WheelView window functions is described below. The Wheel button is disabled until an Atomiq project has been loaded into the application by either creating a new project or opening a project.

Results Toolbar Block

Lines

The Lines result box displays an approximate number of lines of code of duplication across the analyzed files located in the directory project directory. Highlighting over the Lines result box will display a tool tip displaying the exact number of lines of code duplication.

Blocks

The Blocks result box displays an approximate number of blocks of code duplicated across the analyzed files located in the Atomiq project directory. A block of duplicated code is defined as contiguous lines of code that are duplicated after removing whitespace, string content, curly braces, and other “fluff”. Highlighting over the Blocks result box will display a tool tip displaying the exact number of blocks of duplicated code.

Files

The Files result box displays an approximate number of files containing code duplication in the Atomiq project directory. Highlighting over the Blocks result box will display a tool tip displaying the exact number of files with code duplication that have been found.


Analysis Options Dialog Window

Analysis Options dialog window is displayed when New is clicked or when an Atomiq project file has been selected to open. Clicking the x to close the dialog window will close the window and cancel changing the current Atomiq project. Clicking the Ok button will analyze the selected directory using the parameters set on the Analysis Options dialog window. If no drive has been selected, clicking the Ok button will not perform an analysis.

Directory Picker

Clicking the Pick button will bring up a browse folder dialog window. The browse window dialog allows for navigation to any local or mounted drives. The folder or drive selected is the path, along with all of its subdirectories, Atomiq will search for files to analyze. Once selected, the path will be displayed on the Analysis Options dialog window.

File Type

There are several different supported files types in Atomiq:

It is possible to select only one of the file types per analysis. Selection of a file type will make the analysis analyze only those files that are of the selected file type.

Min Similarity Length

Min similarity length is the minimum length a block of similar code must be in order to display a match for the Atomic project. A lower value of min similarity length will return more results than a higher value. The Min Similarity Length slider can range from 6 to 30.

File Excluded Regex

The File Excluded Regex text area is where regular expressions can be entered to exclude files from being analyzed. Atomiq reads every line as a different regular expression. Files names that are a match to any of the regular expressions in the text area will be excluded from analysis. The default File Excluded Regex value is:
^AssemblyInfo\.(vb|cs)$
\.g\.(vb|cs)$
\.Designer\.(vb|cs)$
This will ignore the files 'AssemblyInfo.cs' and 'AssemblyInfo.vb', files auto-generated in Silverlight or WPF (i.e. 'home.g.cs' or 'home.g.vb'), and all designer files generated in asp.net (i.e. 'home.designer.cs' or 'home.designer.vb'). A fuller more detailed description of regular expressions can be found at RegExLib.com.


Description of Panels

The Atomiq application has 4 different panels. They are the Files, Similarities, Code, and Similarity View panels. Each panel has the ability to float, dock, or set to auto hide. The 4 panels all have scroll bars to view content that falls out of the display of the panel.

Files

The Files panel displays a tree view of the files where code duplication was found in the analysis. All files display the total number of blocks of code duplication found in the file. Blocks are described above in the Results Toolbar Block. The files are listed in a tree view with the same structure as the file system starting at the location of the picked directory. Clicking on the folder icon expands and collapses the file tree.

Files without duplication and files that are have all their blocks of code added to an ignore list will not show up in the files panel. Clicking on the name of a file will set the Similarities, Code, and Similarity View panels to display information about the file selected in the Files panel.

Similarities

The Similarities panel lists information about the current file and files, including itself, that have similarities to the file. The path of the file selected is displayed at the top of the Similarities panel there is a list of similarity stats. The 'Files' value displays the number of files that have similarities with this file. The 'Blocks' value shows the number of code blocks found in the selected file in the Files panel. The value of 'Processes Lines' gives the sum of the number of lines in all blocks of repeated code after extra “fluff” as described in the Results Toolbar Block above. The 'Raw Lines' value displays the sum of the number of lines in all of the blocks of code before the “fluff” is removed.

Below the list of summary stats is a table displaying the code blocks of the file selected in the Files panel. The table columns are File, Length, Lines, and Other Lines. File is the name of the other file with similarities to the selected file for the code block. The Length is the number of processed lines of the code block. The Lines column tells the line numbers where the code duplication can be found in the selected file. The Other Lines gives the line numbers of the file in the File column where the code duplication can be found. The table can be sorted by any column. The table by default is sorted by the Lines column.

Clicking on the name of any row will update the Code panel to display the code block of the currently selected file of the Files panel. At the same time, the Similarity View panel will display the selected file's code block in the left panel and the code block of the file selected on the Similarities panel in the right panel of the Similarity View panel.

Code

The Code panel displays the currently selected file of the Files panel. Each line is numbered on the left. To the left of the line numbers are red and or blue bars showing where code duplication has been found. The color bars represent blocks of code duplication. Red signifies that the code duplication can be found in the same file. Blue signifies that the code duplication is found in another file. Clicking the red or blue bars will change the selection in the Similarities panel to the code block matching the code block with the color bar to the left. The Similarities View is updated as well when the color block is selected in the Code panel.


Similarity View

The Similarity View panel displays a comparison of the duplicated code block of the current file and the code block of the other file selected in the Similarities panel. The two code blocks have the code displayed in two side-by-side panels showing only the code blocks of duplicated code. Their lines numbers are displayed to the left within each panel in the Similarities panel.

WheelView Window

The wheel is broken into segments representing every file with results from the code analysis. The segment size is proportional to the number of lines of duplicate code in the file. Hovering the mouse over a file segment on the wheel will display how many files the segment shares code with, how many blocks of duplicate code there are in the file and how many total lines of code are duplicated in the file. Clicking on the file segment will make the file active in the main window so you can browse its code.

Connectors

Each arc that connects two file segments represents a block of duplicate code shared between those two files. The thickness of the connector is proportional to how many lines are similar - meaning the bigger the line is, the bigger the lines of similarity between those two files. Hovering over a connector will display the names of the two files that are attached to the connector as well as exactly how many lines of similarity were found.