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,185 views

Published on

Introduction to Dependency Structure Matrix usage in software projects.

Published in: Education, Technology, Business
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total views
2,185
On SlideShare
0
From Embeds
0
Number of Embeds
61
Actions
Shares
0
Downloads
58
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

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 />

×