Services & Workshops

A typical workshop starts with automatic measuring and visualization of your software system. The as-is-architecture gets visible; violations against your architectural principles are identified; quality flaws within your system are detected; components with poor modularity are revealed that slow down your development efforts. Based on the findings, solutions are worked out and discussed.




Software Diagnostics training rooms (photo below) at the FX Center (photo right above) and campus of our partner- the Hasso Plattner Institute (photo left above)


Workshop Content

Software maintenance - requirements and challenges

  • Software maintenance as a core task (legacy systems, software complexity , software life cycles)
  • Software quality (rigidity, fragility, immobility, viscosity, needless complexity, needless repetition, opacity)
  • Software architecture (modeling vs. implementation, architecture recovery, conformance checking)
  • Software documentation (best practice, tools, benefits, risks)
  • Software metrics (quality metrics, metrics for object oriented systems)

Best practices for maintenance and refactoring of complex software systems

  • Software modularization (modular design, loose coupling, change impact) and software APIs (design, change impact, dependencies)
  •  Software design patterns (design pattern catalogues, anti-patterns, design smells)
  • Aspect-oriented programming
  • Software code refactoring (how to improve abstraction, modularization, naming conventions)
  • Software testing (coverage, automation, unit testing, developer testing, black/gray/white-box testing)
  • Software debugging (forward debugging, reverse debugging)

Software visualization - techniques  and tools

  • Data preparation of existing systems (Fact-Extraction, Code Instrumentation)
  • Data mining for massive software system data
  • Visualization of the actual software architecture, software mapping
  • Visualization of code changes and development process information
  • Visualization of the dynamics in a software system
  • Visualization of execution traces
  • Tools for software visualization

Duration
1-2 days

Additionally, we offer continuous quality monitoring for software systems: 

Those workshops assess software quality regularly. Measurements of the system’s quality attributes are taken and evaluated. With quality monitoring, implemented measures for improving software quality are monitored for their effectiveness. Additionally, tendencies towards quality attributes getting worse are detected in an early stage. Countermeasures are proposed and discussed.