SlideShare ist ein Scribd-Unternehmen logo
1 von 198
UML Presentado por:  Ing. Eliseo Castro Jimenez Especialista en Ingeniería de Software Unified Modeling Language (Lenguaje   de Mo delamiento unificado)
Contenido ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Contenido ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Contenido ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
¿Qué es un Modelo? Un Modelo es  una  Simplificación de la Realidad
Conceptos Importantes ,[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],Conceptos Importantes Modelos y Diagramas
Conceptos Importantes Metodología Vs Ciclo de Vida ,[object Object],[object Object]
Paradigmas de Programación ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Historia del Software ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Historia del Software ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Introducción a UML ,[object Object],[object Object],[object Object],[object Object],Grady Booch Ivar Jacobson James Rumbaugh
¿Qué es UML? ,[object Object]
¿Qué es UML? ,[object Object],[object Object],[object Object]
¿Qué es UML? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Historia de UML
Estructura de UML ,[object Object],[object Object],[object Object]
Vista de UML
Diagramas de UML Los diagramas expresan gráficamente partes de un modelo. Diagrama de  Secuencia Diagrama de  Caso de Uso Diagrama de  Clases Diagrama de  Objetos Diagrama de  Componentes Diagrama de  Distribución Diagrama de  Actividad Diagrama de  Estados Diagrama de  Colaboración Modelo
Diagramas de UML ,[object Object],[object Object],[object Object]
¿Por qué tantos Diagramas? ,[object Object],[object Object],[object Object],[object Object]
Orientación a Objetos ,[object Object],[object Object]
Orientación a Objetos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Orientación a Objetos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Orientación a Objetos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Un objeto posee Estado ,[object Object],[object Object],[object Object],[object Object]
Un objeto posee Comportamiento ,[object Object],[object Object],[object Object],[object Object]
Un objeto posee Identidad ,[object Object]
Orientación a Objetos ,[object Object],[object Object],[object Object]
Objetos y Clases ,[object Object],[object Object],[object Object],[object Object]
Ejemplo de una Clase ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Pilares de la Orientación a Objetos Polimorfismo Herencia Abstracción Encapsulamiento  Relaciones
Abstracción ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Herencia ,[object Object],[object Object]
Polimorfismo ,[object Object],[object Object],[object Object]
Polimorfismo ,[object Object],[object Object]
[object Object],[object Object],Polimorfismo
Polimorfismo - Ejemplo ,[object Object],[object Object],[object Object],Transporte Avanzar Frenar Transporte Avanzar Frenar Transporte Avanzar Frenar Transporte Avanzar Frenar
Encapsulamiento ,[object Object]
Encapsulamiento ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Envió de Mensajes ,[object Object],[object Object],[object Object]
Concepción de Clases ,[object Object],[object Object],[object Object],[object Object]
Concepción de Clases ,[object Object],[object Object],[object Object]
Concepción de Clases ,[object Object],[object Object]
Concepción de Clases ,[object Object],[object Object]
Concepción de Clases ,[object Object],[object Object]
Paquetes ,[object Object],[object Object]
Paquetes
Paquetes ,[object Object],[object Object],[object Object],[object Object],[object Object]
Paquetes ,[object Object],Interfaces Reglas del Negocio Entidad
Paquetes ,[object Object],Dep. Comercial Dep. Cartera Dep Logistica de  Distribución Direccion de  Negocio Mantenimiento de  Maestros
Paquetes ,[object Object]
Relaciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Asociaciones ,[object Object],[object Object],[object Object],[object Object],[object Object]
Asociaciones ,[object Object],[object Object],[object Object],[object Object]
Asociaciones ,[object Object],[object Object]
Asociaciones Una Vía Es el papel que representa cada Clase en la Asociación Es la Asociación entre un Jugador y un Equipo Dos Vía
Asociaciones Diferente Característica Relaciones Complejas
Restricciones en  las Asociaciones ,[object Object],[object Object]
Restricciones en  las Asociaciones ,[object Object],[object Object]
Clase de Asociación ,[object Object],[object Object]
Vínculos ,[object Object]
Multiplicidad ,[object Object],[object Object],[object Object]
Multiplicidad
Asociaciones Calificadas ,[object Object],[object Object],[object Object]
Asociaciones Calificadas
Asociaciones Reflexivas ,[object Object],[object Object]
Herencia y Generalización ,[object Object],[object Object],[object Object],[object Object]
Herencia y Generalización
Dependencia ,[object Object],[object Object],[object Object],[object Object]
Dependencia ,[object Object]
Agregación ,[object Object],[object Object],[object Object]
Agregación
Restricciones en  las Agregaciones ,[object Object]
Composiciones ,[object Object],[object Object],[object Object],[object Object]
Composiciones ,[object Object],[object Object]
Composiciones ,[object Object]
Relaciones de Clases entre Paquetes C D A B = C D A B = La clase C pertenece al paquete A, la clase D pertenece al paquete B. Si existe una relación de asociación entre estas clases, existe una relación de dependencia entre paquetes. En este caso, se construye primero el paquete B, porque A depende de B. La clase C pertenece al paquete A, la clase D pertenece al paquete B. Si existe una relación de agregación entre estas clases, existe una relación de dependencia entre paquetes. En este caso, se construye primero el paquete B, porque A depende de B. C D A B = La clase C pertenece al paquete A, la clase D pertenece al paquete B. Si existe una relación de herencia entre estas clases, existe una relación de dependencia entre paquetes. En este caso, se construye primero el paquete B, porque A depende de B.
Diagrama de Contexto ,[object Object],[object Object],[object Object]
Diagrama de Contexto
Interfaces ,[object Object],[object Object],[object Object],[object Object]
Interfaces  ,[object Object]
Interfaces ,[object Object]
Interfaces ,[object Object],[object Object]
Visibilidad  ,[object Object],[object Object],[object Object],[object Object]
Visibilidad  ,[object Object]
Ámbito  ,[object Object],[object Object],[object Object],[object Object]
Constructores y Destructores  ,[object Object],[object Object]
Constructores y Destructores  ,[object Object],[object Object]
Atributos ,[object Object],[object Object]
Atributos ,[object Object],[object Object]
Operaciones o Métodos ,[object Object]
Operaciones o Métodos ,[object Object],[object Object]
Atributos, Métodos  y Concepción ,[object Object],[object Object]
Atributos, Métodos  y Concepción ,[object Object],[object Object]
Responsabilidades  y Restricciones ,[object Object],[object Object]
Responsabilidades  y Restricciones ,[object Object],[object Object]
Notas Adjuntas ,[object Object],[object Object]
casos de uso
Casos de Uso ,[object Object],[object Object],[object Object],[object Object]
Elementos de los  Casos de Uso ,[object Object],[object Object],[object Object],[object Object],[object Object]
Relaciones de los  Casos de Uso ,[object Object],[object Object],[object Object]
Relaciones de los  Casos de Uso ,[object Object],[object Object],Dependencia
Relaciones de los  Casos de Uso ,[object Object],[object Object],Estereotipo
Relaciones de los  Casos de Uso ,[object Object]
Relaciones de los  Casos de Uso ,[object Object],[object Object],[object Object]
Relaciones de los  Casos de Uso
Agrupamiento ,[object Object]
Casos de Uso - Utilidad ,[object Object],[object Object],[object Object],[object Object],[object Object]
Casos de Uso - Utilidad ,[object Object],[object Object],[object Object]
Casos de Uso ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Casos de Uso ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejercicio 1
 
Diagrama de Actividades ,[object Object],[object Object],[object Object],[object Object]
Elementos del Diagrama de Actividades Actividad Flujo Inicio Fin Separador Bifurcación Unión Subdivisión Unión
Decisiones en el Diagrama de Actividades ,[object Object],[object Object],[object Object],[object Object]
Decisiones en el Diagrama de Actividades
Rutas Concurrentes en el  Diagrama de Actividades ,[object Object]
Indicaciones en el  Diagrama de Actividades ,[object Object],[object Object]
Diagrama de Actividades Ejemplo Serie de Fibonacci
Diagrama de Actividades Proceso de Creación de un Documento
Diagrama de Actividades Hibrido Proceso de Creación de un Documento
Diagrama de Actividades Proceso de una Aerolínea con marcos de Responsabilidades
Ejercicio 2
 
Diagrama de Clases ,[object Object],[object Object],[object Object],[object Object],[object Object]
Diagrama de Clases ,[object Object],[object Object],[object Object],[object Object],[object Object]
Pasos para dibujar un Diagrama de Clases ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Diagrama de Clases
Ejercicio 3
 
Diagrama de Objetos ,[object Object],[object Object],[object Object],[object Object]
Diagrama de Objetos ,[object Object],[object Object]
Diagrama de Objetos Ejemplo Sistema Académico ,[object Object]
Diagrama de Objetos Ejemplo Sistema Académico ,[object Object]
Diagrama de Objetos Ejemplo Sistema Académico ,[object Object]
 
Tipos de Clases ,[object Object],Clase Entidad Clase Interfaz Clase Control (Servicio)
Tipos de Clases Clase de Entidad ,[object Object],[object Object],[object Object],[object Object]
Tipos de Clases Clase de Límite (Interfaz) ,[object Object],[object Object]
Tipos de Clases Clase de Control (Servicio) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Interacción entre Objetos ,[object Object],[object Object]
Diagrama de Secuencia ,[object Object],[object Object]
Diagrama de Secuencia ,[object Object],[object Object],[object Object],[object Object],[object Object]
Diagrama de Secuencia ,[object Object],[object Object],[object Object],[object Object]
Diagrama de Secuencia ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Diagrama de Secuencia Ejemplo Caso de Uso Matricular
Ejercicio 4
 
Diagrama de Colaboración ,[object Object],[object Object],[object Object]
Diagrama de Colaboración ,[object Object],[object Object],[object Object]
Diferencias entre el Diagrama de Secuencia y Colaboración ,[object Object],[object Object]
Diagrama de Colaboración  Ejemplo Caso de Uso Matricular
 
Diagrama de Estado ,[object Object],[object Object],[object Object],[object Object]
Diagrama de Estado ,[object Object],[object Object],[object Object]
Diagrama de Estado ,[object Object],[object Object],[object Object],[object Object]
Diagrama de Estado ,[object Object],[object Object],[object Object],[object Object],[object Object]
Diagrama de Estado ,[object Object]
Diagrama de Estado ,[object Object],Iniciado Do: Iniciar el objeto curso No Asignado Do: Asignar profesor al curso Abierto Entry: Matricular un estudiante Cancelado Do: Enviar mensaje de cancelación Cerrado Do: Reporte curso lleno Finalización Matrícula Do: Generar lista de clase Cupo Incompleto Do: Eliminar estudiantes matriculados Cancelar Curso Agregar estudiante/numest=0 Agregar estudiante(numest<10) Cancelar Curso Cancelar Curso Matrícula Finalizada (numest>=3)
Diagrama de Estado ,[object Object],State1 State2 State3 acción 1 acción 2 acción 3
Diagrama de Estado ,[object Object]
Diagrama de Estado ,[object Object]
Diagrama de Estado ,[object Object],Sub Estado del proceso Operación
Diagrama de Estado ,[object Object],Sub Estado Concurrente del proceso Operación
 
Diagrama de Componentes ,[object Object],[object Object]
Diagrama de Componentes ,[object Object],[object Object],[object Object],[object Object],[object Object]
Diagrama de Componentes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Diagrama de Componentes ,[object Object],[object Object],[object Object],Nombre agente.java agentefraudes.dll Realiza AgenteFraudes PoliticaFraudes BuscarPatrones system::dialog.dll {version = 2.0.1}
Diagrama de Componentes Componentes y Clases ,[object Object],agentefraudes.dll AgenteFraudes PoliticaFraudes BuscarPatrones
Diagrama de Componentes Componentes y Clases ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Diagrama de Componentes Dependencias entre Componentes ,[object Object],home.html <<page>> animlogo.java <<file>> animator.java <<file>>
Diagrama de Componentes Ejemplo
Diagrama de Componentes Ejemplo
Diagrama de Componentes Sub Sistemas ,[object Object],[object Object]
Diagrama de Componentes Sub Sistemas ,[object Object],[object Object],[object Object],[object Object]
Ejercicio 5
 
Diagrama de Despliegue  o Distribución ,[object Object],[object Object],[object Object]
Diagrama de Despliegue  o Distribución ,[object Object],[object Object]
Diagrama de Despliegue  o Distribución ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Diagrama de Despliegue  o Distribución ,[object Object],[object Object],[object Object],[object Object]
Diagrama de Despliegue o Distribución
Diagrama de Despliegue  o Distribución
Diagrama de Despliegue  o Distribución Relación entre Nodos y Componentes Cliente App Server DBServer Web Browser Serverlets Jsp Jdbc
Diagrama de Despliegue  o Distribución
Diagrama de Despliegue  o Distribución
Diagrama de Despliegue  o Distribución
Ejercicio 6
Conclusiones
Conclusión ,[object Object],[object Object],[object Object],[object Object],[object Object]
Conclusión ,[object Object],[object Object]
Herramientas CASE  ,[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],Herramientas CASE  - Libre
¿Preguntas?
¡Muchas Gracias!

Weitere ähnliche Inhalte

Was ist angesagt?

Modelo conceptual de uml
Modelo conceptual de umlModelo conceptual de uml
Modelo conceptual de uml
Sergio Girado
 
El lenguaje de modelado unificado
El lenguaje de modelado unificadoEl lenguaje de modelado unificado
El lenguaje de modelado unificado
aioria2525
 
Taller presentacion
Taller presentacionTaller presentacion
Taller presentacion
yanqui0101
 
Tm02 introducción a uml
Tm02 introducción a umlTm02 introducción a uml
Tm02 introducción a uml
Julio Pari
 

Was ist angesagt? (20)

Introduccion a UML
Introduccion a UMLIntroduccion a UML
Introduccion a UML
 
UML
UMLUML
UML
 
Presentacion uml dian1_2003
Presentacion uml dian1_2003Presentacion uml dian1_2003
Presentacion uml dian1_2003
 
IntroduccióN Uml
IntroduccióN UmlIntroduccióN Uml
IntroduccióN Uml
 
Casos prácticos de uml
Casos prácticos de umlCasos prácticos de uml
Casos prácticos de uml
 
Curso Uml 2.4 Diagramas De Comportamiento
Curso Uml   2.4 Diagramas De ComportamientoCurso Uml   2.4 Diagramas De Comportamiento
Curso Uml 2.4 Diagramas De Comportamiento
 
Curso Uml 1 Introduccion
Curso Uml   1 IntroduccionCurso Uml   1 Introduccion
Curso Uml 1 Introduccion
 
Uml (lenguaje unificado de modelado)
Uml (lenguaje unificado de modelado)Uml (lenguaje unificado de modelado)
Uml (lenguaje unificado de modelado)
 
Lenguaje unificado de modelado
Lenguaje unificado de modeladoLenguaje unificado de modelado
Lenguaje unificado de modelado
 
Modelo conceptual de uml
Modelo conceptual de umlModelo conceptual de uml
Modelo conceptual de uml
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOS
 
Introducción a UML
Introducción a UMLIntroducción a UML
Introducción a UML
 
Uml
UmlUml
Uml
 
El lenguaje de modelado unificado
El lenguaje de modelado unificadoEl lenguaje de modelado unificado
El lenguaje de modelado unificado
 
Uml
UmlUml
Uml
 
Taller presentacion
Taller presentacionTaller presentacion
Taller presentacion
 
Tm02 introducción a uml
Tm02 introducción a umlTm02 introducción a uml
Tm02 introducción a uml
 
Lenguaje de modelado unificado uml
Lenguaje de modelado unificado   umlLenguaje de modelado unificado   uml
Lenguaje de modelado unificado uml
 
Uml
UmlUml
Uml
 
Uml (presentación 6)
Uml (presentación 6)Uml (presentación 6)
Uml (presentación 6)
 

Ähnlich wie Presentacion de-uml-formato-2-1227891304393749-8

Dce0 Introduccion Orientacion A Objetos2
Dce0 Introduccion Orientacion A Objetos2Dce0 Introduccion Orientacion A Objetos2
Dce0 Introduccion Orientacion A Objetos2
Hector Gomez
 
D5E-E0: Introduccion a la programacion orientada a objetos
D5E-E0: Introduccion a la programacion orientada a objetosD5E-E0: Introduccion a la programacion orientada a objetos
D5E-E0: Introduccion a la programacion orientada a objetos
Ellyster
 

Ähnlich wie Presentacion de-uml-formato-2-1227891304393749-8 (20)

Analisis Y DiseñO Orientado Objetos
Analisis Y DiseñO Orientado ObjetosAnalisis Y DiseñO Orientado Objetos
Analisis Y DiseñO Orientado Objetos
 
Diapositiva de Estudio: FUNDAMENTOS UML.ppt
Diapositiva de Estudio: FUNDAMENTOS UML.pptDiapositiva de Estudio: FUNDAMENTOS UML.ppt
Diapositiva de Estudio: FUNDAMENTOS UML.ppt
 
Introducción a la Programación Orientada a Objetos.pdf
Introducción a la Programación Orientada a Objetos.pdfIntroducción a la Programación Orientada a Objetos.pdf
Introducción a la Programación Orientada a Objetos.pdf
 
Clase No.01.pptx
Clase No.01.pptxClase No.01.pptx
Clase No.01.pptx
 
Orientacion A Objetos
Orientacion A ObjetosOrientacion A Objetos
Orientacion A Objetos
 
EL UML X2
EL UML X2EL UML X2
EL UML X2
 
Unidad 1 y 2 de desarrollo
Unidad 1 y 2 de desarrolloUnidad 1 y 2 de desarrollo
Unidad 1 y 2 de desarrollo
 
26 DISEÑO 6A PARTE.pdf
26 DISEÑO 6A PARTE.pdf26 DISEÑO 6A PARTE.pdf
26 DISEÑO 6A PARTE.pdf
 
Dce0 Introduccion Orientacion A Objetos
Dce0 Introduccion Orientacion A ObjetosDce0 Introduccion Orientacion A Objetos
Dce0 Introduccion Orientacion A Objetos
 
Lenguaje unificado de modelado.pptx
Lenguaje unificado de modelado.pptxLenguaje unificado de modelado.pptx
Lenguaje unificado de modelado.pptx
 
Introduccion orientaciona objetos
Introduccion orientaciona objetosIntroduccion orientaciona objetos
Introduccion orientaciona objetos
 
Dce0 Introduccion Orientacion A Objetos2
Dce0 Introduccion Orientacion A Objetos2Dce0 Introduccion Orientacion A Objetos2
Dce0 Introduccion Orientacion A Objetos2
 
D5E-E0: Introduccion a la programacion orientada a objetos
D5E-E0: Introduccion a la programacion orientada a objetosD5E-E0: Introduccion a la programacion orientada a objetos
D5E-E0: Introduccion a la programacion orientada a objetos
 
Introduccion Orientada a Objetos
Introduccion Orientada a ObjetosIntroduccion Orientada a Objetos
Introduccion Orientada a Objetos
 
Dce0 Introduccion Orientacion A Objetos
Dce0 Introduccion Orientacion A ObjetosDce0 Introduccion Orientacion A Objetos
Dce0 Introduccion Orientacion A Objetos
 
Presentación poo
Presentación pooPresentación poo
Presentación poo
 
Programacion orientada a objetos parte 2
Programacion orientada a objetos parte 2Programacion orientada a objetos parte 2
Programacion orientada a objetos parte 2
 
UML Java
UML JavaUML Java
UML Java
 
Uml java
Uml javaUml java
Uml java
 
Diagramas de clases y aplicaciones JAVA en NetBeans 6.9.1
Diagramas de clases y aplicaciones  JAVA en NetBeans 6.9.1Diagramas de clases y aplicaciones  JAVA en NetBeans 6.9.1
Diagramas de clases y aplicaciones JAVA en NetBeans 6.9.1
 

Presentacion de-uml-formato-2-1227891304393749-8

Hinweis der Redaktion

  1. UML es un lenguaje visual de modelado y documentación de sistemas, tan utilizado en el mundo de desarrollo orientado a objetos que se ha convertido casi en un estándar “de facto”. A partir de está filmina, todos los diagramas que hagamos serán diagramas UML.
  2. En la actualidad, el paradigma de orientación a objetos es sin lugar a dudas el más utilizado por las empresas de todo el mundo a la hora de encarar desarrollos de aplicaciones de software, ya que permite representar de manera relativamente simple modelos y realidades muy complejas y esto hace que el software sea más fácil de programar, comprender y mantener. Por otra parte, luego de más de 20 años de investigación y desarrollo sobre Orientación a Objetos pareciera ser que la industria se ha dado cuenta que el paradigma está lo suficientemente maduro como para dar soporte a las aplicaciones más importantes del mundo actual.
  3. El concepto de identidad se refiere al hecho de que cada objeto es único en el mundo, por más que su conjunto de atributos y sus valores sean exactamente iguales a los de otros objetos. Por ejemplo, dos autos del mismo modelo, color, motor, salidos de la misma línea de producción el mismo día no dejan de ser dos autos diferentes, por más que su conjunto de atributos y sus valores sean iguales. La única posibilidad de que dos objetos sean iguales es que sean el mismo objeto.
  4. Otra forma útil de ver una clase es como una plantilla, plano o molde de un conjunto de entidades a partir del cual se crearán luego instancias particulares (los objetos). La interacción de las entidades en el mundo real se produce entre objetos, no entre clases. Las clases no tienen “vida” en el mundo real, los objetos sí. Para poder interactuar con alguna clase deberemos crear una instancia particular de ella, con un conjunto de valores definidos para los atributos. A este proceso se lo conoce como “instanciación de un objeto”.
  5. Aquí tenemos un ejemplo práctico de la implementación de polimorfismo en un diseño orientado a objetos. Por un lado tenemos la clase base “Transporte”, que posee los métodos “Avanzar” y “Frenar”. Por otro lado tenemos tres clases distintas derivadas de la clase “Transporte”, cada una de las cuales podrá sobrescribir la implementación de los métodos Avanzar y Frenar para que su comportamiento sea más específico. Ahora bien, como todas heredan de la misma clase base, las clases derivadas pueden ser tratadas genéricamente. Esto quiere decir que podríamos tener un array que almacene objetos de tipo Transporte, y recorrerlo luego para llamar al método “Avanzar” de cada uno. De esta forma, en tiempo de codificación es imposible saber a qué método “Avanzar” se está llamando en realidad (al del Auto? Al del caballo? Al del transbordador?), sino que esta decisión es tomada en tiempo de ejecución en base al tipo particular de objeto que esté instanciado. En pseudocódigo, esto se escribiría de la siguiente manera: Definir arrayTransportes (3) de tipo Transporte arrayTransportes(1) = nuevo Automóvil() //Un automóvil ES UN TIPO DE transporte arrayTransportes(2) = nuevo Transbordador() //Un Transbordador ES UN TIPO DE transporte arrayTransportes(3) = nuevo Caballo() //Un Caballo ES UN TIPO DE transporte Por Cada (Transporte t en arrayTransportes) t.Avanzar() t.Frenar() Fin
  6. Otro de los pilares de la orientación a objetos es el encapsulamiento. Para entender este principio veamos un ejemplo práctico: Como todos ustedes se imaginarán, no es necesario ser mecánico de automóviles para poder manejar uno. Si el comprender cómo es el funcionamiento interno del motor, la dirección, los frenos, los cilindros, etc. fuera requisito para poder manejar un automóvil, serían muchos menos los conductores certificados y sería mucho más difícil aprender a manejar. Es más, si a cualquier automotriz se le ocurriera cambiar el funcionamiento interno de alguna de estas cosas, probablemente todos los conductores tendrían que volver a aprender como funciona el nuevo componente interno para poder seguir manejando sin problemas. Por suerte esto no es así, ya que la complejidad interna del funcionamiento de un automóvil está escondida de los conductores (usuarios). Para poder interactuar con el automóvil, éste nos expone una interfaz sencilla y definida, que no cambia nunca por más que cambien internamente el funcionamiento de sus componentes. Esta interfaz está compuesta por el volante, los pedales, la palanca de cambios, el asiento, etc. De esta forma decimos que el automóvil ha encapsulado su complejidad interna.
  7. Suponiendo que estamos en un entorno donde sólo se soporta la herencia simple, ante la jerarquía de clases planteadas: ¿ De que clase heredaría la clase Hidroavión ? En teoría debería heredar tanto de Vehículo-Aéreo (ya que tiene atributos y comportamientos propios de un avión, como “cantidad de alas” y “despegar”) como de Vehículo-Acuático (ya que también tiene atributos y comportamientos propios de un barco, como por ejemplo “capacidad de flotación” y “navegar”). Ahora bien, como la herencia múltiple no se encuentra soportada según los parámetros del problema debemos buscar otra solución. Aquí es donde el concepto de interfaces se vuelve de gran utilidad.
  8. Una interfaz define un contrato de comportamientos que una clase debe cumplir al implementarla. Los comportamientos declarados en la interfaz no tienen cuerpo ni funcionalidad, son sólo “firmas” que las clases que implementen la interfaz deberán completar. De esta forma, si bien no podemos lograr que la clase derivada herede todos los atributos y comportamientos de su clase base, podemos al menos “obligar” a que implemente el conjunto de funcionalidades definidas en la interfaz. Una clase puede implementar tantas interfaces como desee, y una interfaz puede ser implementada por tantas clases como se desee.