El objetivo general de la asignatura es proporcionar al estudiante los fundamentos teóricos y las competencias prácticas que le permitan analizar, diseñar, desarrollar y depurar aplicaciones informáticas siguiendo el paradigma orientado a objetos. Esta es una asignatura eminentemente práctica y en este sentido está orientada al trabajo de los alumnos en la realización de uno o varios proyectos. Para facilitar el desarrollo de los proyectos en la asignatura también se hace una introducción a la “Ingeniería del Software”. En este sentido no se ocupa de todas las fases generalmente reconocidas en los procesos de desarrollo software que van desde la captura y descripción de requisitos hasta el despliegue de los sistemas, sino que se tratarán principalmente las etapas de análisis, diseño, implementación y depuración. En primer lugar se presentará la ingeniería del software como disciplina imprescindible para el desarrollo de grandes aplicaciones informáticas, mostrando los principales retos a los que se enfrenta y los conceptos básicos que se utilizarán. A continuación se analizarán los elementos del paradigma orientado a objetos utilizando elementos y diagramas UML que serán utilizados por los alumnos en sus desarrollos. Para alcanzar este objetivo general los contenidos que se verán en la asignatura se pueden resumir en los siguientes ítems:
• El paradigma Orientado a Objetos o Conceptos básicos de la orientación a objetos: clases y objetos
o Encapsulación. Principio de ocultación. Conceptos de desacoplamiento y cohesión
o Herencia, abstracción, polimorfismo y reutilización
o Relaciones entre clases: Generalización, asociación y dependencia
o Comunicación entre objetos: métodos, eventos, mensajes
o Persistencia. Almacenamiento en ficheros y en bases de datos
o Generación, captura y procesamiento de excepciones
• Introducción a la Ingeniería del Software
o Conceptos básicos de la Ingeniería del Software. Reseña histórica o Introducción y concepto de Ciclo de Vida. Estándar
ISO/IEC 12207
o Introducción a las metodologías de desarrollo de software. Clasificación o Introducción a los procesos de desarrollo de software orientado a objetos. Métrica v3 y el Proceso Unificado
o Fases principales en el desarrollo OO: análisis, diseño, implementación y pruebas
o Introducción al lenguaje de modelado UML: estructura e interacción