Sie sind auf Seite 1von 39

M 





  




m   
    m   m    m    
 
   


 
   

‡ Programación orientada a procedimientos:
o Los programas son estructurados con base a sus
funciones
‡ Programación orientada a objetos:
o Los programas son implementados y organizados
como una colección cooperativa de entidades,
cada una representando algún elemento (entidad)
en el mundo real
o La programación orientada a objetos persigue
simular o representar las entidades del mundo real
y su uso en forma natural en la resolución de un
problema de computación

m   
    m   m    m    
  

 

‡ El paradigma de la programación orientada a objetos


usualmente tiene las siguientes características:
o Simula actividades del mundo real
o Tiene tipos de datos definidos por los usuarios
o Esconde los detalles de la implementación
o Re-usa códigos a través de la herencia
o Permite el mismo nombre para diferentes
funcionalidades

m   
    m   m    m    
  

 

‡ Pilares de la Programación Orientada a Objetos:


o Abstracción
o Encapsulamiento
o Modularidad
o Herencia

m   
    m   m    m    

    


  

‡ Las entidades del mundo real tienen un sin número de
características y funciones asociadas de las cuales no
todas son de relevancia para la solución de un
problema
‡ La abstracción es la técnica que permite reconocer los
elementos esenciales para la solución de un problema
dejando de lado los detalles irrelevantes
‡ La abstracción consiste en crear un modelo
simplificado de una entidad del mundo real

m   
    m   m    m    

    


 

‡ 6  ± El método adoptado en
la presentación de una entidad en
el mundo real - Externa

‡ 6 
 ± El
procedimiento adoptado para
facilitar a una entidad la ejecución
de sus funciones - interna

m   
    m   m    m    

    


  

‡ El encapsulamiento es el concepto que ayuda a
mantener juntos los datos y las funciones
(procedimientos) que operan sobre éstos
‡ Las funciones y procedimientos que pertenecen a una
entidad cualquiera se conocen como ° 
  o 
 
‡ El encapsulamiento complementa el concepto de
abstracción, mediante el ocultamiento de información

m   
    m   m    m    

    


 
  




 6 

  

   
         

‡ En el paradigma procedural, los datos y las


operaciones permanecen separados

m   
    m   m    m    

    


 







 6 

  

   
         

‡ En el paradigma de la orientación a objetos, tanto los


datos como las operaciones que actúan sobre ellos
están envueltos en una cápsula

m   
    m   m    m    

   


 

‡ La Modularidad involucra la división de un sistema
completo de software en partes más pequeñas y
manejables denominadas módulos
‡ Encapsulación y Modularidad se complementan
‡ El encapsulamiento esconde los detalles de la
implementación y la Modularidad permite el
agrupamiento lógico de entidades relacionadas
‡ La Encapsulación y la Modularidad aseguran que
una µinterfaz limpia¶ esté disponible para los usuarios
de la entidad

m   
    m   m    m    

   
   !"

  !"
‡ La jerarquía se refiere a la clasificación u
ordenamiento de abstracciones
‡ Las abstracciones que conforman un sistema
completo están basadas en un orden particular
‡ Las estructuras ³ ´ y ³
 ´, están
asociadas con la jerarquía
‡ La herencia pertenece a la jerarquía ³ ´
mientras que la Agregación pertenece a la
jerarquía ³
 ´

m   
    m   m    m    

   


 

‡ La herencia implica que una entidad B comparte la
estructura y conducta de una entidad A
‡ En este contexto, la entidad A es llamada la
³superclase´ (o la clase  ), y la entidad B es
llamada la ³subclase´ (o la clase   )
 M 

 

 


Herencia entre las entidades M  y 



m   
    m   m    m    

   


 

‡ Las subclases pueden especializar algunas
características heredando las características de la
entidad original y re-definiendo dichas
características.
‡ La herencia se refiere así a una relación
generalización-especialización entre entidades

m   
    m   m    m    
 
   !"

  !" 



  
#

$  % 6
 
( ) 

&


 ' 


m   
    m   m    m    
 
(


   
(



    



 

*     #
   






‡ Es posible para una subclase heredar de mas de una


superclase

m   
    m   m    m    
 


 

‡ Es posible para una entidad contener a otra
entidad
‡ Esto es denominado como una relación ³tiene un´
entre entidades

Ú 

      

m   
    m   m    m    
 
 6 


 
 6 

‡ Debido al encapsulamiento, los datos y la
implementación de las operaciones son
escondidas al usuario
‡ Teniendo los datos miembros y sus operaciones
encapsuladas, el usuario sólo necesita saber cómo
acceder a las operaciones
‡ El ocultamiento de información y las interfases se
unen para garantizar la seguridad de los datos y el
cumplimiento de las reglas y validaciones en el uso
de las entidades

m   
    m   m    m    
 
 
 

 
 
 
‡ Polimorfismo es la técnica de usar una interfaz
para múltiples implementaciones
‡ Permite a las entidades tener diferentes
estructuras internas para compartir la misma
interfaz externa
‡ Polimorfismo significa un nombre y múltiples
funciones

m   
    m   m    m    
 
 
 

 
 
 

 ()  * 
  
  
O O

+ ,- + ,- + ,-

|    %  


        
   !" &'
   #" !!'
O O         
O O $!" O O&!

m   
    m   m    m    
   &
 
  

M 
‡ Reusabilidad
± Cuando el comportamiento es heredado desde otra
entidad, no se necesita reescribir el código
± Esto ahorra costos de mantenimiento
± Proporciona una forma eficiente de compartir el
mismo código
‡ Desarrollo Rápido de Prototipos
± Cuando un sistema de software se diseña
básicamente con componentes reutilizables, el
tiempo de desarrollo se puede usar para
comprender el nuevo sistema

m   
    m   m    m    
   &
 
  

+


‡ Promete elevar los niveles de productividad de los
programadores, software de mejor calidad y menor costo
de mantenimiento
‡ Los programas se pueden construir desde módulos de
trabajo estándares que se comunican unos con otros.
Permite ahorrar tiempo de desarrollo e incrementar la
productividad
‡ Facilita dividir el trabajo en proyectos basados en
entidades
‡ Es posible tener múltiples instancias de una entidad
coexistiendo sin interferencias

m   
    m   m    m    
   &
 
  

+


‡ Los programadores pueden construir programas más
seguros que no puedan ser invadidos por código de otras
partes del sistema
‡ La herencia elimina el código redundante y extiende el
uso de las entidades existentes
‡ El enfoque centrado en los datos permite capturar más
detalles del modelo para la implementación

m   
    m   m    m    
m
,

)  

m   
    m   m    m    

  -


 
‡ Las entidades son los objetos, conceptos e ideas del
mundo real
‡ La lista de entidades en el mundo real es infinita
‡ Algunos ejemplos de entidades en el mundo real son:

±Florista ±Cuenta de ahorros

±Estudiante ±Talón de retiro

±Libro ±Reloj

±Tarjeta de registro ±Tabla

±Formato de reservación ±Miembro de biblioteca

±Cliente ±Tarjeta de biblioteca

±Flor

m   
    m   m    m    

  -

‡ Podemos agrupar algunas de las entidades de la lista


anterior en las siguientes categorías:
o Estudiantes, Tarjeta de registro
o Miembro de biblioteca, Tarjeta de biblioteca, Libro
o Cliente, Talón de retiro, Cuenta de ahorros
o Florista, Flor
‡ Las entidades se agrupan de acuerdo a su conducta
‡ Por conducta entendemos las responsabilidades de
una entidad en el mundo real
‡ Los términos conducta y responsabilidades son
normalmente usados indistintamente cuando se
discute la tecnología orientada a objetos

m   
    m   m    m    
)  

 

)  
‡ En el análisis existen entidades que representan
elementos del mundo real.
‡ En el entorno de la solución existen las i O como
tipos de datos definidos por el usuario
‡ Las i O son la descripción de un tipo de dato
‡ Las variables creadas a partir de un tipo de dato
clase, son denominadas instancias u objetos de la
clase
‡ Y           °  
  

m   
    m   m    m    
)  

 

)  . /
 
Cliente del

Banco

)

Cuenta de
Ahorros )0
))




Cuenta
Corriente

Planilla de
Deposito

‡ Relación entre el Mundo Real y el Mundo Orientado a


Objetos - (Escenario Bancario)
m   
    m   m    m    
)  

 

‡ Las clases contienen tanto los datos miembros


representando los tipos, como las funciones miembros
que implementan operaciones en esos tipos
‡ Una clase es similar a una estructura en C
‡ Para describir el tipo de dato ë   definido
por el usuario, podemos identificar los siguientes
datos miembros:
o Nombre del estudiante
o Edad del estudiante
o Dirección del estudiante
o Disciplinas en las que el estudiante fue admitido
o Cursos registrados por el estudiante en un
semestre

m   
    m   m    m    
)  

 

M
 ) 

)   

1$
 
 2 1 
 2

‡ Clase con datos y operaciones

6 
 6 
1
.3 
2 1(
3 .2

‡ Clase con Interfaz e Implementación


m   
    m   m    m    
)  

 




  )"  
` i O Oii O i O
   | .
   / 0 $$  O
   / / &#&'1/0

$$2 /3
 / 45.$$  i O   

 4   50$$  O  O
6
 / % 45.$$O O    O
`   0$$ O O    O
`` 6
`     % 4/5.$$O O  iO   O
` /47""5 $$O  O  i 
`  0$$O i O    O
`
  0
` 6

m   
    m   m    m    
)  

 




  )"  
` i O
`
       48   9:5.
` | ;| (& <| 450 $$OiO
 i 
` ;| (& % 4/50$$O i  O
 8=   4>ë  |    
>?;| (& 4550     OO O
` 6
!! 6

m   
    m   m    m    
 

 

 
‡ Una definición simple de un objeto es que constituye
una instancia de una clase
‡ Los objetos interactúan unos con otros para proveer
una solución a un problema
‡ La clase es sólo la descripción del tipo de dato, 
             
‡ Al momento de crear instancias o variables de la
clase, el compilador reserva la cantidad de memoria
adecuada para el tipo de dato solicitado

m   
    m   m    m    
 

 

 
‡ De un objeto puede decirse que tiene lo siguiente:
o ë , en un momento dado
o    , que es única entre objetos del sistema
o    que usualmente son las operaciones
sobre los datos de esa clase
‡ La estructura y conducta de objetos similares son
definidas en su clase común

m   
    m   m    m    
 

 

  :
‡ El estado de un objeto son las propiedades y los
valores que estas propiedades toman en un
momento dado
6
:
‡ La identidad de un objeto se refiere a la manera
única por la cual el objeto es conocido, referido, y
distinguido de todos los demás objetos del sistema
)  :
‡ La conducta se refiere a las responsabilidades que
el objeto ofrece asumir y cumplir.
‡ Es también la forma cómo un objeto reacciona a
los cambios de estado

m   
    m   m    m    
 

 

%  :
‡ Los métodos son los algoritmos usados por la clase
para implementar las tareas ofrecidas por la
interfase
‡ También se usa el término °   
  :
‡ Un mensaje es el mecanismo usado por un objeto
para tomar una tarea llevada a cabo por otro objeto
‡ Un mensaje puede cambiar el estado del objeto
receptor
‡ Un mensaje puede tomar ninguno o más
argumentos específicos
‡ Cuando un mensaje es enviado, el nombre del
objeto es asociado con el mensaje
m   
    m   m    m    
)      

)      
‡ Existen circunstancias en las que se necesita crear
  que encapsulen el comportamiento general de
ciertas entidades
‡ Estas   por si mismas no pueden ser instanciadas
como  
‡ Ellas simplemente proporcionan una interfaz que la
  derivada hereda e implementa
‡ Estas   son útiles para describir a un nivel más
alto el comportamiento general de las entidades del
mundo real
‡ Se conocen como i  i

m   
    m   m    m    
  )      

)      

i


i 
i 
i
| 
i   i i


i   
i 
  i   

 !

  .




)  
 
m   
    m   m    m    
)   

6


)  
‡ El primer paso en la construcción de un modelo de
  es identificar las   relevantes del dominio
de la aplicación
‡ Al identificar las   es posible establecer los limites
del problema a resolver
‡ Todas las   deben tener significado en el dominio
de la aplicación
‡ Se debe establecer un esquema para agrupar  
en  

m   
    m   m    m    
)   

6


)  
‡ Los pasos básicos de la técnica de depuración de
sustantivos son los siguientes:
o Establecer la lista inicial de sustantivos que
formaran las clases candidatas
o Depurar la lista inicial de clases de clases
candidatas
o Identificar los atributos de las clases
o Asignar responsabilidades a las clases

m   
    m   m    m