Скачать презентацию Programación III 16 03 2018 1 Introducción a la Скачать презентацию Programación III 16 03 2018 1 Introducción a la

360b122907a330dc9bc85513ef233a0d.ppt

  • Количество слайдов: 37

Programación III 16/03/2018 1 Programación III 16/03/2018 1

Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque 16/03/2018 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith Callisaya Choque 16/03/2018 2

INTRODUCCIÓN A LA PROGRAMACION OO ¿Que es Orientado a Objetos? Desarrollo de Software en INTRODUCCIÓN A LA PROGRAMACION OO ¿Que es Orientado a Objetos? Desarrollo de Software en lenguajes de programacion como: C++, smalltalk, ADA 95, Eiffel. Actualmente usado en lenguajes visuales: Java, Php, Frame. Works, conjugado con el planteamiento estándar UML(Lengaje de Modelado Visual) 16/03/2018 3

Programación OO La Programación OO trabaja exclusivamente con objetos y que cada uno de Programación OO La Programación OO trabaja exclusivamente con objetos y que cada uno de estos serán instancias de determinadas clases y que estas se relacionan las unas con las otras mediante herencias. Instancia: Efectuar una copia de la clase 16/03/2018 4

Siglas usadas POO y OOP POO: Programacion Orientada a Objetos. OOP: Object Oriented Programming Siglas usadas POO y OOP POO: Programacion Orientada a Objetos. OOP: Object Oriented Programming Todo programa para ser considerado OO debe incluir: Objetos Clases Herenci a 16/03/2018 5

Evolución de la POO Cobro importancia en el año 1968 en la conferencia de Evolución de la POO Cobro importancia en el año 1968 en la conferencia de la OTAN “Ingeniería del Software y Crisis del software ” expresándose que el software era caro, poco fiable y escaso. En los años 70 y 80 los sistemas a implementarse adquirían mayor complejidad y los costes de mantenimiento requerían una inversión de mas de la mitas de los costos y recursos globales del desarrollo total del software. Es así que la POO baja los costos de mantenimiento debido al software reutilizable. 16/03/2018 6

Modularidad “Propiedad que tiene un sistema que ha sido descompuesto en un conjunto de Modularidad “Propiedad que tiene un sistema que ha sido descompuesto en un conjunto de módulos cohesivos y débilmente acoplados” [Booch’ 96] 16/03/2018 7

Alta cohesión: Un módulo con responsabilidades altamente relacionadas y que no hace una gran Alta cohesión: Un módulo con responsabilidades altamente relacionadas y que no hace una gran cantidad de trabajo Bajo acoplamiento: Un módulo que no depende de demasiados otros módulos. Favorece: n Comprensión modular: es posible entender un módulo sin conocer los otros. n Continuidad modular: un cambio en la especificación afecta sólo a un módulo o a unos pocos. n Protección modular: el efecto de una situación anormal producida en un módulo afecta sólo a éste o a unos pocos. n Los módulos se comunican mediante interfaces estrechas y bien definidas. 16/03/2018 8

Principios de diseño modular Ocultación de información “El diseñador de cada módulo debe seleccionar Principios de diseño modular Ocultación de información “El diseñador de cada módulo debe seleccionar un subconjunto de propiedades de un módulo como información oficial para ponerla a disposición de los autores de módulos clientes” n Una abstracción de datos puede verse como que tiene dos caras: n n Interfaz: operaciones que definen el comportamiento (cliente) Implementación (programador) apilar #define TAM 10 desapilar int datos[TAM]; 16/03/2018 9

¿Qué significa Orientación a Objetos? El software se organiza como una colección de objetos ¿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 Foco mundo real. Potencia encender() apagar() 16/03/2018 10

Conceptos fundamentales de POO Clases y Objetos Las clases son la construcción lógica sobre Conceptos fundamentales de POO Clases y Objetos Las clases son la construcción lógica sobre la que se basa el lenguaje Java, definen la forma y naturaleza de un objeto y constituyen los fundamentos de la programación OO. Ahora veremos: CLASES Vs. OBJETOS 16/03/2018 11

Hablemos de Objetos Que es un objeto ? n 16/03/2018 Un objeto es una Hablemos de Objetos Que es un objeto ? n 16/03/2018 Un objeto es una instancia de una clase (una categoría). Un objeto tiene una estructura. Tiene atributos (propiedades) y actividades (comportamiento). El comportamiento de un objeto consiste en las operaciones que desempeña. 12

¿Cómo se encuentran los objetos? “Los objetos están ahí para usarlos” 16/03/2018 13 ¿Cómo se encuentran los objetos? “Los objetos están ahí para usarlos” 16/03/2018 13

Definición de un objeto Los objetos son concretos y pueden representar objetos reales o Definición de un objeto Los objetos son concretos y pueden representar objetos reales o abstractos. Por ejemplo: Cada ser humano pertenece a la clase persona Tiene atributos (características): • Luis • Pérez • Varón • 15 años • 1, 7 m Funciones (Comportamientos o acciones) que puede realizar: 16/03/2018 • Luis: : nace • Luis: : crece • Luis: : alimenta • Luis: : muere 14

Definición del objeto coche Funciones que puede realizar: • Ir • Parar • Girar Definición del objeto coche Funciones que puede realizar: • Ir • Parar • Girar a la derecha • Girar a la izquierda Tiene las características: • Color • Velocidad • Tamaño • Carburante 16/03/2018 15

Clasificación de objetos 1. 2. 3. 4. 5. Cosas tangibles: Avión, libro. Roles o Clasificación de objetos 1. 2. 3. 4. 5. Cosas tangibles: Avión, libro. Roles o papeles: Gerente, cliente, empleado. Organizaciones: Equipo, empresa, división Incidentes: (Sucesos, eventos) vuelo, accidente. Interacciones: (Transición, contratos) compras, ventas, contrato laboral. 6. Especificaciones: Inventarios, proformas. 7. Lugares: Sala de espera, parqueo, oficina. 16/03/2018 16

Los objetos con estados similares y el mismo comportamiento se agrupan en clases 16/03/2018 Los objetos con estados similares y el mismo comportamiento se agrupan en clases 16/03/2018 17

Clases (UML) Una clase esta conformada básicamente por atributos y operaciones, los atributos representan Clases (UML) Una clase esta conformada básicamente por atributos y operaciones, los atributos representan los datos de la clase y se implementan mediante variables, las operaciones se implementan a través de métodos, se deben manipular solamente a través de 16/03/2018 los métodos. 18

Ejemplo: Clase Aeronave Los objetos se los categoriza en clases. En OO, una clase Ejemplo: Clase Aeronave Los objetos se los categoriza en clases. En OO, una clase no solo tiene el objetivo de categorizar sino también el de servir como plantilla para crear objetos. 16/03/2018 Aeronave tipo marca modelo capacidad fuerza vel. Max ……. . acelerar() desacelerar() ascender() descender() giro. Der() giro. Izq() ……… 19

Conceptos fundamentales de POO La Orientación a Objetos (OO) tiene como objetivo desarrollar programas Conceptos fundamentales de POO La Orientación a Objetos (OO) tiene como objetivo desarrollar programas (software) que reflejen un pedazo del mundo real. La OO va mas allá de solo considerar atributos y comportamiento. Considera otros aspectos de los objetos: n Abstracción, herencia, polimorfismo, encapsulación. . . 16/03/2018 20

Abstracción En palabras sencillas “abstracción” significa filtrar las propiedades y operaciones de un objeto Abstracción En palabras sencillas “abstracción” significa filtrar las propiedades y operaciones de un objeto hasta queden solamente aquellas que necesitamos. (Generalización) HH: mm: ss 16/03/2018 21

Abstracción (2) “Supresión intencionada, u ocultamiento, de algunos detalles de un proceso o artefacto, Abstracción (2) “Supresión intencionada, u ocultamiento, de algunos detalles de un proceso o artefacto, con el objeto de destacar de manera más clara otros aspectos, detalles o estructuras” 16/03/2018 [Booch’ 96] 22

Encapsulación Es el “empaquetar” en una clase los datos (propiedades) y el código (métodos) Encapsulación Es el “empaquetar” en una clase los datos (propiedades) y el código (métodos) que operan en esos datos. El acceso a esos datos solo es permitido a través de los métodos del objeto. La calculadora oculta las operaciones que realiza internamente de la persona que la utiliza. 16/03/2018 23

Encapsulación (2) Las clases pueden ser declaradas como publicas y como packaje. Los atributos Encapsulación (2) Las clases pueden ser declaradas como publicas y como packaje. Los atributos y métodos pueden ser public, private, protected y packaje. De esta forma se puede controlar el acceso y evitar un uso inadecuado. 16/03/2018 24

Encapsulación (3) “Proceso de almacenar en un mismo compartimento los elementos de una abstracción Encapsulación (3) “Proceso de almacenar en un mismo compartimento los elementos de una abstracción que constituyen su estructura y su comportamiento” [Booch’ 96] 16/03/2018 25

Herencia La herencia podemos definirla como la capacidad para crear nuevas clases a partir Herencia La herencia podemos definirla como la capacidad para crear nuevas clases a partir de clases existentes (extends). Las nuevas clases podrán contar con otros atributos y operaciones (métodos). Una clase derivada puede añadir nuevos atributos y métodos y/o redefinir los atributos y métodos heredados. Ventaja principal: Reutilización del código. Existen 2 tipos de herencia: Simple y Múltiple. 16/03/2018 26

Ejemplo de herencia: Padre e hijo. Superclase Subclase 16/03/2018 27 Ejemplo de herencia: Padre e hijo. Superclase Subclase 16/03/2018 27

Herencia Simple: En este tipo de jerarquía cada clases tiene como máximo una sola Herencia Simple: En este tipo de jerarquía cada clases tiene como máximo una sola clase base. Polígono Triangulo 16/03/2018 Rectángulo Hexágono 28

Herencia Multiple Herencia Múltiple: Se refiere a que una clase derivada puede heredar todas Herencia Multiple Herencia Múltiple: Se refiere a que una clase derivada puede heredar todas las características asociadas a más de una clase base o superclase. Persona Profesor Investigador Profesor Universitario 16/03/2018 29

Relaciones entre clases. Herencia TRANSPORTE 16/03/2018 30 Relaciones entre clases. Herencia TRANSPORTE 16/03/2018 30

Polimorfismo Es la habilidad de enviar el mismo mensaje a objetos de diferentes clases Polimorfismo Es la habilidad de enviar el mismo mensaje a objetos de diferentes clases y que cada objeto responda de una manera particular, según su naturaleza. abrir 16/03/2018 Se producirá una operación diferente, para cada uno de ellos, a pesar de que la acción tiene el mismo nombre. . 31

Envío de Mensajes Los objetos trabajan entre si por medio del envío de mensajes. Envío de Mensajes Los objetos trabajan entre si por medio del envío de mensajes. Todos los objetos se comunican entre sí mediante el paso de mensajes, y esta referido a la ejecución de un método asociado con el objeto que lo llama. Luego para enviar mensajes se estipula el nombre del objeto y la acción que se requiere poner en ejecución. 16/03/2018 32

Asociaciones Una asociación es un mapeo entre un objeto en una clase con uno Asociaciones Una asociación es un mapeo entre un objeto en una clase con uno o más objetos en otra clase. conduce 16/03/2018 33

Relación de Persona y Coche 16/03/2018 propietario Persona 34 Relación de Persona y Coche 16/03/2018 propietario Persona 34

Relaciones entre módulos: Editorial Autor Publicacion Revista Libro Actas Congreso “Libro es una especialización Relaciones entre módulos: Editorial Autor Publicacion Revista Libro Actas Congreso “Libro es una especialización de Publicacion” “Publicacion usa servicios de Autor” 16/03/2018 35

Agregación Es el proceso de crear una clase que esta conformada en su totalidad Agregación Es el proceso de crear una clase que esta conformada en su totalidad o en parte por objetos de otra clase. PC CPU 16/03/2018 memoria monitor ratón teclado …. . 36

Fin de la presentaciòn 16/03/2018 37 Fin de la presentaciòn 16/03/2018 37