Está en la página 1de 8
Taller práctico temas 1 y 2 e Introducción POO

Taller práctico temas 1 y 2 e Introducción POO

Taller práctico temas 1 y 2 e Introducción POO
Taller práctico temas 1 y 2 e Introducción POO
Taller práctico temas 1 y 2 e Introducción POO
Taller práctico temas 1 y 2 e Introducción POO

Aplicaciones Telemáticas

Abel Rionda Rodríguez

POO Aplicaciones Telemáticas Abel Rionda Rodríguez ÍNDICE Conceptos básicos EAI Identificación de ejemplos

ÍNDICE

POO Aplicaciones Telemáticas Abel Rionda Rodríguez ÍNDICE Conceptos básicos EAI Identificación de ejemplos de EAI
POO Aplicaciones Telemáticas Abel Rionda Rodríguez ÍNDICE Conceptos básicos EAI Identificación de ejemplos de EAI
POO Aplicaciones Telemáticas Abel Rionda Rodríguez ÍNDICE Conceptos básicos EAI Identificación de ejemplos de EAI

Conceptos básicos EAI

Abel Rionda Rodríguez ÍNDICE Conceptos básicos EAI Identificación de ejemplos de EAI Niveles de

Identificación de ejemplos de EAI Niveles de abstracción Responsabilidades de cada capa

Conceptos básicos Ingeniería del Software

Programación orientada a objetos (POO) POO vs. Procedimental Algunos artefactos UML Ejercicio obtención del UML a partir de clases Pensando en objetos: Representación de un dominio real

Conceptos básicos EAI: Identificación

Conceptos básicos EAI: Identificación Típicamente los paradigmas o modelos de EAI se usan para comunicar aplicaciones
Conceptos básicos EAI: Identificación Típicamente los paradigmas o modelos de EAI se usan para comunicar aplicaciones
Conceptos básicos EAI: Identificación Típicamente los paradigmas o modelos de EAI se usan para comunicar aplicaciones
Conceptos básicos EAI: Identificación Típicamente los paradigmas o modelos de EAI se usan para comunicar aplicaciones

Típicamente los paradigmas o modelos de EAI se usan para comunicar aplicaciones que residen en máquinas diferentes separadas por una red (apps. distribuidas). Determine y explique si las siguientes actividades cotidianas son ejemplos de EAI de estas características

Utilizar el Word en un ordenador personal aislado

Navegar por la Web

La mensajería instantánea (e.g MSN)

Utilizar el correo electrónico en el computador de un departamento para enviar un correo a uno mismo

Compilar y ejecutar un programa en C en una máquina departamental sin conexión a red

Utilizar el Kazaa para descargar videos y música

Conceptos básicos EAI: Identificación

videos y música Conceptos básicos EAI: Identificación Mensajería instantánea Arquitectura híbrida entre
videos y música Conceptos básicos EAI: Identificación Mensajería instantánea Arquitectura híbrida entre
videos y música Conceptos básicos EAI: Identificación Mensajería instantánea Arquitectura híbrida entre

Mensajería instantánea

básicos EAI: Identificación Mensajería instantánea Arquitectura híbrida entre cliente/servidor y P2P ( peer 2

Arquitectura híbrida entre cliente/servidor y P2P (peer 2 peer o de igual a igual)

Mensajería instantánea Arquitectura híbrida entre cliente/servidor y P2P ( peer 2 peer o de igual a

Conceptos básicos EAI: Identificación

Conceptos básicos EAI: Identificación Kazaa Arquitectura P2P ( peer 2 peer o de igual a igual
Conceptos básicos EAI: Identificación Kazaa Arquitectura P2P ( peer 2 peer o de igual a igual
Conceptos básicos EAI: Identificación Kazaa Arquitectura P2P ( peer 2 peer o de igual a igual

Kazaa

Conceptos básicos EAI: Identificación Kazaa Arquitectura P2P ( peer 2 peer o de igual a igual

Arquitectura P2P (peer 2 peer o de igual a igual). Un primer paso de Cliente/Servidor.

o de igual a igual ). Un primer paso de Cliente/Servidor. Conceptos básicos EAI: Niveles de

Conceptos básicos EAI: Niveles de abstracción

Conceptos básicos EAI: Niveles de abstracción La abstracción o encapsulación se define como el
Conceptos básicos EAI: Niveles de abstracción La abstracción o encapsulación se define como el
Conceptos básicos EAI: Niveles de abstracción La abstracción o encapsulación se define como el
Conceptos básicos EAI: Niveles de abstracción La abstracción o encapsulación se define como el

La abstracción o encapsulación se define como el ocultamiento de detalles. Ordene de menor a mayor abstracción los siguientes paradigmas de EAI

Paso de mensajes (de alto nivel) Sockets (Paso de mensajes de bajo nivel) Llamada a objetos o procedimientos remotos

Nótese que las arquitecturas Cliente/servidor/ (P2P) peer 2 peer pueden ser implementadas por cualquiera de estos paradigmas

¿Cuál es que menos sobrecarga o consumo de recursos produce?

Conceptos básicos EAI:

Responsabilidades de cada capa

Conceptos básicos EAI: Responsabilidades de cada capa Se pretende construir una aplicación de gestión de clientes.
Conceptos básicos EAI: Responsabilidades de cada capa Se pretende construir una aplicación de gestión de clientes.
Conceptos básicos EAI: Responsabilidades de cada capa Se pretende construir una aplicación de gestión de clientes.
Conceptos básicos EAI: Responsabilidades de cada capa Se pretende construir una aplicación de gestión de clientes.

Se pretende construir una aplicación de gestión de clientes. Para ello se dispone de una serie de métodos software que ayudarán en tal construcción. ¿Puede identificar a que capa (Presentación, Negocio, Datos) pertenecería cada tipo de los siguientes métodos?

pintarVentanasPrincipal()

validarCuentaBancaria()

borrarDatosCliente()

calcularTipoCliente()

notificarUsuarioDatosInvalidos()

ÍNDICE

notificarUsuarioDatosInvalidos() ÍNDICE Conceptos básicos EAI Identificación de ejemplos de EAI
notificarUsuarioDatosInvalidos() ÍNDICE Conceptos básicos EAI Identificación de ejemplos de EAI
notificarUsuarioDatosInvalidos() ÍNDICE Conceptos básicos EAI Identificación de ejemplos de EAI

Conceptos básicos EAI

Identificación de ejemplos de EAI Niveles de abstracción Responsabilidades de cada capa

Niveles de abstracción Responsabilidades de cada capa Conceptos básicos Ingeniería del Software Programación

Conceptos básicos Ingeniería del Software

Programación orientada a objetos (POO) POO vs. Procedimental Algunos artefactos UML Ejercicio obtención del UML a partir de clases Pensando en objetos: Representación de un dominio real

Conceptos básicos Ingeniería del Software: Programación Orientada a Objetos (POO)

del Software: Programación Orientada a Objetos (POO) Los objetos representan conceptos del dominio del real o
del Software: Programación Orientada a Objetos (POO) Los objetos representan conceptos del dominio del real o
del Software: Programación Orientada a Objetos (POO) Los objetos representan conceptos del dominio del real o
del Software: Programación Orientada a Objetos (POO) Los objetos representan conceptos del dominio del real o

Los objetos representan conceptos del dominio del real o del problema.

Concepto de dominio

C o n c e p t o d e d o m i n i

Visualización del concepto

(UML)

e d o m i n i o Visualización del concepto (UML) Representación en un lenguaje
e d o m i n i o Visualización del concepto (UML) Representación en un lenguaje

Representación en un lenguaje OO como Java

Una habilidad fundamental en la POO es asignar responsabilidades a los Objetos

en la POO es asignar responsabilidades a los Objetos Conceptos básicos Ingeniería del Software: Programación

Conceptos básicos Ingeniería del Software: Programación Orientada a Objetos (POO) vs. Procedimental

Programación Orientada a Objetos (POO) vs. Procedimental Procedimental Conjunto de funciones dispersas y estructuras
Programación Orientada a Objetos (POO) vs. Procedimental Procedimental Conjunto de funciones dispersas y estructuras
Programación Orientada a Objetos (POO) vs. Procedimental Procedimental Conjunto de funciones dispersas y estructuras

Procedimental

Orientada a Objetos (POO) vs. Procedimental Procedimental Conjunto de funciones dispersas y estructuras de datos

Conjunto de funciones dispersas y estructuras de datos Lenguajes como C, Cobol,… Problema: Mantenibilidad del código Ventaja: Código más óptimo

Orientado a objetos

El dominio se representa mediante objetos Objetos= atributos (características)+métodos (comportamiento) Un Objeto es una instancia de una clase (i.e. se crea con el operador new en Java) Lenguajes como Java, C#,… Permite reutilización de código, herencia y jerarquía, encapsulación o ocultación de detalles. Ventaja: Mantenibilidad, reusabilidad Desventaja: Eficiencia

Conceptos básicos Ingeniería del Software: Algunos artefactos UML

básicos Ingeniería del Software: Algunos artefactos UML UML ( Unified Modeling Language ) es el estándar
básicos Ingeniería del Software: Algunos artefactos UML UML ( Unified Modeling Language ) es el estándar
básicos Ingeniería del Software: Algunos artefactos UML UML ( Unified Modeling Language ) es el estándar
básicos Ingeniería del Software: Algunos artefactos UML UML ( Unified Modeling Language ) es el estándar

UML (Unified Modeling Language) es el estándar para realizar POO.

Atributos

CLASE

) es el estándar para realizar POO. Atributos CLASE cd Logical Model Figura - titulo: String
cd Logical Model Figura - titulo: String + pinta() : void Circulo Cuadrado - centroX:
cd Logical Model
Figura
- titulo: String
+ pinta() : void
Circulo
Cuadrado
- centroX: int
- puntoX: int
- centroY: int
- puntoY: int
- radio: int
- alto: int
- ancho: int
+ pinta() : void
+ pinta() : void

Nombre clase

Operaciones

HERENCIA

: void + pinta() : void Nombre clase Operaciones HERENCIA Conceptos básicos Ingeniería del Software: Algunos

Conceptos básicos Ingeniería del Software: Algunos artefactos UML

básicos Ingeniería del Software: Algunos artefactos UML UML (Unified Modeling Language) es el estándar para
básicos Ingeniería del Software: Algunos artefactos UML UML (Unified Modeling Language) es el estándar para
básicos Ingeniería del Software: Algunos artefactos UML UML (Unified Modeling Language) es el estándar para
básicos Ingeniería del Software: Algunos artefactos UML UML (Unified Modeling Language) es el estándar para
UML (Unified Modeling Language) es el estándar para realizar POO. cd Logical Model cd Logical
UML (Unified Modeling Language) es el estándar para realizar
POO.
cd Logical Model
cd Logical Model
Pintable
+ pinta() : void
Hospital
1
*
Medico
Cuadrado
COMPOSICIÓN
Circulo
+ pinta() : void
+ pinta() : void
INTERFAZ

Conceptos básicos Ingeniería del Software: UML a partir de clases

básicos Ingeniería del Software: UML a partir de clases A veces es útil hacer este proceso
básicos Ingeniería del Software: UML a partir de clases A veces es útil hacer este proceso
básicos Ingeniería del Software: UML a partir de clases A veces es útil hacer este proceso
básicos Ingeniería del Software: UML a partir de clases A veces es útil hacer este proceso

A veces es útil hacer este proceso para conocer el funcionamiento global de un sistema existente (nivel de abstracción superior). Este proceso se denomina ingeniería inversa y hay numerosas herramientas que lo automatizan.

Hacer dicho proceso para las siguientes clases Java

Hacer dicho proceso para las siguientes clases Java Conceptos básicos Ingeniería del Software: UML a partir

Conceptos básicos Ingeniería del Software: UML a partir de clases

básicos Ingeniería del Software: UML a partir de clases Repetir ejercicio para estas dos clases public
básicos Ingeniería del Software: UML a partir de clases Repetir ejercicio para estas dos clases public
básicos Ingeniería del Software: UML a partir de clases Repetir ejercicio para estas dos clases public
básicos Ingeniería del Software: UML a partir de clases Repetir ejercicio para estas dos clases public

Repetir ejercicio para estas dos clases

public class EjecHilos2

{

public static main(Strings[] args)

{

Thread p1=new Thread(new HiloEjemplo2(1));

p1.start();

Thread p2=new Thread(new HiloEjemplo2(2));

p2.start();

Thread p3=new Thread(new HiloEjemplo2(3));

p3.start();

}//fin clase EjecHilos2

public class HiloEjemplo2 implements Runnable

{

int miIdent;

HiloEjemplo2(int ident)

{

this.miIdent=ident;

}

//Método de la interfaz

public void run()

{

int i;

for(i=0;i<11;i++)

System.out.println(”Hilo”+Ident+”:”+i);

}

}//fin clase HiloEjemplo2

Conceptos básicos Ingeniería del Software: Pensando en objetos

básicos Ingeniería del Software: Pensando en objetos Se pretende modelar mediante diagramas de clases UML el
básicos Ingeniería del Software: Pensando en objetos Se pretende modelar mediante diagramas de clases UML el
básicos Ingeniería del Software: Pensando en objetos Se pretende modelar mediante diagramas de clases UML el
básicos Ingeniería del Software: Pensando en objetos Se pretende modelar mediante diagramas de clases UML el

Se pretende modelar mediante diagramas de clases UML el siguiente juego de los dados: Un jugador pide lanzar dos dados. El sistema presenta el resultado:”Si la suma de los puntos de ambos dados es igual a 7 el jugador gana, en otro caso, pierde”

Concepto de dominio

a 7 el jugador gana, en otro caso, pierde” Concepto de dominio ¿Objetos posibles? ¿Responsabilidades de
a 7 el jugador gana, en otro caso, pierde” Concepto de dominio ¿Objetos posibles? ¿Responsabilidades de

¿Objetos posibles?

¿Responsabilidades de cada uno?