Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
El paradigma
Orientado a Objetos.
Programa
A Evolución Histórica A
B B
S S
T Lenguajes Id = Dir Mem. T
R Cód.Inst.Simb.
A Máquina / Manip.Total de R
Macros A
C Ensamblador Datos
C C
I Id. Simb. C
Ó Subrutinas FORTRAN I
N Tipos
Funciones Ó
O
Oper. restring. N
P
Registros D
E Anidamiento PASCAL
R Tipos definidos E
A Subprogramas
C Gest. Din. Mem
D
I
O Encapsulam. Tipo A
N MODULA-2 T
Octult. Inform. Abstracto de O
A ADA
L Espec - Impl Datos S
A Evolución Histórica A
B
S B
T S
R
Cód.Inst.Simb.
Lenguajes Id = Dir Mem. T
A Manip.Total de R
C Macros Máquina / A
C Ensamblador Datos
C
I C
Ó Id. Simb.
Subrutinas I
N
Funciones
FORTRAN Tipos Ó
O
Oper. restring. N
P
E Registros D
Anidamiento
R
Subprogramas
PASCAL Tipos definidos E
A Gest. Din. Mem
C D
I A
O Encapsulam. Tipo
MODULA-2 T
N Octult. Inform. Abstracto de O
A Espec - Impl ADA Datos S
L
Métodos Lenguajes
Mensajes Orientados a Objetos
Objetos
COMPONENTES
Eventos
Componentes
Invocación remota
Introducción
Programa
Vehículo
Platero:Animal
Animal
Punto
Figura (1,3)
(5,2.5)
(2,2)
(2,1)
Departamento de Lenguajes y Ciencias de la
Computación. 8
Ingeniería del Software.
Tema 5. El Paradigma Orientado a Objetos.
Especificación
Conectar()
:MandoADistancia :Televisor
Canal(4)
Ocultaciónde detalles
Concepto de Interfaz
Independencia
l+
Vo
Generalización / Especialización
Los objetos “heredan” las características de la clase.
Las clases pueden heredar de otras clases.
– Extensión.
– Restricción.
Electrodoméstico
– Modificación. tensión
consumo
Utilidad: Conectar
– Abstracción. Desconectar
– Reutilización.
Lavadora
Hormiga Televisor Plancha
capacidad numCanales vapor
Programa
Clases y Objetos
Métodos y Mensajes
Clases
float x,y;
void trasladar(float, float);
void cambiar_x(float
a){x=a;};
void cambiar_y(float
b){y=b;};
float distancia(Punto); MÉTODOS
}; (FUNCIONES MIEMBRO)
Departamento de Lenguajes y Ciencias de la
Computación. 19
Ingeniería del Software.
Tema 5. El Paradigma Orientado a Objetos.
Especificación
Agregación de objetos
class Segmento {
private Punto inicio,final;
public Segmento(Punto p)
{inicio = Punto();
final = p;}
Composición de objetos
Construcción y Destrucción
Construcción y Destrucción
//C++
class Jugador {
int salud;
int fuerza;
Jugador::~Jugador() {
salud = 0;
fuerza = 0;
}
Departamento de Lenguajes y Ciencias de la
Computación. 24
Ingeniería del Software.
Tema 5. El Paradigma Orientado a Objetos.
Especificación
Construcción y Destrucción
JAVA
class Circulo extends Elipse {
// extensión, restricción, modificación;
public Circulo () {
... };
public Circulo (int radio) {
... };
}
...
Circulo c1;
...
c1 = new Circulo(4);
Departamento de Lenguajes y Ciencias de la
Computación. 25
Ingeniería del Software.
Tema 5. El Paradigma Orientado a Objetos.
Especificación
Construcción y Destrucción
Smalltalk
Vehiculo subclass: #Coche
// extensión, restricción, modificación;
...
MiCoche := Coche new: ’ABC-1234’
Herencia
Posibilidad de reutilizar código
Algo más que incluir ficheros o importar
módulos
Figura
Distintos tipos de herencia:
– simple / múltiple
– de implementación/de interfaz
Limitaciones
Polígono Elipse
Problemas
Herencia
JAVA
class Elipse extends Figura {
// extensión, restricción, modificación
}
C++
class Elipse : public Figura {
// extensión, restricción, modificación
}
Smalltalk
Figura subclass: #Elipse
”extensión, restricción, modificación”
Python
class Elipse (Figura)
”extensión, restricción, modificación”
Herencia
Polimorfismo
Encapsulación
A continuación ...
El Lenguaje de Modelado Unificado.
– Introduciremos UML, y
– veremos cómo realizar
• Modelado estructural
• Modelado del comportamiento
• Modelado arquitectónico
Preparación:
– Tema 3. El Lenguaje de Modelado Unificado.
http://polaris.lcc.uma.es/~amg/ISE/Tema3.zip
– Caps. 1,3,4,5. Schmuller. Teach yourself UML in 24 hours.
– Cap, 1. “Los 3 amigos”, The Unified Modeling Language.
– Probar/Jugar con Rational Rose y MagicDraw UML.