Fundamentos de Orientación a Objetos

Slides:



Advertisements
Presentaciones similares
METODOLOGÍA ORIENTADA A OBJETOS CARACTERISTICAS DEL PROCESO
Advertisements

POLIMORFISMO UNIDAD 4.
Introducción a la Orientación a Objetos
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
Arquitectura CLARO-TECNOTREE
ANALISIS ESTRUCTURADO Ing. Sonia Godoy Hortua 1. E SPECIFICACIÓN DE REQUERIMIENTOS 1. Requerimientos funcionales y no funcionales 2. Especificación de.
Programación Orientada a Objetos
Introducción a la Orientación a Objetos
Programación Orientada a Objetos (P.O.O.)
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
Fundamentos de Ingeniería de Software
POO Santiago, Mayo 2004 TRABAJO DE INVESTIGACIÓN POO Programación Orientada a Objetos CENAFOM Carolina Bravo V. Jaime Jofré B.
Tipo de Dato Abstracto Tipos de datos:
CONCEPTOS Y PRINCIPIOS ORIENTADOS A OBJETOS
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
LENGUAJE UNIFICADO DE MODELADO UML
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
Diagrama de CLASES Alfredo Rodríguez Rojas
ORIENTADO A OBJETOS ESTUDIANTE JESSICA LORENA LEAL MEDINA INGENIERIA DE SOFTWARE PROGRAMA INGENIERIA DE SISTEMAS UNIVERSIDA COOPERATIVA DE COLOMBIA NEIVA-HUILA.
PROGRAMACION ORIENTADA
Sistemas Distribuidos “Técnicas de Especificación Formal”
Relaciones entre Objetos
UNIDAD I. INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA.
Programación orientada a objetos Rosemary Torrico Bascopé.
POO (Programación Orientada a Objetos)
U NIDAD III P ROGRAMACIÓN O RIENTADA A O BJETOS (POO) Facilitadora: Ing. Patricia Gómez.
LOGICA DE NEGOCIOS ADAN GONZALEZ BARRERA.
Análisis y Diseño Orientado a Objetos 1 _________________________ DSOO - María Eugenia Valencia.
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
(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.
PROGRAMACIÓN ORIETADA A OBJETOS
Ingeniería de Software

Ingeniería de Software Orientado a Objetos
Programación Orientada Objetos
Tecnológico de Estudios Superiores Huixquilucan Fundamentos de Sistemas Ingeniería en Sistemas Computacionales Lic.: Lydia Villavicencio Gómez “Paradigmas.
3.- Introducción a Patrones de Diseño
INSTITUTO TECNOLOGICO DE MINATITLAN ASIGNATURA: FUNDAMENTOS DE PROGRAMACION DOCENTE: JOSE ANGEL TOLEDO ALVAREZ ALUMNA: ALEJANDRA OSORIO ARVISU SEMESTRE:
Diagrama de Clases ACI 570.
UML Carlos Becerra C. ¿Qué es orientación a objetos? Conceptos de OO  Objetos, características de los objetos, clases e instancias,
Diagrama de CLASES Alfredo Rodríguez Rojas
Programación Orientada a Objetos (P.O.O.)
Introducción a UML DIAGRAMA DE CLASES Departamento de Informática
Facultad de Ingeniería
Programación Orientada a Objeto
Estructuras de Datos y Algoritmos Introducción. Texto Requerido: Carrano & Prichard: Data Abstraction and Problem Solving with Java; Walls and Mirrors,
Introducción a la Programación Orientada a Objetos (POO)
POO U1: INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS.
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.
Programación orientada a objetos
(Lenguaje Unificado de Modelado)
UML Casos de Uso (repaso) y Diagramas de Clase
Programación Orientada a Objetos. Es importante aclarar desde un principio la diferencia que existe entre programación orientada a objetos y un lenguaje.
Programación III 21/04/2017.
M.C. Pedro Bello López 1 IMPLEMENTACIÓN. M.C. Pedro Bello López2.
2-oct-15Ingeniería de Requisitos1 INGENIERÍA DE REQUISITOS Carlos Mario Zapata J.
PROGRAMACIÓN ORIENTADA A OBJETOS
Tipo de relación entre clases Es uno de los aspectos que distinguen el paradigma de orientación a objetos frente a otros paradigmas. Mecanismo que,
UNIVERSIDAD TECNOLÓGICA DE IZÚCAR DE MATAMOROS TECNOLOGÍAS DE LA INFORMACION Y COMUNICACIÓN BASE DE DATOS PARA APLICACIONES MTRO. GONZALO ROSAS CABRERA.
Acceso a Datos Erick López Ovando Licenciado en Informática.
ORIENTACIÓN A OBJETOS El paradigma.
La Programación Orientado a Objetos
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
Paradigma Orientado a Objetos
PRESENTACION DE INGENIERIA ORIENTADA A OBJETOS
Fundamentos de Ingeniería de Software
Programación Orientada a Objetos Unidad 5. Los objetos son entidades que combinan estado Contiene toda la información denominados atributos REPASO Cada.
Clases y objetos.
Transcripción de la presentación:

Fundamentos de Orientación a Objetos

Referencias Meyer, Bertran., “Construcción de Software Orientado a Objetos”, Prentice Hall, 1997. Booch, Grady.,”Analisis y Diseño orientado a Objetos con aplicaciones”. Fowler, Martin., “UML Distille – Applying the Standard Object Modeling Language”, Addison- Wesley, 1997 Budd, Timothy A. An Introduction to Object Oriented Programming (3rd Ed), Addison-Wesley, 2002. Peña, Ricardo.,”Diseño de Programas, formalismo y abstracciones”, Prentice Hall, 1998

Referencias ( cont...) Larman, G., “Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design”, prentice-Hall, 1998. Booch, Grady., “El Lenguaje Unificado de Modelado UML”, Addison-Wesley, 1998 Aguilar, Joyanes., “Programación Orientada a Objetos”, Mc. Graw Hill Rumbaugh, James., “Modelaje y Diseño Orientado a Objetos”, Prentice Hall, 1990

Agenda Introducción a la Programación Orientada por Objetos Conceptos básicos Abstracción Herencia Relaciones entre clases Polimorfismo

Introducción 60-70's 80's 90's Símula (1961...) Símula (1967...) SmallTalk (1972-...) C++ (1983...) Eiffel (1985...) Java 1 (1995...) 60-70's 80's 90's Self (1986...) Modula 3 (1986...) ADA(1979-...) Ruby (1991...) C#(2000...)

Introducción 60-70's 80's 90's Símula (1961...) Símula (1967...) SmallTalk (1972-...) C++ (1983...) Eiffel (1985...) Java 1 (1995...) 60-70's 80's 90's Self (1986...) Modula 3 (1986...) ADA(1979-...) Ruby (1991...) C#(2000...) Booch (1991...) RUP (1999...) OBA,MOSES, FUSION (1994...) OMT (1991...) Objectory (1992...)

Conceptos básicos OO provee objetos como el principal medio para abstraer y estructurar un sistema. Un objeto puede modelar entidades del mundo real, puede capturar abstracciones de fenómenos complejos, puede representar artefactos de software (pilas, gráficos, …).

Conceptos básicos El contexto del problema se ve como objetos que interactúan entre ellos

Conceptos básicos Ejemplo Enviar Flores [4] Suponga que Juan desea llevarle flores a una amiga en otra ciudad María Como Juan no puede llevarlas personalmente, le encarga a su florista preferida (Rosa) el envío María recibe sus flores

Conceptos básicos Ejemplo Enviar Flores [4] CB4 Conceptos básicos Ejemplo Enviar Flores [4] Juan le solicita a Rosa un servicio Rosa sabe cómo prestarle el servicio a Juan Juan sabe que Rosa presta el servicio que el necesita Rosa es responsable de prestarle el servicio adecuadamente a Juan Juan desconoce qué le implica a Rosa prestarle el servicio

Conceptos básicos Ejemplo Enviar Flores [4] María Mensajero Productor Arreglista Productor Juan Rosa Recolector Florista Local

Conceptos básicos En programación orientada por objetos un programa es una comunidad de agentes (objetos) que interactuan entre ellos. Cada objeto tiene un rol en la solución del problema Cada objeto provee un conjunto de servicios (o métodos) Los servicios de un objeto son usados por otros objetos.

Conceptos básicos La forma en que los objetos se comunican entre ellos es a través de mensajes: Un mensaje encapsula la petición de un servicio El receptor del mensaje presta el servicio y devuelve una respuesta al que solicitó el servicio

Conceptos básicos Qué sabe hacer la ventana? Cuáles servicios ofrece? Ventana ejemplo Un objeto ventana gráfica Qué sabe hacer la ventana? Cuáles servicios ofrece? La ventana se sabe: cerrar abrir cambiar de tamaño pintar mover Además, sabe: dónde está, si está visible o no ... Cómo se le solicitan los servicios?

Cómo se le solicitan los servicios? Conceptos básicos Ventana ejemplo Objetos figuras geométricas: un triángulo un rectángulo un círculo Las figuras geométricas se saben: Pintar agrandar .. Además, saben: dónde están, si están visibles o no ... Qué saben hacer las figuras geométricas gráficas? Cómo se le solicitan los servicios?

Conceptos básicos Ventana ejemplo La ventana tiene la responsabilidad de solicitar a las figuras geométricas que se pinten Las figuras geométricas tienen la responsabilidad de saberse pintar y de hacerlo cuando se lo soliciten La ventana tiene que saber cómo hacer la solicitud. La figura geométrica tuvo que haber hecho público cómo usar sus servicios

Conceptos básicos La comunicación se hace a través del envío de mensajes

Conceptos básicos Modelar consiste en identificar (abstraer) qué objetos hay en el mundo del problema, cómo son, cómo se comportan y cómo se relacionan.

Conceptos básicos Objeto Es una abstracción de un elemento (concepto) del Contexto del Problema Ejemplos: Estudiante Fecha Automóvil Libro Vuelo

Conceptos básicos El comportamiento de los objetos puede ser descrito por una caracterización abstracta de su interfaz. Por ejemplo:

Conceptos básicos La caracterización del comportamiento es suficiente para diseñar el sistema. El comportamiento real del objeto puede ser implementado y refinado más tarde de acuerdo con las necesidades.

Conceptos básicos Un objeto empaqueta datos (una representación concreta) y procedimientos que operan sobre los datos.

Conceptos básicos Nombre Datos/Atributos/Campos Métodos/Servicios/Interfaz

Conceptos básicos El envío de mensajes es la única forma para que un objeto realice una operación. Las operaciones son la única forma para cambiar el estado de los datos. Cuando esto se cumple, se dice que el estado interno del objeto (el valor de sus datos) está encapsulado; éste no puede ser manipulado directamente desde el exterior y su representación concreta es invisible.

Conceptos básicos Abstracción: Mecanismo de la mente humana fundamental para la comprensión de fenómenos o situaciones que involucren una gran cantidad de detalles. En biología los seres vivos se clasifican en especies, géneros, clases, órdenes, etc...

Conceptos básicos Abstracción ( cont...) Proceso mental que tiene dos aspectos complementarios El aspecto de destacar los detalles relevantes del objeto de estudio El aspecto de ignorar los detalles irrelevantes del objeto.

Conceptos básicos Tipo Abstracto de Datos (TAD) “Un tipo abstracto de datos es una colección de valores y de operaciones que se definen mediante una especificación que es independiente de cualquier representacion”

Conceptos básicos Abstracción y encapsulamiento: La abstracción se centra en el comportamiento observable de un objeto, el encapsulamiento se centra en la implementación que da lugar a ese comportamiento. ”encapsulamiento es el proceso de almacenar en un mismo lugar los elementos de una abstracción que constituyen su estructura y su comportamiento; sirve para separar la interfaz contractual de una abstracción de su implantación." [Booch96]

Conceptos básicos Clase Describe un conjunto de objetos del Contexto del Problema, que tienen las mismas características y el mismo comportamiento

Conceptos básicos La noción de Clase viene de clasificación: agrupar (en un conjunto) objetos (elementos) que se comportan de la misma manera (con respecto a la interfaz que describe el comportamiento).

Conceptos básicos Metáfora

Conceptos básicos Agregación/Composición Permite abstraer relaciones de tipo ...tiene... y ... está compuesto de...

Conceptos básicos Asociaciones Permite abstraer relaciones entre objetos diferentes a la composición

Herencia Los objetos se organizan en jerarquías Vertebrado Mamifero Canino Felino Doméstico Salvaje ...

Herencia La herencia permite modelar relaciones del tipo ...es... y clasificaciones: Un mamífero es un vertebrado Un monitor es un estudiante Superclase (Tipo) Subclase (Subtipo) Vertebrado Mamifero

Herencia Relación de subtipaje (herencia): si B es subtipo de A entonces cualquier objeto de tipo B puede ser usado en cualquier parte donde un objeto de tipo A puede ser usado.

Herencia Herencia Múltiple: EstudiantePregrado Monitor MonitorPregrado

Herencia ScrollBar Window

Herencia ScrollBar Window

Herencia La regla de oro de la herencia: ..es un... : Cuando tenga: Forme la frase ``A es un B''. Si es correcto, entonces A puede ser subclase de B B A

Polimorfismo Es la posibilidad de definir de forma distinta un método,dependiendo del objeto. MiTriangulo.pintar() MiCuadrado.pintar() MiCirculo.pintar()

Polimorfismo for (int i = 1; arreglo.length(); i++) { arreglo[i].pintar(); }

Polimorfismo El polimorfismo es posible gracias a la herencia: Figura Pintar() Cuadrado Triangulo Circulo

Resumen Principios Todo es un objeto Los objetos realizan operaciones (computan) solicitando servicios entre ellos a través del paso de mensajes Todo objeto tiene su propia memoria, la cual consiste de otros objetos Todo objeto es una instancia de una clase. Una clase agrupa objetos similares. En la clase se describe el comportamiento de los objetos. Las clases están organizadas en una jerarquía con una única raíz, llamada la jerarquía de herencia.