Ingeniería de software: Concepto, Objetivos y Funciones

La ingeniería en software es la disciplina relacionada con el desarrollo de productos de soporte lógico o software. Un producto de software es el conjunto completo de programas informáticos, procedimientos, documentación y datos especificados para su suministro a un cliente; el desarrollo se ocupa de todas las actividades técnicas y de gestión necesarias para crear el producto, y realizar el desarrollo eficazmente significa cumplir las necesidades del cliente ajustándose a unos límites de tiempo, coste y calidad.

 
 

Introducción

El concepto de ingeniería de software surgió en unas reuniones de trabajo organizadas por la Organización del Tratado del Atlántico Norte (OTAN) en 1968 y 1969 para estudiar lo que entonces se describía como “la crisis del software”. Había demasiados proyectos de desarrollo de soporte lógico que experimentaban fallos, los cuales se atribuían al rápido aumento en la escala y complejidad del software en cuestión. Se reconoció que era necesario un planteamiento más sistemático en el desarrollo de software, que debía basarse en principios de ingeniería ya establecidos.

Ingenieria software

 

El software evoluciona a través de muchas versiones, a medida que se corrigen errores, se mejora el funcionamiento y se responde a las modificaciones que surgen en los requisitos. Cada nueva versión se crea a través de un proceso de desarrollo de software. Típicamente, el proceso se divide en cuatro fases principales:

  • El análisis y especificación de requisitos, donde se establece qué debe lograr el producto de software.

  • El diseño, que determina cómo cumplirá el software esos requisitos;

  • La puesta en práctica, que crea el producto de software que se ha diseñado (esto combina el desarrollo de nuevos componentes con la reutilización o modificación de componentes anteriores)

  • La prueba, que garantiza que el producto de software funciona como se pretende. Los productos intermedios, como las especificaciones de requisitos y los diseños de software, también se revisan en profundidad antes de pasar a la siguiente fase de desarrollo.

 

El software no siempre se ha desarrollado de forma controlada, y en la actualidad hay algunos sistemas que presentan grandes dificultades para su mantenimiento. El organismo de normalización ISO (International Standards Organization) ha definido los requisitos de un sistema de gestión de calidad de carácter general que cubre el desarrollo de cualquier producto (ISO 9001) y ha publicado directrices específicas para aplicar esa norma al desarrollo de software (ISO 9000-3). Una organización que ponga en práctica un sistema de gestión de calidad según esa norma puede ser auditada y recibir una certificación formal de su proceso de desarrollo.

Los ingenieros informáticos están implicados en un gran número de áreas de aplicación, que cada vez son más. Algunos ejemplos son la realización de transacciones rápidas de valores en el mercado bursátil, el almacenamiento, intercambio y presentación de información en Internet, los videojuegos, la mejora de imágenes obtenidas por telescopios y el control de marcapasos cardiacos. En todos los casos, los principios de la ingeniería de software ayudan a garantizar que los sistemas resultantes son fiables y funcionan del modo requerido. 

Historia

Cuando las primeras computadoras digitales hicieron su debut en la década de 1940, el mundo del desarrollo de software era un territorio desconocido. Hacer predicciones sobre los plazos de finalización de proyectos era una tarea ardua, y con frecuencia, estos proyectos excedían los presupuestos y las estimaciones de tiempo. Los programadores se enfrentaban al desafío de reescribir constantemente sus programas para que funcionaran en las nuevas máquinas que salían al mercado cada uno o dos años, volviendo obsoletas las versiones anteriores.

El concepto de ingeniería del software surgió a finales de la década de 1950, impulsado por la crisis del software que se extendió desde los años 1960 hasta los 1980. La ingeniería del software emergió como un enfoque para identificar y rectificar los procesos de desarrollo y mantenimiento de sistemas de software mediante principios y metodologías.

Además de la mencionada crisis del software, la ingeniería de software se vio impactada por tragedias, como los accidentes que resultaron en la muerte de seis personas debido a la máquina de radioterapia Therac-25, que emitió dosis letales de radiación. Este evento subrayó los riesgos asociados con el control por software, lo que afectó la percepción de la ingeniería de software.

Para principios de la década de 1980, la ingeniería del software se consolidó como una profesión legítima, complementando las disciplinas de la informática y la ingeniería convencional. Antes de este avance, las tareas de programación implicaban el uso de tarjetas perforadas como entrada en las máquinas, con la esperanza de obtener resultados impresos.

La necesidad de adaptar constantemente el software existente a las nuevas máquinas condujo al desarrollo de lenguajes de programación de alto nivel. Con la llegada del software libre, las organizaciones de usuarios comenzaron a liberar sus productos comúnmente.

Durante mucho tiempo, resolver la crisis del software fue una prioridad para investigadores y empresas dedicadas a la producción de herramientas de software.

En la década de 1980, el costo de propiedad y mantenimiento del software superó al costo mismo de desarrollo del software, y en la década de 1990, este costo aumentó en un 30 % en comparación con la década anterior. Para 1995, muchos proyectos de desarrollo estaban operativos pero no podían considerarse exitosos. La mayoría de los proyectos superaban en un 50 % la estimación de tiempo inicial y el 75 % de los grandes productos de software entregados al cliente tenían fallas significativas que los hacían inservibles o que no cumplían con los requisitos del cliente.

Algunos expertos argumentaron que la crisis del software se debía a la falta de disciplina entre los programadores.

Cada avance tecnológico y metodológico desde la década de 1970 hasta la de 1990 se promocionó como la solución definitiva a los problemas que llevaron a la crisis del software. Sin embargo, la realidad demostró que no existía una solución única y universal para los desafíos del campo de la ingeniería de software, ya que cada problema representaba solo una fracción del panorama general.

La explosión del uso de Internet generó una demanda sin precedentes de sistemas de despliegue de información a nivel mundial en la World Wide Web. Los desarrolladores se vieron obligados a manejar una variedad de contenido, desde ilustraciones hasta mapas, fotografías y animaciones, sin un método efectivo para optimizar su visualización y almacenamiento. Se desarrollaron sistemas para traducir la información a múltiples idiomas extranjeros de manera natural, con numerosos sistemas de software diseñados para soportar el multilingüismo, utilizando traductores humanos.

La ingeniería de software desempeñó un papel crucial en este contexto, contribuyendo significativamente a la economía, especialmente con la explosión de Internet. Los desarrolladores tuvieron que adaptarse a nuevas formas de manejar imágenes, mapas y animaciones para optimizar su visualización y almacenamiento, como el uso de miniaturas. La introducción de navegadores y el lenguaje HTML transformaron la manera en que se accede y se percibe la información en línea.

La proliferación de redes de comunicación global también trajo consigo la aparición de virus informáticos y el spam en los correos electrónicos. Los desarrolladores se vieron obligados a crear sistemas de seguridad para combatir estas amenazas, que se volvían cada vez más sofisticadas y difíciles de mitigar.

La creciente demanda de soluciones de software asequibles impulsó el desarrollo de metodologías más simples y rápidas para crear software funcional. Los sistemas más pequeños adoptaron enfoques ágiles y simplificados para gestionar el desarrollo de algoritmos y cálculos de software.

Objetivos de la ingeniería de software

Los objetivos de la ingeniería de software abarcan una amplia gama de áreas, pero entre los más destacados se encuentran:

  1. Desarrollar programas informáticos que satisfagan las necesidades de la sociedad y las empresas.
  2. Coordinar y guiar el desarrollo de software en proyectos complejos.
  3. Participar en todas las etapas del ciclo de vida de un producto, desde la concepción hasta la implementación y el mantenimiento.
  4. Estimar de manera precisa los costos y el tiempo necesarios para la ejecución de un proyecto de software.
  5. Liderar equipos de desarrollo de software, proporcionando dirección y orientación.
  6. Diseñar, desarrollar y administrar bases de datos para respaldar las aplicaciones de software.
  7. Supervisar y dirigir a los programadores durante el proceso de creación de la aplicación.
  8. Implementar procesos de aseguramiento de calidad en las aplicaciones, incluida la medición de métricas, la evaluación de la calidad del software y la implementación de mejoras continuas.

Mas Artículos Relacionados

¿Te ha gustado Nuestro artículo?, por favor compartelo en tus redes sociales

kilo tapias peralta escobar fundador

Kilo tapias peralta Escobar

Soy el fundador de Corporación KRONOZ, divulgador de ciencia, amante de la naturaleza, y fiel creyente del error y superación del ser humano, “El tiempo es solo una mera ilusión, el pasado, el presente y el futuro, existen simultáneamente, como parte de un rompecabezas, sin principio ni final”.

#kilotapias #EspacioHonduras #CorporaciónKronoz

facebook

instagram

linkedin

pinterest

twitter

youtube