Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Principios de diseño de software ágiles (página 2)




Enviado por Pablo Turmero



Partes: 1, 2

Monografias.com

Diseño con una interfaz

Diseño con dos interfaces
Cliente C
Cliente D
Interfaz Z
Métodos que utiliza
el cliente C
Métodos que utiliza
el cliente D
Cliente C
Cliente D
interfaz ZC
Métodos que utiliza
el cliente C
Interfaz ZD
Métodos que utiliza
el cliente D
Principio de separación de la interfaz

Monografias.com

Diseño con una interfaz

Extensión del principio de responsabilidad única
Ambigüedad
Aumenta entre los métodos de interfaces separadas
Aumenta entre la clase cliente hacia los métodos de las interfaces no utilizan
Ventajas e inconvenientes
Cliente C
Cliente D
Interfaz Z
Métodos cliente C
Métodos cliente D

Diseño con dos interfaces
Cliente C
Cliente D
Interfaz ZC
Métodos cliente C
Interfaz ZD
Métodos cliente D
Principio de separación de la interfaz

Análisis

Monografias.com
Principio abierto/cerrado

Las entidades software deben estar abiertas para su
extensión, pero cerradas para su modificación
Bertran Meyer

Diseño cerrado/cerrado

Finalidad
Sistema funcionando (cerrado), pero ampliable (abierto)
Conseguir cambios añadiendo nuevo código sin afectar al resto de elementos del diseño
Clase A
Clase B

Monografias.com

Ambigüedad
La dependencia “uno a uno” se transforma en una dependencia de “uno a muchos”
Ventajas

Diseño abierto/cerrado
Principio abierto/cerrado

Análisis

Diseño cerrado/cerrado
Clase A
Clase B
Clase A
Clase Abstracta B
Clase B1
Clase B2

Monografias.com
Principio de sustitución de Liskov

Los subtipos deben ser sustituibles por sus supertipos
Robert C. Martin

S es subtipo de T (Barbara Liskov)

o2 es un objeto de T

o1 es un objeto de S

Para todo programa P ( T )
comportamiento P(o1) = comportamiento P(o2)
cuando o1 es sustituido por o2

T
S
Finalidad
Facilitar la modificación del diseño y la reutilización del código a través del uso adecuado de la herencia
Te cambié el orden de o1 y o2, pero no estoy seguro

Monografias.com
Rectángulo
Cuadrado
ES – UN ?
Principio de sustitución de Liskov

¿ Rectángulo ES-UN Cuadrado ?
Poscondiciones de los métodos establecerAlto y establecerAncho
Propiedades y métodos

Monografias.com

Ambigüedad:
Los programas no saben si trabajan con objetos de supertipos o de subtipos
Ventajas
El enunciado de Martin es confuso:
“Los subtipos deben ser sustituibles por los supertipos”, pero la definición de subtipo se basa en la sustitución
S es subtipo de T

o1 es un objeto de S

o2 es un objeto de T

Para todo programa P ( T )
comportamiento P(o1) = comportamiento P(o2)
cuando o1 es sustituido por o2

T
S
Principio de sustitución de Liskov

Análisis

Monografias.com
Principio de inversión de dependencias

Los módulos de alto nivel no deben depender de los
módulos de bajo nivel. Ambos deben depender de las
abstracciones

Las abstracciones no deben depender de los detalles.
Los detalles deben depender de las abstracciones.
Robert C. Martin

Monografias.com
Principio de inversión de dependencias

Finalidad:
Conseguir que los cambios en los módulos de bajo nivel no afecten a los módulos de alto nivel
Facilitar la reutilización de los módulos de alto nivel

Diseño tradicional
Nivel Política
Nivel Mecanismo
Nivel Utilidad

Monografias.com

Diseño tradicional
Nivel Política
Nivel Mecanismo
Nivel Utilidad
Principio de inversión de dependencias

Diseño con inversión de dependencias
Nivel
Política
Nivel
Mecanismo
Nivel
Utilidad
Interfaz
Política
Interfaz
Mecanismo
Política
Mecanismo
Utilidad

Monografias.com

Ambigüedad:

Aumenta entre los módulos de alto nivel y los de bajo nivel
Ventajas
Caso particular de la programación estructurada de Dijkstra
Principio de inversión de dependencias
Análisis

Diseño con inversión de dependencias
Nivel
Política
Nivel
Mecanismo
Nivel
Utilidad
Interfaz
Política
Interfaz
Mecanismo
Política
Mecanismo
Utilidad

Monografias.com
Conclusiones (I)

La ambigüedad ha sido un instrumento
teórico válido para analizar los principios de
diseño ágiles porque ha permitido:
Explicar y predecir los efectos de la aplicación de estos principios
Disponer de una visión uniforme de los principios

Monografias.com
Conclusiones (II)

Los principios:
abierto/cerrado
de sustitución
de inversión de dependencias
aumentan la ambigüedad del diseño:
Reemplazo de las relaciones unívocas por ambiguas
Reducción la complejidad descriptiva
Reducción la complejidad por incertidumbre

Son criterios de diseño para utilizarlos de forma regular

Monografias.com
Conclusiones (III)

Los principios:
de responsabilidad única
de separación de la interfaz
diminuyen la ambigüedad del diseño:
Aumento de la complejidad descriptiva
Aumento de la complejidad por incertidumbre

Son criterios de diseño para utilizarlos de forma
excepcional

Monografias.com
Conclusiones (y IV)

Objeciones al trabajo de Martin:
No existe un análisis teórico de los principios
No hay relación entre el principio de cohesión y el principio de responsabilidad única
Enunciado tautológico del principio de sustitución
Principio de inversión de dependencias es un caso particular de la programación estructurada original (Dijkstra)

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter