Introducccin a la POO - PowerPoint PPT Presentation

1 / 37
About This Presentation
Title:

Introducccin a la POO

Description:

... para encapsular y aislar la informaci n del dise o y ... Expl cita (mont n) o autom tica (pila) (C ) 23. Encapsulamiento. Miembros privados y p blicos ... – PowerPoint PPT presentation

Number of Views:619
Avg rating:3.0/5.0
Slides: 38
Provided by: arantx
Category:
Tags: poo | introducccin | la | pila

less

Transcript and Presenter's Notes

Title: Introducccin a la POO


1
Introducccióna la POO
2
Introducción
  • Fases del ciclo de vida del software
  • 1) Análisis, 6
  • 2) Diseño, 5
  • 3) Implementación, 7
  • 4) Depuración, 15
  • 5) Mantenimiento, 67

3
Factores calidad del software
  • Eficiencia
  • Portabilidad
  • Verificabilidad
  • Integridad (protección contra procesos sin
    derecho de acceso)
  • Facilidad de uso
  • Corrección
  • Robustez (situaciones anómalas)
  • Extensibilidad
  • Reutilización
  • Compatibilidad, ...

4
Abstracción en programación
  • Capacidad para encapsular y aislar la información
    del diseño y ejecución.
  • Mecanismos en programación
  • Procedimientos y funciones
  • Tipos de datos abstractos (TDA)
  • Objetos son TDA a los que se añaden mecanismos
    como herencia, métodos, etc.

5
Otros paradigmas de programación
  • Programación estructurada o funcional
  • C, Pascal, Lisp,
  • Desde principios de los 70
  • Dificultad de trabajo en grupo
  • No hay correspondencia estrecha entre datos
    reales y programas.

6
POO
  • Ventajas de uso
  • Reusabilidad (mecanismos de abstracción y
    herencia)
  • En programación convencional uso de funciones y
    procedimientos
  • Adecuación a entornos de bases de datos.
  • Idónea para tratamiento de Interfaces de Usuario.
  • Adecuada en prototipos y simulación.

7
Características de POO, I
  • Generales
  • Construcción de sistemas complejos a partir de
    componentes.
  • Modelización más fiel al mundo real.
  • Estimación de reducción de 40 con respecto a la
    programación convencional.

8
Características de POO, I
  • El modelo objeto (Booch, 1994)
  • Abstracción
  • Las características esenciales del objeto
  • Documento insertar, borrar, ...
  • Encapsulamiento (ocultación de información)
  • Una clase contiene
  • una interfaz pública
  • una implementación
  • Documento
  • posicionPrevia

9
Características de POO, II
  • Modularidad
  • Subdivisión de una aplicación en otras más
    pequeñas (módulos).
  • Un módulo es un conjunto de clases
  • Editor, Fuente, Documento,

10
Características de POO, III
  • Jerarquía
  • Ordenación de las abstracciones
  • Tipos
  • Herencia (es-un) generalización/especialización
  • Herencia simple o múltiple
  • Mensaje es-un Documento
  • Agregación (parte-de)
  • Mensaje Destinatarios, Asunto, Contenido

11
Características de POO, IV
  • Polimorfismo
  • Una misma operación (método) realizada de
    diferente modo
  • Documento Añadir texto, imagen,
  • Mensaje Añadir destinatario,
  • Otras propiedades
  • concurrencia (multitarea)
  • Persistencia (guardar)
  • uso de excepciones (errores)

12
Importancia de las palabras
  • Nombres
  • Objetos
  • Propiedades de objetos
  • Adjetivos
  • Valores de las propiedades
  • Verbos
  • Comportamiento de los objetos
  • El coche tiene color rojo y se mueve
  • El documento tiene letra grande y se muestra

13
Lenguajes de POO
  • Cronología resumida
  • Fortran (1958)
  • LISP (1959)
  • BASIC (1964)
  • Pascal (1969)
  • Prolog (1971)
  • C (1986)
  • Object Pascal (1988)
  • CLOS (1989)
  • Java (1995)

14
Lenguajes de POO, II
  • The journal of object-oriented programming (1988)
  • Primeros lenguajes POO
  • Simula-67
  • Objeto (datosmétodos). Clase. Herencia.
  • Smalltalk-80
  • Verdadero primer lenguaje de POO
  • Concepto de paso de mensajes (activación de
    métodos)

15
Clasificaciones
  • Orientación
  • puros (Smalltalk)
  • híbridos (C)
  • Tipificación
  • estática (en tiempo de compilación), Object
    Pascal
  • dinámica (en tiempo de ejecución), C
  • Ligadura
  • estática (C)
  • dinámica (Java, C)

16
Paradigmas de POO
  • Clase-Elemento
  • Ninguna clase es objeto
  • C
  • Toda clase es un objeto
  • Smalltalk, Java
  • Prototipo-Elemento
  • Todo objeto puede ser prototipo de otros
  • Amulet

17
Otros aspectos de la POO
  • Beneficios
  • Mejor mantenimiento
  • Estructuras más reales de la información
  • Escalabilidad
  • Adaptabilidad

18
Otros aspectos de la POO, II
  • Inconvenientes
  • Necesidades de estandarización (OMG, Object
    Management Group)
  • Coste de conversión de software legado

19
Conceptos de POO, I
  • Conceptos principales
  • Clase
  • Objeto (una instancia de una clase)
  • Jerarquía de herencia entre clases

20
Conceptos de POO, II
  • Objetos
  • objetodatosmétodos
  • miembros de un objeto (o clase)
  • datos
  • métodos
  • identificador del objeto
  • nombre de variable

21
Conceptos de POO, III
  • Ejemplo
  • Clase Robot
  • Datos x (entero), y (entero)
  • Métodos
  • void avanzar (entero, entero)
  • entero posicionX ()
  • entero posicionY ()
  • Métodos
  • void avanzar (entero)
  • Constructores
  • Robot (entero, entero)
  • Robot (entero)
  • Instanciación
  • objeto robot1 (Robot)
  • robot1 Robot(1,2)

22
Creación y destrucción de objetos
  • Equivalencia de conceptos con programación
    clásica
  • Tipo ?? Clase
  • Dato ?? Objeto
  • Variable existe en ambos tipos de programación
  • Creación (uso de constructor)
  • Ejemplo
  • robot1 Robot(1,2) robot2 Robot(3)
  • Destrucción
  • Automática (Java, Garbage collection)
  • Explícita (montón) o automática (pila) (C)

23
Encapsulamiento
  • Miembros privados y públicos
  • Interfaz pública de una clase
  • Miembros públicos (datos y métodos)
  • Se pueden invocar desde fuera de la clase

24
Encapsulamiento, II
  • Ejemplo
  • clase Robot
  • Datos
  • privado x (entero)
  • privado y (entero)
  • Constructores
  • público Robot (entero, entero)
  • público Robot (entero)

25
Encapsulamiento, III
  • clase Robot (continuación)
  • Métodos
  • público void avanzar (entero, entero)
  • público entero getX ()
  • público entero getY ()
  • público void avanzar (entero)

26
Representación
clase Robot
Datos
x
y
Métodos
Robot (entero, entero)
Robot (entero)
void avanzar (entero, entero)
void avanzar (entero)
entero getY ()
entero getX ()
27
Ejecución de métodos
  • Un método es un algoritmo que se puede ejecutar a
    partir de un objeto.
  • Se dice que un método se ejecuta cuando el objeto
    recibe un mensaje de ejecución del método.
  • Puede acceder a todos los miembros de la clase y
    a sus argumentos, que son otros objetos.
  • Ejemplo
  • Objeto robot1 (Robot)
  • robot1Robot(3,2)
  • robot1.avanzar(1,2)

28
Herencia
  • Representa el concepto de ser un tipo especial
    de o ser un/a
  • Se establece mediante la definición de subclases,
    que dan lugar a una jerarquía de clases
  • Ejemplo RobotConFrontera como subclase de Robot
    hereda sus miembros (x, y) y métodos (avanzar,
    getX, getY)

29
Herencia, II
  • Ejemplo
  • Clase RobotConFrontera
  • Clase padre Robot
  • Datos
  • privado limX (entero)
  • privado limY (entero)

30
Herencia, III
  • Clase RobotConFrontera
  • Métodos
  • void avanzar (entero, entero)
  • void avanzar (entero)
  • Constructores
  • RobotConFrontera (entero, entero,
  • entero,
    entero)
  • RobotConFrontera (entero, entero, entero)

31
Herencia, II
  • La definición en RobotConFrontera de
  • void avanzar (entero, entero)
  • void avanzar (entero)
  • es un overriding (especialización,
    redefinición, etc) de los métodos ya definidos en
    la clase Robot

32
Herencia, III
  • Herencia simple
  • Figura, Círculo, Rectángulo, Cuadrado, Triángulo
  • Herencia múltiple
  • Persona, Profesor, Investigador,
    ProfesorUniversitario
  • Problemas de ambigüedad

33
Herencia, IV
  • Clase abstracta
  • No admite una instancia directa. Ejemplo clase
    Figura. Sería inválido
  • objeto f (Figura)
  • fFigura(....)
  • aunque sí sería válido
  • objeto f (Figura)
  • fCuadrado(3)

34
Herencia, V
  • Sobrecarga (overloading) de un método
  • En una clase, el mismo nombre de método definido
    de modos distintos
  • Ejemplo el método avanzar está sobrecargado en
    la clase Robot

35
Herencia, IV
  • Overloading y Overriding son casos de
    polimorfismo
  • El mismo método definido de modos distintos
  • Ligadura dinámica
  • objeto r (Robot)
  • rRobotConFrontera(2,3,0,0)
  • Al ejecutar r.avanzar(3), qué definición se
    aplica?
  • la de Robot (ligadura estática)
  • la de RobotConFrontera (ligad. dinámica)

36
Framework
  • Conjunto de clases que se coordinan para realizar
    una función
  • Para construir una aplicación hay que
    subclasificarlas
  • El main usualmente incluido en el Framework
  • Diagramas de clases
  • Necesidad de un estándar de representación gráfica

37
UML
  • Unified Modeling Language
  • Diagramas (condensación gráfica de estructuras de
    clases y relaciones entre objetos y clases)
Write a Comment
User Comments (0)
About PowerShow.com