Programación Orientada a Objeto (POO)
La programación
orientada a objetos es un modelo de programación, con su teoría y su
metodología, que conviene conocer y estudiar antes de nada la estructura de los
programas en torno a los objetos y en la idea natural de la existencia de un
mundo lleno de objetos, que la resolución del problema se realiza en términos
de objetos, un lenguaje se dice que está basado en objetos si soporta dichos objetos
como una característica fundamental del mismo.
Los lenguajes de
POO ofrecen medios y herramientas para describir los objetos manipulados por un
programa. Más que describir cada objeto individualmente, estos lenguajes
proveen una construcción (Clase) que describe a un conjunto de objetos que
poseen las mismas propiedades.
Los conceptos de la programación orientada a objetos tienen
origen en Simula 67, un lenguaje diseñado para hacer simulaciones, creado por Ole-Johan
Dahl y Kristen Nygaard, del Centro de Cómputo Noruego en Oslo. La idea surgió
al agrupar los diversos tipos de naves en diversas clases de objetos, siendo
responsable cada clase de objetos de definir sus propios datos y
comportamientos. Fueron refinados más tarde en Smalltalk, desarrollado en
Simula en Xerox PARC pero fue diseñado para ser un sistema completamente
dinámico en el cual los objetos se podrían crear y modificar en el tiempo de
ejecución en lugar de tener un sistema basado en programas estáticos.
La programación orientada a objetos se fue convirtiendo en el estilo de programación dominante a mediados de los años ochenta, en gran parte debido a la influencia de C++, una extensión del lenguaje de programación C. Su dominación fue consolidada gracias al auge de las Interfaces gráficas de usuario, para las cuales la programación orientada a objetos está particularmente bien adaptada. En este caso, se habla también de programación dirigida por eventos.Las características de orientación a objetos fueron agregadas a muchos lenguajes existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp y Pascal, entre otros.
Origen de la programacion orientada a objetos
La programación orientada a objetos se fue convirtiendo en el estilo de programación dominante a mediados de los años ochenta, en gran parte debido a la influencia de C++, una extensión del lenguaje de programación C. Su dominación fue consolidada gracias al auge de las Interfaces gráficas de usuario, para las cuales la programación orientada a objetos está particularmente bien adaptada. En este caso, se habla también de programación dirigida por eventos.Las características de orientación a objetos fueron agregadas a muchos lenguajes existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp y Pascal, entre otros.
Características
Alguna de las características fundamentales son:
- Uniformidad: Ya que es la representación de los
objetos lleva implica tanto el análisis como el diseño y la codificación de los
mismos.
- Comprensión: Tanto los datos que componen los objetos,
como los procedimientos que los manipulan, están agrupados en clases, que se
corresponden con las estructuras de información que el programa trata.
- Flexibilidad: Al tener relacionados los procedimientos
que manipulan los datos con los datos a tratar, cualquier cambio que se realice
sobre ellos quedará reflejado automáticamente en cualquier lugar donde estos
datos aparezcan.
- Estabilidad: Dado que permite un tratamiento
diferenciado de aquellos objetos que permanecen constantes en el tiempo sobre
aquellos que cambian con frecuencia permite aislar las partes del programa que
permanecen inalterables en el tiempo.
Ventajas
Las ventajas más importantes de la programación orientada
a objetos son las siguientes:
- Reusabilidad: Cuando hemos diseñado adecuadamente las clases, se pueden
usar en distintas partes del programa y en numerosos proyectos.
- Mantenibilidad: Debido a la sencillez para abstraer el problema, los
programas orientados a objetos son más sencillos de leer y comprender, pues nos
permiten ocultar detalles de implementación dejando visibles sólo aquellos
detalles más relevantes.
- Modificabilidad: La facilidad de añadir, suprimir o modificar nuevos
objetos nos permite hacer modificaciones de una forma muy sencilla.
- Fiabilidad: Al dividir el problema en partes más pequeñas podemos
probarlas de manera independiente y aislar mucho más fácilmente los posibles
errores que puedan surgir.
Conceptos Básicos
1. Objeto: es una entidad caracterizada por sus atributos propios y cuyo
comportamiento está determinado por las acciones o funciones que pueden
modificarlo, así como también las acciones que requiere de otros objetos. Un
objeto tiene identidad e inteligencia y constituye una unidad que oculta tanto
datos como la descripción de su manipulación.
2.
Clases: es la unidad de modularidad en el POO. La tendencia natural del
individuo es la de clasificar los objetos según sus características comunes
(clase). La clase puede definirse como la agrupación o colección de objetos que
comparten una estructura común y un comportamiento común.
3.
Método: Son las operaciones que se aplican sobre los objetos y que permiten
crearlos, cambiar su estado o consultar el valor de sus atributos. Los métodos
constituyen la secuencia de acciones que implementan las operaciones sobre los
objetos.
4.
Atributo: Son los datos o variables que caracterizan al objeto y cuyos
valores en un momento dado indican su estado. Mediante los atributos se define
información oculta dentro de un objeto, la cual es manipulada solamente por los
métodos definidos sobre dicho objeto.
5.
Mensaje: Es la petición de un objeto a otro para solicitar la ejecución de
alguno de sus métodos o para obtener el valor de un atributo público.
Estructuralmente, un mensaje consta de 3 partes:
-
Identidad del receptor: Nombre
del objeto que contiene el método a ejecutar.
-
Nombre del método a ejecutar:
Solo los métodos declarados públicos.
-
Lista de Parámetros que recibe
el método (cero o mas parámetros)
- Encapsulamiento: Es la propiedad
del POO que permite ocultar al mundo exterior la representación interna
del objeto. Esto quiere decir que el objeto puede ser utilizado, pero los
datos esenciales del mismo no son conocidos fuera de él. La idea central
del encapsulamiento es esconder los detalles y mostrar lo relevante.
- Herencia: Es el proceso mediante el
cual un objeto de una clase adquiere propiedades definidas en otra clase
que lo preceda en una jerarquía de clasificaciones. Permite la definición
de un nuevo objeto a partir de otros.
- Polimorfismo: Es una propiedad del
POO que permite que un método tenga múltiples implementaciones, que se
seleccionan en base al tipo objeto indicado al solicitar la ejecución del
método. El polimorfismo permite aplicar operaciones con igual nombre a
diferentes clases.
Lenguajes de POO
-
ABAP
-
ABL
-
ActionScript
-
ActionScript 3
-
Ada
-
C++
-
C#
-
Clarion
-
Clipper
-
D
-
Object Pascal
-
Gambas
-
Genie
-
Harbour
-
Eiffel
-
Fortran 90/95
-
Java
-
JavaScript
-
Lexico
-
Objective-C
|
-
Ocaml
-
Oz
-
R
-
Perl
-
PHP
-
PowerBuilder
-
Python
-
Ruby
-
Self
-
Smalltalk
-
Magik (SmallWorld)
-
Vala
-
VB.NET
-
Visual FoxPro
-
Visual Basic 6.0
-
Visual DataFlex
-
Visual Objects
-
XBase++
-
Lenguaje DRP
|
Herramientas
para diagramar en POO (Diseño y planificación). Notación UML
En UML, una clase es un tipo de clasificador cuyas características son
atributos y operaciones.
Un diagrama de clases
describe la estructura estática de un sistema en términos de clases y de
relaciones entre estas clases, mostrando los atributos y operaciones que
caracterizan cada clase de objetos.
- Un diagrama de
objetos representa la estructura estática del sistema Mostrando los objetos
(instancias) en el sistema y las relaciones entre los objetos
-
Un diagrama de clases
dado corresponde a un conjunto infinito de diagramas de objetos.
Asociación es una
conexión entre clases, que implica la existencia de una relación estructural
entre objetos de esas clases.
-
Generalización: es
una relación entre una clase más general y una más específica o especializada
-
Dependencia: es una
relación de uso entre clases.

Diagrama de Clase sobre Alquiler de Carros

Diagrama de Casos de Uso sobre un Restaurante
Diagrama de Contexto sobre Libreria
Fuentes Electrónicas:


No hay comentarios:
Publicar un comentario