viernes, 28 de junio de 2013

Ingeniería de Software

La Ingeniería de Software es una disciplina que establece el uso de principios de ingeniería robustos, orientados a obtener software económico que sea confiable y funcione de manera eficiente. La Ingeniería de Software difiere de la programación tradicional en que se utilizan técnicas de ingeniería para especificar, diseñar, codificar, validar y mantener los productos dentro del tiempo y presupuesto establecidos para el proyecto. Además, la ingeniería se preocupa por aspectos administrativos que quedan fuera del dominio normal de la programación.
Nube de palabras relacionadas con ingeniería de software [elaborada con wordle]

El término programador se emplea para denominar a la persona preocupada y abocada a las tareas y detalles de la codificación, empacado y modificación de los algoritmos y  estructuras de datos codificados en algún lenguaje de programación particular.   Los Ingenieros de Software están, además, capacitados para hacer frente a aspectos de  análisis, diseño, verificación, prueba de programas, documentación, mantenimiento y administración del proyecto.
El software es ahora la clave del éxito de muchos de los sistemas basados en computadora. El software marca la diferencia. Lo que diferencia una compañía de otra, es la suficiencia, exactitud y oportunidad de la información proporcionada por el software.
Una definición es: Ingeniería del Software es la aplicación práctica del conocimiento científico en el diseño y construcción de programas de computadora, así como de la documentación asociada, requerida para desarrollar, operar (funcionar) y mantenerlos. Se conoce también como desarrollo de software o producción de software [Bohem, 1976].

La ingeniería de software implica un ciclo de vida definido por un proceso, el cual, a su vez, se compone de una etapa de ingeniería de requerimientos, del modelado del análisis, del diseño e implementación, las pruebas y el mantenimiento.



Un aspecto muy importante a considerar dentro de un proceso de desarrollo de software es la parte de las pruebas. Para ejemplificar este aspecto consideremos el  caso del  primer vuelo del cohete Ariane 5, mismo que falló poco después del lanzamiento, lo que resultó en una pérdida estimada de mil quinientos millones de dólares.



Un Fallo de software se produjo cuando se intentó hacer una conversión de un número de 64 bits de punto flotante, a un entero con signo de 16 bits, lo que hizo que se desbordara la memoria.
a. No había un manejador de excepciones asociado con la conversión de números. Por seguridad, ésto apagó la computadora.
b. La aplicación de respaldo tenía el mismo error así que, también falló.
Lección aprendida
Todo software debe ser revisado y probar que funcione. No ejecutar software en sistemas críticos a menos que sea realmente necesario (por eso los aviones no llevan computadoras para controlar el avión, sino puros controles y sensores). Así como se prueba lo que el sistema debe hacer se debe probar lo escenarios donde el sistema hace lo que no debe hacer. Tomar en cuenta todas las variantes de excepciones que pueden ocurrir y no recaer en el uso del gestor por default de excepciones.

El personal docente del área de Bases de Datos e Ingeniería de Software de la Facultad de Ciencias de la Computación, organizó un seminario en el cual se ha propuesto como objetivo fundamental lograr unificar los materiales, métodos, estrategias y técnicas en la enseñanza de la ingeniería de software. Para ello se recopilaron los resultados de los trabajos desarrollados en el citado seminario, las experiencias compartidas y principalmente el conjunto de actividades propuestas por cada uno de los profesores participantes en un libro.

El libro está enfocado a reforzar el proceso de enseñanza-aprendizaje a través de actividades de motivación y diagnóstica para el estudio de la Ingeniería de Software.
Una actividad sugerida es un crucigrama de conceptos básicos 
Gracias por leer hasta aquí!!!




No hay comentarios: