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

Post on 01-Nov-2014

618 views 3 download

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.

Transcript of 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

El poder de los modelos

Sunday, July 7, 13

Sunday, July 7, 13

Sunday, July 7, 13

Sunday, July 7, 13

Los modelos...

Sunday, July 7, 13

Son abstracciones.

Los modelos...

Sunday, July 7, 13

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

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

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

Sunday, July 7, 13

Se usa para...

Sunday, July 7, 13

Diseñar

Se usa para...

Sunday, July 7, 13

Diseñar

Documentar

Se usa para...

Sunday, July 7, 13

Diseñar

Documentar

Analizar

Se usa para...

Sunday, July 7, 13

Diseñar

Documentar

Analizar

... ¿analizar?!

Se usa para...

Sunday, July 7, 13

ant

Sunday, July 7, 13

Fragmento de vert.x

Sunday, July 7, 13

Problemas con UML

Sunday, July 7, 13

Problemas con UML

De manera práctica, NO escala muy bien.

Sunday, July 7, 13

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

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

¿y ya?

Sunday, July 7, 13

Una anécdota

Sunday, July 7, 13

Diagnóstico de un sistema

Sunday, July 7, 13

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

Sunday, July 7, 13

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

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

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

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

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

¿Modularizar?...

Sunday, July 7, 13

¿Modularizar funcionalidad?

Sunday, July 7, 13

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

Sunday, July 7, 13

¿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

¿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

¿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

¿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

¿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

Sunday, July 7, 13

Jesús Figueroa Nazuno

Sunday, July 7, 13

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

Sunday, July 7, 13

Sunday, July 7, 13

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

Sunday, July 7, 13

Clustering

Sunday, July 7, 13

Clustering

Sunday, July 7, 13

Clustering

Sunday, July 7, 13

Clustering

Encontrar grupos que minimizan dos valores:

Sunday, July 7, 13

Clustering

Encontrar grupos que minimizan dos valores:

Número de grupos.

Sunday, July 7, 13

Clustering

Encontrar grupos que minimizan dos valores:

Número de grupos.

Interacción entre los grupos.

Sunday, July 7, 13

Clustering Jerárquico

Sunday, July 7, 13

Clustering de Grafos

Sunday, July 7, 13

¿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

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

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

Clustering

Sunday, July 7, 13

Clustering

Multi-Domain Matrix

Analysis

Sunday, July 7, 13

Matriz de Estructura de Diseño (DSM)

Sunday, July 7, 13

DSM básica

Sunday, July 7, 13

DSM con pesos

Sunday, July 7, 13

DSM jerárquica

Sunday, July 7, 13

DSM jerárquica

Sunday, July 7, 13

DSM jerárquica

Sunday, July 7, 13

DSM jerárquica

Sunday, July 7, 13

Análisis de DSM

Sunday, July 7, 13

Triangularización

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

Sunday, July 7, 13

Triangularización

Sunday, July 7, 13

Triangularización

Sunday, July 7, 13

Dependencias cíclicas

Sunday, July 7, 13

Dependencias cíclicas

Sunday, July 7, 13

Dependencias cíclicas

Sunday, July 7, 13

Dependencias cíclicas

Sunday, July 7, 13

Clustering

Sunday, July 7, 13

2 Clusters sin traslape

Sunday, July 7, 13

3 clusters sin traslape

Sunday, July 7, 13

2 clusters con traslape

Sunday, July 7, 13

3 clusters con traslape

Sunday, July 7, 13

Demo

Sunday, July 7, 13

Sunday, July 7, 13

Sunday, July 7, 13

Sunday, July 7, 13

Sunday, July 7, 13

Sunday, July 7, 13

Sunday, July 7, 13

Sunday, July 7, 13

Sunday, July 7, 13

Sunday, July 7, 13

Sunday, July 7, 13

Sunday, July 7, 13

Sunday, July 7, 13

Sunday, July 7, 13

Sunday, July 7, 13

Sunday, July 7, 13

Ventajas de la DSM

Sunday, July 7, 13

Ventajas de la DSMInformación concisa.

Sunday, July 7, 13

Ventajas de la DSMInformación concisa.

Visualización.

Sunday, July 7, 13

Ventajas de la DSMInformación concisa.

Visualización.

Permite identificar patrones.

Sunday, July 7, 13

Ventajas de la DSMInformación concisa.

Visualización.

Permite identificar patrones.

Clusters, módulos críticos, bucles,

Sunday, July 7, 13

Ventajas de la DSMInformación concisa.

Visualización.

Permite identificar patrones.

Clusters, módulos críticos, bucles,

Entendimiento intuitivo.

Sunday, July 7, 13

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

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

Otros usos

Sunday, July 7, 13

MARS Path Finder

Sunday, July 7, 13

MARS Path Finder

Sunday, July 7, 13

Rediseño de Mozilla

Sunday, July 7, 13

Resúmen

Sunday, July 7, 13

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

Sunday, July 7, 13

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

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

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

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

Referencias

Sunday, July 7, 13

Preguntas

Agustín Ramos@MachinesAreUs

Sunday, July 7, 13