SlideShare uma empresa Scribd logo
1 de 25
DependencyStructure Matrix for software architecture Han van Roosmalen Softwarediensten P. Flintstraat 7, NL 7412 JV Deventer 06-10148933 0570-546083
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?
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
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
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
Types of DSMs
Applicability of DSM Impact analysis Software architecture management Estimations Architecture design Architecture (re)discovery Software integration Testing
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?”
Concept Initial DSM The Diagonal Partitioning Hiearchy
Example: Java Applet How bad can you build an applet??? Because – requirements: ,[object Object]
Secure
Multi-languageIntended Architecture Realised Architecture
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
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
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
Layered System ArchitecturalPatterns (1) Imperfectlylayered System
ChangePropagator Architectural Patterns (2) Private Components Notvisibleoutside “domain”
ExampleDependency View of Eclipse
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)
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
Metrics for Architecture Instability, Abstractness and Distance (Robert Martin) System Stability - average impact of change (IBM) Deviation from Conceptual (Lattix)
Lattix Toolsuite
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
Insight, governance and oversight Decisions at Implementation  Level INZICHT Accountability Decisions at  Tactical Level Reproducibility TOEZICHT Decisions at Strategic Level OVERZICHT Innovative
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?

Mais conteúdo relacionado

Semelhante a Dsm presentation (english)

Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)
stanbridge
 
1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docx
1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docx1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docx
1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docx
felicidaddinwoodie
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2
bmercer
 

Semelhante a Dsm presentation (english) (20)

ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon Brown
 
Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepins
 
Software Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionSoftware Architecture: introduction to the abstraction
Software Architecture: introduction to the abstraction
 
Tools and Virtualization to Manage our Operations at Puppet Labs - PuppetConf...
Tools and Virtualization to Manage our Operations at Puppet Labs - PuppetConf...Tools and Virtualization to Manage our Operations at Puppet Labs - PuppetConf...
Tools and Virtualization to Manage our Operations at Puppet Labs - PuppetConf...
 
Modern apps with dcos
Modern apps with dcosModern apps with dcos
Modern apps with dcos
 
A tlm based platform to specify and verify component-based real-time systems
A tlm based platform to specify and verify component-based real-time systemsA tlm based platform to specify and verify component-based real-time systems
A tlm based platform to specify and verify component-based real-time systems
 
GOTO Berlin 2016
GOTO Berlin 2016GOTO Berlin 2016
GOTO Berlin 2016
 
From Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesFrom Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems Architectures
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)
 
Innovate2011 DevOps TSRM RTC
Innovate2011 DevOps TSRM RTCInnovate2011 DevOps TSRM RTC
Innovate2011 DevOps TSRM RTC
 
L02 Architecture
L02 ArchitectureL02 Architecture
L02 Architecture
 
Let's talk about... Microservices
Let's talk about... MicroservicesLet's talk about... Microservices
Let's talk about... Microservices
 
Documentation
DocumentationDocumentation
Documentation
 
Fed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpFed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype Dcphp
 
1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docx
1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docx1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docx
1Lesson 5.3UML Deployment DiagramsLesson 5.2Distribu.docx
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2
 
Linux Assignment 3
Linux Assignment 3Linux Assignment 3
Linux Assignment 3
 
Moving to Microservices with the Help of Distributed Traces
Moving to Microservices with the Help of Distributed TracesMoving to Microservices with the Help of Distributed Traces
Moving to Microservices with the Help of Distributed Traces
 

Último

Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
 

Último (20)

Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 

Dsm presentation (english)

  • 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
  • 7. Applicability of DSM Impact analysis Software architecture management Estimations Architecture design Architecture (re)discovery Software integration Testing
  • 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?”
  • 9. Concept Initial DSM The Diagonal Partitioning Hiearchy
  • 10.
  • 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
  • 16. Layered System ArchitecturalPatterns (1) Imperfectlylayered System
  • 17. ChangePropagator Architectural Patterns (2) Private Components Notvisibleoutside “domain”
  • 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