Training Course: Software Design and Architecture Health Management using DV8
Software Design Training Course:
Managing Software Design and Architecture Health to boost development velocity and software quality
Target Audience:
Software professionals with programming and design experience.
Schedule:
Three sessions, 2-hour each.
Learning Objectives:
By the end of this course, participants will be able to:
- Understand software design principles.
- Visualize, measure, monitor, and measure software quality and productivity.
- Understand and visualize design patterns and anti-patterns.
- Identify true design debt and analyze return on investment.
Course Outline:
Module 1: Foundations of Software Design and Architecture (1 hour)
-
Design Principles
- Making decisions in a principled way
- Core design principles for value addition
- The Power of Abstraction and the Value of Modularity
-
Design Structure Matrix (DSM)
- Understand and model software dependencies
- Understand and assess design structures
- Design rules and modules in a DSM
Module 2: Visualize Design Principles (1 hour)
-
Design Principles in DSM
- Information Hiding in DSM
- SOLID in DSM
- Design Rule Space
-
Design Patterns in DSM
- Design patterns overview
- Design Rule in patterns
- Modules created by patterns
Module 3: Monitoring and Measuring (1 hour)
-
Software Metrics
- Code metrics: LOC, cyclomatic complexity, etc.
- Design metrics: propagation cost (PC) and Decoupling Level (DL) (m-score)
-
Monitor Software Evolution
- Monitor design structure evolution
- Monitor productivity and quality evolution
Module 4: Design/Architecture Debt (1 hour)
-
Identify True Debt
- Technical debt overview
- Design/Architecture anti-patterns/hotspot
- Static code analysis tools (e.g., SonarQube, ESLint).
-
Quantify Design Debt
- Calculate debt penalty
- Calculate return on investment (ROI)
-
How to Remove Design Debt
- Improve/introduce design rules and modules based on future change expectations
Module 5: Industrial Case Studies (1 hour)
- ABB (2018)—Compare and Measure Multiple projects.
- Brightsquid (2019)—Make refactoring decisions and assess refactoring outcome.
- Google (2025)—Monitor complexity, productivity, and developer sentiment.
Module 6: Hands-on Analysis / Presentation (1 hour)
- Model a real project using DV8
- Measure design structure and productivity
- Identify design debt
Materials Provided:
- Pre-configured repositories for in-class examples/exercises.
- Book chapters
- State-of-the-art research publications