Está en la página 1de 27

UNIDAD 2.

Introduccin a la ingeniera de software


Objetivo Educacional El alumno comprender los elementos que integran la Ingeniera de Software y el aseguramiento de la calidad.

Durante las primeras tres dcadas de la informtica, el principal desafo era el desarrollo del hardware de las computadoras, de forma que se redujera el costo de procesamiento y almacenamiento de datos.

A lo largo de la dcada de los ochenta, los avances de microelectrnica han dado como resultado una mayor potencia de clculo a la vez que una reduccin del costo.

Para controlar los costos del hardware, los gestores instituyeron controles formales y estndares tcnicos. Exigan un anlisis y diseo completo antes de que algo se construyera. Medan el proceso para determinar dnde podan hacer mejoras. Dicho sencillamente, aplicaban los controles, mtodos y herramientas que reconocemos como ingeniera del hardware. Mientras que desgraciadamente el software no era ms que un aadido.

En los primeros das, para la programacin existan pocos mtodos formales y pocas personas los usaban. El programador aprenda normalmente su oficio mediante prueba y error. El mundo del software era bastante indisciplinado. Por lo que muchos aprendices tcnicos se hacan las siguientes preguntas:

Por qu lleva tanto tiempo terminar los programas? Por qu es tan elevado el costo? Por qu no podemos encontrar todos los errores antes de entregar el software a nuestros clientes?

Estas y muchas preguntas son manifestacin del carcter del software y de la forma en que se desarrolla. Problema que ha llevado a la adopcin de la ingeniera de software.

Actualmente el software ha superado al hardware como clave del xito de muchos sistemas basados en computadora.
La diferencia entre una compaa y su competidora es la suficiencia y oportunidad con que maneja su informacin. Y el software es la herramienta especialmente indicada para esto.

Crisis Del Software

Los problemas del desarrollo del software se caracterizan por los siguientes aspectos:

La planificacin y estimacin de costos son frecuentemente muy imprecisas. La productividad de la comunidad dedicada al desarrollo de software no corresponde con la demanda de sus servicios y La calidad de la Ingeniera de software no llega a ser a veces ni aceptable.

Tales problemas son slo las manifestaciones ms visibles de otras dificultades del software:

No tenemos tiempo de recoger datos sobre el proceso de desarrollo de software. Sin datos histricos como gua, la estimacin no ha sido buena y los resultados previstos muy pobres. La insatisfaccin del cliente con el sistema terminado se produce frecuentemente. Los proyectos se desarrollan slo con una vaga indicacin de los requisitos del cliente. La comunicacin entre el cliente y el que desarrolla el software es muy escasa. La calidad es normalmente escasa. El software existente puede ser muy difcil de mantener.

Sin embargo todos estos problemas pueden corregirse, la clave esta en dar un enfoque de ingeniera al desarrollo de software.

Para considerar el creciente problema de la tecnologa del Ingeniera de software, se convoc en 1968 a una reunin de trabajo en Alemania Oriental; en esa junta y en la siguiente en Italia, se estimul el inters general hacia los aspectos tcnicos y administrativos utilizados en el desarrollo y mantenimiento de productos de Ingeniera de software.

El trmino Ingeniera del software fue usado por primera vez en dicha reuniones

Definicin de ingeniera de software.


El establecimiento y uso de principios de ingeniera, orientados a obtener software econmico que sea fiable y funcione de manera eficiente sobre mquinas reales. (Fritz Bauer)

Historia de la ingeniera de software.

a) Primera Era.
Durante los primeros aos de desarrollo de las computadoras, el hardware sufri muchos cambios, mientras que el software se contemplaba como un aadido. Para la programacin existan pocos mtodos sistemticos.

El desarrollo de software se realizaba sin ninguna planificacin. La mayor parte del hardware se dedicaba a la ejecucin de un nico programa que, a su vez, se dedicaba a una aplicacin especial. Se utilizaba en la mayora de los sistemas una orientacin por lotes.

El software como producto (programas desarrollados para ser vendidos) estaba en su infancia. La mayora del software se desarrollaba y se utilizaba por la misma persona u organizacin. La misma persona lo escriba, lo ejecutaba y, si fallaba, lo depuraba.

Debido a este entorno personalizado del software, el diseo era un proceso implcito, realizado en la mente de alguien, y la documentacin normalmente no exista.

b) Segunda Era.
Los sistemas multiusuario introdujeron nuevos conceptos de interaccin hombre mquina. Los sistemas de tiempo real podan recoger, analizar y transforma datos de mltiples fuentes, controlando as los procesos y produciendo salidas en milisegundos en lugar de minutos. Los avances en los dispositivos de almacenamiento en lnea condujeron a la primera generacin de sistemas de gestin de base de datos.

El software se caracteriz tambin como producto y surgen las casas de software. El software se desarrollaba para tener una amplia distribucin en el mercado.

c) Tercera Era.
Se caracteriz por la llegada y el amplio uso de los microprocesadores y las computadoras personales, las cuales han sido el catalizador del gran crecimiento de muchas compaas de software.

Mientras que las ventas de computadoras personales se estabilizaron hacia la mitad de los ochentas, las ventas de productos de software han continuado creciendo.

d) Cuarta Era.
En la que nos encontramos ahora. Las tcnicas orientadas a los objetos estn desplazando rpidamente a enfoques ms convencionales en muchas reas de aplicacin. Las tcnicas de cuarta generacin para el desarrollo de software estn cambiando la forma en que algunos segmentos de la comunidad informtica construyen los programas de computadora.

PRIMERA ERA Orientacin por lotes Software a medida Distribucin limitada

SEGUNDA ERA Multiusuario Base de datos Software como producto Tiempo real

TERCERA ERA Hardware de bajo costo

Incorporacin de inteligencia Impacto en el consumo

CUARTA ERA Tecnologas orientadas a los objetos Sistemas expertos Redes neuronales