JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.
Chapter 19. How to Resolve Issues
This section summarizes issues and how they can be resolved.
Contents
Search
1. Sonargraph's Next Generation - Sonargraph 9
2. Licensing
2.1. Getting an Activation Code or a License
2.2. Activation Code Based Licensing
2.3. Proxy Settings
2.4. License Server Settings
3. Getting Started
3.1. Installation and Updates
3.2. Help
3.3. Editor Preferences
3.4. License Server Preferences
3.5. Proxy Preferences
3.6. Update Site Preferences
3.7. C/C++ Compiler Definitions
3.8. C# Configuration
3.8.1. C# Build Executor Configuration
3.9. Search Path Configuration
3.10. Python Configuration
4. Getting Familiar with the Sonargraph System Model
4.1. Physical File Structure
4.2. Language Independent Model
4.3. Language Specific Models
4.3.1. Java Model
4.3.2. C++ Model
4.3.3. C# Model
4.3.4. Python Model
4.4. Logical Models
4.4.1. System-Based Logical Model
4.4.2. Module-Based Logical Model
5. Creating a System
5.1. Creating a Java System
5.2. Creating a C# System
5.3. Creating C/C++ Systems
5.4. Quality Model
5.4.1. Importing a Quality Model
5.4.2. Exporting a Quality Model
6. Adding Content to a System
6.1. Creating or Importing a Java Module
6.1.1. Importing Java Modules Using an Eclipse Workspace
6.1.2. Importing Java Modules from IntelliJ
6.1.3. Importing Java Modules from Maven POM File
6.1.4. Importing Java Modules Using a Bazel Workspace
6.1.5. Creating a Java Module Manually
6.2. Creating or Importing a C++ Module
6.2.1. Importing C++ Modules from Visual Studio Files
6.2.2. Importing C++ Modules Using Make Command Capturing Files
6.2.3. Creating a C++ Module Manually
6.2.4. C/C++ Module Configuration
6.3. Creating or Importing a C# Module
6.3.1. Importing C# Modules Using a Visual Studio Project File
6.3.2. Importing C# Modules Using a Visual Studio Solution File
6.3.3. Creating a C# Module Manually
6.3.4. C# Module Configuration
6.3.5. C# MSBuild Configuration
6.3.5.1. C# MSBuild Problems and Solutions
6.3.5.1.1. Error MSB4019: The imported project 'XYZ' was not found
6.3.5.1.2. 'XYZ' was unexpected at this time.
6.3.5.1.3. Error MSB4041: The default XML namespace of the project must be the MSBuild XML namespace.
6.3.5.1.4. Error NETSDK1005: Assets file 'project.assets.json' doesn't have a target for 'XYZ'.
7. Interacting with a System
7.1. User Interface Components
7.1.1. Menu Bar
7.1.2. Tool Bar
7.1.3. Notifications Bar
7.1.4. Tables
7.2. Common Interaction Patterns
7.2.1. Special Graphic Elements Decorations
7.3. Sonargraph Workbench
7.4. Navigating through the System Components
7.5. Exploring the System Namespaces
7.6. Managing the System Files
7.7. Managing the Workspace
7.7.1. Definition of Filters, Modules and Root Directories
7.7.2. Managing Module Dependencies
7.7.3. Creating Workspace Profiles for Build Environments
7.8. Analyzer Execution Level
7.9. Analyzing Cycles
7.9.1. Revising Cycle Groups
7.9.2. Inspecting Cyclic Elements
7.9.3. Breaking Up Cycles
7.10. Exploring the System
7.10.1. Concepts for System Exploration
7.10.1.1. Focus Concept
7.10.1.2. Focus Modes
7.10.1.3. Transitive Dependencies
7.10.1.4. Exploration and Graph-based Views Properties
7.10.1.5. Creating Views Exploration and Graph Based views
7.10.1.6. Applying Focus
7.10.1.7. Semantics of Colors
7.10.2. Tree Based System Exploration
7.10.2.1. Drilldown
7.10.2.2. Extending the Focus
7.10.2.3. Removing Elements From Focus
7.10.2.4. Interaction with Auxiliary Views
7.10.2.5. Expand Dependency to Component Level
7.10.2.6. Context Menu Interactions
7.10.2.7. View Options
7.10.3. Graph-Based System Exploration
7.10.3.1. Levels
7.10.3.2. On Demand Cycle Groups
7.10.3.3. Interaction with Auxiliary Views
7.10.3.4. Context Menu Interactions
7.10.3.5. Type Based Graph
7.10.3.6. View Options
7.10.4. Tabular System Exploration
7.10.4.1. Drilldown
7.10.4.2. Interaction with Auxiliary Views
7.10.4.3. Context Menu Interactions
7.11. Searching Elements
7.11.1. Searching Elements in Views
7.12. Detecting Duplicate Code
7.12.1. Configuration of Duplicate Code Blocks Computation
7.13. Examining the Source Code
7.13.1. Interaction with Auxiliary Views
7.14. Examining Metrics Results
7.15. Analyzing C++ Include Dependencies
7.16. Creating a Report
8. Handling Detected Issues
8.1. Using Virtual Models for Resolutions
8.2. Examining Issues
8.2.1. Identifying Issue Hotspots
8.3. Ignoring Issues
8.4. Defining Fix and TODO Tasks
8.5. Editing Resolutions
8.6. Details about Sonargraph's Resolution Matching
9. Simulating Refactorings
9.1. Creating Delete Refactorings
9.2. Creating Move/Rename Refactorings
9.3. Managing Refactorings
9.4. Best Practices
10. Defining an Architecture
10.1. Models, Components and Artifacts
10.1.1. Using other criteria to assign components to artifacts
10.1.2. List of predefined attribute retrievers
10.2. Interfaces and Connectors
10.3. Reusing Architecture Aspects
10.4. Extending Aspect Based Artifacts
10.5. Extending Interfaces or Connectors
10.6. Adding Transitive Connections
10.7. Restricting Dependency Types
10.8. Connecting Complex Artifacts
10.9. Introducing Connection Schemes
10.10. Artifact Classes
10.11. How to Organize your Code
10.12. Designing Generic Architectures Using Templates
10.12.1. Using unrestricted generated artifacts
10.12.2. Using connection schemes to regulate accessibility
10.13. Best Practices
10.14. Architecture DSL Language Specification
11. Interactive Restructuring and Code Organization
11.1. Architectural View
11.2. Assigning Elements to Artifacts
12. Extending the Static Analysis
12.1. Interaction with Auxiliary Views
12.2. Groovy Scripts from Quality Model
12.3. Creating a new Groovy Script
12.3.1. Default Parameters in a Script
12.3.2. Adding Parameters
12.3.3. Creating Run Configurations
12.4. Editing a Groovy Script
12.4.1. Auto Completion
12.4.2. Compiling a Groovy Script
12.5. Producing Results with Groovy Scripts
12.6. Running a Groovy Script Automatically
12.7. Managing Groovy Scripts
12.8. Groovy Script Best Practices
12.8.1. Only Visit What is Needed
12.8.2. Find Text in Code
13. Examining Changes
14. Defining Quality Gates
14.1. Creating Quality Gates
14.2. Using Quality Gates in the Continuous Integration (CI) Build
14.3. Current Quality Gate Limitations
15. Using Additional Plugins
15.1. Plugin Configuration
15.2. Swagger Plugin
15.3. SpotBugs Plugin
15.4. PMD Plugin
16. Build Server Integration
17. IDE Integration
17.1. Eclipse Plugin
17.1.1. Assigning a System
17.1.2. Displaying Issues and Tasks
17.1.3. Suspending / Resuming Quality Monitoring
17.1.4. Setting Analyzer Execution Level
17.1.5. Getting Back In Sync with Manual Refresh
17.1.6. Examining Changes
17.1.7. Execute Refactorings in Eclipse
17.2. IntelliJ Plugin
17.2.1. Assigning a System
17.2.2. Displaying Issues and Tasks
17.2.3. Toolbar
17.2.4. Getting Back In Sync with Manual Refresh
17.2.5. Examining Changes
17.2.6. Execute Refactorings in IntelliJ
17.3. Collaboration between Sonargraph and IDE
18. Metric Definitions
18.1. Language Independent Metrics
18.2. Java Metrics
18.3. C# Metrics
18.4. C/C++ Metrics
18.5. Python Metrics
19. How to Resolve Issues
19.1. Language Independent Issues
19.1.1. Root path does not exist
19.1.2. Duplicate Code
19.2. Java Specific Issues
19.2.1. Class file is out-of-date
19.3. C# Specific Issues
19.3.1. C# Parsing Errors
19.3.2. Project File (.csproj) Processing Failed
19.4. C/C++ Specific Issues
19.4.1. C/C++ Parsing Errors
20. FAQ
20.1. Out Of Memory Exceptions
20.2. Groovy Template
20.3. MSBuild Error (MSB4019) during Analysis of Visual Studio C# Project
21. References
22. Trademark Attributions, Library License Texts, and Source Code
23. Legal Notice
Glossary
1. Walk Through Tutorial (Java)
1.1. Workspace Definition
1.2. Basic Analysis
1.3. Advanced Analysis
1.4. Architecture: Artifacts, Aspects Files and Standard Connections
1.5. Architecture: Explicit Interfaces and Connectors
1.6. Architecture: Advanced Connections
1.7. Architecture: Advanced Aspect Files
1.8. Architecture: Referencing external Artifacts in Aspect Files
1.9. Headless Check with Sonargraph-Build
1.10. Check at Development Time with Sonargraph Eclipse Integration
2. Tutorial - Java
2.1. Setup the Software System
2.1.1. Create a new Software System
2.1.2. Define the Workspace
2.1.3. Define Module Dependencies
2.1.4. Parse the Workspace
2.2. Initial Analysis
2.2.1. Detect Problems Using Standard Metrics
2.2.2. Adjust Metric Thresholds
2.3. Problem Analysis
2.3.1. Examine Cycles
2.3.2. Examine Duplicate Code
2.3.3. Handle Issues
2.4. Detailed Dependency Analysis
2.4.1. Explore Dependencies
2.4.2. Check how Elements are Connected via Graph View
2.4.3. Check how Elements are Connected via the Dependencies View
2.4.4. Search for Elements
2.5. Advanced Analysis With Scripts
2.5.1. Create a New Script
2.5.2. Execute Existing Script
2.6. Share Results
2.6.1. Work with Snapshots
2.6.2. Define Quality Standards using Quality Models
2.6.3. Export to Excel
3. Tutorial - C#
3.1. Setup the Software System
3.2. Further Steps
4. Tutorial - C++
4.1. Setup the Software System - Compiler Definitions
4.2. Setup the Software System - Makefile Capturing
4.3. Setup the Software System - Visual Studio Import
4.4. Further Steps
5. Sonargraph Script API Documentation
Index
Search
Search Highlighter (On/Off)