Introducing Lattix

20
Introducing By Innocent Akhidenor & Ahmed Ibrahim ECE 750 - Fall 2013

description

Lattix: software architecture recovery and visualization tool

Transcript of Introducing Lattix

Page 1: Introducing Lattix

Introducing

By

Innocent Akhidenor & Ahmed Ibrahim

ECE 750 - Fall 2013

Page 2: Introducing Lattix

The Microsoft IIS Structure

Source: VisualComplexity.com

Architecture Recovery

Lattix LDM, founded to visualize and manage the architecture of complex software

systems

Page 3: Introducing Lattix

Dependency Model

• A Dependency Model is the representation of the architecture of a system. It consists of:

• An ordered hierarchical decomposition of the System into its Subsystems

• Display of current dependencies between Subsystems

• Design Rules for allowable dependencies between Subsystems

Page 4: Introducing Lattix

Dependency Structure Matrix (DSM)

• Class Reference - A

reference to a class or

object, but not to any of the

objects members.

• Invokes - A method call

• Inherits - A reference to a

superclass, or to Interface

implemented

• Data Member Reference -

A reference to a variable of

a class / object

Page 5: Introducing Lattix

Design Rules

• Each cell in a DSM represents a “design intent”

• Dependency Model = DSM + Design Rules

DSM with Rules View

Green Triangle – Dependency Acceptable

Yellow Triangle – Dependency Unacceptable

Red Triangle – Rule Violation Discovered

Page 6: Introducing Lattix

Why Lattix ?

• Create a system blueprint by mapping dependencies across the various domains of the system

• Analyze, optimize, and specify the system architecture through the DSM, diagrams, and dependency rules

• Identify dependencies which violate the architecture

• Identify and explore opportunities to improve the modularity of the system

• Measure quality with key metrics and track changes to the system architecture over time

• Assess the impact and risk of proposed changes to the system

Page 7: Introducing Lattix

Using Lattix

1. Create a initial DSM of your Application

2. Organize the DSM to reflect the Intended Architecture

3. Design Rules: Specify External Library Usage

4. Design Rules: Specify Application Interdependencies

5. Print out the DSM and the Conceptual Architecture

Page 8: Introducing Lattix

Case Study

Page 9: Introducing Lattix

Example /1

Case study:

Page 10: Introducing Lattix

Example /2

Subsystem with

internal dependenciesThe (N x N) matrix shows

how each subsystem is

related to every other

subsystem

Page 11: Introducing Lattix

Architecture Patterns using DSM 1/3

Layered System

Page 12: Introducing Lattix

Architecture Patterns using DSM 2/3

Strictly Layered System

Page 13: Introducing Lattix

Architecture Patterns using DSM 3/3

Page 14: Introducing Lattix

Example /3

Page 15: Introducing Lattix

Demo...Please

Okay

Page 16: Introducing Lattix

Example /1

Case study:

Page 17: Introducing Lattix
Page 18: Introducing Lattix

Recommended Reading

Design Structure Matrix

Methods and

Applications by

Steven Eppinger,

2012

Page 19: Introducing Lattix

Questions?

Page 20: Introducing Lattix

References

1. N. Sangal, E. Jordan, V. Sinha, and D. Jackson, “Using Dependency Models to Manage Complex Software Architecture,” Proc. 20th Conf. Object Oriented Programming, Systems, Languages, and Applications, 2005