INGENIERÍA DE
SOFTWARE
Síntesis de la evolución del software
Durante los
primeros años de la era de la computadora, el software se contemplaba como un
añadido. […]El desarrollo del software se realizaba virtualmente sin ninguna
planificación, hasta que los planes comenzaron a descalabrarse y los costes a
correr. Los programadores trataban de hacer las cosas bien, y con un esfuerzo
heroico; a menudo salía con éxito.
En estos
años, en la computadora, lo que realmente primaba era el hardware, y teniendo
como a un complemento al software. Esto se debía a la corta distribución que
tenía el software, puesto que su desarrollo era de forma personal, para
empresas, u otras instituciones, más no tenía un carácter comercial.
Posteriormente,
una segunda fase de su evolución se caracterizo principalmente por el
establecimiento del software como producto, y con esto la llegada de las “casas del software”.
Es aquí en
pleno auge del mercado del software, donde se producen los primeros errores.
Todos los programas que se habían desarrollado, tuvieron que ser corregidos
cuando se encontraban fallos, ya sea por las especificaciones del usuario y/o
la adaptación a un nuevo hardware que se hubiera conseguido.
Una tercera
fase, la cual tuvo como principales características: “Las redes de área local y global” , las cuales permitían una
comunicación y acceso casi instantáneo; “la
llegada del microprocesador”, lo cual hacia imaginar el futuro inmediato de
computadoras portátiles.
Más en
cuanto nos concierne, debemos de mencionar situaciones importantes que dieron
lugar a la ingeniería de software.
Como se
menciono anteriormente, a inicios de la era de la computadora, quien realmente
recibía mayor crédito era el hardware en sí, para lo cual, tuvieron que
controlar su coste.
Esto llevo a
la implementación de controles formales y estándares técnicos. Los cuales
exigían un análisis y diseño completo antes de que algo se construyese.
Dicho de
forma sencilla, aplicaban controles, los métodos y las herramientas que
reconocemos como la ingeniería del hardware.
Así mismo,
la ingeniería de software tuvo una evolución similar. En las pasadas décadas
los ejecutivos y muchos aprendices técnicos se habían hecho las siguientes
preguntas.
- ¿Por
qué lleva tanto tiempo terminar un programa?
- ¿Por
qué es tan elevado el coste?
- ¿Por
qué no podemos encontrar todos los errores antes de entregar el software a
nuestros clientes?
- ¿Por
qué nos resulta difícil constatar el progreso conforme se desarrolla el
software?
Estas y
muchas otras cuestiones, son una manifestación del carácter del software, y de
la forma en que se desarrolla, un problema que ha llevado a la adopción de la
ingeniería de software como practica.
Conociendo
un poco la historia de la ingeniería de software, ahora es tiempo de definir lo
que es INGENIERÍA DE SOFTWARE.
DEFINICIÓN:
La
ingeniería de software es el estudio de técnicas, principios y métodos de la
ingeniería, a fin de obtener un software de calidad.
He aquí
algunas otras definiciones:
- Ingeniería
de software es el estudio de los principios y metodologías para el
desarrollo y mantenimiento de sistemas software (Zelkovitz, 1978)
- Ingeniería
de software es la aplicación práctica del conocimiento científico al
diseño y construcción de programas de computadora y a la documentación asociada
requerida para desarrollar, operar y mantenerlos. Se conoce también como
desarrollo de software o producción de software (Bohem, 1976).
- Ingeniería
de software trata del establecimiento de los principios y métodos de la
ingeniería a fin de obtener software de modo rentable, que sea fiable y
trabaje en máquinas reales (Bauer, 1972).
- La
aplicación de un enfoque sistemático, disciplinado y cuantificable al
desarrollo, operación y mantenimiento del software. Es decir la aplicación
de ingeniería al software. (IEEE, 1993).
DESARROLLO O
PROCESO DE SOFTWARE
Cualquier
enfoque de ingeniería (incluida ingeniería del software) debe descansar sobre
un desempeño de organización de calidad.
Un proceso
de software, es un conjunto de tareas, actividades y/o marcos de trabajo, los
cuales puedan ser aplicables a uno o varios proyectos de software.
Dentro de
las fases genéricas tenemos.
- Especificación: que establece a
características y exigencia del sistema.
- Diseño: generar un software de papel
(modelo).
- Implementación: construcción del
sistema.
- Prueba: cumplimiento de los
requisitos y exigencias.
- Mantenimiento: reparación de algún
fallo en el sistema.
MODELOS DE
PROCESO DE SOFTWARE
- MODELO DE CONSTRUCCIÓN DE PROTOTIPOS
- MODELO DE DESARROLLO RÁPIDO DE APLICACIONES (DRA)
BIBLIOGRAFÍA:
- PRESSMAN,ROGER S.(1997),INGENIERÍA DE SOFTWARE, un enfoque practico, 4ta Edición.