Paradigma de Programación Orientado a Objetos
-
Upload
alberto-blumberg -
Category
Software
-
view
452 -
download
3
Transcript of Paradigma de Programación Orientado a Objetos
Programación Orientada a Objetos
Alberto Blumberg
Daniel Fernández
Javier Oshiro
Guillermo RanucciI.F.T.S. 4 D.E. 7 - Sistemas – 2015
Paradigmas de Programación
¿Qué es un objeto?
Los objetos son entidades que tienen ciertas características y propiedades:
Estado: datos e información asignada al objeto.
Comportamiento: operaciones que puede realizar.
Identidad: propiedad que lo diferencia del resto.
Origen
1967 en Noruega. Lenguaje Simula 67. Estaba diseñado para realizar simulaciones de naves.
1970+, Small Talk de Xerox (1er lenguaje puro OO)
1980, Stroustrup de AT&T Labs amplía el lenguaje C a C++ agregándole soporte a la programación orientada a objetos convirtiéndolo en el estilo dominante
1996 surge JAVA como extensión de C++ con la idea de aprovechar el software ya existente, utilizándolo para otros usos diferentes a los originales sin modificar el código.
Co
nce
pto
sClase
Definición de las propiedades y comportamiento de un tipo de objeto
HerenciaLas clases heredan los atributos y operaciones
de otra, se usan los mismos métodos y variables públicas de la primera.
ObjetoInstancia de una clase, con sus
propiedades y métodos
MétodoProceso asociado a un objeto. Función que se usa como variables locales de las propiedades
del objeto
MensajeComunicación entre los objetos. Consisten en
una dirección, método y parámetros
EventoSuceso en el sistema. Reacción a un
mensaje del objeto. Emisor-Receptor
Estado InternoVariable privada, no visible para el
programador que crea la clase. Sólo alterable por un método del mismo objeto
Car
acte
ríst
icas
Abstracción Capturar el comportamiento y los atributos
Encapsulamiento Aislar al objeto. Proporciona seguridad
OcultamientoPreviene cambios en la implementación del objeto.
De esta forma otros programas que usaban este mismo objeto no sufren alteraciones
ModularidadSeparar la aplicación en módulos o partes independientes de la aplicación y de otros
módulos
PolimorfismoPermite que un método pueda ser utilizado tanto
por la clase a la que pertenece como por las clases que heredan el comportamiento
HerenciaPermite crear objetos especializados de objetos ya existentes, compartiendo el comportamiento. Es la
transmisión de código entre las diferentes clases
Jerarquización Es el orden o clasificación de los objetos. Puede ser por composición o por clasificación
AsociaciónRelación de asociación entre clases.
Puede ser por composición o por uso.
Recolección de Basura
Se encarga de liberar de la memoria los objetos que quedan sin referencia
EJEMPLOS
class rectángulo {private:
int base;int altura;
public:rectángulo(int b, int h) {
base =b;altura=h;
}float calcularArea() {
return base*altura;}
}
EJEMPLOS
EJEMPLOS
class rectángulo {private:
int base;int altura;
public:rectángulo(int b, int h)
{base =b;altura=h;
}float calcularArea() {
returnbase*altura;
}}
Completando el ejemplo anterior con algunos nuevos conceptos, definimos la clase figura con un método.class figura {
public:float calcularArea();
}
Defino la clase rectángulo que hereda de figura.class rectángulo : public figura {
private:float base;float altura;
public:rectángulo(float b, float h) {
base = b;altura=h;
}float calcularArea() {
return base*altura;}
}
Defino la clase círculo que hereda de figura.class círculo : public figura {
private:float radio;
public:círculo(float r) {
radio=r;}float calcularArea() {
return radio^2*3.14;}
}
Tipos de Clases
Publica (+)
Privada (-)
Protegida (#)
¿Qué es UML?(Unified Modeling Language)
Es el lenguaje de modelado de sistemas más conocido y utilizado en la actualidad. Es importante remarcar que UML es un "lenguaje de modelado" para especificar o para describir métodos o procesos.
Se utiliza para definir un sistema, para detallar los artefactos en el sistema y para documentar y construir.
En el primer cuadro anotamos el nombre de la clase (si es abstracta se escribe en cursiva, o bien se usa un estereotipo <<abstract>> arriba del nombre de la clase).
En la segunda parte van los atributos (o variables de instancia, las variables de clase van en subrayado).
En el último cuadro escribimos las operaciones (qué mensajes que puede entender). Lo importante no es documentar todos los mensajes de un objeto, sino sólo los más relevantes.
Impacto del P.O.O.
Reusabilidad de código: Hasta el momento para poder reutilizar código se tenía que usar el 100% del mismo lo que complicaba el programa y dificultaba su mantenimiento.
Fiabilidad y mantenimiento del código: al tener librerías de clases y habiendo asegurado que esas clases tienen verificado su funcionamiento garantiza la fiabilidad, lo que hace que una rutina este compuesta por unas pocas líneas de código.
Ventajas / Desventajas
Datos separados del Diseño.Reutilización del código.Entendimiento del programa en el mundo real.Fácil entendimiento de la lógica del programa.Código simple.Fácil documentación y diseño del programa.Dinamismo en el manejo de los datos.Facilidad en el mantenimiento y expansión.
Complejidad para adaptarse.
Mayor cantidad de código (aunque a la larga no, por la reutilización).
No todos los programas pueden ser modelados con exactitud por el modelo de objetos.
Los objetos a menudo requieren una extensa documentación.
Ventajas Desventajas
Algunos lenguajes orientados a obj.
ABAP1ABL2ActionScriptActionScript 3AdaC++C Sharp (C#)ClarionObject Pascal (Emb. Delphi)GambasGObjectGenieHarbourEiffelFortran 90/95Java
JavaScript4Lexico5Objective-COcamlOzRPauscal (en español)Perl6 7PHP8PowerBuilderPythonRubySelfSmalltalk9Magik (SmallWorld)Vala
VB.NETVisual FoxPro10Visual Basic 6.0Visual DataFlexVisual ObjectsXBase++DRPScala11 12
C++ / Arduino
Arduino nació en el Instituto Italiano de Diseño Interactivo Ivrea en el año 2005, una escuela donde los estudiantes sumaban sus experimentos en la interacción con dispositivos, muchos de ellos basados en microcontroladores. .
¿Qué es Arduino? es una herramienta para hacer que los ordenadores puedan sentir y controlar el mundo físico a través de un ordenador personal. Es una plataforma de desarrollo de computación física (physical computing) de código abierto, basada en una placa con un sencillo microcontrolador y un entorno de desarrollo para crear software (programas) para la placa.
Se puede usar Arduino para
Crear objetos interactivosLectura de sensoresEstado de interruptoresControles de iluminaciónControl de motores DCMotores paso a paso
Se puede ejecutar en forma autónomaSe puede comunicar con otro software VisualStudio
Es de código abierto Se puede descargar en forma gratuitaEs legal utilizarlo en cualquier proyecto no comercial
Funciones SETUP y LOOP
void setup ( ) {
// única ejecución }
void loop ( ) {
// ejecución eterna }
Importar Librería
#include <SD.h>
void setup ( ) {
// única ejecución }
void loop ( ) {
// ejecución eterna }
¡GRACIAS!
Alberto Blumberg
Daniel Fernández
Javier Oshiro
Guillermo Ranucci