Date post: | 19-Jun-2015 |
Category: |
Education |
Upload: | han-van-roosmalen |
View: | 1,741 times |
Download: | 0 times |
DEPENDENCY STRUCTURE MATRIX FOR SOFTWARE ARCHITECTURE
Han van Roosmalen Softwarediensten
P. Flintstraat 7, NL 7412 JV Deventer06-101489330570-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
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
Applicability of DSM
Impact analysis
Estimations
Architecture design
Software architecture management
Software integration
Testing
Architecture (re)discover
y
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
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
Example: Java Applet
• How bad can you build an applet???• Because – requirements:
• Recoverable upload• Secure• Multi-language
Intended Architecture Realised Architecture
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
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
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
Architectural Patterns (1)
Layered System
Imperfectly layered System
Architectural Patterns (2)
ChangePropagator
Private Components
Not visible outside
“domain”
Example Dependency View of Eclipse
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)
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
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
Lattix Toolsuite
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
Insight, governance and oversight
INZICHT
TOEZICHT
OVERZICHTDecisions at
Strategic Level
Decisions at Tactical Level
Decisions atImplementation
Level
Accountability
Reproducibility
Innovative
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?
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.
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