Programación Orientada a Objetos

Slides:



Advertisements
Presentaciones similares
Moodle.
Advertisements

Introducción a la Programación
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
“Como evaluar a grupos numerosos y no morir en el intento”
Programación Avanzada en Internet
Introducción a la Orientación a Objetos
DSOO - María Eugenia Valencia
Fundamentos de Programación Orientada a Objetos
POO Santiago, Mayo 2004 TRABAJO DE INVESTIGACIÓN POO Programación Orientada a Objetos CENAFOM Carolina Bravo V. Jaime Jofré B.
UNIVERSIDAD LATINA (UNILA) INTRODUCCION A LA PROGRAMACIÓN
Ingeniería del Software
PROGRAMACION ORIENTADA
M.S.C. Ivette Hernández Dávila
LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN
U NIDAD III P ROGRAMACIÓN O RIENTADA A O BJETOS (POO) Facilitadora: Ing. Patricia Gómez.
El paradigma de la orientación a objetos La programación orientada a objetos genera códigos eficientes y estandariza la metodología de programación, además.
Ingeniería de software Unidad II Ingeniería de Software Orientado a Objetos Principios Orientados a Objetos Tema Semana 7.
Fundamentos de Programación
Material Original de Microsoft para desarrolladores adaptado por Jorge Miguel PERALTA para clases de Informática Aplicada (Haga clic para adelantar/atrasar.
 El termino OO, significa que el software es organizado como una colección de objetos. Un objeto es un paquete de software que contiene datos y procedimientos.
Introducción a la programación Orientada a objetos
Algoritmos y Estructuras de Datos I
El Proceso Software Ingeniería en Informática
Left Case: Int Case v1.0 Roberto Galache García Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.
(c) P. Gomez-Gil, INAOE DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP.
Ingeniería de Software

Introducción a la POO • ¿Qué es la programación orientada a objets (POO)? – Un “paradigma” de programación – Una forma de pensar acerca de los problemas.
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Análisis y Diseño del Software
Programación Orientada a Objetos
Docente: Patricia Bazán y Dalila Romero
Metodologías Orientadas a Objetos Maestría de Ingeniería Telemática Universidad del Azuay Sesión 2.
CONCEPTOS BÁSICOS Diseño de Sistemas.
TECNOLOGÍA DE COMPUTADORES CURSO 2009/10. PRESENTACIÓN DE LA ASIGNATURA.
Sistemas Concurrentes I.T. Informática de Sistemas Curso
Algoritmos y Estructuras de Datos
Física I. Mecánica GRUPO 7
Experiencias en la implantación de la asignatura de Tecnología de Programación al EEES Elena M. Hernández Pereira Óscar Fontenla Romero Departamento de.
INSTITUTO TECNOLOGICO DE MINATITLAN ASIGNATURA: FUNDAMENTOS DE PROGRAMACION DOCENTE: JOSE ANGEL TOLEDO ALVAREZ ALUMNA: ALEJANDRA OSORIO ARVISU SEMESTRE:
ALGORITMOS Y ESTRUCTURAS DE DATOS Ingeniería Técnica en Informática de Sistemas curso Teoría: Domingo Giménez, tutorías: L 9:30-10:30; M 10:00-12:30,
Presentación del cursoUniversidad de AntioquiaInformática II Sesión 01: Presentación del Curso Departamento de Ingeniería Electrónica y de Telecomunicaciones.
EI, Profesor Ramón Castro Liceaga Agosto de 2005 UNIVERSIDAD LATINA (UNILA) PROGRAMACION ORIENTADA A OBJETOS EN JAVA (Optativa) INTRODUCCION.
EL TRABAJO DE FIN DE GRADO (TFG)
Diseño de Software y su Proceso
¿Qué son Los Lenguajes de Programación?
Haga clic para modificar el estilo de subtítulo del patrón 30217: Interacción Persona – Ordenador 12084: Interacción Hombre-Máquina (a extinguir) Presentación.
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Facultad de Ingeniería
Programación orientada a objetos (OPP)
Informática ETSIGCT curso 2008/2009 Departamento de Sistemas Informáticos y Computación.
 es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas,
Introducción a UML Departamento de Informática Universidad de Rancagua
Ing. Esp. Ricardo Cujar. Programación Orientada a Objetos  Modelo de desarrollo de software.  Modo de pensar del hombre y no de la máquina.  Abstracción.
DISEÑO CURRICULAR Presentado por: Cesar Augusto Sáenz María Alejandra Hernández 1.contenidos curriculares de competencia.
Programación orientada a objetos
Escuela de Geografía Asignatura: Programación Digital Asignatura: Programación Digital Profesora: Nelly García Mora Semestre: B-2010 Sem B-2010Ing. Nelly.
Explicación del trabajo académico y Proyecto Final
Informática aplicada a la gestión pública (GAP) Contenido de la asignatura Curso 2002/03
ASIGNATURA DE PROGRAMACIÓN GRADO EN INGENIERÍA EN TECNOLOGÍAS DE LA TELECOMUNICACIÓN GRADO EN INGENIERÍA EN SISTEMAS DE TELECOMUNICACIÓN GRADO EN INGENIERÍA.
Informática (34159) Presentación del curso Grado en Matemáticas
La Programación Orientado a Objetos
1 Programación para Arte Multimedia (I) PRESENTACIÓN Carlos García Miragall Ext
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
Desarrollo de Software en Sistemas Distribuidos Docente: Patricia Bazán y Dalila Romero.
Presentación del cursoInformática I (2015-2) Departamento de Ingeniería Electrónica y de Telecomunicaciones Facultad de Ingeniería Informática I.
Fundamentos de los Computadores Grado en Ingeniería Informática Curso 2015/2016 Resumen del PROYECTO DOCENTE.
Prof. Manuel B. Sánchez. Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno.
1 Introducción a la Programación Orientada a Objetos Programación Orientada a Objetos Departamento de Sistemas Universidad del Cauca 2006.
PROGRAMACION ORIENTADA A OBJETOS
Transcripción de la presentación:

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

Programación Orientada a Objetos Curso 2007 / 2008 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 [Budd] estudiando diferentes lenguajes el alumno puede apreciar los principios generales que subyacen a la sintaxis de un lenguaje particular

Programa de teoría TEMA1: CALIDAD DEL SOFTWARE TEMA 2 Clases y Objetos Modularidad Ocultamiento de Información Principio Abierto-Cerrado Principio de Elección Única … 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 Clase: estructura (ref) comportamiento (mens) Niveles de acceso a propiedades TEMA 3 Corrección y robustez Asertos. Diseño por Contrato Excepciones TEMA4 Herencia TEMA5 Herencia múltiple Polimorfismo Ligadura dinámica Clases diferidas Código genérico

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

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 Entrada al Depto 

Programación Orientada a Objetos Curso 2007 / 2008 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 Prácticas laboratorio abierto 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 Salvo que no se hayan hecho más de la mitad de las entregas 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: Laboratorio 1.4: Tutorías: 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: Curso de Java en español. Iván Párraga García Thinking in Java, 4ª edición (inglés), en español en la biblioteca 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.

Programación Orientada a Objetos Curso 2007 / 2008 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()

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 Modelo de objetos: Las características que determinan que un enfoque de desarrollo es OO. En realidad ninguno de estos conceptos es nuevo por si mismo. Lo importante del modelo de objetos es el hecho de conjugar todos estos elementos de manera sinérgica. Desarrollo basado en componentes (CORBA COM, EJB, COM) Tecnología de objetos distribuidos (CORBA, RMI, Plataforma .NET) El futuro del paradigma OO Bases de Datos OO

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

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 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 Comienza a finales de los 60, comienza a cobrar significado a lo largo de los 70 e incrementó su popularidad a mediados de los 80, hasta nuestros días.

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 + herencia de clases Smalltalk (1972) Basado en Objetos: si soporta los objetos como características del lenguaje. Conocidos como lenguajes de nivel de encapsulamiento porque proporcionan una forma de agrupar un conjunto de rutinas y declaraciones de datos en una unidad sintáctica llamada módulo o paquete. Basado en clases: Si está basado en objetos y además cada objeto pertenece a una clase. [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