domingo, 15 de marzo de 2009

What Drives Design?

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