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