25
Desarrollo de Software Desarrollar software es una tarea complicada

Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

  • Upload
    hamien

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Desarrollo de Software

Desarrollar software es una tarea complicada

Page 2: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Desarrollo de Software - Problema

Page 3: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Desarrollo de Software - Conclusión

Page 4: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Desarrollo de Software – Soluciones mágicas y únicas

No existen las balas de plata excepto para

Los gerentes no técnicos

Los desarrolladores iniciados (poco conocimiento y escasa experiencia)

Page 5: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Desarrollo de Software – El problema es la complejidad

Page 6: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Desarrollo de Software - Complejidad

La complejidad se compone de

Complejidad = Compl_Solucion + Compl_Problema

Mecanismos para atacarla

Abstracción: eliminación de la irrelevante y amplificación de lo esencial

Agrupamiento y ocultamiento: ignorar los detalles y evitar verlos

Restricción: simplicidad en el enfoque

Visibilidad: desacoplamiento

Page 7: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Desarrollo de Software - Complejidad

La complejidad no está en la solución, está en el problema.

Las soluciones son mayoritariamente simples, llegar a ellas es en todos los casos difícil (complicado).

Para resolver el problema es necesario entenderlo antes de pensar en una solución.

Lo importante es ponerse en condiciones de concebir, construir y probar una solución sin refinamientos pero que resuelva el problema.

Lo importante está en la esencia del problema y no en lo accidental de la solución.

Los conceptos del dominio no alcanzan, son necesarias sus relaciones y lo emergente de sus interaciones.

Page 8: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Desarrollo de Software - Complejidad

Mecanismos para atacar la complejidad

Descomposición→ Descubrir

Abstracción → Pensar

Establecer jerarquías → Inventar

Page 9: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Interpretación – “Ajedrez”, Jorge Luis Borges

En su grave rincón, los jugadores

rigen las lentas piezas. El tablero

los demora hasta el alba en su severo

ámbito en que se odian dos colores.

Adentro irradian mágicos rigores

las formas: torre homérica, ligero

caballo, armada reina, rey postrero,

oblicuo alfil y peones agresores.

Cuando los jugadores se hayan ido,

cuando el tiempo los haya consumido,

ciertamente no habrá cesado el rito.

En el Oriente se encendió esta guerra

cuyo anfiteatro es hoy toda la Tierra.

Como el otro, este juego es infinito.

Tenue rey, sesgo alfil, encarnizada

reina, torre directa y peón ladino

sobre lo negro y blanco del camino

buscan y libran su batalla armada.

No saben que la mano señalada

del jugador gobierna su destino,

no saben que un rigor adamantino

sujeta su albedrío y su jornada.

También el jugador es prisionero

(la sentencia es de Omar) de otro tablero

de negras noches y de blancos días.

Dios mueve al jugador, y éste, la pieza.

¿Qué Dios detrás de Dios la trama empieza

de polvo y tiempo y sueño y agonía?

Page 10: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Interpretación– “Ajedrez”, Jorge Luis Borges

Page 11: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Interpretación = Comprensión

Problema a resolver: desarrollar un Software para controlar el Funcionamiento de la cafetera

Page 12: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Interpretación = Comprensión

Page 13: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Interpretación = Comprensión

/* Coffee Maker Low Level Hardware Interface */

enum WarmerPlateStatus { potNotEmpty, potEmpty, warmerEmpty };

enum WarmerPlateStatus GetWarmerPlateStatus ();

enum BoilerStatus { boilerEmpty, boilerNotEmpty };

enum BoilerStatus GetBoilerStatus ();

enum BrewButtonStatus { brewButtonPushed, brewButtonNotPushed };

enum BrewButtonStatus GetBrewButtonStatus ();

enum BoilerState { boilerOn, boilerOff };

void SetBoilerState (enum BoilerHeaterState s);

enum WarmerState { warmerOn, warmerOff };

void SetWarmerState (enum WarmerState s);

enum IndicatorState { indicatorOn, indicatorOff };

void SetIndicatorState (enum IndicatorState s);

Page 14: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Interpretación = Comprensión

Page 15: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Interpretación = Comprensión

Page 16: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Interpretación = Comprensión

Page 17: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Interpretación = Comprensión

Patrones de Colaboración

Page 18: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Interpretación = Comprensión

Page 19: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Interpretación = Comprensión

Page 20: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Interpretación = Comprensión

Para que utilizar objetos si se hará uso directo del API desde estos objetos, podría programarse en C directamente.

Cambia el hardware, cambiará todo el software.

Un enfoque diferente se logra abstrayendose de los sensores, calentadores y valvulas; pensando cuáles son las cuestiones esenciales. Una posibilidad es centrarse en los mecanismos que hacen al funcionamiento:

El agua a presión es pulverizada a través del café (Sprayer) que una vez condensada es mantenida caliente en el recipiente (Warmer) y todo el proceso es disparado e informado a través de la interfaz de usuario (UI).

Estas entidades son independientes del botón, let, boiler, los sensores y el calentador, de modo que si cambia el hardware éstas no cambiarán, cambiarán las entidades que implementen el manejo del nuevo hardware.

Para analizar ésto nos ayudamos con los Patrones de Colaboración.

Page 21: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Sobrediseño = trabajo inútil

Page 22: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Sobrediseño = trabajo inútil

El esfuerzo invertido en el desarrollo que no responde a los requerimientos no es apreciado (valorado) por ningún usuario ni utilizado por ningún componente. Recién cuando ese diseño es usado por otro componente es que se aprovechan las bondades de su existencia.

Conclusión: no diseñar componentes de software con propiedades que no serán percibidas ya que constituyen trabajo adicional que no será valorado.

Page 23: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Conclusión clase nro. 1

Deberíamos desterrar la tentación de enfocarnos en la solución para asegurarnos de entender primero el problema, ya que allí radica la complejidad de nuestros desarrollos.

Page 24: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Referencias

Page 25: Desarrollo de Software - materias.fi.uba.armaterias.fi.uba.ar/7510/zips/clase0_2016.pdf · emergente de sus interaciones. ... cuyo anfiteatro es hoy toda la Tierra. Como el otro,

Referencias