introducing lattix
DESCRIPTION
Lattix: software architecture recovery and visualization toolTRANSCRIPT
![Page 1: Introducing Lattix](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/1.jpg)
Introducing
By
Innocent Akhidenor & Ahmed Ibrahim
ECE 750 - Fall 2013
![Page 2: Introducing Lattix](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/8.jpg)
Case Study
![Page 9: Introducing Lattix](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/9.jpg)
Example /1
Case study:
![Page 10: Introducing Lattix](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/10.jpg)
Example /2
Subsystem with
internal dependenciesThe (N x N) matrix shows
how each subsystem is
related to every other
subsystem
![Page 11: Introducing Lattix](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/11.jpg)
Architecture Patterns using DSM 1/3
Layered System
![Page 12: Introducing Lattix](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/12.jpg)
Architecture Patterns using DSM 2/3
Strictly Layered System
![Page 13: Introducing Lattix](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/13.jpg)
Architecture Patterns using DSM 3/3
![Page 14: Introducing Lattix](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/14.jpg)
Example /3
![Page 15: Introducing Lattix](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/15.jpg)
Demo...Please
Okay
![Page 16: Introducing Lattix](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/16.jpg)
Example /1
Case study:
![Page 17: Introducing Lattix](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/17.jpg)
![Page 18: Introducing Lattix](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/18.jpg)
Recommended Reading
Design Structure Matrix
Methods and
Applications by
Steven Eppinger,
2012
![Page 19: Introducing Lattix](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/19.jpg)
Questions?
![Page 20: Introducing Lattix](https://reader034.vdocuments.mx/reader034/viewer/2022052322/55798f6fd8b42ae72b8b4a7b/html5/thumbnails/20.jpg)
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