41
Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera en que la gente ve su medio ambiente. Es una forma de pensar y concebir el mundo. 1 Paradigma Orientada a Objetos

Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Embed Size (px)

Citation preview

Page 1: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Técnica para el modelado de sistemas.Se modela el sistema a través de un número de objetos relacionados que interactúan entre si.

Similar a la manera en que la gente ve su medio ambiente.

Es una forma de pensar y concebir el mundo.

1

Paradigma Orientada a Objetos

Page 2: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Abstracción

2

Es el proceso de ignorar los detalles para concentrarse en las características esenciales.

Es el proceso mental primario para abordar la complejidad.

Simplifica la interacción de los usuarios con objetos abstraídos.

Hay dos tipos: La abstracción funcional y la abstracción de datos.

Page 3: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Abstracción Funcional – (1)

3

Ignora detalles acerca del procesamiento.Hace uso de abstracciones de lenguaje de

alto nivel.Utiliza abstracciones definidas por el

usuario ( procedimientos y subrutinas )

Page 4: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Abstracción Funcional – (2)

4

int *endptr; int *primptr; int i,k;primptr = ptr; endptr = ptr + n - 1;for(i=0; i<n; i++){ for(ptr = primptr; ptr < endptr - i; ptr++)

if(*ptr > *(ptr+1)){

k = *ptr;*ptr = *(ptr+1);*(ptr+1) = k;

}}

Page 5: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Abstracción Funcional – (3)

5

El código anterior parece ser complejo. Si se tuviera que poner cada vez que ser

requiera entonces el propósito global del programa se perdería.

En lugar de esto usamos una función de ordenamiento

void burbuja(int ptr[], int n)

Page 6: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Abstracción de Datos

6

Trata con tipos de datosPermite ignorar los detalles de la

representación interna de los datosInvolucra la abstracción funcional.

p.ej. Cuando las operaciones entre tipos de datos son ejecutadas con números de punto flotante, la representación interna permanece oculta.

Page 7: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Identificando a los Objetos (1)

7

Los objetos pueden ser una oración, una cuenta en un banco, un número, un auto, una persona, etc.

Los objetos son:CosasReales o imaginariasSimples o complejas

Page 8: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Identificando a los Objetos (2)

8

VacaObjeto Empleado

X + YX + YiiNúmero Complejo

Reloj Despertador Motocicleta Cuenta Bancaria

Page 9: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Identificando a los ObjetosAtributos y Operaciones

9

Los objetos tienen atributos y operaciones.

Los atributos son: las características del los objeto.

Las operaciones son: lo que un objeto puede hacer.

Page 10: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Identificando a los ObjetosIdentidad

10

Además de los atributos y operaciones un objeto tiene una identidad.

La identidad de un objeto es lo que lo diferencia y distingue de otros objetos similares.

Page 11: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Identificando a los ObjetosSus tres elementos

11

Podemos resumir que todo objeto esta compuesto de 3 elementos:

Objeto = atributos + operaciones + identidad

Page 12: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Identificando a los Objetosatributos, operaciones e

identidad

12

Atributos de las nubes:Tamaño, forma, contenidode agua

Operaciones de las nubes:llueven, nevan, truenan

Identidad de las nubes :Cada nube es diferente en tamaño y forma

Page 13: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Criterios para Identificar un Objeto

13

Relevancia para el dominio del problema.Necesidad de su existencia independiente.Que tenga atributos y operaciones

Page 14: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Importancia para el Dominio del Problema

14

¿Existe dentro de las fronteras del enunciado del problema?

¿Es requerido para alcanzar completamente las responsabilidades del sistema?

¿ Los objetos son características de otros objetos ?

Page 15: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Existencia Independiente

15

Para que un objeto no sea una característica de otro objeto, necesariamente debe existir con independencia.

P.ej. Considere una computadora que tiene Pentium III de procesador. En una perspectiva ( para un vendedor ), el procesador es una característica o atributo de la computadora. Pero si usted fuera diseñador de componentes de computadoras o PC en una fábrica, el procesador por si mismo es un objeto independiente

Page 16: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Atributos y Operaciones

16

Un objeto debe tener atributos y operaciones

Si no los tiene, es probablemente un atributo u operación de otro objeto.

Page 17: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Encapsulamiento

17

El encapsulamiento separa los aspectos externos de un objeto de sus detalles internos de implementación.

Los cambios internos necesarios no afectan a la interface externa.

P.ej. Ud. no necesita saber como un teléfono conecta a las dos partes para poder utilizarlo. Solo necesita entender la interface, cual es la composición de botónes, el auricular ( para el oido ) , y la bocina ( para la voca ). Ud. puede ignorar los procesos internos de cómo es hecha la conexión, los switches que cruzan los países, etc.

Page 18: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Partes de un objeto encapsulado

18

Cada objeto tiene:Interface pública ( externo ).Implementación ( interno )Información interna ( información

para la implementación ).

Page 19: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Implementando el Encapsulamiento

19

Los atributos y operaciones de un objeto son sus miembros.

Los miembros de un objeto pueden ser public o private .

En sistemas OO puros, todos los atributos son privados y pueden ser cambiados o accesados solo a través de operaciones públicas.

Page 20: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Mensajes – (1)

20

Un mensaje es la manera en que los objetos se comunican e interactúan entre sí.

Un mensaje es la invocación de una operación u método de la interfaz publica de un objeto encapsulado

En los objetos encapsulados, los mensajes son entre los métodos públicos de los objetos.

El acceso al estado de un objeto es mediante estos mensajes a métodos accesores y mutadores. ( los getters y setters ).

Page 21: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Mensajes - (2)Estado de un objeto

21

El estado de un objeto son los valores actuales de los atributos de un objeto en un instante dado.

La instancia de una clase ( o sea un objeto ) cambia o muta sus valores en el transcurso del tiempo de vida del objeto.

Este estado del objeto solo es posible accesarlo o modificarlo con mensajes o invocaciones a las operaciones de la interface pública de los objetos para no perder la propiedad del encapsulamiento. ( getters y setters ).

Page 22: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Mensajes - (3)

22

Lectura de velocidadLectura de velocidad

VelocidadVelocidad

RPMRPM

Luces TestigoLuces Testigo

Fuerzas del VolanteFuerzas del Volante

Vista

Oido

Tacto

Estados Mentales

Mensajes entre objetosMensajes entre objetos

Page 23: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Mensajes - (4)

23

Acelerar ( Fuerza)Acelerar ( Fuerza)

Girar (sentido,ángulo)Girar (sentido,ángulo)

Frenar (Fuerza)Frenar (Fuerza)

EmbragarEmbragar

DesembragarDesembragar

Freno

Acelerador

Palanca de velocidades

-Posición-Velocidad-Aceleración-RMP del motor…..

Volante

Cambiar marcha ( Marcha)Cambiar marcha ( Marcha)

Mensajes entre objetos

Page 24: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Resumen

24

Ud. Debería definir hasta este momento los siguientes términos.

ObjetoObjetoAtributosAtributosOperacionesOperacionesAbstracciónAbstracciónOcultamiento de DatosOcultamiento de DatosEncapsuladoEncapsuladoMensajesMensajesMiembroMiembro

Page 25: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Clases

25

Un objeto es una instancia: Una específica galleta, hoja, balón, carro o moneda.

“Un carro” es una clase; “mi carro” es un objeto

Page 26: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Clases de objetos

26

Objetos de la clase GalletaObjetos de la clase Galleta

Objetos de la clase BalónObjetos de la clase Balón

Page 27: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Concepto de ClaseConcepto de Clase

27

ClaseClase : : Es una descripción de atributos y Es una descripción de atributos y comportamientos de un conjunto de objetos similares. comportamientos de un conjunto de objetos similares. Los objetos de una clase o tipo determinado comparten Los objetos de una clase o tipo determinado comparten los mismos comportamientos y atributos. Las clases los mismos comportamientos y atributos. Las clases actúan en forma muy parecida a una plantilla o molde actúan en forma muy parecida a una plantilla o molde para galletas en el sentido de que una clase se utiliza para galletas en el sentido de que una clase se utiliza

para crear o para crear o instanciarinstanciar objetos objetos

Creación o

instanciación

Page 28: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Generalización

28

Ejemplo: Transporte es una generalización de varias clases que proveen transportación.

La Generalización identifica y define los atributos y operaciones comunes en una colección de objetos.

Page 29: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Herencia – (1)

P. ej. El balon de soccer puede heredar miembros de la clase Balon

29

BalonBalon

Soccer BallSoccer Ball BaseballBaseballBasketballBasketball

Superclase

Subclases

Page 30: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Herencia – (2)

30

Es un mecanismo para definir una nueva clase en términos de una clase existente.

Permite agrupar clases relacionadas de tal manera que pueden ser manejadas colectivamente

Promueve su usoPermite esconder o sobreponer miembros

heredadosTérminos relevantes: generalización,

especialización, sobreposición.

Page 31: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Herencia – (3)Especialización y Generalización

31

Page 32: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Especialización – (1)

32

Mientras la generalizacióngeneralización se enfoca a las clases mayores del sistema, y ayudan a identificar nuevas clases, la especializaciónespecialización se enfoca a la creación individual, mas clases específicas que heredarán de una clase mayor. La especialización es herencia con la agregación y modificación de métodos para resolver problemas específicos.

Page 33: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Especialización - (2)

33

Transporte

Bicicleta AviónAutomóvil

TrailerCarro CarrerasMontaña

Comercial

Privado

Clases Generalizadas:

Clases:

ClasesEspecializadas:

Page 34: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Polimorfismo - (1)

34

Le permite implementar las operaciones heredadas en una subclase.

Trabaja solamente cuando operaciones comunes dan el mismo resultado semántico.

La implementación de una función polimórfica depende del objeto al cual es aplicado.

Puede usarse solamente cuando hay herencia.

Page 35: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Polimorfismo (2)

35

P.Ej. Una superclase Balón incluye en sus operaciones la operación lanzar. Sus subclases, tales como Balon de tenis, o Balón de Soccer, heredarían la misma operación. Sigue siendo la misma operación en las tres clases, sin embargo el como y el cuando usted lanza usted cada balón difiere uno de otro.

Page 36: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Polimorfismo – (3)

El polimorfismo es un concepto importante en los sistemas orientados a objetos que soportan el reutilización y mantenimiento de software.

36

lanzalanza

lanzalanza

Page 37: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Polimorfismo – (4)otro ejemplo

37

Considere una clase general llamada InstrumentoDeEscritura.

La clase tiene una operación llamada escribe.

¿Qué objetos del salón de clase pueden ser subclases de InstrumentoDeEscritura?

¿Cómo es la operación polimórfica escribe para cada objeto?

Page 38: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Polimorfismo – (5)puntos clave.

38

Los siguientes puntos son clave para acordarnos acerca del polimorfismo:

El polimorfismo esta basado en la herencia.El polimorfismo puede ser aplicado a cualquier

operación que es heredada de una superclaseLas subclases sobreponen o sobre-escriben la

operación heredada para reflejar mejor esta para las acciones de sus objetos , proveyendo una mejor forma de operación, de aquí el término de polimorfismo.

Page 39: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Clases Abstractas – (1)

39

Una clase con por lo menos una operación abstracta es una clase abstracta.

Una subclase de una clase abstracta necesita proveer una implementación de todas las operaciones abstractas o de los contrario también será una clase abstracta.

Una clase abstracta no puede ser instanciada ( usted no puede crear objetos de una clase abstracta ).

Las operaciones abstractas de una clase abstracta son simplemente declarativos.

Page 40: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Clases abstractas – (2)Ejemplo

40

Considere implementar clases para un circulo , rectángulo, y triángulo.

Las operaciones para estas clases deben incluir operaciones como setColor y setBorderStyle.

Puede decidir crear una clase abstracta llamada figura con dos operaciones abstractas: setColor y setBorderStyle

Las subclases deben sobre-escribir o sobreponer las operaciones abstractas y proveer código de implementación que tenga sentido para cada subclase de figura.

Page 41: Técnica para el modelado de sistemas. Se modela el sistema a través de un número de objetos relacionados que interactúan entre si. Similar a la manera

Resumen

41

Ud. Debería definir hasta este momento los siguientes términos:

ClaseClaseObjetoObjetoGeneralizaciónGeneralizaciónHerenciaHerenciaSobreponer o Sobre – escrituraSobreponer o Sobre – escrituraEspecializaciónEspecializaciónPolimorfismoPolimorfismoClase abstractaClase abstracta