El itinerario de Ingeniería del Software del Grado en Ingeniería Informática

19 junio, 2014

En esta entrada presentamos en detalle el itinerario de Ingeniería del Software dentro del Grado en Ingeniería Informática adaptado al EEES.

Pero empezaremos contando un poco de historia… desde sus inicios en la década de 1940, el desarrollo de software ha evolucionado sorprendentemente. Inicialmente, el desarrollo de software se consideraba más bien un arte para el que existían pocos métodos sistemáticos. El software se desarrollaba de la mano de los  programadores, con mucho esfuerzo pero poca planificación.

Esta manera de desarrollar software, además de suponer un gran esfuerzo que debía reiniciarse para cada nuevo software, era susceptible de contener errores y era prácticamente imposible predecir los costes y el tiempo de desarrollo. Dicha situación desencadenó la llamada “crisis del software” a finales de los años 60.  Al mismo tiempo, en una conferencia [1] organizada por la OTAN, surgió el término “Ingeniería del Software” con el objetivo de dar solución a los problemas más comunes que aparecían al desarrollar sistemas software complejos.

La Ingeniería del Software es una disciplina que estudia la aplicación de métodos, modelos, procedimientos y herramientas típicos del resto de ingenierías al desarrollo de software. La aplicación de esta disciplina ayuda a evitar problemas muy típicos en el desarrollo de software cómo los que resume la siguiente imagen:

Una visión humorística de una situación muy real
Una visión humorística de los proyectos de desarrollo de software

Como se comentó recientemente en una entrada de este mismo blog, estos errores pueden ser especialmente graves en sistemas software críticos.

El itinerario de Ingeniería del Software dentro del Grado en Ingeniería Informática proporciona los conocimientos necesarios para desarrollar software de manera sistemática, ofreciendo técnicas para responder preguntas cómo: ¿Qué requisitos tiene el software que quiero desarrollar? ¿Cómo puedo priorizar los requisitos? ¿Cómo los analizo? ¿Qué solución de diseño es la más adecuada? ¿Tengo que desarrollar todo el software desde cero o puedo reutilizar soluciones utilizadas anteriormente por otros desarrolladores? ¿Cómo implementar y probar que el software es correcto y cumple los requisitos?

Aunque existen diferentes métodos de desarrollo de software (desde los métodos formales hasta los métodos ágiles), todos ellos incluyen por lo menos las siguientes actividades:

– Identificación y gestión de Requisitos: Consiste en identificar los requisitos (necesidades y restricciones) del cliente (llamado stakeholder). En la asignatura Ingeniería de Requisitos del itinerario se estudian diversas técnicas para dar soporte a esta actividad.

– Análisis y Diseño: Consiste en crear modelos (en el lenguaje UML) que plasmen los requisitos identificados en la actividad anterior; dichos modelos servirán como base para construir el software. En la asignatura Análisis y Diseño con Patrones del itinerario se estudian diversas técnicas avanzadas para dar soporte a esta actividad. Por otro lado, en la asignatura Ingeniería del software de componentes y sistemas distribuidos se estudia la aplicación del análisis y el diseño cuando queremos desarrollar un software distribuido.

– Construcción y pruebas: Consiste en la escritura del código (implementación) y la realización de las pruebas necesarias para garantizar, dentro de lo posible, la ausencia de errores en los programas y la adecuación del producto a los requisitos. En la asignatura Diseño de Estructuras de Datos del itinerario se estudian diversas estrategias para representar los datos en un código, especialmente importante en sistemas donde la eficiencia es un factor crítico. Por otro lado, en la asignatura Proyecto de Desarrollo del Software se ponen en práctica todos los conocimientos del resto de asignaturas del itinerario en un proyecto realizado en grupo haciendo hincapié en la implementación y pruebas del software desarrollado.

Para acceder a este itinerario se recomienda tener conocimientos básicos de Ingeniería del Software (haber cursado previamente la asignatura obligatoria Ingeniería del Software), así como conocimientos de programación (haber cursado las asignaturas Fundamentos de Programación y Diseño y Programación Orientada a Objetos).

El punto culminante del itinerario es el Trabajo Final de Grado, donde se ponen en práctica todos los conocimientos adquiridos. A continuación os mostramos algunos ejemplos de trabajos representativos realizados por estudiantes de este itinerario:

The job Board: Este trabajo, realizado en el área de Java EE, se basa en la creación de una bolsa de trabajo on-line, distribuida y multi-dispositivo. Ha sido creada a partir de nuevas tecnologías como Play Framework y Twitter Bootstrap, utilizando los lenguajes Java y Scala, usando marcación HTML5 y desplegada en un servidor de cloud computing llamado Heroku.

– TimeOverflow: Este proyecto, realizado en el área de Ingeniería del Software, se basa en el análisis y el diseño del software TimeOverflow, que sirve para gestionar bancos de tiempo de toda España (inicialmente). Se trata de un proyecto para dotar a TimeOverflow de unas bases sólidas a partir de las cuales realizar su desarrollo. El análisis y el diseño deben ser el punto de partida para crear este software de manera correcta, eficiente y completa.

Por otro lado, la formación adquirida mediante este itinerario puede completarse cursando el Posgrado en Ingeniería del Software o alguna de sus especializaciones, donde se estudian técnicas avanzadas de Ingeniería del Software y se profundiza en la modelización de sistemas software.

Un graduado en Ingeniería Informática especializado en Ingeniería del software tiene salidas profesionales muy diversas en la sociedad actual. Puede ocupar roles tales como ingeniero de requisitos, analista de sistemas, desarrollador de software, Quality Assurance (QA), etc. Algunos de estos roles están considerados como los mejores trabajos del 2013, según la revista inglesa Money Careers.


[1] Las actas completas de la primera conferencia de Ingeniería del Software se pueden consultar aquí.

(Visited 284 times, 1 visits today)
Autor / Autora
Comentarios
Pedro Velat29 diciembre, 2016 a las 1:43 pm

Hola, me pongo en contacto desde Ekamat! Somo una empresa de desarrollo de software ERP.
Estoy interesado en la persona que ha escrito este post, si es alumno, está claro!
Si es así, ¿Podría ponerse en contacto con nosotros?
934 15 40 05, Via Augusta, 13, 08006 Barcelona, Ekamat Barcelona

Muy buena información, el que lo ha escrito entiende del tema! Felicidades

Responder
Deja un comentario