30/08/20151. 2 Introducción a la Programación Orientada a Objetos Programación III Lic. Judith...

Post on 25-Jan-2016

220 views 0 download

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