Specialized Analysis and Modification Tools
Code Formatters/Obfuscators/Hyperlinked CrossReferences
Source Code Formatters
These tools take a badly formatted source program, and reformat it into a standard style with appropriate indentation for language block structures. This makes source code much easier to read. Since programmers spend 50% of their time reading code, this can yield a significant cost savings. Variants produce hyperlinked cross-reference information, or make code very hard to read, to hamper reverse engineering efforts (obfuscation).
Source Code Metrics
Tools to measure software quality by computing metrics over source code. SD provides these for Java and C#, covering SLOC, method counts, cyclomatic complexity, as well as summaries over entire subsystems. SD can easily configure metrics tools for your language.
Dead Code Detection and Removal:
CloneDR (Clone Doctor)
A tool to detect and remove exact and near-miss duplicated code "clones" in large C, C++, Java, or COBOL application suites. This tool typically finds 10% redundant code in any large system. Since it costs roughly $US1.00/line/year to maintain a line of source code, removing 100K SLOC from a million line system saves $US100K/year for every year of life remaining in the software system. The CloneDR can be configured by SD for nearly any programming language.
Deactive Code detection and Removal
SD can build tools to detect and remove deactive code (an FAA DO-178B requirement for avionics software) or dead code from large software systems. A specific version of this tool automatically removes deactive code from Java or RealTime Java systems, which is useful for footprint reduction. Please direct inquiries to sales@semdesigns.com
Instrumentation:
Test (Branch) Coverage/Instrumentation for Standard and Custom Languages/Embedded Systems
Branch coverage tools are valuable for assessing the completeness of a test suite. They can be obtained for standard languages (e.g., C++) on standard platforms (Unix, W/NT), but are nearly impossible to find for nonstandard languages (FORTRAN, JavaScript) or even for standard languages on nonstandard platforms (C in embedded contexts). SD offers test coverage tools for standard languages, as well as custom tools that can insert branch coverage or other instrumentation in source codes for nonstandard languages and/or nonstandard environments.
Source Code Performance Profilers for Standard and Custom Languages/Embedded Systems
Tuning software for performance requires location of execution hot spots. SD supplies performance measuring tools for standard languages (e.g., Java, C, C++, COBOL, ...) on standard platforms (Unix, W/NT), and can configure such tools for for nonstandard languages (FORTRAN, JavaScript) or even for standard languages on nonstandard platforms (C in embedded contexts).
Custom Tools:
The following tools are not available as off-the-shelf products, but rather as customized products from SD. Please direct inquiries to sales@semdesigns.com
Preprocessor Conditional Removal
A tool for C and/or C++ programs, to automatically and reliably
remove conditional code controlled by designated preprocessor configuration variables.
This is often used to remove dead or useless configurations (such as "#IF ...VAX...").
Making such changes manually across several thousand files can cost man-years;
this tool can accomplish the same effect in a day.
A technical paper is available in
PDF Format
Copyright © 1995-2008 Semantic Designs, Incorporated
DMS and "Design Maintenance System" are registered trademarks of Semantic Designs, Inc.
The SD logo and "Semantic Designs" are registered service marks of Semantic Designs, Inc.
CloneDR, PARLANSE and Thicket are trademarks of Semantic Designs, Inc.
The OMG logo is a registered trademark of the Object Management Group, Inc. in the United States and other countries.
To view our Privacy Policy, click here
Comments or problems: webmaster@semdesigns.com
