Programación Orientada a Objetos -...
Transcript of Programación Orientada a Objetos -...
Programación Orientada a ObjetosCurso 2015/2016
Javier Bermúdez Ruiz
Marcos Menárguez Tortosa
Begoña Moros Valle
http://dis.um.es/docencia/poo
Contenido de la presentación
• Programa de teoría.
• Programa de prácticas.
• Evaluación.
• Horarios.
• Introducción.
Objetivos delPrograma de Teoría
• Describir los conceptos que caracterizan el modelo orientado a objetos (OO).
• Valorar en qué medida las técnicas OO favorecen la calidad del software.
• Estudiar cómo Java refleja los conceptos del paradigma OO.
Metodología
• Desarrollo de los temas del programa junto con resolución de ejercicios.
• Aprendizaje basado en problemas/proyectos.
• Evaluación final mediante un examen teórico.
Programa de Teoría
• Tema 1: Introducción al paradigma orientado a objetos.
• Tema 2: Clases y Objetos
• Tema 3: Herencia
• Tema 4: Genericidad, colecciones y patrones de diseño
• Tema 5: Corrección y Robustez. Excepciones en Java
• Tema 6: Características avanzadas de Java.
Bibliografía básica
Core Java 2. Vol I. Fundamentos. Cay S. Horstmann, Gary Cornell
Objetivos delPrograma de Prácticas
• Aprender el lenguaje de programación Java
• Practicar los conceptos OO en Java en el desarrollo de un proyecto de programación
• Manejar un entorno de programación Java: Eclipse
Metodología• Proyecto de programación: Videojuego
– Organizado en etapas a medida que se van
introduciendo los contenidos teóricos.
– Guía del trabajo en el laboratorio y parte del trabajo
supervisada.
– Trabajo autónomo fuera del laboratorio.
– Dos entregables: 9 de noviembre y 14 de diciembre.
• Evaluación final:
• Examen práctico de problemas en el laboratorio
• Evaluación del proyecto de programación. Defensa del trabajo a criterio del profesor.
Evaluación de la asignatura• Peso de los contenidos de la asignatura:
– 30% - Examen de teoría
– 35% - Examen práctico de problemas (en laboratorio)
– 35% - Proyecto de programación
• Se debe superar cada una de las partes.
• El examen práctico sólo se podrá realizar si se aprueba el proyecto de programación.
• El aprobado de algún examen o las prácticas sólo se guardará durante EL CURSO ACADÉMICO.
Exámenes
• Exámenes oficiales en cada convocatoria :
– 15 de enero de 2016 (Mañana)
– 25 de mayo de 2016 (Mañana)
– 04 de julio de 2016 (Tarde)
• Los exámenes de teoría y prácticas se hacen el mismo día y en el mismo turno.
Horario de la asignatura
• Teoría:– Grupo 1: Lunes 9:25-11:25 (Aula A.03)
– Grupo 2: Lunes 11:35 – 13:35 (Aula A.04)
– Grupo 3: Martes 15:30 – 17:30 (Aula A.03)
• Prácticas:– Martes, Miércoles y Jueves.
Profesorado
• Javier Bermúdez Ruiz
– Prácticas G2.1, G2.2 y G2.3
– Facultad de Informática (2ª planta): 2.30
– Tutorías: consultar la guía docente
– Tutoría electrónica a través de Aula Virtual.
Profesorado
• Marcos Menárguez Tortosa
– Teoría G2
– Prácticas G3.1 y G3.2
– Facultad de Informática (2ª planta): 2.33
– Tutorías: consultar guía docente
– Tutoría electrónica a través de correo electrónico ([email protected])
Profesorado
• Begoña Moros Valle
– Teoría de los grupos G1 y G3
– Prácticas del grupo G1 y G3.3
– Facultad de Informática (2ª planta): 2.37
– Tutorías: consultar guía docente
– Tutoría electrónica a través de Aula Virtual.
Introducción
Lenguajes OO – Años 80
� Popularidad de los lenguajes OO.
� C++ (1985):
• Extensión de C con características OO.
• Muy popular, ayudó a difundir la POO.
� Eiffel (1985):
• Bertrand Meyer
• Lenguaje orientado a objetos puro.
• Fruto de un profundo estudio del paradigma OO.
• Lenguaje “teórico” poco utilizado.
Lenguajes OO – Años 90
� Java (1995):
• Sun Microsystems � Oracle
• Lenguaje OO puro.
• Se popularizó por su uso en la web.
• Actualmente soporta una extensa plataforma de desarrollo de software (numerosas bibliotecas de código).
� C# (2000):
• Combina C++ y Java.
• Integrado en la plataforma .NET de Microsoft.
Tecnología Java
� https://www.java.com/es/about/– En empresas, el 97% de los ordenadores de
escritorio ejecutan Java
– En el ámbito doméstico, el 89% de los ordenadores
personales en Estados Unidos ejecutan Java
– 9 millones de desarrolladores de Java en todo el
mundo
– 3.000 millones de teléfonos móviles ejecutan Java
– Todos los reproductores de Blu-ray incluyen Java
– 125 millones de dispositivos de televisión ejecutan
Java
Características del lenguaje Java
� Independiente de la plataforma de ejecución:
• El compilador Java genera código intermedio (bytecodes) independiente de la plataforma.
• Los bytecodes son interpretados por la máquina virtual de Java (JVM).
• El código compilado se puede ejecutar en muchas plataformas (Windows, Linux, Mac, etc.) siempre y cuando cuenten con el entorno de ejecución de Java (incluye la máquina virtual)
• La tecnología de implementación (compilador+intérprete) hace que el código Java sea portable.
Características del lenguaje Java
Independiente de la plataforma de ejecución:
http://javapapers.wordpress.com/2011/11/28/java-virtual-machine-jvm/
Características del lenguaje Java
� Sencillo:
• La sintaxis de Java es muy parecida a C++
• Elimina las características de C++ más complejas, por ejemplo, punteros.
� Orientado a Objetos:
• A diferencia de C++, es un lenguaje OO puro.
• Las capacidades OO son similares a las de C++.
Características del lenguaje Java
� Robusto:
• Lenguaje fuertemente tipado
- El compilador detecta muchos problemas que, en otros lenguajes, aparecerían en tiempo de ejecución.
• Mecanismo de excepciones
- Gestión de errores en tiempo de ejecución.
• Elimina los errores derivados de una mala gestión de memoria
- Mecanismo de “recogida de basura”.
- Elimina la gestión de punteros.
Evolución del lenguaje Java
http://wiki.bcmoney-mobiletv.com/index.php?title=Java
Java vs. .NET
� Un programa Java se implementa una vez y se
puede ejecutar en plataformas diferentes (cualquier hw y sistema operativo).
� Los programas compilados en .NET se
ejecutan sólo en Windows pero pueden
escribirse en lenguajes diferentes (C#, VB.NET, F#, C++, etc.)