Está en la página 1de 34

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Algorítmica II

Tema 1:
INTRODUCCION A LA P.O.O
PARADIGMA ORIENTADO A OBJETOS
Docente
JAVIER ELMER CABRERA DÍAZ
Ing. de Software – Universidad Nacional Mayor de San Marcos
Magister en Computación
Universidad Nacional Mayor de San Marcos
Agenda
 Repaso De Conceptos Básicos
 Paradigmas de Programación
 Características De La P.O.O
 Que Es La Programación Orientada A Objetos ( P.O.O)
 Razones Fundamentales Para Utilizar La P.O.O
 Conceptos Del Paradigma Orientado A Objetos
 Abstracción
 Encapsulamiento
 Modularidad
 Jerarquía
 Clases Y Objetos
 Mensajes Y Métodos
Introducción a La Programación Orientada a Objetos

¿ Conceptos a Tener en Cuenta ?

Que es Un Algoritmo ?
Series de pasos a seguir para solucionar un Problema

Que es Un Programa ?
Secuencias de Instrucciones escritas en un lenguaje de programación, que
resuelven un problema.

Que es un Lenguaje de Programación?


Conjunto de Palabras, símbolos y reglas utilizadas para controlar las
operaciones a realizar en una computadora (ej., C/C++, Java, Php, C#).
Todo lenguaje de programación está compuesto por su sintaxis (reglas) y su
semántica (significado de los símbolos y las palabras que utiliza)

Que es Una Instrucción ?


Orden dada al computador para que ejecute una operación.
Introducción a La Programación Orientada a Objetos

¿ Porque Aprender Lenguajes y Técnicas de


Programación ?
Que es un problema ? Se tiene un problema cuando se desea encontrar uno o varios
objetos desconocidos (ya sean estos números, símbolos, diagramas, figuras, u otras
cosas), que cumplen condiciones o relaciones, previamente definidas, respecto a uno
o varios objetos conocidos.

Pasos Para Solucionar un Problema ?

1 - Análisis del problema y Especificación del problema


2 - Diseño del algoritmo
3 - Prueba del algoritmo y refinamiento
4 - Codificación
5 - Ejecución y validación del Programa

Para poder utilizar el ordenador como una herramienta para resolver


problemas eficazmente.

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Introducción a La Programación Orientada a Objetos
Paradigmas de Programación: Evolución de las técnicas de programar
utilización de estructuras de la idea “Divide y Vencerás ”
control básicas
utiliza saltos y rutinas se tiene ahora un programa único
entremezcladas. dividido en pequeñas piezas
claramente un inicio y un
final en los prog. llamadas procedimientos
Técnica Insostenible
Algoritmos + Datos = Programas
facilidad
Ejecución de arriba hacia en la escritura, lectura y
Dificultad para comprensión de los programas y
Abajo
mantenimiento y evita duplicidad de códigos
depuración
se obtiene un único bloque
de programa, que cuando Se facilita la corrección,
Basic, Assembler, modificación y actualización de
se hace demasiado grande
Fortran y Cobo código
puede resultar
problemático su manejo
Lineal Procedimental Orientada a
Estructurada (Modular) Objetos

Toda la evolución de los lenguajes y técnicas de programación se ha


desarrollado en base a una sola idea conductora: hacer que la
tarea de realizar programas para ordenadores sea cada vez
lo más simple, flexible y portable posible.

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Introducción a La Programación Orientada a Objetos

¿ Que es la Programación Orientada a Objetos?


La P.O.O es un método de desarrollo en el cual los programas se organizan como
colecciones de objetos que cooperan para resolver un problema.

Fuente: Vélez, Serrano, José, et al. Diseñar y programar, todo es empezar: una introducción la Programación
Orientada a Objetos usando UML y Java, Dykinson, 2011

La POO es un modelo de programación que utiliza objetos, ligados mediante mensajes, para
la solución de problemas. La idea central es simple: organizar los componentes del
programa a imagen y semejanza de los objetos en el mundo real

Fuente: Ceballos, Sierra, Francisco Javier. Programación orientada a objetos con C++ (4a. ed.), RA-MA Edi.2007

La P.O.O se puede definir como una técnica o estilo de programación que utiliza objetos
como bloques esenciales de construcción. Los elementos básicos de la POO son: objetos,
mensajes, métodos y clases.

Fuente: VELARDE DE BARRAZA, OLINDA y cols. Introducción a la programación orientada a objetos. 2006

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Introducción a La Programación Orientada a Objetos

Características de la P.O.O
 La Programación Orientada a Objetos es un paradigma de programación que define
los programas en términos de "clases de objetos”, los elementos básicos son: objetos,
mensajes, métodos y clases.

 Al contrario que la programación procedimental que se basa en el interrogante ¿Qué


hace este programa?, el enfoque O.O responde a otro interrogante ¿Qué objetos del
mundo real puede modelar?

 Esto permite hacer los programas y módulos más fáciles de escribir, mantener y
reutilizar.

 Construir software complejos a partir de unidades de software modularizado y


reutilizable

 Crear sistemas fiables que sean flexibles, mantenibles y capaces de evolucionar para
cumplir las necesidades de cambio.

 Reducción de líneas de código

Técnica de programación mas utilizada en la


actualidad.
Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos
Introducción a La Programación Orientada a Objetos

Razones Fundamentales Que Están Influyendo En La Importancia


de la POO .

 Permite un alto grado de reutilización de código, gracias


principalmente al mecanismo de herencia.

 Facilita la creación de software de calidad, flexibles y


mantenibles

 Aumento espectacular de L.POO (Lenguajes de Programación


Orientados a Objetos).

 La necesidad de Interfaces de usuario gráficos y visuales.

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

Elementos o propiedades del paradigma orientado a objetos


 Los conceptos y herramientas orientados a objetos son tecnologías /
mecanismos que permiten que los problemas del mundo real puedan ser
expresados de modo fácil y natural en código.

 Los cuatro elementos (propiedades) más importantes de este modelo de


programación son:

Abstracción

Encapsulamiento

P.O.O Modularidad

Jerarquía

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

ABSTRACCION
La abstracción es la propiedad que permite representar las características
esenciales de un objeto, sin preocuparse de las restantes características (no
esenciales).

Definir una abstracción significa describir una entidad del mundo real, no
importa lo compleja que pueda ser, y a continuación utilizar esta
descripción en un programa.

Abstracción

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

ABSTRACCION Atributos

Marca
Modelo
Color
Vel. Max
Matricula

Acciones

Encender
Frenar
Acelerar
Apagar

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

ABSTRACCION

La importancia de los atributos y métodos de una entidad del mundo real, va orientada
al problema a solucionar.

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

Tipos Abstractos de Datos


Un tipo abstracto de datos (TAD) es un tipo de dato definido por el
programador que se puede manipular de un modo similar a los tipos de datos
definidos por el sistema.

Un tipo de dato abstracto corresponde a un conjunto de valores legales de datos


y un número de operaciones que se pueden realizar sobre esos valores.

Fraccionario Perro
Int numerador
Int denominador
8 float A_prom.
float P_prom.
_________________
Sumar()
5 int Esp_vida
String P_origen
Restar() ______________
Multiplicar() ladrar() TAD
Correr()
Morder()
TAD
Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos
Paradigma Orientado a Objetos

ABSTRACCION TAD
Nadador Nadador
ATRIBUTOS ATRIBUTOS

COMPORTAMIENTOS COMPORTAMIENTOS

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

ABSTRACCION TAD
TABLET TABLET
ATRIBUTOS ATRIBUTOS

COMPORTAMIENTOS COMPORTAMIENTOS

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

ABSTRACCION
TAD

Se desea conocer
el puntaje final de ATRIBUTOS ATRIBUTOS
un equipo de
futbol en un
torneo

COMPORTAMIENTOS COMPORTAMIENTOS
Se desea calcular
el monto de
interés que se
paga por un
préstamo

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

ENCAPSULAMIENTO
La encapsulación o encapsulamiento es la propiedad que permite asegurar que el
contenido de la información de un objeto está oculta al mundo exterior: El objeto A no
conoce los datos de un objeto B, y viceversa.(también se conoce como ocultación de la
información)

Ocultación de
Información

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

ENCAPSULAMIENTO

ObjetoA ObjetoB

Con la encapsulación, las clases son vistas como cajas negras, es decir que se conoce lo
que hace la clase pero no la forma en que lo hace.

En la practica la encapsulación da lugar a que las clases se dividan en dos partes:


Interface: captura la visión externa de una clase, abarcando la abstracción del
comportamiento común a los ejemplos de esa clase.
Implementación: comprende la representación de la abstracción, así como los
mecanismos que conducen al comportamiento deseado.

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

MODULARIDAD
La modularidad es la propiedad que permite subdividir una aplicación en partes
más pequeñas (llamadas módulos), cada una las cuales debe ser tan
independiente como sea posible de la aplicación en sí y de las restantes partes.

Débilmente
Acoplados y
Altamente
cohesivos

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

MODULARIDAD
El Acoplamiento es una medida del grado de interdependencia entre
módulos, es decir, el modo en que un módulo está siendo afectado por la
estructura interna de otro módulo.

El objetivo es minimizar el acoplamiento entre módulos

Un módulo cohesivo ejecuta una tarea sencilla de un procedimiento de


software y requiere poca interacción con procedimientos que ejecutan otras
partes de un programa.

En otras palabras, un módulo cohesivo sólo hace (idealmente) una cosa

Los módulos deben ser generalmente independientes de cada uno de los


restantes y se pueden ensamblar fácilmente para construir la aplicación
completa.

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

JERARQUIA
La jerarquía es una propiedad que permite una ordenación de las abstracciones. Las
mas importantes son:
 Estructura de clases (generalización/especialización)
 Estructura de objetos (agregación)

Las jerarquías de generalización/especialización se


conocen como herencia y básicamente define una
relación entre clases, en donde una clase comparte
la estructura o comportamiento definido en una o
más clases. “Es un”

La agregación es el concepto que permite el


agrupamiento físico de estructuras relacionadas
lógicamente. Así, un camión se compone de ruedas,
motor, sistema de transmisión y chasis; en
consecuencia, camión es una agregación, y ruedas,
motor, transmisión y chasis son agregados de
camión. “Hace parte de”

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

JERARQUIA
Las jerarquías de generalización/especialización se conocen como HERENCIA
la cual define una relación entre clases, en donde una clase comparte la
estructura o comportamiento definido en una o más clases.

CARRO
Especialización

Generalización
Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos
Paradigma Orientado a Objetos

JERARQUIA
La agregación es el concepto que permite el agrupamiento físico de
estructuras relacionadas lógicamente

Agregados de un camión

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

JERARQUIA
Medio de Transporte

XBOX

Reloj

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

JERARQUIA

Generalización /
Especialización

Agregación

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

JERARQUIA
Objeto Agregación Generalización/
Especialización
Vehículo

Reloj

Zapato

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

CLASES
Una clase es la descripción de un conjunto de objetos; consta
de métodos y datos que resumen características comunes de
un conjunto de objetos. Dicho de otro modo, una clase es la
declaración de un tipo de objeto o una plantilla que define las
variables y los métodos que son comunes para todos los
objetos de un cierto tipo.
Clase
OBJETO
Cada objeto es un ejemplar de una CLASE. Cada vez que se construye un objeto de
una clase, se crea una instancia de esa clase.

Objetos

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

CLASES y OBJETOS

Clase – Diagrama UML

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

CLASES y OBJETOS

Clase Objetos

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

CLASES y OBJETOS

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

METODOS Y MENSAJES
Un programa orientado a objetos consiste en un número de objetos que se
comunican unos con otros invocando a sus métodos.

Un método es el procedimiento o funcion que se invoca para actuar sobre


un objeto.
Un mensaje es la acción que debe hacer un objeto
Atributos

Color
Velocidad
Motor
Ruedas

Acciones

Arrancar
Frenar
Doblar
Apagar

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

METODOS Y MENSAJES

Un programa orientado a objetos consiste en un número de objetos


que se comunican unos con otros llamando a funciones miembros
“metodos” (mensajes)

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

Etapas para la solución de problemas de acuerdo con un


enfoque orientado a objetos
• Definición del problema o dominio del problema: Permite describir en forma
narrativa o esquemática, de modo claro y concreto, y en un lenguaje corriente el
problema que ha de resolverse
• AOO y DOO. El análisis busca identificar y describir los objetos en el dominio del
problema, se definen sus atributos (datos), relaciones y procedimientos
(métodos).

En el diseño orientado a objetos (DOO) se procura definir las clases que


finalmente serán implementados en un lenguaje de programación. Estas no son
consecuencia de los requisitos del problema, sino de la solución propuesta
(dominio de la solución).

• Programación. Implementar en un lenguaje de POO las clases diseñadas.


• Documentación. Permite entender el programa, facilita su mantenimiento, depuración y
modificación

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos


Paradigma Orientado a Objetos

Etapas para la solución de problemas de acuerdo con un


enfoque orientado a objetos
En resumen:

Una solución orientada a objetos implica los siguientes pasos necesarios:

Análisis y diseño orientado a objetos


• Identificar las abstracciones (clases).
• Identificar los atributos (datos) de cada abstracción.
• Identificar las operaciones (métodos) de cada abstracción.
• Aplicar la herencia donde sea necesario.
• Construir el diagrama de clases.

Programación
• Desarrollo del algoritmo.
• Prueba del algoritmo (prueba de escritorio).
• Codificación del algoritmo en un lenguaje de programación.

Javier Cabrera– Algorítmica II – Universidad Nacional Mayor de San Marcos

También podría gustarte