+ All Categories
Home > Education > Dsm presentation (english)

Dsm presentation (english)

Date post: 19-Jun-2015
Category:
Upload: han-van-roosmalen
View: 1,741 times
Download: 0 times
Share this document with a friend
Description:
Introduction to Dependency Structure Matrix usage in software projects.
Popular Tags:
25
DEPENDENCY STRUCTURE MATRIX FOR SOFTWARE ARCHITECTURE Han van Roosmalen Softwarediensten P. Flintstraat 7, NL 7412 JV Deventer 06-10148933 0570-546083
Transcript
Page 1: Dsm presentation (english)

DEPENDENCY STRUCTURE MATRIX FOR SOFTWARE ARCHITECTURE

Han van Roosmalen Softwarediensten

P. Flintstraat 7, NL 7412 JV Deventer06-101489330570-546083

Page 2: Dsm presentation (english)

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)

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)

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)

• 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)

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)

Applicability of DSM

Impact analysis

Estimations

Architecture design

Software architecture management

Software integration

Testing

Architecture (re)discover

y

Page 8: Dsm presentation (english)

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)

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)

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)

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)

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)

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)

Architectural Patterns (1)

Layered System

Imperfectly layered System

Page 15: Dsm presentation (english)

Architectural Patterns (2)

ChangePropagator

Private Components

Not visible outside

“domain”

Page 16: Dsm presentation (english)

Example Dependency View of Eclipse

Page 17: Dsm presentation (english)

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)

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)

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)

Lattix Toolsuite

Page 21: Dsm presentation (english)

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)

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)

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)

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)

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


Recommended