Programación Orientada a Objetos



Descargar 15,52 Kb.
Fecha de conversión27.02.2017
Tamaño15,52 Kb.

Programación Orientada a Objetos

  • Begoña Moros Valle

Contenido

  • Presentación contenido teórico
  • Presentación contenido práctico
  • Introducción a la Programación Orientada a Objetos

TEORÍA

  • Programación Orientada a Objetos
  • Curso 2007 / 2008

Objetivos

  • Describir los conceptos que caracterizan el modelo OO
  • Valorar en qué medida las técnicas OO favorecen la calidad del software
  • Contrastar cómo diferentes lenguajes (Eiffel, Java, C++, C#) reflejan los conceptos del paradigma OO

Programa de teoría

  • TEMA1: CALIDAD DEL SOFTWARE
  • Extensibilidad
  • Reutilización
  • Fiabilidad
    • Corrección
    • Robustez
    • ...
  • Variación de tipos
  • Agrupar características
  • Variación de algoritmos y est. de datos
  • Independencia de la representación
  • Factorizar comportamiento común
  • Genericidad
  • Asertos. Diseño por Contrato
  • Excepciones
  • TEMA 2 Clases y Objetos
  • Clase: estructura (ref)
  • comportamiento (mens)
  • Niveles de acceso a propiedades
  • Modularidad
  • Ocultamiento de Información
  • Principio Abierto-Cerrado
  • Principio de Elección Única
  • TEMA4 Herencia
  • TEMA5 Herencia múltiple
  • TEMA 3 Corrección y
  • robustez

Evaluación de la asignatura

  • Parcial tipo test eliminatorio del lenguaje Java
    • ~ Semana 10
  • Exámenes teoría ± Java:
    • 12 febrero
    • 27 junio
    • 5 septiembre
  • NOTA = Teoría * 0’4 + Java * 0’2 + Prácticas * 0’4
  • sii la nota en cada parte es ≥ 5
  • El aprobado del examen o las prácticas sólo se guardará durante UN CURSO ACADÉMICO
    • Repetidores: según el caso, máximo septiembre de 2008

Bibliografía básica

  • TEMA 1
  • TEMA 2
  • TEMA 3
  • TEMA 4
  • TEMA 5
  • x
  • x
  • x
  • x
  • x
  • x
  • x
  • x
  • x
  • x
  • x
  • x
  • x
  • x
  • x
  • x
  • x
  • x
  • x
  • x

Horario de atención alumnos Teoría

  • Facultad de Informática (2ª planta): 2.37
  • Martes: 11:30 a 13:30
  • Miércoles: 16:30 a 20:30

PRÁCTICAS

  • Programación Orientada a Objetos
  • Curso 2007 / 2008

Objetivos

  • Aprender un LPOO: Java
  • Dominar las librerías básicas del lenguaje
  • Practicar los conceptos de orientación a objetos en Java
  • Manejar un entorno de programación Java: Eclipse

Programa de Prácticas

  • Totalmente ligado al programa de teoría:
    • Criterios de calidad del software
    • Modelo de objetos: abstracción, modularidad, encapsulación, herencia.
    • Conceptos del paradigma OO: clase, objeto, herencia, polimorfismo, ligadura dinámica
    • Principios de diseño modular y OO
  • Aplicamos estos conceptos en un LPOO concreto: Java
    • Sintaxis del lenguaje
    • Manejo de las librerías básicas (colecciones)
    • Creación y utilización de ficheros .jar

Metodología

  • Seminarios semanales
    • En el aula de teoría
    • Metodología basada en proyectos
    • Resolución de problemas de programación
    • Empieza el 11 de octubre
  • Prácticas laboratorio abierto
    • Presentación en SUMA con las propiedades básicas del entorno
  • 3 ó 4 entregas que de manera constructiva conformarán un proyecto de programación
  • Entrevistas de control y revisión de las entregas

Práctica

  • Grupos de 2 alumnos
  • Desarrollo incremental de un videojuego
    • Proyecto Java en Eclipse
    • ¡¡Debe primar el diseño OO sobre la jugabilidad!!
  • Se mantiene la misma práctica para Junio/Septiembre
  • Entrega de prácticas en SUMA y algunas en papel
    • El formato se especificará en cada entrega

Evaluación de las prácticas

  • Revisiones de las entregas parciales:
    • OBLIGATORIAS
    • De manera escalonada
      • No se puede presentar una entrega sin haber corregido la anterior
    • En horas de tutorías o de prácticas
    • En plazos amplios
    • Bajo demanda de los alumnos
  • Evaluación continua
    • Las correcciones de una entrega deben incluirse en la siguiente
  • Defensa de la práctica final
    • A criterio del profesor
    • Individual o en grupo

Horario

  • Seminario en aula de teoría:
    • Jueves de 12:00 – 13:00
  • Laboratorio 1.4:
    • Grupo 1: Lunes de 16:30 – 18:30
    • Grupo 2: Lunes de 18:30 – 20:30
  • Tutorías:
    • Martes: 11:30 a 13:30
    • Miércoles: 16:30 a 20:30

Bibliografía Básica

  • Gratuitos (versiones en PDF):
  • Biblioteca:
    • Java 2. Vol I. Fundamentos. Cay S. Horstmann, Gary Cornell
    • Java 2. Vol II. Características Avanzadas. Cay S. Horstmann, Gary Cornell
    • El lenguaje de programación Java, de J. Gosling
    • Effective Java. Programming Language Guide.

INTRODUCCIÓN

  • Programación Orientada a Objetos
  • Curso 2007 / 2008

¿Qué significa Orientación a Objetos?

  • El software se organiza como una colección de objetos que contienen tanto estructura como comportamiento.
  • ¿Qué es el desarrollo OO?
  • Una nueva forma de pensar acerca del software basándose en abstracciones que existen en el mundo real.
  • Bombilla
  • color
  • encender()
  • apagar()

Un lenguaje de programación refleja un paradigma.

  • Un lenguaje de programación refleja un paradigma.
  • Paradigma de programación
  • Colección de conceptos que guían el proceso de construcción de un programa, determinando su estructura. Estos conceptos controlan la forma en que pensamos y formulamos los programas.
  • PARADIGMA LENGUAJE
  • Imperativo C, Pascal, Cobol, ...
  • Funcional Lisp, Hope, Miranda, ...
  • Lógico Prolog, Parlog, ...
  • Orientado a Objetos Smalltalk, C++, Eiffel, Java, ...

Marco Conceptual del paradigma OO

  • Programación Orientada a Objetos
  • Bases de Datos OO
  • Modelo de Objetos
  • Abstracción
  • Encapsulación
  • Modularidad
  • Herencia
  • Polimorfismo
  • Desarrollo basado en componentes (CORBA COM, EJB, COM)
  • Tecnología de objetos distribuidos (CORBA, RMI, Plataforma .NET)
  • El futuro del paradigma OO

Titulación Ingeniero en Informática (Plan 2002)

  • 1
  • 2
  • 3
  • 4
  • 5
  • Intensificación en Tecnología del software:
  • Ampliación de bases de datos
  • Desarrollo de aplicaciones distribuidas
  • Desarrollo basado en componentes
  • Arquitectura del software
  • Metodología y tecnología de la programación
  • Algoritmos y estructuras de datos
  • POO (3T+3P)
  • Análisis y diseño del Software
  • Ingeniería de SI

Problemas en la creación del software

  • A finales de los 60 se acuñó el término crisis del software:
    • Los proyectos no cumplían los plazos y presupuestos.
  • Dificultades inherentes a la naturaleza del software:
    • Complejidad
      • dificultad de enumerar todos los estados posibles del programa
      • dificultad de comunicación entre los miembros del equipo
    • Conforme a otras interfaces
    • Sujeto a continuos cambios
    • El software es intangible, no tiene representación gráfica
  • Especificación de requisitos completa, precisa y correcta.

Problemas en la creación del software

  • “La construcción de software siempre será una tarea difícil. No hay bala de plata”
  • [Brooks, 1987]
  • Soluciones:
    • Reutilizar componentes (Comprar y no construir)
    • Prototipado
    • Buenos programadores/diseñadores

Historia de los LPOO

  • 1972- SMALLTALK (Kay, Goldberg, Ingalls)
    • Simula + LISP (sin tipos) -> LPOO puro
    • Características de un LPOO [Byte81]:
      • Todo es un objeto.
      • Programa = cjto de objetos que se comunican mediante mensajes
      • Todo objeto es instancia de una clase (tiene un tipo).
      • La clase es el repositorio de comportamiento asociado con un objeto
      • Las clases se organizan en jerarquías de herencia

Historia de los LPOO – Años 70-80

  • “orientado a objetos” era sinónimo de “bueno”.
  • Soportar el concepto de objeto no es suficiente.
  • BASADO EN OBJETOS
  • Ada, Modula 2
  • (1979)
  • BASADO EN CLASES
  • + clases
  • CLU
  • (1974)
  • ORIENTADO A OBJETOS
  • Smalltalk
  • (1972)
  • [Wegner87]

Historia de los LPOO - Años 80

  • Proliferación de LPOO
  • Clasificación atendiendo al origen:

Historia de los LPOO – Años 90

  • Aplicaciones centradas en el web
  • 1995 JAVA- SUN
    • “comportamiento” en páginas HTML
    • Tecnología de implementación: bytecode+MV
  • 2000 C# - Microsoft
    • Plataforma .NET
    • Máquina virtual para conseguir la portabilidad
    • Combina Java y C++
    • Son más de 20 lenguajes los que están en proceso de migrarse a la plataforma .NET


La base de datos está protegida por derechos de autor ©absta.info 2016
enviar mensaje

    Página principal