Dsm presentation (english)
-
Upload
han-van-roosmalen -
Category
Education
-
view
1.739 -
download
0
description
Transcript of Dsm presentation (english)
![Page 1: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/1.jpg)
DEPENDENCY STRUCTURE MATRIX FOR SOFTWARE ARCHITECTURE
Han van Roosmalen Softwarediensten
P. Flintstraat 7, NL 7412 JV Deventer06-101489330570-546083
![Page 2: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/2.jpg)
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?
![Page 3: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/3.jpg)
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
![Page 4: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/4.jpg)
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
![Page 5: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/5.jpg)
• 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
![Page 6: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/6.jpg)
Types of DSMs
DSM Data Types
Usage Domain Analysis method
Component based
Multi-component relationship
System architecture definition, engineering and design
Clustering
Team basedMulti-team interface characteristics
Organisational design, interface management, team integration
Clustering
Activity based
Activity input/output relationship
Project scheduling, activity sequencing, cycle time reduction
Sequencing & Partitioning
Parameter based
Parameter decision points and required sequence
Sequencing of detail en set-up of process
Sequencing & Partitioning
![Page 7: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/7.jpg)
Applicability of DSM
Impact analysis
Estimations
Architecture design
Software architecture management
Software integration
Testing
Architecture (re)discover
y
![Page 8: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/8.jpg)
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?”
![Page 9: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/9.jpg)
Concept
1 2 3 4
1 X X
2 X
3 X X
4
Module A
Module B
Module C
Module D
1 2 3
1
2 X
3 X
Module D
Module A-C
Module B
1 2 3 4
1
2 X X
3 X X
4 X
Module D
Module A
Module C
Module B
1 2 3 4
1
Module A 2 X X
Module C 3 X X
4 X Module B
A-C
Module D
Initial DSM The Diagonal
Partitioning Hiearchy
![Page 10: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/10.jpg)
Example: Java Applet
• How bad can you build an applet???• Because – requirements:
• Recoverable upload• Secure• Multi-language
Intended Architecture Realised Architecture
![Page 11: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/11.jpg)
Approach
11
Create initial DSM
Create Intended Architecture
Identify possibilities for improvement
Make rules and follow them
What has to be loaded for inspection
Demonstrate how it should be
Which dependencies can be removedCreate structureImprove build order
External LibrariesLayering/Components
![Page 12: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/12.jpg)
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 underneathSupports layering of the system
![Page 13: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/13.jpg)
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 accountSupports the separation of subsystems into packages and classes
![Page 14: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/14.jpg)
Architectural Patterns (1)
Layered System
Imperfectly layered System
![Page 15: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/15.jpg)
Architectural Patterns (2)
ChangePropagator
Private Components
Not visible outside
“domain”
![Page 16: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/16.jpg)
Example Dependency View of Eclipse
![Page 17: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/17.jpg)
Dependency Kinds
• Dependency Kinds improve insght in different kinds of dependencies:
Easier to understand the origing of each kind in isolationAnalyse the DSM for specific types of dependencies (e.g. inheritance versus method call)Insight in scope of refactoring (e.g. weak dependencies are easier to remove) Specification of rules based on dependency kinds (e.g. do not allow inter-schema table references)
![Page 18: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/18.jpg)
Design Rules
DSM with Rules ViewGreen 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
![Page 19: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/19.jpg)
Metrics for Architecture
• Instability, Abstractness and Distance (Robert Martin)
• System Stability - average impact of change (IBM)
• Deviation from Conceptual (Lattix)
Architectural Violation Count
0
2
4
6
8
10
12
14
16
18
20
1.4.1 1.5.1 1.6.1
Ant Versions
Architecture Metric: System Stability
65%
70%
75%
80%
85%
90%
95%
100%
1.4.1 1.5.1 1.6.1
Ant Versions
![Page 20: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/20.jpg)
Lattix Toolsuite
![Page 21: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/21.jpg)
Lattix Support For..
• Platform/technology support:AdaC/C++ (managed/unmanaged).NETJava, Hibernate, SpringDelphi PascalOracle (database + PL/SQL)Microsoft SQL Server 2000, 2005SybaseAdobe ActionScriptXMI (System Architect, Rhapsody)LDI
• Lattix Software Development Kit (SDK) SDK Kit contains example driver for retrieving dependencies
• Lattix as plug-in for Eclipse/Visual Studio
• Multi Environment DSM
![Page 22: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/22.jpg)
Insight, governance and oversight
INZICHT
TOEZICHT
OVERZICHTDecisions at
Strategic Level
Decisions at Tactical Level
Decisions atImplementation
Level
Accountability
Reproducibility
Innovative
![Page 23: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/23.jpg)
Scenarios
• Architecture DiscoveryWhat 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 RefactoringWhich 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 ControlHow can future modification to the architecture be controlled?How can a team member see what is (dis)allowed?…
• Service/Component ExtractionWhich 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 AnalyseWhat 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/efficiencyWhich parts of the system are easier (stand-alone) to be tested?How can a team member develop better unit tests?
![Page 24: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/24.jpg)
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."
Wim Schonkeren, Principal Architect Embedded Optics SoftwareMarvell
“Lattix LDM intuitively lets you sort through the maze to disentangle even the worst results of system evolution.”
James Gosling VP and FellowSun 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, ArchitectUniversal 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.
![Page 25: Dsm presentation (english)](https://reader036.fdocuments.us/reader036/viewer/2022081502/558357d6d8b42a68138b4dc2/html5/thumbnails/25.jpg)
Feedback and Questions
• Applicable in your situation?• What could be an approach to try DSMs?• What could be objections from using it?
Han van [email protected]
+31 6-10148933+31 570-546083