Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Multiexcerpt macro
nameSystem requirements...

To obtain a pdf version of these instructions, click the ellipse (...) at the top right of this page, then select Export > Export to PDF.

Table of Contents

3

Information

Requirements

The CodeMRI® executable CMRI will cmri will create a Vault at your chosen location. Within the vault CMRI will designate Projects & Systems; projects being analogous to codebases and systems to snapshots. The source code will be stored in the project-system hierarchy. CMRI will also generate reports within the vault location.

Multiexcerpt macro
namePreface

Preface

CodeMRI® Platform (CMRI) is an installable command line utility for Windows & Linux that generates Silverthread CodeMRI® Care and Silverthread CodeMRI® Portfolio reports for software systems. It is intended for use on code bases of any size and generates reports in xlsx format. All instructions imply you are working in a command-line environment. 

Installation Instructions

Info

If you are installing a version older than 1.24.60, please see the instructions: Install CodeMRI® on Windows

Info

Upgrade Notice

Prior to version 1.24.27, CodeMRI® Platform required a separate installation of Understand. Beginning with CodeMRI® Platform 1.24.27, this requirement has been lifted. You may uninstall Understand via the Windows Add/Remove Programs settings pane.

1. Prepare for Install

  1. Open up the

...

  1. Start Menu, type Computer, then press Enter.

  2. Look under "Devices and Drives". Make sure you have a volume with at least 40GB available storage + 5GB per scan to be performed.

...

  • If there is enough storage, proceed to the installation.

Multiexcerpt macro
nameNavigate to CodeMRI.com...

2. Download & Install CodeMRI® Platform (CMRI)

2.1 Acquire CodeMRI® (CMRI)

  1. If you haven't already done so, navigate

to 
  1. to CodeMRI.com

 and
  1.  and sign in. If this is a new account, click sign up.  Enter your email address and password.  Navigate to your email client and validate the email. This email address will become the username for this account.

  2. Navigate to

the Downloads page 
  1. the Downloads page https://codemri.com/installers/

  2. Download the installer for your platform

2.2 Unpack CodeMRI® (CMRI)

...

  1. Download the CMRI Platform - Windows file.

...

Extract the downloaded zip file.

  1. Run the CMRI installer The installation process will begin.

    1. It may take a moment for the setup to begin.

    2. You may receive a Windows Defender warning, if so, click the "More Info" option and select "Run anyway".

...

  1. Read and accept the license agreement.

  2. Select whether you want to install CodeMRI® for all users, or just the current user.

  3. Select the path where

...

  1. CodeMRI® will be installed or leave as default.

  2. Select the defaults for Advanced Options.

  3. Click "Next" to install CMRI and complete the installation process.

...

  1.  The progress bar will stop moving for a few minutes about halfway through the installation process. Do not terminate the installer during this time, as the installer has not stalled.

Anchor
START
START

3. Start CodeMRI®

  1. Open a Windows Terminal or Command Prompt

  2. If you did not do so during installation, put the cmri\Scripts directory on the PATH like this (the install directory may vary based on install choices, system configuration, and Windows Version): set PATH=%PATH%;"C:\Users\<username>\cmri\Scripts"

Multiexcerpt include macro
nameCMRI should now be operational...
templateData[]
pageInstall CodeMRI® on Linux
addpanelfalse

Multiexcerpt include macro
macro_uuid1c403208-4448-4ff6-9b60-937fb4b84481
namevault create
templateData[]eJyLjgUAARUAuQ==
pageInstall CodeMRI® on Linux
addpanelfalse
Multiexcerpt include macro
nameWould you like to create a new vault...
templateData[]
pageInstall CodeMRI® on Linux
addpanelfalse

  1. Create and select a project.

    1. Start the shell by running cmri shell.

    2. Use the project add command to add a new project. CodeMRI® will select the project automatically after it is added.

> project add --name ProjectName

==================================
1 projects and 0 systems selected.

  1. Create and select a system.

    1. Use the system add command as shown below to add a new system. CodeMRI® will select the system automatically after it is added:

> system add --name SystemName --version 47.0 --origin "C:\Path\To\Code"
Successfully added new system to selected project(s).

==================================
1 projects and 1 systems selected.

Info

Systems will be added to all selected projects. Ensure that only the desired projects are selected

Info

Note that code (system) added can be compressed or uncompressed.

Multiexcerpt macro
nameWhat would you like to name the system...

SCAN

4. Log In

If you are running in an environment without Internet access, you may skip this step.

  1. Log into CodeMRI® with your Silverthread account using the command account login.

    1. Enter the information associated with

your 
    1. your CodeMRI.com

 account
    1.  account.

5. Scan Codebase

  1. In order to scan your codebase, run the produce_reports job using the command job run produce_reports
    Several jobs will execute in order, processing the code and producing a set of xlsx spreadsheets. To view the final reports, navigate to your vault root. The reports can be found under the reports directory.
    Depending on the type of license you have, the produce_reports job may stop and ask for a license code even though you are logged in.

Once you receive the license code from Silverthread support, enter the code as instructed in the reply and re-run job run produce_reports.

Multiexcerpt macro
nameUpdate

Upgrade from a previous version

  • Uninstall the existing CMRI Platform.

  • Install the new version, using the installation guide above

    • Skip the process of creating a vault and logging in if there is an existing vault.

Multiexcerpt macro
namefooter

GLOSSARY

Glossary

  • Benchmark: the top 20% of all comparable codebases, defined as those which are between half and twice the size of the scanned codebase.

  • CMRI: the CodeMRI CodeMRI® executable.

  • CodeMRI® Scanner: an an application available for Windows that can generate metadata for a given codebase. Unlike Platform, scanner cannot generate analytics.

  • CodeMRI® Platform: the full CMRI toolset.

  • Component: a group of files defined as having some kind of related purpose. Components allow the user to manually express the defined architecture of their system. This allows CMRI to compare and analyze the similarities and differences of the actual codebase architecture with the theoretical architecture.

  • Core: a cyclical group of files. Theoretically, a Core is any number of files n ≥ 2 in which the relationship of the system could be mapped as a self-contained loop. Emerging Cores are defined as Cores containing 30-150 files and have been proven to cause some financial and developmental impact. Severe Cores are defined as Cores with 150+ files and have been proven to impose significant negative impacts on the codebase.

  • Design Structure Matrix (DSM): a visual representation of the hierarchical relationships of a codebase. Every file of the codebase is listed in order on both the x and y axes. The dots represent a direct relationship from the file on the y axis to the file on the x axis. A boxed group of dots indicates where a Core is hierarchically within the codebase. In a codebase with perfectly hierarchical architecture, all the dots would be below the diagonal; any dots above the diagonal are in violation of the optimal architecture. For further reading, go go here.

  • McCabe Complexity: a measure of the cyclomatic complexity of the code itself. Cyclomatic complexity typically refers to branches within the code in that code with excessive branching conditions will have higher complexity. Complex code is harder to understand and harder to test, making it confusing and fragile. Files with a McCabe complexity of 20-50 are defined as problematic and have been proven to cause some financial and developmental impact. Files with values of 50+ are said to have high complexity and have been proven to impose significant negative impacts on the codebase.

  • Metadata: the file produced by scanning a codebase with the CodeMRI CodeMRI® Scanner. This file can then be scanned through the CodeMRI CodeMRI® Platform to produce diagnostic analysis of the codebase.

  • Portfolio: an Excel file that contains a brief summary of the top-level health of a codebase.

  • Project: a codebase or group of codebases that work together. Projects serve as a workspace to gather all the related systems/codebases you would like to scan and/or compare.

  • Reports: the files and analytics produced by CMRI. They contain the diagnostic information regarding the health of the codebase including financial and timeframe metrics related to the impact of the codebase’s existing architectural design.

  • System/Codebase: a snapshot of a project at a single point in time. 

  • Technical Health Improvement Plan (THIP): an Excel document that details a series of steps determined by CMRI that provides the most efficient path to eliminate a Core from the scanned codebase. This includes metrics including the impact of each broken relationship, which files to locate the erroneous relationships, and more.

  • Vault: a collection of one or more projects, containing a duplicate copy of scanned code, generated reports, and any other files produced by CMRI. The first step to starting CMRI in any directory is creating a Vault.

SUPPORT

Customer Support

Phone: 800-674-9366 (9am - 5pm Eastern Time)

Email: support@silverthreadinc.com