Sunteți pe pagina 1din 29

Tema 2.

El paradigma
Orientado a Objetos.

Departamento de Lenguajes y Ciencias de la Computacin


E.T.S. de Ingenieros en Informtica
Universidad de Mlaga
http://www.lcc.uma.es/~amg/ISE/Tema2.zip

Ingeniera del Software.


Especificacin

Programa

El

Tema 5. El Paradigma Orientado a Obj


etos.

Paradigma Orientado a Objetos

Historia e introduccin.
Conceptos bsicos.
Aplicacin de los conceptos en
lenguajes de programacin y
mtodos de anlisis.

Departamento de Lenguajes y Ciencias de la


Computacin.

Ingeniera del Software.


Especificacin

A
B
S
T
R
A
C
C
I

N
O
P
E
R
A
C
I
O
N
A
L

Tema 5. El Paradigma Orientado a Obj


etos.

Evolucin Histrica
Cd.Inst.Simb.
Macros
Subrutinas
Funciones
Anidamiento
Subprogramas

Lenguajes
Mquina /
Ensamblador

Id = Dir Mem.
Manip.Total de
Datos

FORTRAN

Id. Simb.
Tipos
Oper. restring.

PASCAL

Registros
Tipos definidos
Gest. Din. Mem

Encapsulam.
Octult. Inform.
Espec - Impl

MODULA-2
ADA

Mtodos
Mensajes

Lenguajes
Orientados a
Objetos

Departamento de Lenguajes y Ciencias de la


Computacin.

Tipo
Abstracto de
Datos

A
B
S
T
R
A
C
C
I

N
D
E
D
A
T
O
S

Objetos

Ingeniera del Software.


Especificacin

A
B
S
T
R
A
C
C
I

N
O
P
E
R
A
C
I
O
N
A
L

Tema 5. El Paradigma Orientado a Obj


etos.

Evolucin Histrica
Cd.Inst.Simb.
Macros
Subrutinas
Funciones
Anidamiento
Subprogramas
Encapsulam.
Octult. Inform.
Espec - Impl

Mtodos
Mensajes

Eventos
Invocacin remota

Lenguajes
Mquina /
Ensamblador
FORTRAN

PASCAL
MODULA-2
ADA
Lenguajes
Orientados a
Objetos

Id = Dir Mem.
Manip.Total de
Datos
Id. Simb.
Tipos
Oper. restring.
Registros
Tipos definidos
Gest. Din. Mem
Tipo
Abstracto de
Datos

A
B
S
T
R
A
C
C
I

N
D
E
D
A
T
O
S

Objetos

COMPONENTES

Departamento de Lenguajes y Ciencias de la


Computacin.

Componentes

Ingeniera del Software.


Especificacin

Introduccin

Razones

Tema 5. El Paradigma Orientado a Obj


etos.

para la crisis del software

Hacer un lpiz es difcil?


La industria del software se parece
ms a ...
la fabricacin de armas?
la fontanera?

Tecnologa

/ objetivo.

Departamento de Lenguajes y Ciencias de la


Computacin.

Ingeniera del Software.


Especificacin

Programa

El

Tema 5. El Paradigma Orientado a Obj


etos.

Paradigma Orientado a Objetos

Historia e introduccin.
Conceptos bsicos.
Aplicacin de los conceptos en
lenguajes de programacin y
mtodos de anlisis.

Departamento de Lenguajes y Ciencias de la


Computacin.

Ingeniera del Software.


Especificacin

Tema 5. El Paradigma Orientado a Obj


etos.

Qu es la Orientacin a Objetos?

El concepto surge en los lenguajes de


programacin
Se organiza el software como una coleccin de objetos
discretos que encapsulan
Estructuras de Datos y
Comportamiento.

Un sistema OO funciona mediante la colaboracin entre


los objetos que se comunican entre s.

El concepto se extiende a los mtodos de anlisis y


diseo
Se utilizan los objetos del mundo real como base para
construir modelos
Los elementos que forman los sistemas del mundo real se
corresponden con objetos software

Departamento de Lenguajes y Ciencias de la


Computacin.

Ingeniera del Software.


Especificacin

Tema 5. El Paradigma Orientado a Obj


etos.
Las clases y los objetos
estn en todas

partes

Vehculo
Platero:Animal
Animal

Punto
Figura

(1,3)
(2,2)

(5,2.5)

(2,1)
Departamento de Lenguajes y Ciencias de la
Computacin.

Ingeniera del Software.


Especificacin

Tema 5. El Paradigma Orientado a Obj


etos.

Conceptos bsicos: CLASES y OBJETOS


CLASE

Atributos
Operaciones
Comportamiento

OBJETO
Valores de los atributos
Estado
Identidad

Departamento de Lenguajes y Ciencias de la


Computacin.

Lavadora
marca
modelo
capacidad: integer
...
Programar
PonerRopa
CerrarPuerta
Lavar
ID:Lavadora
marca=Lapava
capacidad=5
estado=centrifugando

Ingeniera del Software.


Especificacin

Tema 5. El Paradigma Orientado a Obj


etos.
Conceptos bsicos:
PASO DE

MENSAJES

Invocacin

de mtodos
Medio de colaboracin
entre objetos

Conectar()
:MandoADistancia

Departamento de Lenguajes y Ciencias de la


Computacin.

Canal(4)

:Televisor

10

Ingeniera del Software.


Especificacin

Tema 5. El Paradigma Orientado a Obj


etos.

Conceptos bsicos: ENCAPSULACIN


Ocultacin

de detalles
Concepto de Interfaz
Independencia
l+
o
V

Sens
=>
VolUp
=>
Sens3
Vol++
Sens
=> =>
VolUp
=>
Sens3
=>
Vol++
=>
Settings.vol++
DAC31.out=2.1
=>=>
=>Settings.vol++
DAC31.out=2.1
=>
DAC23.out=0.7
Amp27.gain=1.3
=>=>
=>DAC23.out=0.7
Amp27.gain=1.3
=>
Amp02.gain=1.7
OSD,
=>=>
=>Amp02.gain=1.7
OSD, Pref,
Pref, ...
...
=>
OSD,
Pref,
...
=> OSD, Pref, ...
Departamento de Lenguajes y Ciencias de la
Computacin.

11

Ingeniera del Software.


Especificacin

Tema 5. El Paradigma Orientado a Obj


etos.

Conceptos bsicos: HERENCIA

Generalizacin / Especializacin
Los objetos heredan las caractersticas de la clase.
Las clases pueden heredar de otras clases.
Extensin.
Restriccin.
Modificacin.

Utilidad:
Abstraccin.
Reutilizacin.
Lavadora
Hormiga
capacidad

Departamento de Lenguajes y Ciencias de la


Computacin.

Electrodomstico
tensin
consumo
Conectar
Desconectar

Televisor
numCanales

Plancha
vapor

12

Ingeniera del Software.


Especificacin

Tema 5. El Paradigma Orientado a Obj


etos.

Conceptos bsicos: POLIMORFISMO

Ej: Operacin Abrir


Puerta
Abrir()

Cuenta
Abrir()

Puerto
Abrir()

Plazo
Abrir()

Permite al modelador hablar el lenguaje del cliente.


Evita asignar identificadores artificiosos para
distinguir las operaciones.
Contribuye a la reutilizacin de cdigo.
Ej: Operacin Enchufar
TomaDeCorriente
tensin
Enchufar(e:Electrodomstico)

Departamento de Lenguajes y Ciencias de la


Computacin.

13

Ingeniera del Software.


Especificacin

Tema 5. El Paradigma Orientado a Obj


etos.

Conceptos bsicos: ASOCIACION


Modela

la relacin entre objetos (necesaria


para que se comuniquen y colaboren)
Asociacin-Clase / Enlace-Objeto
Tipos bsicos:
Asociacin
Herencia
Agregacin / Composicin (agregacin fuerte)
Coche

Motor

Departamento de Lenguajes y Ciencias de la


Computacin.

rbol

Hoja

14

Ingeniera del Software.


Especificacin

Tema 5. El Paradigma Orientado a Obj


etos.

Hasta aqu deberamos tener claro ...


Cmo

surge el enfoque OO.


Cmo funciona un sistema OO.
El concepto y la representacin de:
Clase

y Objeto

Atributos
Operaciones
Comportamiento
Identidad

Interfaz
Departamento de Lenguajes y Ciencias de la
Computacin.

Asociacin

Agregacin
Herencia
Polimorfismo
Paso

de mensajes
Encapsulacin
15

Ingeniera del Software.


Especificacin

Programa

El

Tema 5. El Paradigma Orientado a Obj


etos.

Paradigma Orientado a Objetos

Historia e introduccin.
Conceptos bsicos.
Aplicacin de los conceptos en
lenguajes de programacin y
mtodos de anlisis.

Departamento de Lenguajes y Ciencias de la


Computacin.

16

Ingeniera del Software.


Especificacin

Tema 5. El Paradigma Orientado a Obj


etos.

Clases y Objetos
CLASE

= MODULO + TIPO

Criterio de Modularizacin
Estado + Comportamiento
Entidad esttica (en general)

OBJETO = Instancia de una CLASE


Objeto (Clase) Valor (Tipo)

Identidad
Entidad dinmica
Cada objeto tiene su propio estado
Objetos de una clase comparten su comportamiento

Departamento de Lenguajes y Ciencias de la


Computacin.

17

Ingeniera del Software.


Especificacin

Tema 5. El Paradigma Orientado a Obj


etos.

Mtodos y Mensajes
Mtodos:

definen el comportamiento de
una clase
Punto

Estado e identidad

x,y: float
trasladar(a,b)
distancia(pto)

Invocacin

Comportamiento

de mtodos: Paso de Mensajes

obj.mens(args)

trasladar(1,-1)

mens(obj,args)
P1:Punto
X=2
Y=2

Departamento de Lenguajes y Ciencias de la


Computacin.

18

Ingeniera del Software.


Especificacin

Clases
Estructuras

Tema 5. El Paradigma Orientado a Obj


etos.

que encapsulan datos y

funciones

Punto.hpp

CONSTRUCTOR

class Punto
VARIABLES DE ESTADO
{ public:
(DATOS MIEMBRO)
Punto();
float x,y;
void trasladar(float, float);
void cambiar_x(float a)
{x=a;};
void cambiar_y(float b)
{y=b;};
MTODOS
float distancia(Punto);
(FUNCIONES MIEMBRO)
};
Departamento de Lenguajes y Ciencias de la
19
Computacin.

Ingeniera del Software.


Especificacin

Tema 5. El Paradigma Orientado a Obj


etos.

Colaboracin entre objetos


Los

objetos (clases) colaboran para


resolver problemas.
La forma en que los objetos (clases)
colaboran puede ser muy variada:

Asociacin simple
Herencia
Agregacin
Composicin
...

Departamento de Lenguajes y Ciencias de la


Computacin.

20

Ingeniera del Software.


Especificacin

Tema 5. El Paradigma Orientado a Obj


etos.

Agregacin de objetos

class Segmento {
private Punto inicio,final;
public Segmento(Punto p)
{inicio = Punto();
final = p;}
public float longitud()
{return inicio.distancia(final);}
public void trasladar(float a,float b)
{inicio.trasladar(a,b);
final.trasladar(a,b);}
}
Departamento de Lenguajes y Ciencias de la
Computacin.

21

Ingeniera del Software.


Especificacin

Tema 5. El Paradigma Orientado a Obj


etos.

Composicin de objetos

public class Habitacion {


private int numHabitacion;
private int numCamas;
// declaracin de mtodos
...
}
public class Hotel1 {
Habitacion h1;
Habitacion h2;
// resto declaraciones
...
h1 = new Habitacion( 222 );
}
Departamento de Lenguajes y Ciencias de la
Computacin.

22

Ingeniera del Software.


Especificacin

Tema 5. El Paradigma Orientado a Obj


etos.

Construccin y Destruccin
Diferentes

mecanismos para la creacin y la


eliminacin de objetos, dependiendo del
lenguaje.
Construccin de objetos ( reservar memoria):
Constructores (C++, Eiffel, Java)
Mtodos de clase (Smalltalk)
Eliminacin

de objetos ( liberar memoria):

Destructores (C++)
Recoleccin automtica de memoria garbage
collection- (Smalltalk, Eiffel, Java)
Departamento de Lenguajes y Ciencias de la
Computacin.

Detalles

23

Ingeniera del Software.


Especificacin

Herencia

Tema 5. El Paradigma Orientado a Obj


etos.

Posibilidad

de reutilizar cdigo
Algo ms que incluir ficheros o importar
mdulos
Figura
Distintos tipos de herencia:
simple / mltiple
de implementacin/de interfaz

Limitaciones

Polgono

Elipse

Problemas
Regular

Irregular

Crculo

Detalles
Departamento de Lenguajes y Ciencias de la
Computacin.

27

Ingeniera del Software.


Especificacin

Herencia

Tema 5. El Paradigma Orientado a Obj


etos.

Extensin

y Reutilizacin de cdigo
Una clase derivada hereda el
comportamiento de su clase padre
Redefinicin de mtodos
Clases abstractas
Herencia mltiple / Herencia repetida

Departamento de Lenguajes y Ciencias de la


Computacin.

29

Ingeniera del Software.


Especificacin

Polimorfismo

Tema 5. El Paradigma Orientado a Obj


etos.

puntero a objeto en C++


Una

variable puede referirse a objetos de


una clase distinta de la que se ha declarado
Tipo Dinmico vs. Tipo Esttico
Polimorfismo de objetos / de mensajes
Restriccin en base a la herencia

Departamento de Lenguajes y Ciencias de la


Computacin.

30

Ingeniera del Software.


Especificacin

Encapsulacin

Tema 5. El Paradigma Orientado a Obj


etos.

Las

clases ocultan los detalles de realizacin


de los mtodos.
Los usuarios (los objetos que invocan
esos mtodos) conocen el interfaz y la
semntica. No tienen que preocuparse de los
detalles.
El concepto de interfaz puede ampliarse.
Contribuye a la reusabilidad del cdigo.

Departamento de Lenguajes y Ciencias de la


Computacin.

31

Ingeniera del Software.


Especificacin

Tema 5. El Paradigma Orientado a Obj


Al fin del tema 2etos.
debemos tener

claro ...
Cmo

surge y evoluciona el concepto OO.


Cules son los elementos y caractersticas
bsicas de este enfoque.
Cmo se plasma el enfoque OO en los
lenguajes de programacin.
Las particularidades que se introducen
sobre los conceptos bsicos al aplicarlos
en sistemas reales

Departamento de Lenguajes y Ciencias de la


Computacin.

32

Ingeniera del Software.


Especificacin

Tema 5. El Paradigma Orientado a Obj


etos.

A continuacin ...

El Lenguaje de Modelado Unificado.


Introduciremos UML, y
veremos cmo realizar
Modelado estructural
Modelado del comportamiento
Modelado arquitectnico

Preparacin:
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.

Departamento de Lenguajes y Ciencias de la


Computacin.

33

S-ar putea să vă placă și