PROCESO DE SOFTWARE
Se define como Proceso al conjunto ordenado de pasos a seguir para llegar a la solución de un problema u obtención de un producto, en este caso particular, para lograr la obtención de un producto software que resuelva un problema.
Ese proceso de creación de software puede llegar a ser muy complejo, dependiendo de su porte, características y criticidad delmismo. Por ejemplo la creación de un sistema operativo es una tarea que requiere proyecto, gestión, numerosos recursos y todo un equipo disciplinado de trabajo. En el otro extremo, si se trata de un sencillo programa (ejemplo: resolución de una ecuación de segundo orden), éste puede ser realizado por un solo programador (incluso aficionado) fácilmente. Es así que normalmente se dividen en trescategorías según su tamaño (líneas de código) y/o costo: de Pequeño, Mediano y Gran porte. Existen varias metodologías para estimarlo, una de las más populares es el sistema COCOMO que provee métodos y un software (programa) que calcula y provee una estimación de todos los costos de producción en un "proyecto software" (relación horas/hombre, costo monetario, cantidad de líneas fuente de acuerdo alenguaje usado.
MODELOS DE PROCESO DE SOFTWARE
Modelo Lineal Secuencial
Críticas:
Proyectos reales raras veces se ajustan.
Raras veces el cliente expone todos los requerimientos de entrada.
Consejo:
Usar cuando todos los requerimientos han sido establecidos claramente de entrada.
Modelo de construcción de prototipos
No están claros los requerimientos deentrada.
Iterativo ¿Hasta cuándo se itera?
Working prototype, desechar y empezar con desarrollo de sistema.
Críticas:
Cliente cree que es el sistema.
Peligro de familiarización con malas elecciones iniciales (quick and dirty).
Consejo:
Usar cuando inicialmente no están claros los requerimientos
Modelo DRA (Desarrollo Rápido de Aplicaciones)
Lineal secuencial con cicloextremadamente cortó.
Candidatos: sistemas que se pueden modularizar => equipos de desarrollo paralelos.
Basado en el uso de componentes y T4G.
Críticas:
-Proyectos grandes => gran nro. De personas.
- Alto compromiso en tiempo.
- No apto para todo tipo de sistema (Ej. no modularizable, baja reusabilidad de componentes).
-Desaconsejable cuando riesgos tecnológicos altos (Ej. Usode nuevo lenguaje) o alta interoperatividad con programas ya existentes.
MODELOS EVOLUTIVOS
Se adaptan más fácilmente a los cambios introducidos a lo largo del desarrollo.
Iterativos. En cada iteración se obtienen versiones más completas del SW.
Modelos Evolutivos:
Modelo Incremental
Modelo en Espiral
Modelo de Desarrollo Basado en Componentes
Modelo WINWIN
Modelo de DesarrolloConcurrente
MODELO INCREMENTAL
Iteración de Lineal Secuencial.
Cada iteración devuelve un “Incremento” o versión operativa. (Ej. Editor de texto).
Útil cuando no se está seguro de cumplir con plazos de tiempo o se tiene una fecha imposible de cambiar.
MODELO EN ESPIRAL
Útil para proyectos grandes.
Permite usar el prototipado en todas las etapas de laevolución para reducir el riesgo.
Mantiene el enfoque sistemático de los pasos sugeridos por el lineal secuencial, pero lo incorpora dentro de un marco iterativo más real.
Críticas:
Difícil de convencer a los clientes de que es controlable.
Requiere mucha habilidad para el análisis de riesgos y de esta habilidad depende su éxito.
No ha sido utilizado tanto como el lineal secuencial o elde prototipos
DESARROLLO BASADO EN COMPONENTES
Basado en modelo en Espiral (evolutivo e iterativo) + Tecnologías de Objetos.
Enfatiza la Reusabilidad.
Modelo de Métodos Formales
Usan notación rigurosa.
Especificaciones sin ambigüedades.
Útiles para sistemas críticos.
Demostraciones formales de propiedades.
Dificulta validación con clientes => combinación con otras...
Regístrate para leer el documento completo.