113
Técnicas Basadas en Matriz de Estructura de Diseño Agustín Ramos Fonseca Sunday, July 7, 13

Técnicas basadas en matriz de estructura de diseño

Embed Size (px)

DESCRIPTION

http://sg.com.mx/sgce/2013/sessions/t%C3%A9cnicas-basadas-matriz-estructura-dise%C3%B1o Los modelos nos ayudan a razonar de manera más sencilla cierto aspecto de un sistema. Dibujar dos rectángulos sobre una hoja de papel unidos por una línea es una herramienta poderosa, ya que al introducir una abstracción nos ayuda a razonar sin necesidad de tanto detalle y a comunicar sin necesidad de tantas palabras. En el mundo del software, los modelos que gran cantidad de desarrolladores utilizamos se limitan a los existentes en UML o similares. Pero hay un problema: cuando el objetivo es diseñar o analizar estructuras grandes y complejas, estos modelos a menudo resultan incomprensibles. ¿Qué hacer? Buscar otro tipo de modelos. La matriz de estructura de diseño (DSM, por sus siglas en inglés) es una representación compacta de la estructura de un sistema, la cual es susceptible a análisis visual e interactivo, pero también a la aplicación de algoritmos provenientes en su mayoría de la teoría de grafos. Estos algoritmos pueden, por ejemplo: * Encontrar la arquitectura en capas real del sistema (y no lo que está planteada en un documento). * Encontrar los submódulos "naturales" de un sistema. * Encontrar dependencias no deseadas entre módulos. * Sugerir re-agrupaciones de módulos para simplificar la estructura. Las DSM's no solo se utilizan para modelar software, también se utilizan para modelar sistemas de ingeniería, productos y características, procesos, organizaciones e incluso interacciones entre dominios distintos. En esta plática introduciré los conceptos y técnicas básicas para comenzar a utilizar las DSM's y presentaré algunos ejemplos en vivo con algunas herramientas.

Citation preview

Page 1: Técnicas basadas en matriz de estructura de diseño

Técnicas Basadas en Matriz de Estructura de Diseño

Agustín Ramos Fonseca

Sunday, July 7, 13

Page 2: Técnicas basadas en matriz de estructura de diseño

El poder de los modelos

Sunday, July 7, 13

Page 3: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 4: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 5: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 6: Técnicas basadas en matriz de estructura de diseño

Los modelos...

Sunday, July 7, 13

Page 7: Técnicas basadas en matriz de estructura de diseño

Son abstracciones.

Los modelos...

Sunday, July 7, 13

Page 8: Técnicas basadas en matriz de estructura de diseño

Son abstracciones.

Permiten razonar algún aspecto de una idea, concepto o sistema, omitiendo los detalles que no son relevantes.

Los modelos...

Sunday, July 7, 13

Page 9: Técnicas basadas en matriz de estructura de diseño

Son abstracciones.

Permiten razonar algún aspecto de una idea, concepto o sistema, omitiendo los detalles que no son relevantes.

Permiten comunicar de manera más sencilla una idea compleja.

Los modelos...

Sunday, July 7, 13

Page 10: Técnicas basadas en matriz de estructura de diseño

Son abstracciones.

Permiten razonar algún aspecto de una idea, concepto o sistema, omitiendo los detalles que no son relevantes.

Permiten comunicar de manera más sencilla una idea compleja.

Siempre y cuando las personas involucradas compartan el contexto que el modelo asume.

Los modelos...

Sunday, July 7, 13

Page 11: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 12: Técnicas basadas en matriz de estructura de diseño

Se usa para...

Sunday, July 7, 13

Page 13: Técnicas basadas en matriz de estructura de diseño

Diseñar

Se usa para...

Sunday, July 7, 13

Page 14: Técnicas basadas en matriz de estructura de diseño

Diseñar

Documentar

Se usa para...

Sunday, July 7, 13

Page 15: Técnicas basadas en matriz de estructura de diseño

Diseñar

Documentar

Analizar

Se usa para...

Sunday, July 7, 13

Page 16: Técnicas basadas en matriz de estructura de diseño

Diseñar

Documentar

Analizar

... ¿analizar?!

Se usa para...

Sunday, July 7, 13

Page 17: Técnicas basadas en matriz de estructura de diseño

ant

Sunday, July 7, 13

Page 18: Técnicas basadas en matriz de estructura de diseño

Fragmento de vert.x

Sunday, July 7, 13

Page 19: Técnicas basadas en matriz de estructura de diseño

Problemas con UML

Sunday, July 7, 13

Page 20: Técnicas basadas en matriz de estructura de diseño

Problemas con UML

De manera práctica, NO escala muy bien.

Sunday, July 7, 13

Page 21: Técnicas basadas en matriz de estructura de diseño

Problemas con UML

De manera práctica, NO escala muy bien.

Es difícil mantener el modelo en sincronía con el código.

Sunday, July 7, 13

Page 22: Técnicas basadas en matriz de estructura de diseño

Problemas con UML

De manera práctica, NO escala muy bien.

Es difícil mantener el modelo en sincronía con el código.

Es difícil realizar análisis arquitectónico.

Sunday, July 7, 13

Page 23: Técnicas basadas en matriz de estructura de diseño

¿y ya?

Sunday, July 7, 13

Page 24: Técnicas basadas en matriz de estructura de diseño

Una anécdota

Sunday, July 7, 13

Page 25: Técnicas basadas en matriz de estructura de diseño

Diagnóstico de un sistema

Sunday, July 7, 13

Page 26: Técnicas basadas en matriz de estructura de diseño

Diagnóstico de un sistemaHecho con tecnología de punta (circa 2009)

Sunday, July 7, 13

Page 27: Técnicas basadas en matriz de estructura de diseño

Diagnóstico de un sistemaHecho con tecnología de punta (circa 2009)

Muy caro implementar nueva funcionalidad o modificar la existente.

Sunday, July 7, 13

Page 28: Técnicas basadas en matriz de estructura de diseño

Diagnóstico de un sistemaHecho con tecnología de punta (circa 2009)

Muy caro implementar nueva funcionalidad o modificar la existente.

Muy frágil.

Sunday, July 7, 13

Page 29: Técnicas basadas en matriz de estructura de diseño

Diagnóstico de un sistemaHecho con tecnología de punta (circa 2009)

Muy caro implementar nueva funcionalidad o modificar la existente.

Muy frágil.

Deseo de modularizarlo y productizarlo.

Sunday, July 7, 13

Page 30: Técnicas basadas en matriz de estructura de diseño

Diagnóstico de un sistemaHecho con tecnología de punta (circa 2009)

Muy caro implementar nueva funcionalidad o modificar la existente.

Muy frágil.

Deseo de modularizarlo y productizarlo.

Pero no tenían idea de cómo.

Sunday, July 7, 13

Page 31: Técnicas basadas en matriz de estructura de diseño

Diagnóstico de un sistemaHecho con tecnología de punta (circa 2009)

Muy caro implementar nueva funcionalidad o modificar la existente.

Muy frágil.

Deseo de modularizarlo y productizarlo.

Pero no tenían idea de cómo.

Sunday, July 7, 13

Page 32: Técnicas basadas en matriz de estructura de diseño

¿Modularizar?...

Sunday, July 7, 13

Page 33: Técnicas basadas en matriz de estructura de diseño

¿Modularizar funcionalidad?

Sunday, July 7, 13

Page 34: Técnicas basadas en matriz de estructura de diseño

¿Modularizar funcionalidad?View 1 View 3 View 4View 2

Sunday, July 7, 13

Page 35: Técnicas basadas en matriz de estructura de diseño

¿Modularizar funcionalidad?View 1 View 3 View 4

Service 1

Service 2

Service 3

Service 4

Service 5

Service 6

Service 7

Service 8

Service 9

Service 10

View 2

Sunday, July 7, 13

Page 36: Técnicas basadas en matriz de estructura de diseño

¿Modularizar funcionalidad?View 1 View 3 View 4

Service 1

Service 2

Service 3

Service 4

Service 5

Service 6

Service 7

Service 8

Service 9

Service 10

View 2

Sunday, July 7, 13

Page 37: Técnicas basadas en matriz de estructura de diseño

¿Modularizar funcionalidad?View 1 View 3 View 4

Service 1

Service 2

Service 3

Service 4

Service 5

Service 6

Service 7

Service 8

Service 9

Service 10

View 2

Sunday, July 7, 13

Page 38: Técnicas basadas en matriz de estructura de diseño

¿Modularizar funcionalidad?View 1 View 3 View 4

Service 1

Service 2

Service 3

Service 4

Service 5

Service 6

Service 7

Service 8

Service 9

Service 10

View 2

Sunday, July 7, 13

Page 39: Técnicas basadas en matriz de estructura de diseño

¿Modularizar funcionalidad?View 1 View 3 View 4

Service 1

Service 2

Service 3

Service 4

Service 5

Service 6

Service 7

Service 8

Service 9

Service 10

Es un grafo...

View 2

Sunday, July 7, 13

Page 40: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 41: Técnicas basadas en matriz de estructura de diseño

Jesús Figueroa Nazuno

Sunday, July 7, 13

Page 42: Técnicas basadas en matriz de estructura de diseño

Jesús Figueroa NazunoFísico - Computólogo - Investigador - Mentor

Sunday, July 7, 13

Page 43: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 44: Técnicas basadas en matriz de estructura de diseño

“Machine Learning”conocer tú debes (circa 2000)

Sunday, July 7, 13

Page 45: Técnicas basadas en matriz de estructura de diseño

Clustering

Sunday, July 7, 13

Page 46: Técnicas basadas en matriz de estructura de diseño

Clustering

Sunday, July 7, 13

Page 47: Técnicas basadas en matriz de estructura de diseño

Clustering

Sunday, July 7, 13

Page 48: Técnicas basadas en matriz de estructura de diseño

Clustering

Encontrar grupos que minimizan dos valores:

Sunday, July 7, 13

Page 49: Técnicas basadas en matriz de estructura de diseño

Clustering

Encontrar grupos que minimizan dos valores:

Número de grupos.

Sunday, July 7, 13

Page 50: Técnicas basadas en matriz de estructura de diseño

Clustering

Encontrar grupos que minimizan dos valores:

Número de grupos.

Interacción entre los grupos.

Sunday, July 7, 13

Page 51: Técnicas basadas en matriz de estructura de diseño

Clustering Jerárquico

Sunday, July 7, 13

Page 52: Técnicas basadas en matriz de estructura de diseño

Clustering de Grafos

Sunday, July 7, 13

Page 53: Técnicas basadas en matriz de estructura de diseño

¿Modularizar funcionalidad?View 1 View 3 View 4

Service 1

Service 2

Service 3

Service 4

Service 5

Service 6

Service 7

Service 8

Service 9

Service 10

Es un grafo...

View 2

Sunday, July 7, 13

Page 54: Técnicas basadas en matriz de estructura de diseño

RepresentaciónMatricial

S1 S2 S3 S4 S5 S6 S7 S8 S9 S10

View 1 x x

View 2 x x x x

View 3 x x x

View 4 x x x x

Sunday, July 7, 13

Page 55: Técnicas basadas en matriz de estructura de diseño

RepresentaciónMatricial

S1 S2 S3 S4 S5 S6 S7 S8 S9 S10

View 1 x x

View 2 x x x x

View 3 x x x

View 4 x x x x

Sunday, July 7, 13

Page 56: Técnicas basadas en matriz de estructura de diseño

Clustering

Sunday, July 7, 13

Page 57: Técnicas basadas en matriz de estructura de diseño

Clustering

Multi-Domain Matrix

Analysis

Sunday, July 7, 13

Page 58: Técnicas basadas en matriz de estructura de diseño

Matriz de Estructura de Diseño (DSM)

Sunday, July 7, 13

Page 59: Técnicas basadas en matriz de estructura de diseño

DSM básica

Sunday, July 7, 13

Page 60: Técnicas basadas en matriz de estructura de diseño

DSM con pesos

Sunday, July 7, 13

Page 61: Técnicas basadas en matriz de estructura de diseño

DSM jerárquica

Sunday, July 7, 13

Page 62: Técnicas basadas en matriz de estructura de diseño

DSM jerárquica

Sunday, July 7, 13

Page 63: Técnicas basadas en matriz de estructura de diseño

DSM jerárquica

Sunday, July 7, 13

Page 64: Técnicas basadas en matriz de estructura de diseño

DSM jerárquica

Sunday, July 7, 13

Page 65: Técnicas basadas en matriz de estructura de diseño

Análisis de DSM

Sunday, July 7, 13

Page 66: Técnicas basadas en matriz de estructura de diseño

Triangularización

Reordenar las filas y columnasde tal manera que todas las interacciones queden por debajo de la diagonal.

Sunday, July 7, 13

Page 67: Técnicas basadas en matriz de estructura de diseño

Triangularización

Sunday, July 7, 13

Page 68: Técnicas basadas en matriz de estructura de diseño

Triangularización

Sunday, July 7, 13

Page 69: Técnicas basadas en matriz de estructura de diseño

Dependencias cíclicas

Sunday, July 7, 13

Page 70: Técnicas basadas en matriz de estructura de diseño

Dependencias cíclicas

Sunday, July 7, 13

Page 71: Técnicas basadas en matriz de estructura de diseño

Dependencias cíclicas

Sunday, July 7, 13

Page 72: Técnicas basadas en matriz de estructura de diseño

Dependencias cíclicas

Sunday, July 7, 13

Page 73: Técnicas basadas en matriz de estructura de diseño

Clustering

Sunday, July 7, 13

Page 74: Técnicas basadas en matriz de estructura de diseño

2 Clusters sin traslape

Sunday, July 7, 13

Page 75: Técnicas basadas en matriz de estructura de diseño

3 clusters sin traslape

Sunday, July 7, 13

Page 76: Técnicas basadas en matriz de estructura de diseño

2 clusters con traslape

Sunday, July 7, 13

Page 77: Técnicas basadas en matriz de estructura de diseño

3 clusters con traslape

Sunday, July 7, 13

Page 78: Técnicas basadas en matriz de estructura de diseño

Demo

Sunday, July 7, 13

Page 79: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 80: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 81: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 82: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 83: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 84: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 85: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 86: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 87: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 88: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 89: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 90: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 91: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 92: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 93: Técnicas basadas en matriz de estructura de diseño

Sunday, July 7, 13

Page 94: Técnicas basadas en matriz de estructura de diseño

Ventajas de la DSM

Sunday, July 7, 13

Page 95: Técnicas basadas en matriz de estructura de diseño

Ventajas de la DSMInformación concisa.

Sunday, July 7, 13

Page 96: Técnicas basadas en matriz de estructura de diseño

Ventajas de la DSMInformación concisa.

Visualización.

Sunday, July 7, 13

Page 97: Técnicas basadas en matriz de estructura de diseño

Ventajas de la DSMInformación concisa.

Visualización.

Permite identificar patrones.

Sunday, July 7, 13

Page 98: Técnicas basadas en matriz de estructura de diseño

Ventajas de la DSMInformación concisa.

Visualización.

Permite identificar patrones.

Clusters, módulos críticos, bucles,

Sunday, July 7, 13

Page 99: Técnicas basadas en matriz de estructura de diseño

Ventajas de la DSMInformación concisa.

Visualización.

Permite identificar patrones.

Clusters, módulos críticos, bucles,

Entendimiento intuitivo.

Sunday, July 7, 13

Page 100: Técnicas basadas en matriz de estructura de diseño

Ventajas de la DSMInformación concisa.

Visualización.

Permite identificar patrones.

Clusters, módulos críticos, bucles,

Entendimiento intuitivo.

Análisis cuantitativo y algorítmico.

Sunday, July 7, 13

Page 101: Técnicas basadas en matriz de estructura de diseño

Ventajas de la DSMInformación concisa.

Visualización.

Permite identificar patrones.

Clusters, módulos críticos, bucles,

Entendimiento intuitivo.

Análisis cuantitativo y algorítmico.

Flexibilidad

Sunday, July 7, 13

Page 102: Técnicas basadas en matriz de estructura de diseño

Otros usos

Sunday, July 7, 13

Page 103: Técnicas basadas en matriz de estructura de diseño

MARS Path Finder

Sunday, July 7, 13

Page 104: Técnicas basadas en matriz de estructura de diseño

MARS Path Finder

Sunday, July 7, 13

Page 105: Técnicas basadas en matriz de estructura de diseño

Rediseño de Mozilla

Sunday, July 7, 13

Page 106: Técnicas basadas en matriz de estructura de diseño

Resúmen

Sunday, July 7, 13

Page 107: Técnicas basadas en matriz de estructura de diseño

ResúmenLa estructura estática de un sistema son componentes, módulos y relaciones entre estos.

Sunday, July 7, 13

Page 108: Técnicas basadas en matriz de estructura de diseño

ResúmenLa estructura estática de un sistema son componentes, módulos y relaciones entre estos.

Ésta estructura se puede representar con un grafo.

Sunday, July 7, 13

Page 109: Técnicas basadas en matriz de estructura de diseño

ResúmenLa estructura estática de un sistema son componentes, módulos y relaciones entre estos.

Ésta estructura se puede representar con un grafo.

Y por lo tanto con una matriz: DSM

Sunday, July 7, 13

Page 110: Técnicas basadas en matriz de estructura de diseño

ResúmenLa estructura estática de un sistema son componentes, módulos y relaciones entre estos.

Ésta estructura se puede representar con un grafo.

Y por lo tanto con una matriz: DSM

Una DSM presenta ventajas para el análisis de la arquitectura de sistemas.

Sunday, July 7, 13

Page 111: Técnicas basadas en matriz de estructura de diseño

ResúmenLa estructura estática de un sistema son componentes, módulos y relaciones entre estos.

Ésta estructura se puede representar con un grafo.

Y por lo tanto con una matriz: DSM

Una DSM presenta ventajas para el análisis de la arquitectura de sistemas.

Sunday, July 7, 13

Page 112: Técnicas basadas en matriz de estructura de diseño

Referencias

Sunday, July 7, 13

Page 113: Técnicas basadas en matriz de estructura de diseño

Preguntas

Agustín Ramos@MachinesAreUs

Sunday, July 7, 13