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.
· 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
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/1192588380/resumen/
No hay comentarios.:
Publicar un comentario