30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith...
-
Upload
rodrigo-garcia-herrero -
Category
Documents
-
view
216 -
download
0
Transcript of 30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith...
21/04/23 1
21/04/23 2
Introducción a la Programación Orientada a Objetos
Programación IIILic. Judith Callisaya Choque
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, FrameWorks, conjugado con el planteamiento estándar UML(Lengaje de Modelado Visual)
21/04/23 3
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.
21/04/23 4
Instancia: Efectuar una copia de la clase
Siglas usadas POO y OOP
POO: Programacion Orientada a Objetos.
OOP: Object Oriented Programming
Todo programa para ser considerado OO debe incluir:
21/04/23 5
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.
21/04/23 6
21/04/23 7
“Propiedad que tiene un sistema que ha sido descompuesto en un conjunto de módulos cohesivos y débilmente acoplados” [Booch’96]
Modularidad
21/04/23 8
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: Comprensión modular: es posible entender un módulo
sin conocer los otros. Continuidad modular: un cambio en la especificación
afecta sólo a un módulo o a unos pocos. Protección modular: el efecto de una situación anormal
producida en un módulo afecta sólo a éste o a unos pocos.
Los módulos se comunican mediante interfaces estrechas y bien definidas.
21/04/23 9
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”
Una abstracción de datos puede verse como que tiene dos caras: Interfaz: operaciones que definen el comportamiento (cliente) Implementación (programador)
Principios de diseño modular
#define TAM 10
int datos[TAM];
apilar
desapilar
21/04/23 10
¿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. Foco
Potencia
encender()apagar()
Conceptos fundamentales de POOClases 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
21/04/23 11
21/04/23 12
Hablemos de Objetos
Que es un objeto ?
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.
21/04/23 13
¿Cómo se encuentran los objetos?
“Los objetos están ahí para usarlos”
Definición de un objeto
21/04/23 14
Los objetos son concretos y pueden representar objetos reales o abstractos. Por ejemplo: Cada ser humano pertenece a la clase persona
Funciones (Comportamientos o acciones) que puede realizar:
•Luis:: nace •Luis::crece •Luis::alimenta•Luis:: muere
Tiene atributos (características):•Luis•Pérez•Varón•15 años•1,7 m
21/04/23 15
Funciones que puede realizar:
•Ir •Parar •Girar a la derecha •Girar a la izquierda
Tiene las características:•Color •Velocidad •Tamaño •Carburante
Definición del objeto coche
Clasificación de objetos
21/04/23 16
1. Cosas tangibles: Avión, libro.2. Roles o papeles: Gerente, cliente, empleado.3. Organizaciones: Equipo, empresa, división4. Incidentes: (Sucesos, eventos) vuelo, accidente.5. Interacciones: (Transición, contratos) compras,
ventas, contrato laboral.6. Especificaciones: Inventarios, proformas.7. Lugares: Sala de espera, parqueo, oficina.
21/04/23 17
Los objetos con estados similares y el mismo comportamiento se agrupan en clases
Clases (UML)
21/04/23 18
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 los métodos.
Ejemplo: Clase Aeronave
Los objetos se los categoriza en clases.
21/04/23 19
Aeronave
tipomarcamodelocapacidadfuerzavelMax……..
acelerar()desacelerar() ascender()descender()giroDer()giroIzq()………En OO, una clase no solo tiene el objetivo de categorizar
sino también el de servir como plantilla para crear objetos.
21/04/23 20
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: Abstracción, herencia, polimorfismo,
encapsulación...
21/04/23 21
Abstracción
En palabras sencillas “abstracción” significa filtrar las propiedades y operaciones de un objeto hasta que queden solamente aquellas que necesitamos. (Generalización)
HH:mm:ss
21/04/23 22
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”
[Booch’96]
21/04/23 23
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 lasoperaciones que realiza
internamente de lapersona que la utiliza.
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.
21/04/23 24
Encapsulación (2)
21/04/23 25
“Proceso de almacenar en un mismo compartimento los elementos de una abstracción que constituyen su estructura y su comportamiento” [Booch’96]
[Booch’96]
Encapsulación (3)
21/04/23 26
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.
Ejemplo de herencia: Padre e hijo.
21/04/23 27
Superclase
Subclase
21/04/23 28
Herencia Simple
Herencia Simple:En este tipo de jerarquía cada clases tiene como máximo una sola clase base.
Polígono
Triangulo Rectángulo Hexágono
21/04/23 29
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
Profesor Universitario
Investigador
21/04/23 30
Relaciones entre clases. Herencia
TRANSPORTE
21/04/23 31
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
Se producirá una operación diferente, para cada uno de ellos, a pesar de que la acción tiene el mismo nombre..
21/04/23 32
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.
21/04/23 33
Asociaciones
Una asociación es un mapeo entre un objeto en una clase con uno o más objetos en otra clase.
conduce
21/04/23 34
Relación de Persona y Coche
Coche Personapropietario
21/04/23 35
“Libro es una especialización de Publicacion”
“Publicacion usa servicios de Autor”
Relaciones entre módulos: Editorial
Autor
Congreso
Publicacion
Revista Libro Actas
21/04/23 36
Agregación
Es el proceso de crear una clase que esta conformada en su totalidad o en parte por objetos de otra clase.
CPU memoria monitor ratón teclado …..
PC
21/04/23 37
Fin de la presentaciòn