Table of Contents
- 1. Motivation for Code Quality
- 2. Getting Started
- 3. Licensing
- 4. Initial Configuration
-
- 4.1. Installation and Updates
- 4.2. Help
- 4.3. Editor Preferences
- 4.4. License Server Preferences
- 4.5. Proxy Preferences
- 4.6. Update Site Preferences
- 4.7. C/C++ Compiler Definitions
- 4.8. Search Path Configuration
- 4.9. C/C++ Parser Daemon Configurations
- 4.10. C# Configuration
- 4.11. Python Configuration
- 5. Getting Familiar with the Sonargraph System Model
- 6. Creating a System
- 7. Adding Content to a System
-
- 7.1. Creating or Importing a Java Module
-
- 7.1.1. Importing Java Modules Using an Eclipse Workspace
- 7.1.2. Import Modules using the Sonargraph Gradle Plugin
- 7.1.3. Import Modules using the Sonargraph Maven Plugin
- 7.1.4. Importing Java Modules Using a Bazel Workspace
- 7.1.5. Import Modules Using the Build Unit(s) Importer
- 7.1.6. Creating a Java Module Manually
- 7.2. Creating or Importing a C++ Module
- 7.3. Creating or Importing a C# Module
- 8. Interacting with a System
-
- 8.1. User Interface Components
- 8.2. Common Interaction Patterns
- 8.3. Sonargraph Workbench
- 8.4. Getting a Quick Impression
- 8.5. Navigating through the System Components
- 8.6. Exploring the System Namespaces
- 8.7. Managing the System Files
- 8.8. Managing the Workspace
- 8.9. Analyzer Execution Level
- 8.10. Analyzing Cycles
- 8.11. Exploring the System
- 8.12. Searching Elements
- 8.13. Detecting Duplicate Code
- 8.14. Examining the Source Code
- 8.15. Examining Metrics Results
- 8.16. Analyzing C++ Include Dependencies
- 8.17. Creating a Report
- 9. Handling Detected Issues
- 10. Simulating Refactorings
- 11. Defining an Architecture
-
- 11.1. Models, Components and Artifacts
- 11.2. Interfaces and Connectors
- 11.3. Reusing Architecture Aspects
- 11.4. Extending Aspect Based Artifacts
- 11.5. Extending Interfaces or Connectors
- 11.6. Adding Transitive or Deprecated Connections
- 11.7. Restricting Dependency Types
- 11.8. Connecting Complex Artifacts
- 11.9. Introducing Connection Schemes
- 11.10. Artifact Classes
- 11.11. How to Organize your Code
- 11.12. Designing Generic Architectures Using Templates
- 11.13. Best Practices
- 11.14. Architecture DSL Language Specification
- 12. Visualizing Architecture Aspects
- 13. Interactive Restructuring and Code Organization
- 14. Examining Changes
- 15. Defining Quality Gates
- 16. Extending the Static Analysis
- 17. Using Additional Plugins
- 18. Investigating Microservice Dependencies
- 19. Build Server Integration
- 20. IDE Integration
- 21. Metric Definitions
- 22. How to Resolve Issues
- 23. FAQ
- 24. References
- 25. Trademark Attributions, Library License Texts, and Source Code
- 26. 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
- 3. Tutorial - C#
- 4. Tutorial - C++
- 5. Sonargraph Script API Documentation
- Index
List of Figures
- 1.1. Visualizing Defined Architecture and Existing Dependencies in the Architectural View
- 1.2. To Avoid: "Big Ball of Mud" Dependency Structure
- 1.3. Sonargraph Products
- 2.1. Exploration View
- 4.1. Editor Preferences
- 4.2. License Server Preferences
- 4.3. Proxy Preferences
- 4.4. Update Site Preferences
- 4.5. C++ Compiler Definition
- 4.6. Search Path Configuration
- 5.1. Physical File Structure
- 5.2. System Domain Model
- 5.3. Java Domain Model
- 5.4. C++ Domain Model
- 5.5. C# Domain Model
- 5.6. Physical Namespaces
- 5.7. Logical Namespaces
- 5.8. System-Based Logical Model
- 5.9. Module-based Logical Model
- 6.1. Marking root directories from JSON file
- 6.2. Naming modules for root directories from JSON file
- 6.3. New System with Quality Model
- 6.4. Import Quality Model
- 6.5. Export Quality Model
- 7.1. Importing Java Modules Using an Eclipse workspace
- 7.2. Importing Java Modules Using a Bazel workspace
- 7.3. Manage Root Directory Path
- 7.4. Create C/C++ System Based on Solution File Import
- 7.5. C/C++ Module Configuration
- 8.1. Tool Bar
- 8.2. Notifications Bar
- 8.3. Table with activated text filter
- 8.4. Sonargraph Workbench
- 8.5. System View
- 8.6. Navigation View
- 8.7. Namespaces View
- 8.8. Logical Model Selection
- 8.9. Files View
- 8.10. Workspace View
- 8.11. Defining a Manual Workspace Dependency
- 8.12. Defining a Manual Workspace Dependency
- 8.13. Creating Workspace Profile
- 8.14. Analyzers View
- 8.15. Cycle Groups View
- 8.16. Cycle View
- 8.17. Cycle Group shown in Exploration View
- 8.18. Cycle Breakup View
- 8.19. Highlighted Added Cyclic Elements
- 8.20. Example of Created Exploration View without Focus
- 8.21. Exploration View with Applied Focus
- 8.22. Exploration View created from Architecture Aspect showing the Levelization Mode Widget
- 8.23. Focus Dialog
- 8.24. Add to Focus Dialog
- 8.25. Graph View
- 8.26. Quick View Creation
- 8.27. Advanced View Creation Dialog
- 8.28. Focus Toolbar
- 8.29. Focus Dropdown Menu
- 8.30. Advanced Focus Dialog
- 8.31. Semantics of Colors
- 8.32. Architecture Independent Dependencies
- 8.33. Levels in Graph View
- 8.34. On Demand Cycle Groups
- 8.35. Underlying Parser Dependencies for Edge
- 8.36. Incoming and Outgoing Parser Dependencies
- 8.37. Context Menu Interactions
- 8.38. Show Type-based Graph view
- 8.39. Type-based Graph
- 8.40. View Options
- 8.41. Treemap 2D View
- 8.42. Treemap 3D View
- 8.43. Treemap Configuration
- 8.44. Treemap configuration 3D
- 8.45. Treemap Issue Collector
- 8.46. Treemap Info View
- 8.47. Multi-Selection in Treemap Info View
- 8.48. Dependencies View
- 8.49. Drilling Down Dependencies
- 8.50. Interaction with Auxiliary Views
- 8.51. Context Menu Interactions
- 8.52. Standard Search Dialog
- 8.53. Search Dialog to Locate Members
- 8.54. Text Search in Views
- 8.55. Duplicate Blocks View
- 8.56. Duplicates Source View
- 8.57. Source View
- 8.58. Hyperlinking and Find Text Features in Source View
- 8.59. Metrics View
- 8.60. Metrics Histogram
- 8.61. Element Metrics View
- 8.62. Metric Thresholds Configuration
- 8.63. C++ Include Dependency View
- 8.64. Table Filter Options in HTML Report
- 9.1. Virtual Models
- 9.2. Issues View
- 9.3. Filter Issues
- 9.4. Ranking of Issues
- 9.5. Issue Hotspots Treemap Visualization
- 9.6. Ignore View
- 9.7. Resolution Dialog
- 10.1. Refactorings View
- 11.1. Architecture View
- 11.2. Architecture of the order management micro service
- 11.3. Layering of a subsystem
- 12.1. DSL Example
- 12.2. Generate UML Component Diagram
- 12.3. UML Component Diagram
- 12.4. Cross-check the JDBC Component
- 12.5. Cross-check the License Component
- 13.1. Artifact Filter
- 14.1. System Diff View (Issues)
- 14.2. System Diff View (Cycle Groups)
- 14.3. HTML Diff Report
- 15.1. Quality Gate View
- 15.2. Current System Condition Dialog
- 15.3. Baseline Issue Condition Dialog
- 15.4. Baseline Metric Condition Dialog
- 15.5. Exclude Filter Dialog
- 16.1. Script View
- 16.2. Quality Model
- 16.3. New Script
- 16.4. Parameter Definition
- 16.5. Parameter Usage in Script
- 16.6. Create Run Configuration
- 16.7. Auto Completion
- 16.8. Script View Marker
- 16.9. Script View Marker Tooltip
- 16.10. Script View Elements Tab
- 16.11. Script View Tree Tab
- 16.12. Script View Issues Preview
- 16.13. Script View Metrics Preview
- 16.14. Script Runner
- 17.1. Spring Microservices Plugin Web Call (above) and Web Resource (below)
- 17.2. Architecture Violations for Dependencies between Plugin Elements
- 18.1. Exploring Microservice Dependencies
- 20.1. Status Icon
- 20.2. Open Sonargraph System
- 20.3. Show Issues in Problems View
- 20.4. Problems View Configuration for Sonargraph Issues
- 20.5. Context Menu To Open Sonargraph Cycle Groups View
- 20.6. Sonargraph Issues in Eclipse with Baseline Applied
- 20.7. Open Sonargraph System
- 20.8. Sonargraph Tool Window
- 20.9. Sonargraph Issues in IntelliJ with Baseline Applied
- 20.10. Fixing a Detected Issue in the IDE
- 20.11. Selecting Elements for Inspection in Sonargraph
- 2.1. New Manual System Wizard
- 2.2. Root Directories Dialog
- 2.3. Workspace View
- 2.4. Workspace View After Parsing
- 2.5. Metrics View
- 2.6. Metrics View Highlighting Thresholds Violations
- 2.7. Filter Issues
- 2.8. Cycle Groups View
- 2.9. Cycle View
- 2.10. Duplicate Code Blocks View
- 2.11. Duplicate Source View
- 2.12. Add TODO Issue
- 2.13. Resolutions View
- 2.14. Open in Exploration View
- 2.15. Exploration View Drilldown
- 2.16. Exploration View Interactions
- 2.17. Graph View
- 2.18. Graph View Interactions
- 2.19. Dependencies View
- 2.20. Create a New Script
- 2.21. Execute a Script
- 2.22. Export Metrics to Excel Context Menu
- 3.1. System based on C# Visual Studio Solution File
- 3.2. Select C# Solution File, Configuration and Platform
- 3.3. Select C# Solution File, Configuration and Platform
- 4.1. Specify Visual Studio Solution File
- 4.2. MSBuild Exception
- 4.3. Parse Error (Missing Header File)