tecnología orientada a objetos

Post on 30-Jun-2015

357 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Tecnología Orientada a Objetos

Maestría en Desarrollo de Software

ISC. Erivan Martínez Ovando

Introducción

La Tecnología Orientada a Objetos se apoya en fundamentos de la ingeniería, cuyos elementos reciben el nombre global de modelo de objetos, el cual abarca los principios de abstracción, encapsulación, modularidad, jerarquía, concurrencia y persistencia.

Fundamentos de la TOO

• SIMULACIÓN

• ENCAPSULAMIENTO• MODULARIDAD• OCULTAMIENTO

• REUTILIZACIÓN

Introducción

• La TOO es un nuevo enfoque sobre la manera de organizar las diferentes piezas que conforman un sistema de información.

• TérminosPOOAOODOOBDOO

Introducción

• El concepto objeto y las operaciones relacionadas no son nuevos en la programación, sin embargo el DOO es poco explorado.

• En los inicios de la computación el nivel de abstracción que se utilizaba era muy bajo, los lenguajes ensambladores permitían el uso de instrucciones maquina

Introducción

• El siguiente nivel de abstracción se dio con la aparición de los lenguajes de alto nivel, los cuales permitieron el uso de estructuras de datos y de control predefinidas.

• La abstracción y el ocultamiento de información surgió en los años 70´s lo que dio lugar a métodos de diseño conducidos por los datos

Antecedentes

La TOO data de los años 60.En 1961 Krystin Nygaard crea Simula I.En 1967 se creó Simula 67 y con ello

nace por primera vez los conceptos de Clase, objetos y herencia.

En 1970 se crea SmallTalk dirigido por Allan Kay con interfaz gráfica y herramientas de desarrollo integradas. Visualizadores de Clases Inspeccionadores de código

Antecedentes

• Énfasis en la abstracción de datos y los problemas del mundo se representaban como un conjunto de objetos de datos para los que existían ciertas operaciones

Antecedentes

• El enfoque DOO se base en la abstracción, ocultamiento de la información y la modularidad.

• A finales de los 80´s el DOO se usaba en aplicaciones de software que iban desde las animaciones graficas hasta las telecomunicaciones

Antecedentes

• Las técnicas orientadas a objetos permiten que el software se construya a partir de objetos de comportamiento especifico

Antecedentes

• En el análisis de sistemas OO requiere estudiar los objetos en un ambiente, así como los eventos que interactúan con dichos objetos.

TOO (Perspectiva Histórica)

• Las técnicas OO se unen a otras tecnologías de software para lograr una correcta construcción de sistemas OO.

• Case, I case (integrated case)• Programación visual• Generadores de código• Repositorios• Bases de Datos OO• Lenguajes no procedimentales• Bibliotecas de Clase• Análisis Orientado a Objetos

TOO (Perspectiva Histórica)Estilos de programación

Estilo de programación Abstracción

• Orientado a Procedimientos - Algoritmos

• Orientados a Objetos - Clases y Objetos• Orientados a Lógica - Calculo de pred.• Orientados a Reglas - si...entonces

TOO (Perspectiva Histórica)Estilos de programación

• Cada estilo de programación es capaz de resolver cierto tipos de problemas, por lo que no hay un estilo de programación que sea el mejor.

• Cada estilo se basa en su propio marco de referencia conceptual, una actitud mental diferente.

TOO (Perspectiva Histórica)

• Hoy en día la TOO ya no se aplica solamente en los lenguajes de programación, además se aplica en el análisis y el diseño así como en las bases de datos

TOO perspectiva histórica

• Programación lineal

• Programación estructurada

• Programación Orientada a Objetos

Modelo Orientado a Objetos

• Elementos básicos• Abstracción• Encapsulamiento• Jerarquía• Tipificación• Concurrencia• Persistencia

* Los tres primeros son necesarios para considerarse OO

Abstracción

• Proceso mental mediante el cual se extraen los rasgos esenciales de algo con el fin de representarlo mediante un lenguaje grafico.

• La abstracción depende del contexto mental de quien hace la dicha abstracción.

Abstracción

• Denota las características esenciales de un objeto que lo distinguen de todos los demás tipos de objetos y proporciona fronteras conceptuales definidas

Métodos de Abstracción

• Abstracción por parametrizacionLa identidad de los datos se sustituyen por

parámetros

• Abstracción por especificaciónPermite fijarnos en el comportamiento que son

necesarios al usuario

Abstracción de Datos

• Metodología que permite diseñar estructuras de datos bajo ciertos lineamientos, este proceso se olvida de los detalles de implementación de datos.

• Cuando se diseña una estructura de datos se llama tipo de datos abstracto (TDA)

Abstracción de Datos

• En la especificación de un TDA se indica la abstracción realizada al diseñar una estructura de datos y las reglas para poder usar el TDA.

AbstracciónEspecificación de un TDA

• La especificación de un TDA debe contener los siguientes datos;

1. Elementos que conforman la estructura2. Tipo de organización para guardar los

elementos:1. Lineal (1-1)2. Jerárquica (1-M)3. Red (M-M)4. Sin relación

3. Dominio de la estructura4. Descripción de las operaciones de la

estructura

AbstracciónEspecificación de un TDA

• Las operaciones deben incluir los siguientes puntos:• Nombre• Descripción• Datos de entrada• Datos de salida• Precondición• Postcondición

Abstracción Niveles de abstracción

• Nivel lógico o abstracto• Se definen las estructuras de datos y las

operaciones relacionadas

• Nivel físico o de implementación• Se decide el leng. de programación y se

implementa la estructura como un modulo.

• Nivel de aplicación o de uso• Uso del TDA para llamar a las operaciones.

Encapsulamiento

• Se consigue ocultado la información, es decir es el proceso de ocultar todos los secretos de un objeto.

La abstracción y el encapsulamiento son complementarios, la abstracción se centra en el comportamiento observable de los objetos y el encapsulamiento se centra en la implementación que da lugar a dicho comportamiento.

Encapsulamiento

• Proceso de almacenar en un mismo compartimiento los elementos de una abstracción que constituyen su estructura y su comportamiento.

Encapsulamiento

• El objeto esconde sus datos de los demás objetos y permite el acceso mediante sus propios métodos.

• Es más fácil modificar los programas que utilizan el encapsulado por que se modifica al mismo tiempo un tipo de objetos. El comportamiento se puede probar de manera independiente a los demás tipos de objetos.

Modularidad

• “El acto de fragmentar un programa en componentes individuales puede reducir su complejidad en algún grado...” Myers

Propiedad que tiene un sistema que ha sido descompuesto en un conjunto de módulos cohesivos y débilmente acoplados

Modularidad

• Implica que el software se divide en componentes con nombres y ubicaciones determinados que se denominan módulos y que se integran para satisfacer los requisitos del sistema.

Modularidad

• Los módulos pueden compilarse separadamente pero tienen conexiones con otros módulos.

Los lenguajes que soportan el concepto de modulo generalmente distinguen entre la interfaz y su implementación.

Modularidad

• Los módulos sirven como contenedores físicos en los que se declaran las clases y los objetos del diseño lógico realizado.• Un modulo esta abierto si puede ser ampliado• Un modulo esta cerrado si está disponible para

su uso

Modularidad

• En el diseño estructurado, la popularización persigue el agrupamiento de subprogramas utilizando los criterios de acoplamiento y cohesión. En el DOO, la tarea es decidir donde empaquetar físicamente las clases y objetos

Modularidad

• Los módulos deben agrupar abstracciones con relaciones lógicas (cohesivos) y la dependencia entre módulos debe ser mínima (acoplamiento).

Jerarquía

“ Es una clasificación u ordenación de abstracciones”

• Las dos jerarquías más importantes en un sistema complejo son su estructura de clases (jerarquía de clases) y su estructura de objetos (jerarquía de partes).

Jerarquía

• Ejemplos de jerarquía:• Herencia Simple• Herencia Múltiple• Generalización

Jerarquía (Tipificación)

• Un tipo es una caracterización precisa de propiedades estructurales o de comportamiento que comparten una serie de entidades.

Los objetos de tipos

distintos no pueden

intercambiarse o solo de

formas muy restringidas.

Jerarquía (Tipificación)

• Los lenguajes de programación pueden tener comprobación estricta de tipos, comprobación débil, o incluso no tener tipos y aun así ser considerados como OO.

Concurrencia

• Capacidad de un sistema para manejar varios eventos (procesos) de forma simultanea

La concurrencia permite a varios objetos actuar al mismo tiempo.

• La concurrencia es la propiedad que distingue un objeto activo de uno no activo

Persistencia

La persistencia conserva el estado de un objeto en el tiempo y en el espacio

• La persistencia de objetos abarca lo siguiente:• Resultados transitorios• Variables locales• Variables propias• Datos que existen entre ejecuciones• Datos que existen entre versiones de un

programa• Datos que sobreviven al programa

Persistencia

• Los lenguajes de programación tratan los 3 primero tipos de persistencia, en tanto que los últimos pertenecen al dominio de las BDOO.

• En la practica las BD se construyen sobre tecnología contrastada, bd secuenciales, indexadas, jerárquicas, pero ofrecen una abstracción de la interfaz OO

Objetos

• Un objeto podría considerarse como:• Una cosa tangible y/o visible• Algo que puede comprenderse intelectualmente• Algo hacia lo que se dirige un pensamiento o

acción

Objetos

• Un objeto modela parte de la realidad, por ello, es algo que existe en el tiempo y el espacio.

• En el ámbito del software el termino objeto se utilizo por primera vez con el lenguaje simula.

Objetos

Un objeto representa un elemento, unidad o entidad individual e identificable, ya sea real o

abstracta, con un papel bien definido en el dominio del problema

Smith y Tockey

Objetos

• Definición del objeto: coche

Atributos• Color•Velocidad• Modelo• Cilindros

Funciones• Andar• Parar• Girar a la derecha•Girar a la izquierda

Objetos

• Los objetos se pueden manifestar en una de las siguientes formas:• Entidades externas: otros sistemas,

dispositivos que producen y consumen información.

• Cosas: Informes, visualizadores, forman parte del dominio de la información

Objetos

• Un objeto puede considerarse como una capsula dividida en tres partes:• Relaciones• Propiedades• Métodos

Objetos (Formato)

• Debe existir un formato que permita identificar a los objetos y sus elementos involucrados

Nombre del objeto

Propiedades

Operaciones

Objetos (Atributos)

• Los atributos describen un objeto seleccionado, los atributos definen en esencia un objeto

Mueble

Dimensiones

Costos

Peso

Color

Objetos

• Un objeto tiene estado, comportamiento e identidad; la estructura y comportamiento de objetos similares están definidos en su clase común.

Objetos (Estado)

El estado de un objeto abarca todas las propiedades (normalmente estáticas) del

mismo más los valores actuales (normalmente dinámicos) de cada una de

esas propiedades

Objetos (Comportamiento)

• Ningún objeto existe de forma aislada, los objetos reciben acciones y actúan sobre otros objetos.

El comportamiento es como actúa y reacciona un objeto, en términos de sus cambios de estados y paso de mensajes

Objetos (comportamiento)

• Los objetos se comunican mediante mensajes

Objetos (Comportamiento)

• En los lenguajes de POO las operaciones que se pueden realizar sobre un objeto suelen declararse como métodos, que forman parte de la declaración de clase

Objetos (Comportamiento)

• El comportamiento de un objeto es función de su estado así como de la operación que se realiza sobre el.

Objetos (Operaciones)

• Una operación denota un servicio que una clase ofrece a sus clientes:• Modificador: Altera el estado de un objeto• Selector: Accede al estado de un objeto• Iterador: Accede a las partes de un objeto en

un orden establecido• Constructor• Destructor

Objetos (Métodos)

• Los métodos especifican la forma en que se controlan los datos de un objeto.

• Los métodos en un tipo de objeto solo hacen referencia a la estructura de datos de dicho objeto

Objetos (operaciones vs métodos)

• Una operación es un tipo de servicio solicitado y el método es el código de programación asociado

• Operación: Promedio

• Método: forma de calcular el promedio

Objetos (Encapsulación y Ocultamiento)

• Los objetos son estructuras complejas que contienen datos y programas relacionados entre si, dicha estructura encierra estos elementos. (encapsulación).

Objetos (Encapsulación y Ocultamiento)

• Los objetos son inaccesibles e impiden que otros objetos o los usuarios conozcan como está distribuida la información, la única forma de accesar un objeto es a través de sus métodos

Objetos (identidad)

Es la propiedad de un objeto que lo distingue de todos los demás objetos

• En la mayoría de los lenguajes se utilizan nombres de variables para distinguir objetos.• Se debe reconocer la diferencia

entre el nombre de un objeto y el objeto en si mismo

Objetos

• Los objetos con estados y comportamientos similares se agrupan en clases

Clases

• Los términos objeto y clase están relacionados, sin embargo una clase representa sólo una abstracción de un objeto

Una clase es un conjunto de objetos que comparten una

estructura común y un comportamiento común

Clases (consideraciones)

• Un objeto es la instancia de una clase

• Un objeto no es un clase, pero una clase puede ser un objeto

• Una clase es necesaria pero no suficiente para la descomposición

Clase (interfaz)

• Una clase sirve como vinculo entre una abstracción y todos sus clientes.

• La interfaz de una clase proporciona su visión externa, es decir, oculta la estructura y los detalles del comportamiento de un objeto.

• La implementación de una clase proporciona su visión interna

Clases (interfaz)

• Se puede dividir la interfaz de una clase en tres partes:

• Public (publica) Accesible por todos los clientes

• Protected (protegida) Accesible por la propia clase, subclases y clases amigas

• Private (privada) Accesible solo por la propia clase y sus clases amigas

Clases (relaciones)

• Las clases, al igual que los objetos no existen en forma aislada; las relaciones entre clases se dan dos razones:

• Comparten elementos• Conexión semántica

top related