Yyyty

Páginas: 35 (8507 palabras) Publicado: 29 de abril de 2011
6. Diseño evolutivo
Índice

1. Introducción 192

1.1 El método de trabajo 193
Primero, lo esencial 193
Hacer justo, lo necesario 194
Software cerrado y abierto 194
Definiciones flexibles 195

2. Diseño de un cajero automático simple 197

2.1 Introducción 197

2.2 Extracción sobre una cuenta 197
Tarea inicial: hacer una sola extracción sobre una cuenta.197
Diagrama de Clases de una extracción sobre una cuenta 200
Código Java de una extracción sobre una cuenta 202

2.3 Primera Ampliación. Hacer varias extracciones sobre una cuenta 205
Diagrama de secuencia de muchas extracciones sobre una cuenta 207

2.4 Segunda Ampliación. Varias extracciones sobre una cuenta de varias posibles 212

2.4 Tercera Ampliación: Control deAcceso 216
Escena de acceso 216
Código Java ACCESO 218
Integración de acceso y extracción 219
Estudio de alternativas de unión 221
2.4.1 Una iteración. Otra forma de unión 224
2.4.2 Otra iteración 225
2.4.3 Otra iteración más 226
Interpretación Arquitectónica del Sistema 230

2.5 Cuarta Ampliación: Ingreso de Dinero 232
Ejercicio 233
Diseño delmecanismo de ingreso 234
Código Java INGRESO 236
Integración de ingreso al sistema 237
Código Java Selector 240
Diagrama de clases del sistema completo 241

2. 6 Recapitulemos 242

1. Introducción

Después de haber hecho un recorrido por los cimientos del modelo orientado a objetos, por sus conceptos y por partes de su código, debemos comenzar a ver cómo sepueden conseguir desarrollo y software evolutivo.

Una forma de desarrollo evolutivo es el llamado desarrollo iterativo e incremental. Iterativo en el sentido amplio de corrección. Es decir, en el sentido de reducir el error, de aproximarse más. Se trata de corregir el rumbo del proyecto al evaluar los resultados con el cliente, de eliminar las equivocaciones detectadas durante las pruebas y demejorar las cualidades internas del software, por ejemplo su consistencia. Incremental en el sentido de añadir capacidades y funciones al software de acuerdo con el crecimiento de las necesidades. Lo incremental y lo iterativo van juntos, aunque no siempre se presentan los dos.

Hay muchas formas de desarrollo iterativo e incremental, con sus técnicas y métodos respectivos. Probablemente,casi todas son buenas o, al menos, tienen muchos aspectos buenos. Por tanto, lo más importante es crear una actitud evolutiva hacia el diseño y su modo de hacerlo, que se enriquezca después con la diversidad de fuentes disponibles. Este es el objetivo central del capítulo.

Las palabras iterativo e incremental se utilizan en los procesos de aproximaciones sucesivas. Se han tomado de ahíporque tienen una finalidad semejante: resolver problemas con incertidumbre. Tanto el desarrollo de software iterativo e incremental como los procesos de aproximaciones sucesivas buscan un valor desconocido. Pero, en el desarrollo de software ese valor desconocido es, además, inestable; se desplaza con el tiempo. Es como disparar a una diana poco visible que se mueve con una componente deimprevisilidad.

Esa distinción establece una diferencia cualitativa entre el desarrollo evolutivo y los procesos de aproximaciones sucesivas, sobre todo al acentuarse la componente futura de la incertidumbre. Por tanto, son diferentes. No obstante, podemos aprovechar sus similitudes, al menos en primera instancia.

Los sistemas software se pueden considerar como sistemas complejos alejadosdel equilibrio que se organizan con una estabilidad transitoria, gracias al trabajo de los desarrolladores. En cierto sentido hay una analogía con las denominadas estructuras disipativas, presentes en la naturaleza viva e inanimada. De este parecido se pueden obtener diversas ideas para el diseño software. Una de las más interesantes es la ruptura y restablecimiento de la simetría, como veremos...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS