Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 1 2
Tema 1 2
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
Programa
El
Historia e introduccin. Conceptos bsicos. Aplicacin de los conceptos en lenguajes de programacin y mtodos de anlisis.
A B S T R A C C I N O P E R A C I O N A L
Evolucin Histrica
Cd.Inst.Simb. Macros Subrutinas Funciones Anidamiento Subprogramas Encapsulam. Octult. Inform. Espec - Impl Mtodos Mensajes Lenguajes Mquina / Ensamblador FORTRAN Id = Dir Mem. Manip.Total de Datos Id. Simb. Tipos Oper. restring. Registros Tipos definidos Gest. Din. Mem Tipo Abstracto de Datos Objetos
A B S T R A C C I N D E D A T O S
PASCAL
A B S T R A C C I N O P E R A C I O N A L
Evolucin Histrica
Cd.Inst.Simb. Macros Subrutinas Funciones Anidamiento Subprogramas Encapsulam. Octult. Inform. Espec - Impl
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
Mtodos Mensajes
Objetos
COMPONENTES
Componentes
Introduccin
Razones
Tecnologa
/ objetivo.
5
Programa
El
Historia e introduccin. Conceptos bsicos. Aplicacin de los conceptos en lenguajes de programacin y mtodos de anlisis.
Qu es la Orientacin a Objetos?
Un sistema OO funciona mediante la colaboracin entre los objetos que se comunican entre s.
(5,2.5)
CLASE
Atributos Operaciones Comportamiento
Lavadora marca modelo capacidad: integer ... Programar PonerRopa CerrarPuerta Lavar ID:Lavadora marca=Lapava capacidad=5 estado=centrifugando
9
OBJETO
Valores de los atributos Estado Identidad
10
Sens => => Vol++ Sens3 VolUp => =>=> DAC31.out=2.1 Settings.vol++ =>=> Amp27.gain=1.3 DAC23.out=0.7 =>=> OSD, Pref, ... Amp02.gain=1.7 => OSD, Pref, ...
Departamento de Lenguajes y Ciencias de la Computacin. Universidad de Mlaga 11
Utilidad:
Abstraccin. Reutilizacin.
Lavadora Hormiga capacidad
Televisor numCanales
Plancha vapor
12
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)
13
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 rbol Hoja
14
Cmo surge el enfoque OO. Cmo funciona un sistema OO. El concepto y la representacin de:
Clase y Objeto
Atributos Operaciones Comportamiento Identidad
Asociacin
Agregacin Herencia
Interfaz
Programa
El
Historia e introduccin. Conceptos bsicos. Aplicacin de los conceptos en lenguajes de programacin y mtodos de anlisis.
16
Clases y Objetos
Mtodos y Mensajes
trasladar(1,-1)
mens(obj,args)
18
Clases
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;}; float distancia(Punto); };
MTODOS (FUNCIONES MIEMBRO)
Departamento de Lenguajes y Ciencias de la Computacin. Universidad de Mlaga 19
Punto.hpp
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 ...
20
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. Universidad de Mlaga 21
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. Universidad de Mlaga 22
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)
Detalles
23
Construccin y Destruccin
//C++ class Jugador { int salud; int fuerza; // constructor - no tiene tipo Jugador(); Jugador(int s, int f);// constructor alternativo void mover(); void atacar(); }; Jugador::~Jugador() { salud = 0; fuerza = 0; }
Departamento de Lenguajes y Ciencias de la Computacin. Universidad de Mlaga 24
Construccin y Destruccin
JAVA class Circulo extends Elipse { // extensin, restriccin, modificacin; public Circulo () { ... }; public Circulo (int radio) { ... }; } ... Circulo c1; ... c1 = new Circulo(4);
Departamento de Lenguajes y Ciencias de la Computacin. Universidad de Mlaga 25
Construccin y Destruccin
Smalltalk Vehiculo subclass: #Coche // extensin, restriccin, modificacin; ... MiCoche := Coche new: ABC-1234
26
Herencia
Posibilidad de reutilizar cdigo Algo ms que incluir ficheros o importar mdulos Figura Distintos tipos de herencia:
simple / mltiple de implementacin/de interfaz
Limitaciones Problemas
Regular
Polgono
Elipse
Irregular
Crculo
Detalles
Departamento de Lenguajes y Ciencias de la Computacin. Universidad de Mlaga 27
Herencia
JAVA class Elipse extends Figura { // extensin, restriccin, modificacin } C++ class Elipse : public Figura { // extensin, restriccin, modificacin } Smalltalk Figura subclass: #Elipse extensin, restriccin, modificacin Python class Elipse (Figura) extensin, restriccin, modificacin
Departamento de Lenguajes y Ciencias de la Computacin. Universidad de Mlaga 28
Herencia
Extensin y Reutilizacin de cdigo Una clase derivada hereda el comportamiento de su clase padre Redefinicin de mtodos Clases abstractas Herencia mltiple / Herencia repetida
29
Polimorfismo
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
30
Encapsulacin
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.
31
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
32
A continuacin ...
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.
33