Proceso de Desarrollo
¿Qué es?
Un proceso de desarrollo de software describe un enfoque para construir, instalar y mantener sistemas de software
¿Por qué necesitamos uno?
Es necesario conocer de antemano qué actividades debemos realizar
1
Algunas Actividades
Entrar en contexto con la realidad del problema
Obtener una descripción de lo que se espera del producto
Comprender qué se debe hacer
Determinar cómo se debe hacer
Hacerlo
Probar que esté bien hecho
Entregar el producto
Hacerle retoques varios
Mantenerlo
2
Pero Hay Más…
Realizar estimaciones de tiempo, de costos, de recursos
Planificar
Asegurarse que las cosas se hagan:
En el tiempo previsto
De la forma establecida
Administrar las diferentes versiones de lo que se va produciendo
Montar y mantener los ambientes de desarrollo y prueba
3
Un Modelo de Proceso
Cascada:
Relevamiento
Análisis
Diseño
Implementación
Testeo
Liberación
Mantenimiento
4
Problemas…
Cada actividad se realiza en secuencia y luego de finalizar la anterior
Para problemas grandes y complejos no resulta una estrategia adecuada:
Errores en etapas tempranas se descubren tardíamente
No hay visibilidad hasta muy avanzado el proyecto
5
Otro Modelo
Iterativo e Incremental (I&I):
Relevamiento
Liberación
Mantenimiento
Construcción
6
Características
Se divide el problema en varios subproblemas
Las iteraciones se producen en “Construcción”
Se itera sobre una “mini cascada” donde se resuelve cada subproblema:
for each (sp:Subproblema) {analisis(sp);diseño(sp);implementacion(sp);testeo(sp);
}
En la iteración i se resuelve spi llevándose resueltos los subproblemas: sp1, sp2, … , spi-1
7
Nuestro Proceso
Para poder realizar un proceso I&I es necesario conocer un proceso en cascada
Nos concentraremos en algunas actividades dentro de la “cascada” de Construcción:
Análisis
Diseño
Implementación
Los pasos concretos a realizar en estas actividades depende del paradigma de desarrollo a seguir
8
Nuestro Proceso (2)
Los requerimientos vendrán dados por Casos de Uso y descripciones generales del sistema
Un Caso de Uso narra la historia completa (junto a todas sus variantes) de un conjunto de actores mientras usan el sistema
9
Caso de Estudio
Biblioteca de música
El usuario necesita organizar las canciones en su reproductor de música (artista, canción, género)
Similar al modelo que se puede encontrar en cualquier reproductor de música online u offline (Winamp, Grooveshark, etc.)
10
Caso de Uso
11
Orientación a Objetos
Enfoque diferente al tradicional
Puede ser entendida como:
Una forma de pensar basada en abstracciones de conceptos existentes en el mundo real
Organizar el software como una colaboración de objetos que interactúan entre sí por medio de mensajes
12
Enfoque Tradicional
Una aplicación implementada con un enfoque tradicional presenta la siguiente estructura general:
type T = …
f1(T t) {…}
…
fn() {…}
main() {
//invocaciones a fi
}
13
Enfoque Orientado a Objetos
Una aplicación orientada a objetos es el resultado de la codificación en un lenguaje de programación orientado a objetos del siguiente esquema:
o1
o2
o4
o5
o3
m1
m2
m3
m4
m
14
Desarrollo OO
Los pasos generales de desarrollo se mantienen en el enfoque orientado a objetos
Pero las actividades que constituyen algunos de ellos son particulares:
Análisis ? Análisis Orientado a Objetos
Diseño ? Diseño Orientado a Objetos
Implementación ? Implemenentación Orientada a Objetos
15
Desarrollo OO (2)
Ciertas actividades son demasiado complejas para realizarlas mentalmente en el desarrollo de una aplicación de mediano porte en adelante
16
Página siguiente |