El proceso de desarrollo del software
Introducción
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 [1]:
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 esuna 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.
Según el Centro Experimental de Ingeniería de Software(CEIS)1, el estudio de mercado The Chaos Report realizado por Standish Group Internactional2 en 1996, concluyó que sólo un 16% de los proyectos de software son exitosos (terminan dentro de plazos y costos y cumplen los requerimientos acordados). Otro 53% sobrepasa costos y plazos y cumple parcialmente los requerimientos. El resto ni siquiera llega al término. Algunas deficiencias comunes en el desarrollode 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 procesoformal de pruebas.
No se realizan revisiones técnicas formales e inspecciones de código.
El primer reconocimiento público de la existencia de problemas en la producción de software tuvo lugar en la conferencia organizada en 1968 por la Comisión de Ciencias de la OTAN en Garmisch (Alemania), dicha situación problemática se denominó crisis del software. En esta conferencia, así como en lasiguiente realizada en Roma en 1969, se estipuló el interés hacia los aspectos técnicos y administrativos en el desarrollo y mantenimiento de productos software. Se pretendía acordar las bases para una ingeniería de construcción de software. Según Fritz Bauer [2] lo que se necesitaba era “establecer y usar principios de ingeniería orientados a obtener software de manera económica, que sea fiable yfuncione eficientemente sobre máquinas reales”. Esta definición marcaba posibles cuestiones tales como: ¿Cuáles son los principios robustos de la ingeniería aplicables al desarrollo de software de computadora? ¿Cómo construimos el software económicamente para que sea fiable? ¿Qué se necesita para crear programas de computadora que funcionen eficientemente no en una máquina sino en diferentes máquinasreales?. Sin embargo, dicho planteamiento además debía incluir otros aspectos, tales como: mejora de la calidad del software, satisfacción del cliente, mediciones y métricas, etc.
El “IEEE Standard Glossary of Software Engineering Terminology” (Stad. 610.12-1990) ha desarrollado una definición más completa para ingeniería del software [1]: “(1) La aplicación de un enfoque sistemático, disciplinadoy cuantificable para el desarrollo, operación y mantenimiento del software; es decir, la aplicación de ingeniería al software. (2) El estudio de enfoques en (1)”.
Pressman [1] caracteriza la Ingeniería de Software como “una tecnología multicapa”, ilustrada en la Figura 1.
Figura 1: Capas de la Ingeniería de Software.
Dichas capas se describen a continuación:
Cualquier disciplina de...
Regístrate para leer el documento completo.