Tema 2' El paradigma Orientado a Objetos' - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

Tema 2' El paradigma Orientado a Objetos'

Description:

Aplicaci n de los conceptos en lenguajes de programaci n y m todos de ... La industria del software se parece m s a ... la fabricaci n de armas? la fontaner a? ... – PowerPoint PPT presentation

Number of Views:348
Avg rating:3.0/5.0
Slides: 30
Provided by: anton58
Category:

less

Transcript and Presenter's Notes

Title: Tema 2' El paradigma Orientado a Objetos'


1
Tema 2. El paradigma Orientado a Objetos.
  • Departamento de Lenguajes y Ciencias de la
    Computación
  • E.T.S. de Ingenieros en Informática
  • Universidad de Málaga
  • http//www.lcc.uma.es/amg/ISE/Tema2.zip

2
Programa
  • El Paradigma Orientado a Objetos
  • Historia e introducción.
  • Conceptos básicos.
  • Aplicación de los conceptos en lenguajes de
    programación y métodos de análisis.

3
Evolución Histórica
4
Evolución Histórica
COMPONENTES
5
Introducción
  • Razones para la crisis del software
  • Hacer un lápiz es difícil?
  • La industria del software se parece más a ...
  • la fabricación de armas?
  • la fontanería?
  • Tecnología / objetivo.

6
Programa
  • El Paradigma Orientado a Objetos
  • Historia e introducción.
  • Conceptos básicos.
  • Aplicación de los conceptos en lenguajes de
    programación y métodos de análisis.

7
Qué es la Orientación a Objetos?
  • El concepto surge en los lenguajes de
    programación
  • Se organiza el software como una colección de
    objetos discretos que encapsulan
  • Estructuras de Datos y
  • Comportamiento.
  • Un sistema OO funciona mediante la colaboración
    entre los objetos que se comunican entre sí.
  • El concepto se extiende a los métodos de análisis
    y diseño
  • 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

8
Las clases y los objetos están en todas partes
9
Conceptos básicos CLASES y OBJETOS
  • CLASE
  • Atributos
  • Operaciones
  • Comportamiento

10
Conceptos básicos PASO DE MENSAJES
  • Invocación de métodos
  • Medio de colaboración entre objetos

11
Conceptos básicos ENCAPSULACIÓN
  • Ocultación de detalles
  • Concepto de Interfaz
  • Independencia

Vol
12
Conceptos básicos HERENCIA
  • Generalización / Especialización
  • Los objetos heredan las características de la
    clase.
  • Las clases pueden heredar de otras clases.
  • Extensión.
  • Restricción.
  • Modificación.
  • Utilidad
  • Abstracción.
  • Reutilización.

13
Conceptos básicos POLIMORFISMO
  • Ej Operación Abrir
  • Permite al modelador hablar el lenguaje del
    cliente.
  • Evita asignar identificadores artificiosos para
    distinguir las operaciones.
  • Contribuye a la reutilización de código.
  • Ej Operación Enchufar

14
Conceptos básicos ASOCIACION
  • Modela la relación entre objetos (necesaria para
    que se comuniquen y colaboren)
  • Asociación-Clase / Enlace-Objeto
  • Tipos básicos
  • Asociación
  • Herencia
  • Agregación / Composición (agregación fuerte)

15
Hasta aquí deberíamos tener claro ...
  • Cómo surge el enfoque OO.
  • Cómo funciona un sistema OO.
  • El concepto y la representación de

16
Programa
  • El Paradigma Orientado a Objetos
  • Historia e introducción.
  • Conceptos básicos.
  • Aplicación de los conceptos en lenguajes de
    programación y métodos de análisis.

17
Clases y Objetos
  • CLASE MODULO TIPO
  • Criterio de Modularización
  • Estado Comportamiento
  • Entidad estática (en general)
  • OBJETO Instancia de una CLASE
  • Objeto (Clase) ? Valor (Tipo)
  • Identidad
  • Entidad dinámica
  • Cada objeto tiene su propio estado
  • Objetos de una clase comparten su comportamiento

18
Métodos y Mensajes
  • Métodos definen el comportamiento de una clase
  • Invocación de métodos Paso de Mensajes
  • obj.mens(args) mens(obj,args)

19
Clases
  • Estructuras que encapsulan datos y funciones

class Punto public Punto() float x,y void
trasladar(float, float) void cambiar_x(float
a)xa void cambiar_y(float b)yb float
distancia(Punto)
20
Colaboración entre objetos
  • Los objetos (clases) colaboran para resolver
    problemas.
  • La forma en que los objetos (clases) colaboran
    puede ser muy variada
  • Asociación simple
  • Herencia
  • Agregación
  • Composición
  • ...

21
Agregación 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)
22
Composición de objetos
public class Habitacion private int
numHabitacion private int numCamas //
declaración de métodos ... public class
Hotel1 Habitacion h1 Habitacion h2 //
resto declaraciones ... h1 new Habitacion(
222 )
23
Construcción y Destrucción
  • Diferentes mecanismos para la creación y la
    eliminación de objetos, dependiendo del lenguaje.
  • Construcción de objetos (?reservar memoria)
  • Constructores (C, Eiffel, Java)
  • Métodos de clase (Smalltalk)
  • Eliminación de objetos (?liberar memoria)
  • Destructores (C)
  • Recolección automática de memoria garbage
    collection- (Smalltalk, Eiffel, Java)

Detalles
24
Construcción y Destrucción
  • //C
  • class Jugador
  • int salud
  • int fuerza
  • Jugador() // constructor - no tiene
    tipo
  • Jugador(int s, int f)// constructor
    alternativo
  • void mover()
  • void atacar()
  • JugadorJugador()
  • salud 0
  • fuerza 0

25
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)

26
Construcción y Destrucción
  • Smalltalk
  • Vehiculo subclass Coche
  • // extensión, restricción, modificación
  • ...
  • MiCoche Coche new ABC-1234

27
Herencia
  • Posibilidad de reutilizar código
  • Algo más que incluir ficheros o importar módulos
  • Distintos tipos de herencia
  • simple / múltiple
  • de implementación/de interfaz
  • Limitaciones
  • Problemas

Detalles
28
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

29
Herencia
  • Extensión y Reutilización de código
  • Una clase derivada hereda el comportamiento de su
    clase padre
  • Redefinición de métodos
  • Clases abstractas
  • Herencia múltiple / Herencia repetida

30
Polimorfismo
  • Una variable puede referirse a objetos de una
    clase distinta de la que se ha declarado
  • Tipo Dinámico vs. Tipo Estático
  • Polimorfismo de objetos / de mensajes
  • Restricción en base a la herencia

31
Encapsulación
  • Las clases ocultan los detalles de realización de
    los métodos.
  • Los usuarios (los objetos que invocan esos
    métodos) conocen el interfaz y la semántica. No
    tienen que preocuparse de los detalles.
  • El concepto de interfaz puede ampliarse.
  • Contribuye a la reusabilidad del código.

32
Al fin del tema 2 debemos tener claro ...
  • Cómo surge y evoluciona el concepto OO.
  • Cuáles son los elementos y características
    básicas de este enfoque.
  • Cómo se plasma el enfoque OO en los lenguajes de
    programación.
  • Las particularidades que se introducen sobre los
    conceptos básicos al aplicarlos en sistemas reales

33
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.
Write a Comment
User Comments (0)
About PowerShow.com