SolidFX - Fact eXtractor for C/C++
The Fact eXtractor (SolidFX) is a standalone, non-intrusive solution for static analysis of industry-size projects written in the C and C++ programming languages. SolidFX uses proprietary technology to analyze even the most complex C/C++ code bases efficiently and robustly. SourceFX offers predefined analysis scenarios and metrics to measure C/C++ code quality, maintainability, modularity, detect potential bugs and extract design from source code – all for coding faster, cleaner, better.
Features
SolidFX supports a wide range of tasks. SolidFX supports most C and C++ dialects and platforms and is able to quickly analyze multi-million line projects, even if the code is incorrect and/or incomplete. The extracted information can be queried at levels ranging from detail information over each line of code to automatic reverse-engineered, full system architectural diagrams.
SolidFX comes with several visualization plug-ins showing combined UML and metric diagrams; large call graphs; and tens of quality metric trends ranging from individual lines of code to entire subsystems. New plug-ins can be easily added to compute client-specific “what if” quality checks and queries and interface with third-party tools.
The SolidFX framework provides several tools that can be used together or separately:
- a fact extractor that can parse, type check, and analyze the full C and C++ languages
- easy configuration tools for several compilers (gcc, Visual C++, Kyle C), and platforms (Linux, Windows, Solaris, Mac OS)
- a fact database that manages a wide range of static information: syntax, semantics (types), preprocessor, metrics, patterns, and dependency graphs.
- several easy-to-use tools for quick, automated analyses: structural metrics, dependencies, call graphs, class information
- several visualization tools for source code, call and dependency graphs, class diagrams, software metrics.
Intended audience
SourceFX addresses several roles within a project:- Project managers: enables informed decision making for software development, refactoring, migration
- Software architects: detects crosscutting concerns, quality problems, and deficient design code areas
- Developers: detects potential problems, code duplication, low-quality code areas
Benefits
- Cost reduction
- Plan maintenance and migration more effectively
- Reduce understanding and development time
- Code faster, cleaner, safer
- Quality improvement
- Measure and monitor software quality
- Support targeted refactoring and maintenance
- Detect potential bugs and safety problems in code
- Check reverse engineered design against source code
- Decision making support
- Easy-to-understand visual presentations of analysis
- Documentation and analysis report generation
- Support “what if” analysis scenarios
- Assess system maturity and stability
- Support in and outsourcing buy/sell decisions
Integration in client environment
SolidFX is a non-intrusive tool, easy to integrate in the client environment. SolidFX requires no changes to the existing development process. SolidFX can be installed side-by-side with existing compilers such as Visual Studio or g++, but can also run standalone. Custom analysis engines can be added as plug-ins during a hot integration. There are no development risks associated to removing SolidFX from the client environment.
Example use-cases
- Maintenance support
Problem How to improve the system quality and reduce maintenance costs? Approach Assess the quality of code and architecture by computing several quality metrics. Visualize the metrics correlated with the (reverse engineered) system architecture. Detect weak spots. Understand the interplay of concerns in large, complex code bases at a glance. Added value: Support maintenance by targeting effort where it is most needed. - Refactoring support
Problem How to perform refactoring activities in a cost-effective and safe manner? Approach Inspect the reverse engineered system structure. Compute and visualize code duplication and system modularity. Use these facts to plan and execute refactoring scenarios with reduced risks and costs. Iterate the tool-supported refactoring process during the entire product life-cycle. Added value Support low-cost, low-risk refactoring by providing structural overviews and detail information. - Test coverage
Problem How do test scenarios cover the software source code stack? Approach Visualize the test scenario data combined with the (reverse engineered) system architecture. Detect improperly covered areas at a glance. Adapt test scenarios accordingly. Added value Correlate testing with development in a cost-effective way.
Screenshots
Licensing
SolidFX comes in two versions: Professional and Express. The main differences between the two are in the set of features that are available.
- SolidFX Express contains the fact extraction engine and a standard collection of software analysis tools. Intended for users who need a quick and simple access to static information from the fact database and usage of off-the-shelf standard analyses.
- SolidFX Professional offers all the features of the Express version and additional APIs to query, analyze, and extend the fact database. Intended for users who wish to build advanced custom static analyses or fine-grained integration of the SolidFX functionality in existing third-party analysis frameworks.
| Features matrix | Express | Professional |
|---|---|---|
| Fact extraction engine. | ![]() |
![]() |
| XML-based query language for custom analyses. | ![]() |
![]() |
| Collection of XML queries for standard investigations (e.g., computation of software metrics such as Cyclomatic Complexity). | ![]() |
![]() |
| C++ API access to the fact database for complex analyses and integration with third party analysis frameworks. | ![]() |
|
| Analysis applications (FXMetrics, FXUses, FXCall, FXCCheck, FXClass, FXView) | ![]() |
![]() |
| GCC and CL compiler proxies for easy integration in the build environment. | ![]() |
|
There are three licensing alternatives for SolidFX. All license prices are in USD per year excluding 19% VAT (applicable only to customers within the EU space).
Enterprise License
The enterprise license is aimed at established companies that look for ways of increasing their overall productivity by reducing development time and the cost of non quality. Enterprise licenses are floating licenses, that is any number of users within the licensed site can run one instance of the application on one machine, provided that no more than a given (specified in the license) number of users run it in parallel. Enterprise licenses can be acquired on a subscription base for a given period. Upon expiration, the enterprise license needs to be renewed in order to continue using the product. Free technical assistance is included for the duration of the licensed period.
| Express | Professional | |||
|---|---|---|---|---|
| Number of seats | Price USD / year | Buy online | Price USD / year | Buy |
| 1 | $ 1995 | |||
| 5 | $ 4495 | $ 9950 | ![]() |
|
| 15 | $ 8990 | $ 17450 | ![]() |
|
| other | quotation | ![]() |
quotation | ![]() |
|
|
||||
Multiple-Instance Enterprise License (for SolidFX Professional)
The multiple-instance enterprise license is a variation of the enterprise license that enables users to run multiple instances of the application on the same machine (e.g., a dedicated software analysis workstation). These licenses can be acquired on a subscription base for a given period. Upon expiration, the multiple-instance enterprise license needs to be renewed in order to continue using the product. Free technical assistance is included for the duration of the licensed period.| Professional | ||
|---|---|---|
| Number of parallel instances | Price USD / year | Buy |
| 3 | $ 9950 | ![]() |
| 10 | $ 19950 | ![]() |
| other | quotation | ![]() |
Developer/SDK License(for SolidFX Professional)
The developer/SDK license is intended for software development companies that want to incorporate SolidFX in products for third-party customers. The license may be acquired on a subscription base for a given period and covers the access to the SolidFX API, libraries, documentation and technical support. A wide range of licensing alternatives for using SolidFX in derived products is available. For details, please contact us at solidfx@solidsourceit.com.
| Professional | ||
|---|---|---|
| Price USD / year | ||
| project | $ 279 | ![]() |
Tool customization support can be purchased for $ 150 per hour (excl. VAT). This type of support can be used for the development of tool extensions, plug-ins, and integration with third-party tools and with the work environment of the customer.
For more detailed information on licensing, upgrading and custom quotations, please contact solidfx@solidsourceit.com
System Requirements
PC compatible workstation 800MHz CPU, 1GB RAM, 50 GB HDD (depending on the analyzed project). A fast graphics card with 128 MB is recommended. MS Windows NT/2000/XP/Vista operating system. Linux to be supported soon.




