Clases poo

73
Programación Orientada a Objetos POO 11/06/2022 1 POO - AIGL

description

Program

Transcript of Clases poo

Page 1: Clases poo

13/04/2023 POO - AIGL 1

Programación Orientada a ObjetosPOO

Page 2: Clases poo

13/04/2023 POO - AIGL 2

Unidad I: El paradigma Orientado a Objetos.

1.1 Introducción, surgimiento y desarrollo del paradigma Orientado a Objetos

1.2 Clases y Objetos

1.3 Encapsulamiento

1.4 Herencia

1.5 Polimorfismo

1.6 Sobrecarga de Operadores y Funciones

Page 3: Clases poo

13/04/2023 POO - AIGL 3

Crisis del Software

Page 4: Clases poo

13/04/2023 POO - AIGL 4

Crisis del Software• Englobó a una serie de sucesos que se venían observando en los

proyectos de desarrollo de software:• Los proyectos no terminaban en plazo.• Los proyectos no se ajustaban al presupuesto inicial.• Baja calidad del software generado.• Software que no cumplía las especificaciones.• Código inmantenible que dificultaba la gestión y evolución del

proyecto.

Page 5: Clases poo

13/04/2023 POO - AIGL 5

1.1.- INTRODUCCIÓN, SURGIMIENTOS Y DESARROLLO DEL PARADIGMA ORIENTADO A OBJETO

Lenguaje = Idioma Artificial

• La palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:– El desarrollo lógico del programa para resolver un problema en particular.– Escritura de la lógica del programa empleando un lenguaje de programación

específico (codificación del programa).– Ensamblaje o compilación del programa hasta convertirlo en lenguaje de

máquina.– Prueba y depuración del programa.– Desarrollo de la documentación.

Qué es un paradigma de programación?• Paradigma un conjunto de teorías, estándar y métodos que juntos representan un

medio de organización del conocimiento: es decir un medio de visualizar el mundo.

IMPERATIVA

C 1972, PASCAL

LOGICO

PROLOG

FUNCIONAL

LISP

ORIENTADO A OBJETO

Visual NET , JAVA

PARADIGMAS DE PROGRAMACION

Page 6: Clases poo

13/04/2023 POO - AIGL 6

EL PARADIGMA IMPERATIVO

Este paradigma duro lo suficiente hasta que las compañías y empresas tuvieron una explosión de sus actividades y pasaron de ser locales a ser regionales y nacionales, aumentado su grado de complejidad y manejo de información, este se agudizo cuando las necesidades pasaron las fronteras de los países y las empresas nacionales se trasformaron en compañías internacionales.

Este paradigma duro lo suficiente hasta que las compañías y empresas tuvieron una explosión de sus actividades y pasaron de ser locales a ser regionales y nacionales, aumentado su grado de complejidad y manejo de información, este se agudizo cuando las necesidades pasaron las fronteras de los países y las empresas nacionales se trasformaron en compañías internacionales.

Programación Imperativa, los primeros lenguajes imperativo fueron los lenguajes de máquina

Page 7: Clases poo

13/04/2023 POO - AIGL 7

EL PARADIGMA LÓGICO • Orientado a la Inteligencia Artificial

• La programación lógica comprende dos paradigmas de programación: la programación declarativa y la programación funcional. – La programación declarativa gira en torno al concepto de predicado, o relación entre

elementos. le_gusta_a(juan,maria).valioso(oro).Tiene(juan,libro).da(juan,libro,maria).

– La programación funcional se basa en el concepto de función (que no es más que una evolución de los predicados), de corte más matemático.En cambio, la lógica matemática es la manera más sencilla, para el intelecto humano, de expresar formalmente problemas complejos y de resolverlos mediante la aplicación de reglas, hipótesis y teoremas. De ahí que el concepto de "programación lógica" resulte atractivo en diversos campos donde la programación tradicional es un fracaso

Page 8: Clases poo

13/04/2023 POO - AIGL 8

….EL PARADIGMA LÓGICO

Campos de Aplicación• Sistemas expertos, donde un sistema de información imita las

recomendaciones de un experto sobre algún dominio de conocimiento.

• Demostración automática de teoremas, donde un programa genera nuevos teoremas sobre una teoría existente.

• Reconocimiento de lenguaje natural, donde un programa es capaz de comprender (con limitaciones) la información contenida en una expresión lingüística humana.

Page 9: Clases poo

13/04/2023 POO - AIGL 9

El paradigma Funcional

• Los matemáticos desde hace un buen tiempo están resolviendo problemas usando el concepto de función. Una función convierte ciertos datos en resultados• Lisp el más antiguo a mediado de los 50

Entrada Proceso Salida

Page 10: Clases poo

13/04/2023 POO - AIGL 10

El paradigma Funcional

• Los matemáticos desde hace un buen tiempo están resolviendo problemas usando el concepto de función. Una función convierte ciertos datos en resultados• Lisp el más antiguo a mediado de los 50

Entrada Proceso Salida

Page 11: Clases poo

13/04/2023 POO - AIGL 11

El paradigma Orientado a Objetos

• Podemos afirmar que el paradigma orientado a objeto reina en las metodologías actuales y pasaran varios años para que resulte un nuevo paradigma para que la reemplace totalmente. La programación orientada a objeto vino para quedarse y mejorar nuestras vidas.

• En POO, las entidades centrales son los objetos, que son tipos de datos que encapsulan con el mismo nombre estructuras de datos y las operaciones o algoritmos que manipulan esos datos.

En filosofía un objeto es aquello que puede ser observado, estudiado y aprendido.El término objeto tiene el mismo significado que un nombre o una frase nominal. Es una persona, lugar o cosa. Un objeto en POO representa alguna entidad de la vida real, es decir, alguno de los objetos que pertenecen al negocio con que estamos trabajando o al problema con el que nos estamos enfrentando, y con los que podemos interactuar

Page 12: Clases poo

13/04/2023 POO - AIGL 12

Objeto del Mundo Real

• Objeto: Persona

• Atributos: Características que lo describen (nombre, edad raza, fecha de nacimiento.)

• Comportamiento: el cojunto de cosas que puede hacer un objeto, matar, llorar, trabajar caminar.

Page 13: Clases poo

13/04/2023 POO - AIGL 13

• En síntesis los objetos conocen cosas y hacen cosas– Las cosas que un objeto conoce son ___________– Las cosas que hace un objetos es su ___________

Otros objetos

Page 14: Clases poo

13/04/2023 POO - AIGL 14

los objetos según Shlaer, Mellor y Coad/Yourdon pueden caer dentro de las categorías:

• Cosas tangibles (camión, bicicleta, batería, motor, libro)

• Roles o papeles jugados o representados por personas (gerentes, operarios, usuarios cliente)

• Organizaciones o instituciones (Empresas división, departamento, equipo) • Procesos u acciones que representan un suceso (evento) u ocurrencias, tales como llamada a un

servicio, juego, acción determinada, pueden ser física o real.

• Interacciones Generalmente implican un contrato, o transacción y relacionan dos o más objetos del problema en cuestión

• Especificaciones muestran aplicaciones o plantillas de artículos, productos industriales

• Lugares oficinas, sala de estudio, aula, muelle de embarque.

• Cuando hemos determinados los posibles objetos pasamos a identificar los posibles atributos y las operaciones sobre ellos

Page 15: Clases poo

13/04/2023 POO - AIGL 15

¿Qué clase de cosas puede ser objetos en un programa OO? La respuesta solo se limita a la imaginación. Ejemplos típicos:

Objetos FísicosAviones en un sistema de trafico aéreo.Automóviles en un sistema de control de

trafico terrestre.Casas. Elementos de interfaces gráficos de usuarioVentanas MenúsObjetos gráficos (cuadrados, triángulos, etc.)TecladoCuadros de dialogoRatón. AnimalesVertebradosInvertebradosPescados

Tipos de datos definidos por el usuarioDatos complejosPuntos de un sistema de coordenadas.

AlimentosCarnes FrutasPescadosVerdurasPasteles

Page 16: Clases poo

13/04/2023 POO - AIGL 16

• Cuando hemos determinados los posibles objetos pasamos a identificar los posibles atributos y las operaciones sobre ellos

Objeto: Empleado Atributos:

NombreDirecciónUbicaciónNombre del departamentoNivel de estudio

Objeto: PelículaAtributos: Nombre Director Genero Duración Color

Page 17: Clases poo

13/04/2023 POO - AIGL 17

• Dentro del contexto de un Lenguaje OO (LOO), un objeto encapsula datos y los procedimientos/funciones (métodos) que manejan esos datos. La notación grafica varia de una metodología a otras.

Nombre del objeto

Datos

Métodos

Notación grafica Yourdon / Coad

Nombre

Atributos

Métodos

Notación Grafica OMT

Atributos Datos o variables que caracterizan o describen el estado del objeto.Métodos Procedimientos o acciones que cambian el estado de un objeto. Describen el comportamiento asociado a un objeto.

Page 18: Clases poo

13/04/2023 POO - AIGL 18

• Ejemplo.Coche 1

MatriculaMarcaPrecioAño compra

Calcular_Precio_Actual

Page 19: Clases poo

13/04/2023 POO - AIGL 19

• Las clases se organizan en las siguiente relaciones:

Abstracción Encapsulamiento Modularidad Polimorfismo

• Los principios básicos orientados a objetos son:

Jerarquía

• Los cuatro elementos (propiedades) que ayudan a definir un objeto son

Objetos como instancia de una clase MensajeMétodosAtributos

Herencia Agregación Asociación Uso

Page 20: Clases poo

13/04/2023 POO - AIGL 20

Las características esenciales de un objeto, sin preocuparse de las restantes características (no esenciales)

Centrado en la vista externa de un objeto, de modo que sirva para separar el comportamiento esencial de un objeto de su implementación.

Con énfasis al ¿Qué hace? Más al ¿Cómo lo hace?

Permite disponer de las características de un objeto.

Por ejemplo para un sistemas de matrícula del objeto persona podemos obtener las características nombre, edad, dirección, estado civil, etc.

si lo requerimos para el área de biología, dentro de sus atributos quizá tengamos, ADN, Tipo de Sangre, etc.

Abstracción

Page 21: Clases poo

13/04/2023 POO - AIGL 21

• Modelando una fracción, por ejemplo

La fracción será el objeto y tendrá dos propiedades, el numerador y el denominador. Luego podría tener varios métodos como simplificarse, sumarse con otra fracción o número, restarse con otra fracción

…Abstracción

Fraccion

NumeradorDenominador

Simplificar()Sumar()Restar()

Page 22: Clases poo

13/04/2023 POO - AIGL 22

Permite asegurar que el contenido de la información de un objeto está oculta al mundo exterior: El contenido del objeto A está oculto al contenido del objeto B.

Conocida como la ocultación de la información.

La encapsulación permite la división de un programa en módulos. Estos módulos se implementan mediante clases, de forma que una clase representa la encapsulación de una abstracción, en la práctica esto significa que cada clase debe tener dos partes: un interfaz y una implementación.

El interfaz de una clase captura solo su vista externa y la implementación contiene la representación de la abstracción, así como los mecanismos que realizan el comportamiento deseado.

Encapsulamiento

Page 23: Clases poo

13/04/2023 POO - AIGL 23

• ocultamiento del estado, es decir, de los datos miembro, de un objeto de manera que sólo se puede cambiar mediante las operaciones definidas para ese objeto.

• Ejemplos• Cuando vemos televisión no nos preocupamos del modo como éste

funciona, o lo que hace para cambiar de canal o aumentar de volumen

Page 24: Clases poo

13/04/2023 POO - AIGL 24

• La encapsulación se encarga de mantener ocultos los procesos internos que necesita para hacer lo que sea que haga, dándole al programador acceso sólo a lo que necesita

• Esto da dos ventajas iniciales: – Lo que hace el usuario puede ser controlado internamente (incluso

sus errores), evitando que todo colapse por una intervención indeseadaTe imaginas a tu mamá que no tiene ni

idea de electrónica desarme el televisor y juegue con los circuitos para cambiar manualmente?? o.O

Page 25: Clases poo

13/04/2023 POO - AIGL 25

La segunda ventaja es que, al hacer que la mayor parte del código esté oculto, puedes hacer cambios y/o mejoras sin que eso afecte el modo como los usuarios van a utilizar tu código. Sólo tienes que mantener igual la forma de acceder a él

en el caso del control de la tele, que los botones sigan siendo los mismos y que el botón de “apagado” no cambie el volumen

Estas puertas de acceso que das a los usuarios son lo que se conoce como interfaz.

El encapsulamiento consiste en unir en la Clase las características y comportamientos, esto es, las variables y métodos.

Page 26: Clases poo

13/04/2023 POO - AIGL 26

Una de las premisas de POO, es que la mayoría, sino todos, los atributos de un objeto deben ser privados, esto para tener seguridad sobre los valores del objeto, pero entonces...¿cómo acceder a los atributos de una clase?, la respuesta, encapsulamiento, los métodos de encapsulamiento se utilizan sólo cuando es apropiado entregar los datos a otro objeto que solicite la información.

Piensa en tus atributos, tienes nombres, apellidos, etc , todos esos atributos son privados, ¿pero si son privados...porque la gente me llama por mi nombre? fácil, por los métodos de encapsulamiento que permiten al objeto entregar la información que sea solicitada por otro objeto...

Encapsulamiento

Page 27: Clases poo

13/04/2023 POO - AIGL 27

te encuentras en un Bar, a lo lejos en la penumbra vez una sombra que se acerca a tu mesa, estás sólo era de esperarse porque nadie te quiere...(sí estás leyendo esto es porque eres programador, los programadores no tienen amigos, eso todo el mundo lo sabe)...

…Encapsulamiento

pero la sombra se sigue acercando, cuando la reducida luz que se encuentra sobre tu persona, alcanza a iluminar ligeramente a la persona desconocida vez que es lo que estabas esperando, es la mujer más hermosa del mundo y te tiene ganas,

ella atravesó todo el bar para conocer tu atributo privado nombre, tu utilizas tú método de des-encapsulamiento para entregarle a la desconocida ese valor...

Page 28: Clases poo

13/04/2023 POO - AIGL 28

…Encapsulamiento

pfff entonces, ¿para qué encapsulo si al final voy a entregar el valor a cualquier desconocido?.

Imagina la misma escena, sólo que esta vez no es el amor de tu vida sino un ladrón que te va a hacer el paso millonario y que esta vez no está interesado en tu nombre sino en tu PIN de la tarjeta, ¿tu se lo entregas?, NO! por eso es importante encapsular los atributos de una clase, para que los objetos sólo puedan entregar los valores que sean programados por ti y no por nadie más.

Page 29: Clases poo

13/04/2023 POO - AIGL 29

…Encapsulamiento

(ocultamiento de la información) es la idea de empacar juntas en una Unidad de

programación una colección de miembros de datos y sus funciones (Operaciones) bien

definida.

Page 30: Clases poo

13/04/2023 POO - AIGL 30

…Encapsulamiento

(ocultamiento de la información) es la idea de empacar juntas en una Clase de

programación una colección de miembros de datos y sus funciones (Operaciones) bien

definida.

Page 31: Clases poo

13/04/2023 POO - AIGL 31

 Existen tres niveles de acceso:·         público: funciones de toda clase pueden acceder a los datos o métodos de una clase que se define con el nivel de acceso público. Este es el nivel de protección de datos más bajo

·         protegido: el acceso a los datos está restringido a las funciones de clases heredadas, es decir, las funciones miembro de esa clase y todas las subclases

·         privado: el acceso a los datos está restringido a los métodos de esa clase en particular. Este es nivel más alto de protección de datos (10) 

Page 32: Clases poo

13/04/2023 POO - AIGL 32

…Encapsulamiento

La Clase es, por otro lado, una encapsulación porque constituye una cápsula o saco que encierra y amalgama de forma clara tanto los datos de que constan los objetos como los procedimientos que permiten manipularlos. Las Clases se constituyen, así, en abstracciones encapsuladas

Page 33: Clases poo

13/04/2023 POO - AIGL 33

• Una clase es la descripción de un conjunto de objetos; consta de métodos y datos que resumen características comunes de un conjunto de objetos. Una clase puede definir un numero virtualmente infinito de objetos, y cada objeto es denominado una instancia de la clase.

• Por consiguiente, los objetos no son mas que instancias de una clase. Una instancia es una variable de tipo objeto.

• Ejemplo:

Carro AñoPasajerosColor Modelo

EncenderApagar

CLASES

Page 34: Clases poo

13/04/2023 POO - AIGL 34

Clases• Una descripción abstracta de un conjunto de objetos, cada uno de los

cuales se diferencia por su estado específico y por la posibilidad del objeto de realizar una serie de operaciones.

• Una clase en términos coloquiales, es el plano de un objeto, es donde se deben definir todas las características de los objetos de la vida real o de objetos abstractos

CLASES

Page 35: Clases poo

13/04/2023 POO - AIGL 35

Las clases son una descripción abstracta, ideal de un grupo de objetos, cada uno de los cuales se diferencia por un estado especifico y es capaz de realizar una serie de operaciones.

• 1.- Carlos Mejía Godoy, Katia Cardenal, José Manuel Espinoza pertenecen a la clase “cantantes de Nicaragüenses”

• 2.- Jeff, Alejandra, Moisés, Alejandro pertenecen a la clase de “Estudiantes del 2M4-Co

• 3.- Carlos Andrés Pérez, Violeta Barrios, Bill Clinton, pertenecen a la clase “Ex presidentes de América”

Clases

Page 36: Clases poo

13/04/2023 POO - AIGL 36

Clases Clase Posibles atributos Posible Comportamiento Bicicleta Modelo

Velocidades color

Frenar Cambiar velocidades

Naranja Dulzura Color tipo

Pelar Pudrirse Exprimir

Edificio Temperatura Número de pisos Número de habitaciones

Abrir Cerrar Calefacción

Estudiante Nombre Dirección Numero de Carne Año de estudio

Cambiar clases Matricular Graduar Inscribir materias

Page 37: Clases poo

13/04/2023 POO - AIGL 37

Clase: Trabajadores

UNI

Page 38: Clases poo

13/04/2023 POO - AIGL 38

• Es la propiedad que permite subdividir una aplicación en partes mas pequeñas (llamadas módulos), cada una las cuales debe ser tan independiente como sea posible de la aplicación en si y de las restantes partes.

• Por su parte Bárbara Liskov establece que "modularización consiste en dividir un programa en módulos que pueden ser compilados de forma separada, pero que tienen conexiones con otros módulos"2

…Modularidad

Page 39: Clases poo

13/04/2023 POO - AIGL 39

Métodos

Algoritmo asociado a un objeto (o Clase de objetos), cuya ejecución se desencadena tras la recepción de un mensaje.

Desde el punto de vista del comportamiento, es lo que el objeto puede hacer.

Un método puede producir un cambio en las propiedades del objetos.

Page 40: Clases poo

13/04/2023 POO - AIGL 40

Mensajes

– Los objetos de un programa interactúan y se comunican entre ellos por medio de mensajes

– A veces el objeto que recibe el mensaje necesita más información Esta información se pasa junto con el mensaje en forma de parámetro.

– Partes del mensaje

El objeto al cual se manda el mensaje

El método o función

Los parámetros que necesita ese método

Page 41: Clases poo

13/04/2023 POO - AIGL 41

Herencia

– La herencia es la propiedad que permite a los objetos ser construidos a partir de otros objetos., es decir la capacidad de un objeto para utilizar las estructuras de datos y los métodos previstos en antepasados o ascendientes. El objetivo final es la reutilización o reutilizabilidad es decir reutilizar código anteriormente ya desarrollado.

Page 42: Clases poo

13/04/2023 POO - AIGL 42

…Herencia

La idea de herencia parte de la experiencia de la vida real las clases básicas o fundamentales se dividen en subclases

Seres Humanos

Varones Mujeres

Animales

Vertebrados Invertebrados

Automóviles

Lujo Carrera Carga

Page 43: Clases poo

13/04/2023 POO - AIGL 43

…Herencia los objetos con propiedades comunes se agrupan en una clase

las clases con propiedades comunes se agrupan en una superclaseLas clases que se derivan de una superclase son las

subclases. Herencia Simple O Jerárquica

Un objeto (clase) puede tener solo un ascendiente, o dicho de otro modo, una subclase puede heredar datos y métodos de una única clase, así como añadir o quitar comportamientos de la clase base.

SuperClase

Page 44: Clases poo

13/04/2023 POO - AIGL 44

…Herencia

Herencia Múltiple o en Malla

Es la propiedad de una clase de poder tener más de un ascendiente inmediato, o lo que es igual, adquirir datos y métodos de más de una clase.

Trabajador

Investigador Conserje CPFProfesor

Profesor UNI

Page 45: Clases poo

13/04/2023 POO - AIGL 45

Relaciones entre Las Clases

• Las relaciones entre clases son tres:1. Relación de asociación2. Relación de agregación3. Relación de generalización.

Page 46: Clases poo

13/04/2023 POO - AIGL 46

Relacion de Asociación

• Representa una dependencia entre clase• Es preciso buscar frase tales como: pertenece a, es

miembro de, esta asociado con, trabaja para, etc.• Una propiedad importante intrínseca a la relación de

asociación o multiplicidad es la cardinalidad o multiplicidad.– Una a una– Una a muchas– Muchas a muchas

Relaciones de Asociación

Page 47: Clases poo

13/04/2023 POO - AIGL 47

Relacion de Asociación

• Una a Una:

• Notacion___________ Una a Una

Relaciones de Asociación

Ciudad Capital

Venta Pago

Page 48: Clases poo

13/04/2023 POO - AIGL 48

Relacion de Asociación

• Una a Muchas:

• Notacion___________ Una a muchas

1..n, 1-m Una a muchas

Relaciones de Asociación

País Ciudad

Cliente Facturas

1 n

1 n

1 n

Page 49: Clases poo

13/04/2023 POO - AIGL 49

Relacion de Asociación

• Muchas a Muchas:

• Notacion___________ Muchas a muchas

m..n, m-n Muchas a muchas

Relaciones de Asociación

Profesor Alumno

Estudiante Asignatura

n M

Page 50: Clases poo

13/04/2023 POO - AIGL 50

Relacion de AsociaciónRelaciones de Agregación o Composición

M

• Es un concepto que se utiliza para expresar tipos de relaciones entre

objetos: parte-de o tiene-un.

Page 51: Clases poo

51

Relacion de AsociaciónRelación de Generalización• Representa una relación “ un tipo de “. Por ejemplo, una rosa es un tipo de

flor, significando que una rosa es una subclase especializada de la clase general, flor.

Vehículo

Page 52: Clases poo

52

Relacion de AsociaciónPolimorfismo• Que una entidad tome muchas formas.

• Permite referirse a objetos de clases diferentes mediante el mismo elemento de programa y realizar la misma operación de diferentes formas, según sea el objeto que se referencia en ese momento.

• Permite que una misma función se comporte de diferente formas según sea la clase sobre la que se aplica.

• un mismo identificador puede tener distintas formas (distintos cuerpos de función, distintos comportamientos) dependiendo del contexto en el que se halle.

Page 53: Clases poo

53

Relacion de AsociaciónPolimorfismo y Sobrecarga• uso del mismo identificador u operador en distintos contextos y con

distintos significados.• La sobrecarga de métodos hace que un mismo nombre pueda representar

distintos métodos con distinto tipo y número de parámetros, manejados dentro de la misma clase. En el ámbito de la POO, la sobrecarga de métodos se refiere a la posibilidad de tener dos o más métodos con el mismo nombre pero distinta funcionalidad. Es decir, dos o más métodos con el mismo nombre realizan acciones diferentes y el compilador usará una u otra dependiendo de los parámetros usados. Esto también se aplica a los constructores (de hecho, es la aplicación más habitual de la sobrecarga).

Page 54: Clases poo

54

Relacion de AsociaciónPolimorfismo

Page 55: Clases poo

55

Relacion de AsociaciónPolimorfismo• Sobrecarga:• uso del mismo identificador u operador en distintos contextos y con

distintos significados.

Page 56: Clases poo

56

Relacion de AsociaciónPolimorfismo• La función dibujar se aplica igualmente a un círculo, a un cuadrado o a un

triángulo, y el objeto ejecutará el código apropiado dependiendo del tipo específico

• Figura

Color

Area()

Cuadrado

Lado

Area()

Circulo

Radio

Area()

Polimorfismo del método Area CLASE Figura

int x,y; Mover ();

Área (); CLASE Círculo Hereda de Figura

int radio; Área (); donde Área = pi * radio * radio

CLASE Cuadrado Hereda de Figura int lado; Área (); donde Área = lado * lado

Page 57: Clases poo

13/04/2023 POO - AIGL 57

Abstracción: Visión simplificada de la realidad

Objeto: Modelado del software del mundo real

Clase: Estructura de software que definen los objetos

Herencia de la Clase: Heredan los atributos y/o métodos de sus padres (o Jerarquización de clases)

Polimorfismo: Elemento de programa que realiza operación de distintas formas.

Page 58: Clases poo

13/04/2023 POO - AIGL 58

• Realizar un ensayo en su cuaderno sobre la Crisis del Software.

• Cuadro comparativo de los paradigmas de programación

• Utilizando Notación Grafica OMT represente 10 objeto sus atributos a encapsular y sus métodos

• Glosario de Términos desconocido

Page 59: Clases poo

13/04/2023 POO - AIGL 59

• Investigar sobre categorías de métodos

Page 60: Clases poo

60

Relacion de AsociaciónII Unidad: Metodologías de análisis y Diseño Orientado a Objetos.

• En programación Orientada a objetos , un programa describe un sistema de objetos que interactúan entre si

• Existen numerosos métodos de desarrollo orientado a objetos: – Booch, Yourdon/Coad, – Martin, – Shlaer & Mellor, – Rumbaugh, etc.

• En general, al igualque en cualquier proyecto estructurado, un proyecto completo OO se compondrá de las siguientes etapas:– Análisis orientado a objetos AOO.– Diseño orientado a objetos DOO.– Programación Orientada a Objetos.

Page 61: Clases poo

61

Relacion de AsociaciónII Unidad: Metodologías de análisis y Diseño Orientado a Objetos.

• El método Booch considera que las etapas del denominado microproceso en un desarrollo orientado a objetos:– Identificar las clases y objetos en un nivel dado de abstracción– Identificar la semántica de estas clases y objetos.– Identificar las relaciones entre clases y objetos.– Especificar el interfaz y la implementación de estas clases y objetos.

• Otros métodos de diseño orientado a objetos contienen las etapas siguientes:1. Identificar clases y objetos.2. Asignar atributos y comportamientos3. Encontrar relaciones entre clases.4. Organizar las clases en jerarquías5. Implementar las especificaciones de diseño

Figura

Page 62: Clases poo

62

Relacion de AsociaciónII Unidad: Metodologías de análisis y Diseño

Orientado a Objetos.

AutoRelación entre clase tiene Un

Secretaria

Empleado

Persona Relación entre clase Es Un

3 Encontrar Relaciones entre clases

Page 63: Clases poo

63

Relacion de AsociaciónII Unidad: Metodologías de análisis y Diseño Orientado a Objetos.

• 4 Interfaz e implementación de las Clases: La interfaz de la clase se puede dividir en tres partes– Pública– Protegida– Privada

• Las características esenciales que debe seguir en el diseño del interfaz de cada clase son:– Identificar las operaciones requeridas por usuarios de casa en clase. Estas operaciones

definen el interfaz público de la clase.

– Identificar las posibles funciones de ayuda requeridas por la clase para soportar las operaciones de su interfaz público. Estas operaciones serán privadas o protegidas en una jerarquía de clases

– En el caso de una jerarquía de clases, identificar operaciones que son dependientes del tipo: éstas serán el conjunto de funciones virtuales dentro de la jerarquía.

– Identificar la representación de cada clase.

Page 64: Clases poo

64

Page 65: Clases poo

13/04/2023 POO - AIGL 65

• Notaciones Gráficas: Booch

Gerente

Vicepresidente Empleado Director Dpto

SecretariaFotocopiadora

1

3

1

1

1 n

Page 66: Clases poo

13/04/2023 POO - AIGL 66

Agregación Yourdan

Persona

Estudiante Profesor

Page 67: Clases poo

13/04/2023 POO - AIGL 67

Generalización Yourdon

Coche

Ruedas Puertas

Page 68: Clases poo

13/04/2023 POO - AIGL 68

Notacion Rumbaugh

Vehículo

Vehículo Terrestre Vehículo Marino

Llantas Boomper hélices Timón

Page 69: Clases poo

13/04/2023 POO - AIGL 69

Notacion Rumbaugh OMT

Page 70: Clases poo

13/04/2023 POO - AIGL 70

Relacion de Asociación

• Una a Una:

• Notacion___________ Una a Una

Relaciones de Asociación

Ciudad Capital

Venta Pago

Page 71: Clases poo

13/04/2023 POO - AIGL 71

Relacion de Asociación

• Una a Muchas:

• Notacion___________ Una a muchas

1..n, 1-m Una a muchas

Relaciones de Asociación

País Ciudad

Cliente Facturas

1 n

1 n

1 n

Page 72: Clases poo

13/04/2023 POO - AIGL 72

Relacion de Asociación

• Muchas a Muchas:

• Notacion___________ Muchas a muchas

m..n, m-n Muchas a muchas

Relaciones de Asociación

Profesor Alumno

Estudiante Asignatura

n M

Page 73: Clases poo

13/04/2023 POO - AIGL 73

• http://algonzalezpoo.wordpress.com/encapsulamiento/