Dsm presentation (english)

Preview:

DESCRIPTION

Introduction to Dependency Structure Matrix usage in software projects.

Citation preview

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 Roosmalenhan@hanvanroosmalen.nl

+31 6-10148933+31 570-546083

Recommended