Universidad

Rey Juan Carlos

SOFTWARE AVANZADO

PROGRAMA DE LA ASIGNATURA

 

 

Asignatura: Troncal
Nº de créditos: 4,5 (3T+1,5P)
Ciclo/Curso.Cuatrimestre: 1/3.2 en IITG.

Ciclo/Curso.Cuatrimestre: 1/4.2 en IITG + LADE
Profesor: José Francisco Vélez Serrano (jose.velez@urjc.es)
Horario de clases en Móstoles: martes de 19:00 a 20:00 y viernes de 17:00 a 19:00.

Horario de tutorías en Móstoles: martes y jueves de 10:00 a 12:00.

En el tablón de anuncios se puede encontrar información actualizada sobre la asignatura.

Existe unos apuntes que abarcan la materia impartida en la asignatura, y un libro que también la abarca y además amplia ciertos contenidos.

Índice

Tema 1.- Introducción a la programación orientada a objetos. Complejidad del software: origen y tratamiento, herramientas para tratar la complejidad, evolución de los lenguajes de programación, paradigmas de programación, programación orientada a objetos, abstraer, encapsular, jerarquizar, modularizar, tipo, concurrencia, persistencia.

Tema 2.- Introducción al lenguaje Java. Introducción, breve historia de Java, la máquina virtual de Java, compiladores de Java, entornos de desarrollo para Java, el programa hola mundo, los comentarios, juego de instrucciones, expresiones básicas y control de flujo, tipos primitivos, conversiones entre tipos primitivos, operadores, control del flujo, los paquetes, las clases, declaración de los métodos de una clase, declaración de las propiedades de una clase, modificador de control de acceso a los miembros, modificador de uso de los miembros, los métodos en detalle, las propiedades en detalle, creación de objetos, destrucción de objetos, bloques de inicialización, tipos de clases , ejemplo de la pila de enteros, definición de arrays de objetos y de tipos primitivos.

Tema 3.- La herencia en Java. La herencia de clases, herencia en clases internas, redefinición de miembros, la herencia y los constructores, polimorfismo dinámico, el casting de referencias a objetos, las interfaces.

Tema 4.- El paquete java.lang. La clase object, a clase string, las excepciones, tipos de excepciones, el uso práctico de las excepciones, interfaces cloneable y comparable, interfaz cloneable, interfaz comparable, la concurrencia, mecanismos de compartición y comunicación, la genericidad, clases e interfaces genéricas, métodos con tipos parametrizados, los tipos enumerados, envolturas.

Tema 5.- Diseño de clases. Aspectos a tener en cuenta al definir relaciones, versatilidad, temporalidad, visibilidad, otros criterios, relaciones de dependencia entre objetos, dimensión estática, dimensión dinámica, cuándo y cómo usar relaciones de dependencia, relaciones de asociación entre objetos, dimensión estática, dimensión dinámica, cuándo y cómo usar las relaciones de asociación, relaciones entre clases, dimensión estática, dimensión dinámica, cuándo y cómo utilizar las relaciones de herencia,

Tema 6.- Entrada salida en Java. El paquete java.io, streams de bytes, streams de caracteres, streams del sistema, streamtokenizer, manejo de ficheros, la interfaz serializable.

Tema 7.- Estructuras de datos en Java. Contenedores de java.util, collection, map, contenedores conscientes del tipo, iteradores, el resto del paquete java.util.

Tema 8.- Principios y patrones. Principios de la programación orientada a objetos, el principio abierto-cerrado, el principio de liskov, el principio de segregación de intefaces, patrones de diseño, método de fabricación (factory-method), adaptador o envoltorio (adapter o wrapper), decorador (decorator), composición (composite), iterador (iterator), estrategia (estrategy), observador (observer).

Tema 9.- El resto de paquetes estratégicos de Java. GUI de usuario: awt y swing, eventos, componentes, aplicaciones distribuidas e Internet, applets, servlets, JSP - Java Server Pages, Java Web Start, RMI , componentes enterprise JavaBeans (EJB), comunicación con otros sistemas, JNI, JDBC.


Bibliografía básica

1.- Diseñar y Programar todo es empezar. J. Vélez, A. Peña, P. Gortazar y A. Sánchez. Dykinson. 2011. ISBN 978-84-9982-074-3
2.- Análisis y diseño Orientada a Objetos. Booch, G., A", Addison-Wesley, 1996. ISBN 0805353402
3.- UML Gota a Gota.
M. Fowler, Pearson 1999. ISBN 9684443641.
4.- Piensa en Java.-
Bruce Eckel, Prentice Hall , 2007.

 

Bibliografía complementaria

1.- Patrones de diseño.- Gamma y otros. Addison-Wesley, 1995.
2.- Effective Java.- Joshua Bloch, Addison-Wesley 2008.
3.- Java and Object orietation. John Hunt,Springer, 1998. ISBN 3540762019
4.- Introducción a la programación Orientada a Objetos. Budd, T. Addison-Wesley. ISBN 0201601036.
5.- Cómo programar en Java
. H. M. Deitel y P. J. Deitel. Prentice Hall. ISBN: 9701700449. 
6.- Aprenda Java: Como si estuviese en primero. Universidad de Navarra, Javier García y otros, 1999. Download


Objetivos

Que los alumnos adquieran los fundamentos para realizar programación orientada a objetos. Los alumnos deberán aprender a realizar diseño orientado a objetos y deberán afianzar sus conocimientos sobre las ventajas de la encapsulación. Además deberán comprender y utilizar los mecanismos de herencia y polimorfismo.


Metodología

La asignatura se imparte un 80% en aula de teoría y un  20% en aula de prácticas. Tanto la parte teórica como la práctica esta apoyada por un texto dispobible electrónicamente.


Sistema de evaluación

Un examen teórico práctico para el 80% de la nota, y una práctica con un 20% de la nota.

 

Ir a GAVAB