Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
DependencyStructure Matrix for software architecture<br />Han van Roosmalen Softwarediensten<br />P. Flintstraat 7, NL 741...
Agenda<br />Introduction Han van Roosmalen<br />What is and Why use a Dependency Structure Matrix?<br />How to use a DSM f...
Han van Roosmalen Softwarediensten<br />Self-employed software architect<br />Software development since 1984<br />Design ...
Origin of DSM<br />Initial development on DSM theory in early seventies (MIT Boston)<br />Extensive usage in engineering f...
DSM has proven additional value, when:<br />Desired modifications cannot be done efficiently because there is a lack of in...
Types of DSMs<br />
Applicability of DSM<br />Impact analysis<br />Software architecture management<br />Estimations<br />Architecture design<...
Definition of Software Architecture<br />It is the definition of its subsystems, their externally visible properties and h...
Concept<br />Initial DSM<br />The Diagonal<br />Partitioning<br />Hiearchy<br />
Example: Java Applet<br />How bad can you build an applet???<br />Because – requirements:<br /><ul><li>Recoverable upload
Secure
Multi-language</li></ul>Intended Architecture<br />Realised Architecture<br />
Approach<br />Create initial DSM<br />What has to beloadedforinspection<br />Demonstrate how it should be<br />Create Inte...
Partitioning algorithms (1)<br />Partitioning on Strength and Reach ability<br />Ordering in DSM is done by mineralizing t...
Partitioning algorithms (2)<br />Ordering is done in such a way that providers and users are brought together, though part...
Layered System<br />ArchitecturalPatterns (1)<br />Imperfectlylayered<br />System<br />
ChangePropagator<br />Architectural Patterns (2)<br />Private Components<br />Notvisibleoutside “domain”<br />
ExampleDependency View of Eclipse<br />
Dependency Kinds<br />Dependency Kinds improveinsght in different kinds of dependencies:<br />Easier to understand the ori...
Design Rules<br />DSM with Rules View<br />Green Triangle – Dependency Acceptable<br />Yellow Triangle – Dependency Unacce...
Metrics for Architecture<br />Instability, Abstractness and Distance (Robert Martin)<br />System Stability - average impac...
Lattix Toolsuite<br />
Lattix Support For..<br />Platform/technology support:<br />Ada<br />C/C++ (managed/unmanaged)<br />.NET<br />Java, Hibern...
Insight, governance and oversight<br />Decisions at<br />Implementation <br />Level<br />INZICHT<br />Accountability<br />...
Scenarios<br />Architecture Discovery<br />What is the complexity of the system?<br />What is the structure of the current...
Upcoming SlideShare
Loading in …5
×

Dsm presentation (english)

2,237 views

Published on

Introduction to Dependency Structure Matrix usage in software projects.

Published in: Education, Technology, Business

Dsm presentation (english)

  1. 1. DependencyStructure Matrix for software architecture<br />Han van Roosmalen Softwarediensten<br />P. Flintstraat 7, NL 7412 JV Deventer<br />06-10148933<br />0570-546083<br />
  2. 2. Agenda<br />Introduction Han van Roosmalen<br />What is and Why use a Dependency Structure Matrix?<br />How to use a DSM for Software Architecture?<br />How can Lattix LDM/LDC help you?<br />
  3. 3. Han van Roosmalen Softwarediensten<br />Self-employed software architect<br />Software development since 1984<br />Design software architectures/systems<br />Analyze legacy systems<br />Companies: <br />Philips Consumer Electronics/Medical Systems, ASML, Océ, Nucletron, Peek Traffic, Thales, Surfnet/Kennisnet, CRV, Fibor Packaging<br />Embedded, Administrative, Web-based<br />Promote simple engineering methods<br />Working with DSMs since 2005 and Lattix<br />…. voor Inzicht, Toezicht en Overzicht<br />
  4. 4. Origin of DSM<br />Initial development on DSM theory in early seventies (MIT Boston)<br />Extensive usage in engineering for complex systems<br />Large adoption in assembly industry, such as:<br />Boeing, Airbus<br />Fiat, Ferrari, Rolce Royce, BMW, Audi, Mercedes<br />Nasa<br />BP<br />Since 2004 for management of software architecture<br />
  5. 5. DSM has proven additional value, when:<br />Desired modifications cannot be done efficiently because there is a lack of in- and oversight of the system and subsystems.<br />Need for insight during distributed development. Need for communication about design and architectural concepts and decisions. (e.g. multi-site, off-shoring development)<br />Questions of complexity during migration and integration of (third-party) components, due to lack of insight in frameworks, libraries and off-the-shelf components. <br />Degradation of quality of (architectural) design, due to changes and addition of functionality, lack-off knowledge, increasing complexity.<br />Day-to-day Challenges<br />
  6. 6. Types of DSMs<br />
  7. 7. Applicability of DSM<br />Impact analysis<br />Software architecture management<br />Estimations<br />Architecture design<br />Architecture (re)discovery<br />Software integration<br />Testing<br />
  8. 8. Definition of Software Architecture<br />It is the definition of its subsystems, their externally visible properties and how the subsystems relate to each other.<br />“A common language and shared vision”*<br />*SEI CMMI Tutorial “How is a Model Used?”<br />
  9. 9. Concept<br />Initial DSM<br />The Diagonal<br />Partitioning<br />Hiearchy<br />
  10. 10. Example: Java Applet<br />How bad can you build an applet???<br />Because – requirements:<br /><ul><li>Recoverable upload
  11. 11. Secure
  12. 12. Multi-language</li></ul>Intended Architecture<br />Realised Architecture<br />
  13. 13. Approach<br />Create initial DSM<br />What has to beloadedforinspection<br />Demonstrate how it should be<br />Create Intended Architecture<br />Which dependencies can be removed<br />Create structure<br />Improve build order<br />Identify possibilities for improvement<br />ExternalLibrariesLayering/<br />Components<br />Make rules and follow them <br />11<br />
  14. 14. Partitioning algorithms (1)<br />Partitioning on Strength and Reach ability<br />Ordering in DSM is done by mineralizing the number of dependencies in the upper triangular (upper triangular weight)<br />Greedy algorithm makes sure that providers (are called by above laying callers) are put underneath<br />Supports layering of the system<br />
  15. 15. Partitioning algorithms (2)<br />Ordering is done in such a way that providers and users are brought together, though partitioning based on strength is taken into account<br />Supports the separation of subsystems into packages and classes<br />
  16. 16. Layered System<br />ArchitecturalPatterns (1)<br />Imperfectlylayered<br />System<br />
  17. 17. ChangePropagator<br />Architectural Patterns (2)<br />Private Components<br />Notvisibleoutside “domain”<br />
  18. 18. ExampleDependency View of Eclipse<br />
  19. 19. Dependency Kinds<br />Dependency Kinds improveinsght in different kinds of dependencies:<br />Easier to understand the origing of each kind in isolation<br />Analyse the DSM forspecific types of dependencies (e.g. inheritance versus methodcall)<br />Insight in scope of refactoring (e.g. weakdependencies are easier to remove) <br />Specification of rulesbased on dependency kinds (e.g. do notallow inter-schema tablereferences) <br />
  20. 20. Design Rules<br />DSM with Rules View<br />Green Triangle – Dependency Acceptable<br />Yellow Triangle – Dependency Unacceptable<br />Red Triangle – Rule Violation Discovered<br />Each cell in a DSM represents a “design intent”<br />Dependency Model = DSM + Design Rules<br />
  21. 21. Metrics for Architecture<br />Instability, Abstractness and Distance (Robert Martin)<br />System Stability - average impact of change (IBM)<br />Deviation from Conceptual (Lattix)<br />
  22. 22. Lattix Toolsuite<br />
  23. 23. Lattix Support For..<br />Platform/technology support:<br />Ada<br />C/C++ (managed/unmanaged)<br />.NET<br />Java, Hibernate, Spring<br />Delphi Pascal<br />Oracle (database + PL/SQL)<br />Microsoft SQL Server 2000, 2005<br />Sybase<br />AdobeActionScript<br />XMI (System Architect, Rhapsody)<br />LDI<br />Lattix Software Development Kit (SDK) <br />SDK Kit containsexampledriverforretrievingdependencies<br />Lattix as plug-in for Eclipse/Visual Studio<br />Multi Environment DSM<br />
  24. 24. Insight, governance and oversight<br />Decisions at<br />Implementation <br />Level<br />INZICHT<br />Accountability<br />Decisions at <br />Tactical Level<br />Reproducibility<br />TOEZICHT<br />Decisions at<br />Strategic Level<br />OVERZICHT<br />Innovative<br />
  25. 25. Scenarios<br />Architecture Discovery<br />What is the complexity of the system?<br />What is the structure of the current system?<br />Which dependencies are there?<br />How can we teach a new teammember?<br />…<br />Architecture Refactoring<br />Which parts of the system must be modified?<br />Which includes/namespaces are being used, which are not?<br />How can a team member see how to move with the architecture?<br />…<br />Architecture Control<br />How can future modification to the architecture be controlled?<br />How can a team member see what is (dis)allowed?<br />…<br />Service/Component Extraction<br />Which parts of the system can be extracted into a service or a loosely coupled component?<br />How can a team member see which parts belong to a service/component?<br />…<br />Impact Analyse<br />What is the impact of a change?<br />Which parts of the system use the parts that is going to be changed?<br />How does a team member find out what the consequences of his activities are?<br />Test strategy/efficiency<br />Which parts of the system are easier (stand-alone) to be tested?<br />How can a team member develop better unit tests?<br />
  26. 26. Nice Words<br />What is being said about DSM and Lattix:<br />"That´s what impressed me about the Lattix tool: ease of use, quick results, simple concept (DSM)...A DSM view on software is merciless in its clarity. You don´t get mired in tedious layout work, but rather the tool strips naked the software you throw at it."<br />Ralf Westphal, Long-time .NET Consultant/AuthorMicrosoft Visual Developer Solution Architect MVP<br />“If everyday I would learn as much as in one day with Lattix of our system. We would be out of trouble in a month."<br />WimSchonkeren, Principal Architect Embedded Optics Software<br />Marvell<br />“Lattix LDM intuitively lets you sort through the maze to disentangle even the worst results of system evolution.”<br />James Gosling VP and Fellow<br />Sun Microsystems<br />“I really woke up during your workshop and now I consider extending Lattix to put even more valuable information in the DSM."<br />Anton Lap, Architect<br />Universal Music Group<br />The eBay marketplace runs on a very large global software stack... We have worked with Lattix to incorporate new features in Lattix 4.0 that enables us to effectively modularize and maintain our large codebase.“<br />Vijay RaghavendraDirector of Platform Team, eBay, Inc.<br />
  27. 27. Feedback and Questions<br />Applicable in your situation?<br />What could be an approach to try DSMs?<br />What could be objections from using it?<br />Han van Roosmalen<br />han@hanvanroosmalen.nl<br />+31 6-10148933<br />+31 570-546083<br />

×