Hoy dare un resumen de una presentacion que encontre en InfoQ la cual se titula What Drives Design? la expositora fue Rebecca Wirfs-Brock, y da un enfoque sobre que deberia dirigir el diseño de software, se enfoca principalmente en RDD, aunque se mencionan otros.... a continuacion una sintesis del video:
What Drives Design
Definicion de Driven: motivado para tener o necesitar una compulsiva calidad
RDD Responsability Driven Design
Para esta forma de manejar el diseño, existen métodos abstractos para construir en base a bloques:
1) Add: un Objeto
2) Remove: Un objeto
3) Do: un Bloque
Principios de RDD
- Maximizar Abstracción: distinción entre la data y el comportamiento
- Comportamiento Distribuido: control delegado en arquitectura
- Flexibilidad: objetos que pueden ser cambiantes
Receta para diseñar sw complejo:
- Identificar funcionalidad e info relacionada: Definir num objetos y componentes
- Decidir que funcionalidad e información pertenece a cada elemento
- Decidir que elementos se comunicarán con msj
- Diseñar clases que cumplan con lo anterios
Nota: Contexto es importante para diseñar con responsabilidad RDD
En RDD Diseño de Construcciones, se pueden clasificar algunos elementos como lo son:
- Role: set de responsabilidades
- Responsabilidad: obligación por cumplir una tarea
- Colaboración: interacción entre elementos de diseño (Objetos / Roles)
- Contrato: acuerdo de los términos de colaboración
El Modelo de Responsabilidad, Es una demostración de cómo un grupo de componentes u objetos trabajando juntos por una tarea especifica.
Estereotipos de Roles
(cada uno tiene una responsabilidad)
Information Holders : conocen y dan a conocer info
Structurer: mantiene relación entre info y objetos
Interfacer: Traduce información y peticiones
Service Provider: Realiza trabajo en demanda
Coordinator: realiza eventos mecánicos (semáforo)
Controller: toma decisiones q afectan otras acciones u eventos (policía)
Nota: Tanto el controller como el coordinator, son controles de diseño
XX- Driven Design
Algunas caracteriticas de elementos que pueden guiar el diseño son:
FDD Feature Driven Design (Feature by Feature )
Walktrhough -> Desing -> Design Inspection -> Code -> Code Inspection
Diseña la primera semana, se codifica en la segunda
TDD Test Driven Design (Stroy by Story)
Text -> Code -> Run Test -> Code pass the test
Diseño va evulucionando mediante historias
BDD Behaivor Driven Design
Dar un contexto (Give a context)
Cuando ocurre un evento (When a event ocurre)
Luego asegura resultados (Then ensure some outcomes)
DDD Domain Driven Design
Objeto Entidad
Valor del Objeto
CDD Contract Driven Design
Aceptar valores
Retornar valores
Errores de excepcion
Pre y Post condiciones
RDD Resposability Driven Design
Contactos como interface del diseño
No hay comentarios:
Publicar un comentario