jueves, 18 de abril de 2013



PROCESOS 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 del mismo. 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.
El proceso de desarrollo puede involucrar numerosas y variadas tareas, desde lo administrativo, pasando por lo técnico y hasta la gestión y el gerenciamiento. Pero casi rigurosamente siempre se cumplen ciertas etapas mínimas; que podremos resumir en las siguientes:

(Flor Angela Perez Rosas)

1.- ESPECIFICACIONES DE SOFTWARE
Debe definir la funcionalidad del software y las restricciones en su operación.
2.- DISEÑO E IMPLEMENTACIÓN
Se debe producir software que cumpla su especificación.
3.- VALIDACIÓN DEL SOFTWARE
Se debe validar el software para asegurar que hace lo que el cliente desea.
4.- EVOLUCIÓN DEL SOFTWARE
El software debe evolucionar  para cubrir las necesidades cambiantes del cliente.

MODELO DE POSESOS DEL SOFTWARE
Un modelo de proceso de software es una descripción simplificada de un proceso del software, es decir es el molde, modelo, base del cual se basa el proceso del software y se denomina “Ciclo de vida del software”




MODELO EN CASCADA

CARACTERÍSTICAS

Cada fase empieza cuando se ha terminado la fase anterior.
Para pasar de una fase a otra es necesario conseguir todos los objetivos de la etapa previa.
Ayuda a prevenir que se sobrepasen las fechas de entrega  y los costes esperados.
Al final de cada fase el personal técnico y los usuarios tienen la oportunidad de revisar el progreso del proyecto.

VENTAJAS

  •    Modelo y planificación fácil y sencillos.
  •    Sus fases son conocidas por los desarrolladores.
  •    Los usuarios lo pueden comprender fácilmente.



DESVENTAJAS

  •    No refleja realmente el proceso de desarrollo del software.
  •    Se tarda mucho en pasar por todo el ciclo.
  •    Acentúa el fracaso de la industria del software en su comunicación  con el usuario final.
  •    Se convierten las especificaciones en implementaciones de manera formal.
  •    Las revisiones del proyecto de gran complejidad son muy difíciles.
  • Impone una estructura de gestión de proyecto.



Modelo de desarrollo en cascada


MODELO INCREMENTAL

CARACTERÍSTICAS

Corrige la necesidad de una secuencia no lineal de pasos de desarrollo.
El sistema se crea añadiendo componentes  funcionales al sistema.
El sistema no se ve como una entidad monolítica con una fecha fija de entrega, sino que es una integración de resultados sucesivos obtenidos después de cada repetición.
Se ajusta a entornos de alta incertidumbre.

VENTAJAS

  •   Se evita proyectos largos y se entrega “algo de valor” a los usuarios con cierta frecuencia.
  •    El usuario se involucra más.
  •    Mayor retorno de la inversión.


DESVENTAJAS

  •    Difícil de avaluar el coste total.
  •    Requiere gestores experimentados.
  •   Difícil de aplicar a sistemas transaccionales que tienden a ser integrados y a operar como un todo.
  •    Los errores en los requisitos se detectan tarde y su corrección resulta costosa.





MODELO EN ESPIRAL

Es  un modelo de procesos de software evolutivo que combina la naturaleza repetitiva de construcción de prototipos con los aspectos controlados y sistemáticos del modelo lineal secuencial.
Este modelo se desarrolla en una serie de versiones incrementales.

CARACTERISTICAS

Permite acomodar otros modelos.
Incorpora objetivos de calidad y gestión de riesgos.
Elimina  errores y alternativas no atractivas al comienzo.
Permite repeticiones, vueltas atrás y finalizaciones rápidas.
Es difícil de adaptar a los contratos.

VENTAJAS

  •    Elimina alternativas
  •    Evita errores
  •    Permite repeticiones, vueltas atrás y finalizaciones rápidas
  •    Revisión que incluye todo el ciclo y el plan siguiente
  •    Puede ser aplicado a proyectos grandes y complejos
  •   Reduce desde temprano los riesgos del proyecto, disminuyendo su probabilidad de fracaso.
  •  Permite lidiar con los cambios en los requerimientos al utilizar prototipos y simulaciones.
  •  Permite al cliente observar resultados desde temprano gracias al desarrollo de prototipos.
  •    Puede aplicarse tanto para el desarrollo como para el mantenimiento.


DESVENTAJAS

  •    No dice el cómo
  •    Muy flexible
  •    Poco aplicable a proyectos bajo contrato
  •    Se necesitan expertos para prever el riesgo
  •    Debe ser refinado para poder ser aplicado.





MODELO DE DESARROLLO RAPIDO DE APLACIONES (DRA)

El desarrollo rápido de aplicaciones (DRA) es un modelo de proceso de software incremental que resalta un ciclo de desarrollo corto. El modelo DRA es una adaptación a "alta velocidad" del modelo en cascada en el que se logra el desarrollo rápido mediante un enfoque de construcción basado en componentes.

CARACTERÍSTICAS

Reduce el riesgo de construir productos que no satisfagan las necesidades de los usuarios.
Reduce costos y aumenta la probabilidad de éxito.
Exige disponer de las herramientas adecuadas.
No presenta calidad ni robustez.
Este modelo suele ser utilizado principalmente en dos áreas que son:
Prototipado de la interfaz de usuario y prototipado del rendimiento.

VENTAJAS
  •    Debe ser un sistema con el que se pueda experimentar.
  •    Debe ser comparativamente barato (menos del 10%).
  •    Debe desarrollarse rápidamente.
  •    Énfasis en la interfaz del usuario.
  •    Equipo de desarrollo reducido.
  •    Herramientas y lenguaje adecuado.


DESVENTAJAS

  •    El cliente ve funcionando lo que para el es la primera versión del producto, que ha sido construido con “plantillas y Alambres”, y puede desilusionarse al decirle que el sistema aun no ha sido construido.
  •     El desarrollador puede caer en la tentación  de ampliar el prototipo para construir el sistema final sin tener  en cuenta los compromisos de calidad y de mantenimiento que tiene con el cliente.




MODELO DE PROCESOS EVOLUTIVOS

Los modelos de procesos evolutivos se basan en la idea de desarrollar una implementación   inicial, exponiéndola a los comentarios del usuario y refinándola a través de las diferentes variaciones hasta que se desarrolla un sistema adecuado. 
El prototipo debe ser construido en poco tiempo, usando los programas adecuados y no se debe utilizar mucho dinero pues a partir de que este sea aprobado es que el desarrollador puede iniciar el verdadero desarrollo del software.

VENTAJAS

  •    Este modelo es útil cuando el cliente conoce los objetivos generales para el software, pero no identifica los requisitos detallados de entrada, procesamiento o salida.
  •    También ofrece un mejor enfoque cuando el responsable del desarrollo del software está inseguro de la eficacia de un algoritmo, de la adaptabilidad de un sistema operativo o de la forma que debería tomar la interacción humano-máquina.
  •    Reduce el riesgo de construir productos que no satisfagan las necesidades de los usuarios.
  •    Reduce costos y aumenta la probabilidad de éxito.
  •    Exige disponer de las herramientas adecuadas.
  •    Una vez identificados todos los requisitos mediante el prototipo, se construye el producto de ingeniería.


DESVENTAJAS

  •    El usuario tiende a crearse unas expectativas cuando ve el prototipo de cara al sistema final.                            
  •    A causa de la intención de crear un prototipo de forma rápida, se suelen desatender aspectos importantes, tales como la calidad y el mantenimiento a largo plazo, lo que obliga en la mayor parte de los casos a reconstruirlo una vez que el prototipo ha cumplido su función. Es frecuente que el usuario se muestre reacio a ello y pida que sobre ese prototipo se construya el sistema final, lo que lo convertiría en un prototipo evolutivo, pero partiendo de un estado poco recomendado.
  •    El desarrollador suele tomar algunas decisiones de implementación poco convenientes (por ejemplo, elegir un lenguaje de programación incorrecto porque proporcione un desarrollo más rápido). Con el paso del tiempo, el desarrollador puede olvidarse de la razón que le llevó a tomar tales decisiones, con lo que se corre el riesgo de que dichas elecciones pasen a formar parte del sistema final. 





REFERENCIAS:




http://www.vc.ehu.es/jiwotvim/ISOFT2008-2009/Teoria/BloqueI/Transp-03Proceso-Pressman.pdf





No hay comentarios:

Publicar un comentario