Title: Programaci
1Programación Orientada a Objetos
Ingeniería en Informática Curso
2003/2004
Jesús García Molina Dpto. Informatica y
Sistemas Universidad de Murcia http//dis.um.es/j
molina/
2Construcción de Software OO
- Las técnicas de la orientación a objetos son el
medio adecuado para mejorar la calidad del
software
POO favorece extensibilidad y reutilización
Por qué?
Clases y Objetos Mensajes Herencia y Polimorfismo
y Ligadura Dinámica
Cómo?
3Cómo surge la programación OO?
60s
Simula
Smalltalk
70s
80s
OO es útil en IS
C, Delphi, ...
Eiffel, Trellis-Owl,...
Lenguajes OO puros
Lenguajes OO híbridos
En 1995 Java! y en 2002 C
4Evolución OO
- A finales de los ochenta, mito de la OO
- Mi gato es OO
- En los noventa deja de ser algo exótico
- Consenso en la comunidad software
- OO es el camino a seguir
- La OO no resuelve todos los problemas de la I.S.
- Existen buenos entornos profesionales
- Existe experiencia de su aplicación
5Evolución OO
Lenguajes OO
Métodos OO Análisis y Diseño OO
Bases de Datos OO
6Evolución OO
- Integración de cliente-servidor y OO Objetos
Distribuidos - Desarrollo basado en componentes
- Alcanzar el viejo sueño de construir el
- software como el hardware
- Lenguaje estándar para modelado OO UML
- Procesos OO basados en UML
7Ciclo de vida OO
- Se reduce el salto semántico entre dominio del
problema y la aplicación - Análisis y Diseño basados en los objetos del
dominio. - Se favorece la extensibilidad
8Situación actual
- Componentes
- Objetos Distribuidos
- UML Un estándar para el modelado
- Frameworks
- Patrones de Diseño
- Bases de datos OO y Objeto-Relacionales
9Situación actual
- La tecnología OO ha madurado
- Desarrollo de software OO está extendido
- Fenómeno Java
- Crece el uso de las técnicas de Análisis y diseño
OO - Procesos basados en UML RUP
- Estándares CORBA, UML, JDO,...
10OMG
- Consorcio de la industria software
- Dos objetivos
- Promover la ingeniería del software OO
- Definir un estándar para la infraestructura que
posibilite las aplicaciones distribuidas OO - UML
- CORBA
- MDA (Arquitectura dirigida por modelos)
11OO en el plan de estudios
Programación OO
Introducción a la Programación OO
3º OB
Análisis y Diseño de Software
Diseño OO (UML, Proceso y Patrones)
4º OB
Componentes Software
5º OPT
Desarrollo basado en componentes
Desarrollo de aplicaciones distribuidas
Objetos Distribuidos (Java RMI, Servlet, EJB)
5º OPT
Arquitectura del software
Patrones EJB, Frameworks
5º OPT
12Objetivos de la parte teórica
- Describir el núcleo de conceptos que caracterizan
al paradigma orientado a objetos, OO. - Contrastar como diferentes lenguajes de
programación OO reflejan los conceptos del
paradigma. - Valorar en que medida las técnicas OO mejoran la
calidad del software. - Enseñar un lenguaje OO junto con su entorno de
programación. - Enseñar técnicas de programación OO.
13Programa de Teoría
- Tema 1. Orientación a Objetos, una técnica para
mejorar la calidad del software. - Tema 2. Clases y Objetos
- Tema 3. Diseño por Contrato
- Tema 4. Herencia
14Objetivos de la parte práctica
- Aplicar los conceptos teóricos
- Aplicar técnicas de programación
- Adquirir destreza en el manejo de un lenguaje OO,
junto con su entorno de programación. - Lenguaje Java
- Entorno JBuilder 7 Personal
- Realizar un conjunto de ejercicios de
programación - Realizar un pequeño proyecto.
15Lenguaje ideal para docencia
- Buenas propiedades
- OO puro
- reflejar con claridad los conceptos
- legible
- pequeño
- tipado estáticamente
- alto nivel
- soporte para corrección
16Lenguaje ideal para docencia
- Entorno fácil de aprender y manejar, robusto.
- Requisitos hardware y software mínimos.
- Muy utilizado en las empresas e industrias
- Buena documentación
- Libre distribución
17Por qué Java?
- Tipado estáticamente
- Simple
- Orientado a objetos casi puro
- Muy extendido en la industria
- Abundante documentación
- Tecnología Java Servlet, RMI, Java Beans, EJB,..
18Características de Java
- Simplifica y acerca C a la OO
- Semántica referencia
- Garbage Collection
- No es necesario declarar funciones virtuales
- Lenguaje de uso general
- Portabilidad Bytecodes y MáquinaVirtual Java
- Apropiado para crear software para la web
- aplicaciones seguras independientes de la
plataforma - applets Java
19 Características de Java
- Herencia múltiple basada en interfaces
- Mecanismo de excepciones
- Mecanismo de concurrencia
- Persistencia
20Programa de Prácticas
- Tema 1. Clases, Objetos y Mensajes en Java
- Entorno de Programación Java
- Tema 2. Herencia en Java
- Clases abstractas
- Interfaces
- Tema 3. Clases Básicas Colecciones, Cadenas, E/S
- Tema 4. Clases internas
- Tema 5. Concurrencia y Persistencia
- Tema 6. Desarrollo de aplicaciones interactivas
21Horario de Prácticas
- Horario
- Lunes 18.30-20.30
- Jueves 16.30-18.30
- Jueves 18.30-20.30
- Laboratorio 1/3
22Evaluación
- Examen teórico con cuestiones teórico-prácticas.
- Entrega de ejercicios y proyecto de programación
- Entrevista para evaluación del trabajo práctico
- Necesario aprobar parte teórica y práctica
- Nota final Media ponderada entre la nota de
teoría (60) y la nota de prácticas (40).
23Bibliografía Básica
- TEORIA
- 1. Arnold, K. y Gosling, J., El lenguaje de
programación Java, Addison-Wesley, 3ª Ed.,
2001. - 2. Budd, T.,An Introduction to Object-Oriented
Programming, 3ª ed., Addison-Wesley, 2002. - 3. Meyer, B., "Construcción de Software Orientado
a Objetos", 2ª edición, Prentice-Hall, 1998. - 4. Stroustrup, B., "El Lenguaje de Programación
C", Edición Especial, Addison-Wesley, 2000. - PRACTICAS
- 1. Arnold, K., Gosling, J. y Jomes, D. El
lenguaje de Programación Java, 3ª Edición,
Addison-Wesley, 2001. - 2. J. Bloch, Effective Java, Addison-Wesley,
2001 - 3. Eckel, B. Piensa en Java, 2ª Edición,
Prentice-Hall, 2002.