Sei sulla pagina 1di 8

Taller práctico temas 1 y 2

e Introducción POO

Aplicaciones Telemáticas

Abel Rionda Rodríguez

ÍNDICE

 Conceptos básicos EAI


 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

 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

 Mensajería instantánea
 Arquitectura híbrida entre cliente/servidor y 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). Un
primer paso de Cliente/Servidor.

Conceptos básicos EAI: Niveles de


abstracción

 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

 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

 Conceptos básicos EAI


 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 Ingeniería del
Software: Programación Orientada a
Objetos (POO)

 Los objetos representan conceptos del dominio del real o del


problema.

Concepto de dominio Visualización del concepto


(UML)

Representación en un
lenguaje OO como Java

Una habilidad fundamental en la


POO es asignar responsabilidades a
los Objetos

Conceptos básicos Ingeniería del


Software: Programación Orientada a
Objetos (POO) vs. Procedimental

 Procedimental
 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

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


POO.
CLASE

Nombre clase
cd Logical Model

Atributos Figura

Operaciones
- titulo: String

+ pinta() : void

HERENCIA
Circulo Cuadrado
- centroX: int - puntoX: int
- centroY: int - puntoY: int
- radio: int - alto: int
- ancho: i nt
+ pinta() : void
+ pinta() : void

Conceptos básicos Ingeniería del


Software: Algunos artefactos UML

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


POO. cd Logical Model

cd Logical Model Pintable

Hospital 1 * Medico + pinta() : void

COMPOSICIÓN Circulo Cuadrado

+ pinta() : void + pinta() : void

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

 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

Conceptos básicos Ingeniería del


Software: UML a partir de clases

 Repetir ejercicio para estas dos clases

public class HiloEjemplo2 implements


public class EjecHilos2 Runnable
{ {
public static main(Strings[] args) int miIdent;
{ HiloEjemplo2(int ident)
Thread p1=new Thread(new HiloEjemplo2(1)); {
p1.start(); this.miIdent=ident;
}
//Método de la interfaz
Thread p2=new Thread(new HiloEjemplo2(2)); public void run()
p2.start(); {
int i;
Thread p3=new Thread(new HiloEjemplo2(3)); for(i=0;i<11;i++)
System.out.println(”Hilo”+Ident+”:”+i);
p3.start();
}
}//fin clase EjecHilos2
}//fin clase HiloEjemplo2
Conceptos básicos Ingeniería del
Software: Pensando en objetos

 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

¿Objetos posibles?

¿Responsabilidades
de cada uno?

Potrebbero piacerti anche