Programación Orientada a Objetos

Documentos relacionados
Programación Orientada a Objetos

Programación Orientada a Objetos

Modularidad: Tipos abstractos de datos Programación Orientada a Objetos Tema 2: Modularidad

TEMA 1 INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS

Introducción a la Programación en C

Evolución de la Programación Orientada a Objetos

CAPÍTULO 2: CARACTERÍSTICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS. ABSTRACCIÓN. ENCAPSULAMIENTO. PRINCIPIO DE OCULTACIÓN. HERENCIA. POLIMORFISMO.

INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS

Tipo de Datos Abstractos y Programación Orientada a Objetos

Programación Orientada a Objetos

Programación Orientada a Objetos

1. Computadores y programación

Lenguajes de Cuarta Generación

Programación Orientada a Objetos

GUÍA DOCENTE DE PROGRAMACIÓN ORIENTADA A OBJETOS

Programación Orientada a Objetos. Conceptos Básicos

Metodologías en la Ingeniería del Software Métodos Orientados a Objetos

PLANIFICACIÓN PROGRAMACION II

ESTRUCTURAS DE DATOS II

Contenido. Prefacio Orígenes de la programación orientada a objetos... 1

Conceptos de Programación Orientada a Objetos

Cada enfoque tiene sus ventajas y desventajas Cada uno es más apropiado para ciertas cosas

Programación orientada a objetos TEMA 1 INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS POO

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERIA SYLLABUS

UNIVERSIDAD DE CIENCIAS EMPRESARIALES Y SOCIALES FACULTAD DE CIENCIAS EMPRESARIALES

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

Introducción Java y Servicios Web I Master en Ingeniería Matemática

Estructuras de Datos y Algoritmos. Programa de la asignatura

Universidad Salesiana de Bolivia

Introducción. Introducción y conceptos de POO. En qué consiste la POO? Vocabulario. Definiciones

SISTEMAS EN TIEMPO REAL


Introducción y conceptos de POO

Programa Oficial de Asignatura. Ficha Técnica. Presentación. Competencias y/o resultados del aprendizaje. Contenidos Didácticos

Lenguajes de Programación II

Programación Orientada a Objetos. Integrantes: Santiago Hernández Bolívar Edwin Alexander Bohórquez

NOMBRE DEL CURSO: Introducción a la Programación y computación 1

UNIVERSIDAD RICARDO PALMA FACULTAD DE INGENIERÍA

INGENIERÍA N DEL SOFTWARE

HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador

Introducción a la programación

FACULTAD DE INGENIERIAS PROGRAMAS INFORMATICOS PROGRAMACION DE PRIMEROS EXAMENES PARCIALES LUNES 27 DE SEPTIEMBRE A SABADO 2 DE OCTUBRE DE 2010

PROGRAMACIÓN ORIENTADA A OBJETOS

MOO - Metodología y Programación Orientada a Objetos

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET

Ingeniería en Computación. Lenguaje de Programación Orientado a Objetos. Unidad de competencia I: Plataforma y lenguaje

PROGRAMACIÓN ORIENTADA A OBJETOS

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET 2010

Intuitivamente es el proceso que se trata de formular y evaluar una solución para un problema dado

Algoritmos y programas

Programación Orientada a Objetos

ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS

Presentación del Curso Presencial. Programación Web con Java J2EE

Contenido. 1. Introducción a la programación La secuenciación La selección...55

Lenguajes de programación Última modificación 2008/10

Guía de curso Programación Orientada a Objetos

Universidad Tecnológica Nacional Facultad Regional San Francisco. Tecnicatura Superior en Programación PROGRAMACIÓN II

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS

Tema 1: Principios de Java

ZCBC. ECBTI. Programa Ingeniería de Sistemas. Curso Académico de Programación Orientada a Objetos. Código José Acevedo y Gómez

Programación Concurrente y de Tiempo Real

PROGRAMACIÓN EN JAVA

Programación Inicial. Requisitos previos. Objetivos. Próximos Inicios. Modalidad a Distancia. Costo y formas de pago. Resumen de Contenidos

Tipos Abstractos de Datos (TAD) Lección 1

DISEÑO CURRICULAR ALGORÍTMOS, ESTRUCTURAS Y PROGRAMACIÓN II

Transcripción:

Programación Orientada a Objetos Teoría: Begoña Moros Valle Prácticas: Marcos Menárguez Tortosa 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 2005 / 2006 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 Modularidad Etensibilidad 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 Ocultamiento de Información Principio Abierto-Cerrado Principio de Elección Única TEMA 2 Clases y Objetos Genericidad Clase: estructura (ref) comportamiento (mens) Niveles de acceso a propiedades TEMA 3 Corrección y robustez Asertos. Diseño por Contrato Ecepciones TEMA5 Herencia múltiple TEMA4 Herencia Polimorfismo Ligadura dinámica Clases diferidas Código genérico Eámenes: 2 diciembre 14 febrero 30 junio 6 septiembre Evaluación NOTA = Teoría * 0 6 + Prácticas * 0 4

Bibliografía básica TEMA 1 TEMA 2 TEMA 3 TEMA 4 TEMA 5 Horario de atención alumnos Teoría Facultad de Informática (3ª planta): E-20 Martes: 18:30 a 20:30 Miércoles: 18:30 a 20:30 Jueves: 18:30 a 20:30

PRÁCTICAS Programación Orientada a Objetos Curso 2005 / 2006 Objetivos Aprender el lenguaje de programación 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

Programa de Prácticas Introducción a Java Entorno de programación Sintais del lenguaje Clases y objetos Cadenas y Entrada/Salida Herencia, clases abstractas Genericidad e Interfaces Colecciones e Iteradores. Clases Anidadas. Hilos Metodología Seminarios semanales. Prácticas laboratorio abierto. Ejercicios semanales. Entrevistas de control y revisión. Dos correcciones generales de prácticas. Defensa de prácticas.

Planificación 1/2 S2 (3-Octubre): Comienzo de los seminarios Práctica laboratorio cerrado: entorno de programación De S7 (7-N) a S9 (21-N): Entrevistas de control S10: viernes 2 de diciembre Primera entrega de prácticas S12 S13 (del 12 D al 21 D) Entrevistas de revisión Planificación 2/2 S15: 16 de Enero Segunda entrega de prácticas Del 30 Enero al 10 de Febrero Entrevistas de revisión 20 de Febrero: Entrega final corregida Del 20, 21 y 22 de Febrero: Defensa de prácticas

Práctica Desarrollo de un videojuego Grupos de 1 ó 2 alumnos Propuesta de otra práctica para Junio/Septiembre Entrega de prácticas en SUMA y en papel Entorno: JBuilder X Evaluación Penalización: Por faltar entrega semanal:- 5 % por semana y práctica No hacer las correcciones de las entrevistas. No realizar la primera entrega general Defensa de prácticas: Determinar trabajo cada componente del grupo No hay convocatoria de diciembre: Febrero / Junio o Septiembre

Horario Seminario: Lunes de 12:00 13:00 Laboratorio: Grupo 1: Martes de 18:30 20:30 Grupo 2: Miércoles de 18:30 20: 30 Tutorías, sótano Facultad de Informática: Lunes 18:30 20:30 Martes 16:30 18:30 Jueves 16:30 18:30 Bibliografía Básica Gratuitos (versiones en PDF): Core Java 2, volumen 1 y 2 (inglés) 4 Manuales de JBuilder X en (español) Thinking in Java, 3ª edición (inglés), en español en la biblioteca Effective Java. Programming Language Guide. Biblioteca: El lenguaje de programación Java, de J. Gosling Java 1.2 al descubierto, de J. Jaworski

INTRODUCCIÓN Programación Orientada a Objetos Curso 2005 / 2006 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 eisten en el mundo real. Bombilla color encender() apagar()

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. Un lenguaje de programación refleja un paradigma. 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 Métodos de Análisis y Diseño OO Modelo de Objetos Abstracción Encapsulación Modularidad Herencia Polimorfismo El futuro del paradigma OO Bases de Datos OO Desarrollo basado en componentes (CORBA COM, EJB, COM) Tecnología de objetos distribuidos (CORBA, RMI, Plataforma.NET)

1 2 3 Titulación Ingeniero en Informática (Plan 2002) Metodología y tecnología de la programación POO (3T+3P) Algoritmos y estructuras de datos 4 5 Ingeniería de Requisitos Ingeniería de SI Análisis y diseño del Software Intensificación en Tecnología del software: - Ampliación de bases de datos - Desarrollo de aplicaciones distribuidas - Desarrollo basado en componentes - Arquitectura del software 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 Conformea 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 1964- SIMULA (Dahl y Nygaard): comienzo de la OO Se identificaba como lenguaje de simulación Ha influido en el desarrollo de otros 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 + clases Ada, Modula 2 (1979) BASADO EN CLASES CLU (1974) + herencia de clases ORIENTADO A OBJETOS Smalltalk (1972) [Wegner87] Historia de los LPOO - Años 80 Proliferación de LPOO Clasificación atendiendo al origen: Híbridos: Basados en C: o C++ 1985 B. Stroustrup o Objective-C 1983 Brad Co y Tom Love Basados en Pascal: o Object Pascal 1985 Apple con Wirth o Modula-3 1988 Digital y Olivetti Basados en Lisp: o CLOS 1988 Púros: o Smalltalk 1972 Alan Kay o Eiffel 1985 Bertrand Meyer

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 muchos los lenguajes que se están migrando a la plataforma.net