2. ¿Que queremos decir con
proceso de desarrollo?
3. EL PROCESO DE DESARROLLO DE SOFTWARE 2
Deseos,
necesidades,
Especificaciones,
…
Software
3. Introducción al proceso de
desarrollo.
En general, cuando las personas abordan el desarrollo de cualquier
proyecto evolucionan desde ideas abstractas hacia concreciones
realizables.
3. EL PROCESO DE DESARROLLO DE SOFTWARE 3
4. Es extraño que alguien diga:
◦ "Me puse a programar y me salió una contabilidad"
◦ Algunas aplicaciones da la impresión de que...
◦ Recordar que la probabilidad de que un mono teclee en una maquina de escribir y salga el quijote no es
cero
3. EL PROCESO DE DESARROLLO DE SOFTWARE 4
5. Normalmente el planteamiento es:
Vamos a desarrollar una contabilidad,
◦ Hacer la especificación.
en Visual BASIC y Access,
◦ Realizar el diseño.
y se codifica la aplicación.
3. EL PROCESO DE DESARROLLO DE SOFTWARE 5
6. El grado de precisión con que se lleve a
cabo cada paso influirá en el resultado
¿Me podrías indicar, por favor, hacia dónde tengo
que ir?
Eso depende de adónde quieras llegar, contesto el
gato.
A mí no me importa demasiado adónde...- empezó a
explicar Alicia.
En ese caso, da igual cualquier dirección -
interrumpió el Gato.
...Siempre que llegue a alguna parte -terminó Alicia a
modo de explicación.
Basta que empieces a andar - le aseguro el Gato-,
dando un paso tras otro.
◦ Alicia en el país de las maravillas
3. EL PROCESO DE DESARROLLO DE SOFTWARE 6
7. Ingeniería e Ingeniería del
Software
¿Donde nos encontramos?
¿Que hace un Ingeniero?
Definiciones de Ingeniería del software
Técnicas básicas utilizadas históricamente
3. EL PROCESO DE DESARROLLO DE SOFTWARE 7
8. ¿Donde nos encontramos?
Con Problemas, tendremos que disponer de:
◦ Técnicas de desarrollo que minimicen la complejidad de un sistema software.
◦ Métodos y conceptos que permitan al productor y al cliente explorar la naturaleza del
sistema software lo antes posible.
◦ Técnicas que minimicen los efectos devastadores de las modificaciones durante el
desarrollo y la explotación.
3. EL PROCESO DE DESARROLLO DE SOFTWARE 8
9. ¿Que hace un Ingeniero?
Construir artefactos dentro de unas limitaciones de coste, utilizando el
conocimiento y las teorías de la ciencia sobre la cual se basa el artefacto.
3. EL PROCESO DE DESARROLLO DE SOFTWARE 9
10. Definición de la ingeniería del
software (NATO ‘68)
La ingeniería del software es el establecimiento y uso de principios de
ingeniería razonables con el objetivo de obtener software
económicamente, que sea de confianza y trabaje eficientemente en las
maquinas reales.
3. EL PROCESO DE DESARROLLO DE SOFTWARE 10
11. Definición
(R.E. Fairley 1985)
Hemos definido la Ingeniería del Software como la disciplina
tecnológica concerniente a la producción y mantenimiento
sistemáticos de productos software que son desarrollados y
modificados en el tiempo y con los costes estimados...
Además, la Ingeniería del software tiene que ver con
cuestiones de gestión que caen fuera del dominio de la
programación tradicional.
3. EL PROCESO DE DESARROLLO DE SOFTWARE 11
12. Características de la ingeniería del
software (Van Vliet 1993)
Construcción de programas grandes
Controlar la complejidad
Cooperación entre las personas implicadas
Evolución del software
Eficiencia en el desarrollo
Soporte real a los usuarios
3. EL PROCESO DE DESARROLLO DE SOFTWARE 12
13. Modelo de la Ingeniería del
software (Thayer 1988)
Analisis
Diseño
Codificación
Pruebas
Desarrollo
de Software
Planificación
Organización
Reclutamiento
Dirección
Control
Gestión de
proyectos
Fiabilidad
Usabilidad
Flexibilidad
Mantenibilidad
Reusabilidad
Etc.
Metricas
del software
Corrección de Errores
Modificaciones
Mantenimiento
de software
Ingeniería
del software
3. EL PROCESO DE DESARROLLO DE SOFTWARE 13
14. Técnicas básicas usadas en las
ingenierías
Históricamente se han utilizado técnicas como:
◦ El modelado
◦ División del Producto
◦ División del Proceso
En principio se deberían utilizar estas técnicas, también en informática .
3. EL PROCESO DE DESARROLLO DE SOFTWARE 14
15. El modelado.
Simplificación del objeto en el mundo real, pero que es suficientemente
realista como para dar una idea de lo que ocurrirá en la realidad y
usarse como base del desarrollo.
3. EL PROCESO DE DESARROLLO DE SOFTWARE 15
16. División del Producto.
Se fracciona el producto de modo que cada fragmento lo puede realizar
un miembro del grupo de desarrollo.
3. EL PROCESO DE DESARROLLO DE SOFTWARE 16
17. División del Proceso.
Implica dividir el desarrollo del artefacto por fases. Normalmente se habla de
especificación, diseño y fabricación.
3. EL PROCESO DE DESARROLLO DE SOFTWARE 17
¿Que
?
¿Como? Realización Pruebas
18. En el desarrollo de software nos encontramos
con la siguiente situación
3. EL PROCESO DE DESARROLLO DE SOFTWARE 18
Ciclos de
Vida del
SOFTWARE
Metodologías de
Desarrollo del
SOFTWARE
19. Ciclo de Vida del Software
Consiste en determinar:
◦ las fases productivas de un proyecto,
◦ los objetivos de cada fase productiva, y
◦ los productos obtenidos en cada una de estas fases así como sus
características.
3. EL PROCESO DE DESARROLLO DE SOFTWARE 19
20. Ciclos de Vida del Software
◦ Se han propuesto muchos ciclos de vida para el desarrollo del software, pero estos
son los más representativos:
◦ Poner la cola al burro.
◦ Ciclo de vida clásico o en cascada.
◦ Construcción rápida de Prototipos Desechables
◦ Incremental
◦ Evolución de prototipos
◦ Reutilización de Software
◦ Síntesis automática de software
◦ En espiral.
3. EL PROCESO DE DESARROLLO DE SOFTWARE 20
Notas del editor
#4:Algunas aplicaciones informáticas casi que se desarrollan así.
Infinitos monos tecleando…
Ver la tira de Dilbert (10 monos, en el libro de “aplace sus reuniones”
#5:Este no es el camino completo, falta probar, verificar, instalar, formar a los usuarios, ...
#6:Claramente, lo principal es saber a donde vamos:
tener clara la meta;
Disponer de una especificación.
El camino que sigamos es lo que llamaremos el proceso de desarrollo.
Todos los caminos llevan a Roma
Importante la dirección (brújula)
¿Cual es el camino más corto?
#18:Clientes y Proveedores, con intereses distintos
Desarrolladores que cada cual va a la suya.
La forma de evitar el desastre pasa por:
Tener un ciclo de vida apropiado a la situación.
Complejidad: ¿Es un producto complejo?
Incertidumbre: ¿El cliente sabe lo que quiere?
Utilizar una metodología de desarrollo
Lenguaje claro,
Especificación, diseño, ...
Conjunto de herramientas a utilizar.
Un proceso maduro, es decir:
Que conozcamos bien (utilizado otras veces)
Que lo tengamos medido
Que sea completo, para producir con calidad.
#19:En el momento en que se percibio el desastre del software se trato de regular las tareas que se deben realizar durante el desarrollo de software, y el ordenen que se deben realizar.
Se tomaron como ejemplo otras ingenierías.