viernes, junio 8

Proceso de desarrollo de software

Proceso de desarrollo de software

Un sistema informático está compuesto por hardware y software. En cuanto al hardware, su producción se realiza sistemáticamente y la base de conocimiento para el desarrollo de dicha actividad está claramente definida. La fiabilidad del hardware es, en principio, equiparable a la de cualquier otra máquina construida por el hombre. Sin embargo, respecto del software, su construcción y resultados han sido históricamente cuestionados debido a los problemas asociados, entre ellos podemos destacar los siguientes:
·       Los sistemas no responden a las expectativas de los usuarios.
·       Los programas “fallan” con cierta frecuencia.
·       Los costes del software son difíciles de prever y normalmente superan las estimaciones.
·       La modificación del software es una tarea difícil y costosa.
·       El software se suele presentar fuera del plazo establecido y con menos prestaciones de las consideradas inicialmente.
·       Normalmente, es difícil cambiar de entorno hardware usando el mismo software.
·       El aprovechamiento óptimo de los recursos (personas, tiempo, dinero, herramientas, etc.) no suele cumplirse.

Algunas deficiencias comunes en el desarrollo de software son:
·       Escasa o tardía validación con el cliente.
·       Inadecuada gestión de los requisitos.
·       No existe medición del proceso ni registro de datos históricos.
·       Estimaciones imprevistas de plazos y costos.
·       Excesiva e irracional presión en los plazos.
·       Escaso o deficiente control en el progreso del proceso de desarrollo.
·       No se hace gestión de riesgos formalmente.
·       No se realiza un proceso formal de pruebas.
·       No se realizan revisiones técnicas formales e inspecciones de código.


Pressman caracteriza la Ingeniería de Software como “una tecnología multicapa”, ilustrada en la Figura 1.
http://xherrera334.blogspot.es/img/fig1.GIF

·       Cualquier disciplina de ingeniería debe ser de calidad. La calidad y las filosofías similares fomentan una cultura continua de mejoras de procesos que conducen al desarrollo de enfoques cada vez más robustos para la ingeniería del software.
·       El proceso define un marco de trabajo para  un conjunto de áreas clave, las cuales forman  la base del control de gestión  de proyectos de software y establecen el contexto en el cual: se aplican los métodos técnicos, se producen resultados de trabajo, se establecen hitos, se asegura la calidad y el cambio se gestiona adecuadamente.
·       Los métodos de la ingeniería de software indican cómo construir técnicamente el software.  Los métodos abarcan una gran gama de tareas que incluyen análisis de requisitos, diseño, construcción de programas, pruebas y mantenimiento. Estos métodos dependen de un conjunto de principios básicos que gobiernan cada  área de la tecnología e incluyen actividades de modelado y otras técnicas descriptivas.
·       Las herramientas de la ingeniería del software proporcionan un soporte automático o semi-automático para el proceso y los métodos, a estas herramientas se les llama herramientas CASE (Computer-Aided Software Engineering).

Un proceso de desarrollo de software tiene como propósito la producción eficaz y eficiente de un producto software que reúna los requisitos del cliente. Dicho proceso, en términos globales se muestra en la Figura 2
http://xherrera334.blogspot.es/img/fig2.GIF

El proceso de desarrollo de software no es único. No existe un proceso de software universal que sea efectivo para todos los contextos de proyectos de desarrollo. 
Debido a esta diversidad, es difícil automatizar todo un proceso de desarrollo de software.

A pesar de la variedad de propuestas de proceso de software, existe un conjunto de actividades fundamentales que se encuentran presentes en todos ellos:
1.    Especificación de software: Se debe definir la funcionalidad y restricciones operacionales que debe cumplir el software.
2.    Diseño e Implementación: Se diseña y construye el software de acuerdo a la especificación.
3.    Validación: El software debe validarse, para asegurar que cumpla con lo que quiere el cliente.
4.    Evolución: El software debe evolucionar, para adaptarse a las necesidades del cliente.

Otra perspectiva utilizada para determinar los elementos del proceso de desarrollo de software es establecer las relaciones entre elementos que permitan responder Quién debe hacer Qué, Cuándo y Cómo debe hacerlo.
http://xherrera334.blogspot.es/img/fig3.GIF 

http://xherrera334.blogspot.es/1192588380/resumen/

No hay comentarios.:

Publicar un comentario