Generalidades sobre la Abstracción

21
ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS 1 CURSO DE ESTRUCTURAS DE DATOS ( http://faccilearn.uleam.edu.ec/course/view.php?id=67 ) Universidad Laica “ELOY ALFARO” de Manabí *ULEAM* http:// www.uleam.edu.ec Facultad de Ciencias Informáticas *FACCI* www.facci.ec Docentes: Ing. Jorge Pincay Ponce Ing. Jacinto Reyes Cárdenas Periodo Lectivo: 2012 - 2013

description

Como seres humanos, estamos inundados de información cada día de nuestras vidas. Incluso si pudiéramos desactivar temporalmente todas las fuentes de "información electrónica" que constantemente nos bombardean -correos electrónicos, mensajes de voz, programas de noticias, y similares-, nuestros cinco sentidos recogerían millones de bits de información por día.

Transcript of Generalidades sobre la Abstracción

Page 1: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

1

CURSO DE ESTRUCTURAS DE DATOS (http://faccilearn.uleam.edu.ec/course/view.php?id=67)

Universidad Laica “ELOY ALFARO” de Manabí

*ULEAM*http://www.uleam.edu.ec

Facultad de Ciencias Informáticas*FACCI*

www.facci.ec

Docentes:Ing. Jorge Pincay Ponce

Ing. Jacinto Reyes Cárdenas

Periodo Lectivo:2012 - 2013

Page 2: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

2

Abstracción

Page 3: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

3

Abstracción

Como seres humanos, estamos inundados de información cada día de nuestras vidas. Incluso si pudiéramos desactivar temporalmente todas las fuentes de "información electrónica" que constantemente nos bombardean -correos electrónicos, mensajes de voz, programas de noticias, y similares-, nuestros cinco sentidos recogerían millones de bits de información por día.

Darle sentido a todo esta información es abrumador. Nuestro cerebro naturalmente simplifica los detalles de todo lo que observamos de modo que estos detalles son manejables a través de un proceso conocido como abstracción.

Page 4: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

4

Simplificación a través de la abstracción

Tómese un momento para mirar alrededor de la habitación o aula en la que usted está leyendo este documento. Al principio, es posible que crea que realmente no hay muchas cosas que observar: algunos muebles, artefactos de iluminación, tal vez algunas plantas, obras de arte, incluso algunas personas o mascotas. Tal vez hay una ventana para mirar hacia afuera.

Ahora mire otra vez. Por cada cosa que ve, hay gran cantidad de detalles a observar: su tamaño, su color, su uso previsto, los componentes con que se han ensamblado (las patas de una mesa, la bombillas en una lámpara), etc. Además, cada uno de estos componentes a su vez tiene detalles asociados con ellos: el tipo de material utilizado para hacer las patas de la mesa (madera o metal), la potencia en vatios de las bombillas, etc… Piense incluso en más detalles que no se ven de estos objetos: de que se fabrican ellos, su composición química, molecular o genética.

Está claro que la cantidad de información a ser procesada por el cerebro es realmente impresionante. Para la gran mayoría de las personas, esto no representa un problema, porque somos innatamente expertos en la abstracción, un proceso que implica el reconocimiento y concentración en las características importantes de una situación u objeto, haciendo caso omiso de todos los detalles no esenciales.

Page 5: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

5

…Simplificación a través de la abstracción

Un ejemplo familiar de una abstracción es una hoja de ruta. Como abstracción, una hoja de ruta representa aquellas características de una determinada zona geográfica relevantes para alguien que trata de navegar con el mapa, quizás en coche: las principales carreteras y lugares de interés, obstáculos tales como grandes cuerpos de agua, etc. Por necesidad, una hoja de ruta no puede incluir todos los edificios, árbol, señal de tráfico, cartelera, semáforo, restaurante de comida rápida, etc. que existen físicamente en el mundo real. Si así fuera, entonces sería tan desordenada y virtualmente inutilizable pues ninguna de las características más importantes se destacarían.

Como otro ejemplo, considere un paisaje. Un artista puede mirar el paisaje desde la perspectiva de los colores, texturas y formas potenciales para un cuadro. Un constructor de viviendas puede ver el mismo paisaje desde la perspectiva del un mejor sitio para construcción y evaluaría la cantidad de árboles que tendrán que ser talados. Un ecólogo puede estudiar de cerca las distintas especies de árboles y otras plantas / animales por su diversidad biológica, con miras a preservar y protegerlos, mientras que un niño simplemente puede buscar en todos los árboles el mejor sitio para “armar una casa” y jugar.

Algunos elementos son comunes a todas las abstracciones: los tipos, tamaños y ubicaciones de los árboles, por ejemplo-, mientras que otros no son relevantes para todas las abstracciones.

Page 6: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

6

Organización de las abstracciones en clasificaciones jerárquicas.

A pesar de que nuestros cerebros son expertos en la abstracción de conceptos tales como mapas de carreteras y paisajes, todavía nos dejan con cientos de miles, sino de millones de abstracciones para tratar en nuestras vidas.

Para hacer frente a este aspecto de la complejidad, los seres humanos sistemáticamente organizan la información en categorías de acuerdo con los criterios establecidos; este proceso se conoce como clasificación.

Por ejemplo, la ciencia categoriza todos los objetos naturales como perteneciente a cualquiera de los reinos: animales, plantas o reino mineral.

Para que un objeto natural para ser clasificado como un animal, debe satisfacer las reglas siguientes:• Tiene que ser un ser vivo.• Debe ser capaz de hacer movimiento espontáneo.• Debe ser capaz de dar respuesta rápida a la estimulación.

Las reglas de una planta, por otro lado, son diferentes:• Debe ser un ser vivo (lo mismo que para un animal).• Debe carecen de un sistema nervioso.• Debe poseer paredes celulares de celulosa.

Page 7: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

7

… Organización de las abstracciones en clasificaciones jerárquicas

Ejemplo de una simple clasificación jerárquica de los objetos de la naturaleza

Cuando se piensa en una jerarquía, uno piensa en la parte baja de la jerarquía, casi de forma automática intenta reducir a cero los subárboles de la jerarquía, esa es una característica importante del pensamiento humano… por ejemplo si centra en los mamíferos temporalmente ignora el resto de la jerarquía.

Page 8: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

8

… Organización de las abstracciones en clasificaciones jerárquicas

El cerebro humano, reduce automáticamente el número de conceptos y evita malabarismos mentales casi en todo momento del mundo real. En nuestro simplista ejemplo, ahora estamos tratando con sólo 4 conceptos en lugar de los 13 originales. No importa cómo una jerarquía compleja crece, no tiene por qué abrumarnos si está correctamente organizado.

Precisar normas para clasificar correctamente un objeto dentro de una jerarquía no siempre es fácil. Tomemos, por ejemplo, las reglas que podríamos definir de qué constituye un pájaro:

• Tiene plumas• Tiene alas• Pone huevos• Es capaz de volar

Page 9: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

9

… Organización de las abstracciones en clasificaciones jerárquicas

Teniendo en cuenta estas reglas, ni un avestruz ni un pingüino podría ser clasificado como un pájaro, porque no puede volar

Page 10: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

10

… Organización de las abstracciones en clasificaciones jerárquicas

Si tratamos de hacer el conjunto de reglas menos restrictivas mediante la eliminación de la regla de volar, nos quedamos con• Tiene plumas• Tiene alas• Pone huevos

Page 11: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

11

… Organización de las abstracciones en clasificaciones jerárquicas

Este conjunto de reglas que se siguen parece innecesariamente complicado, porque al final resultó que, la regla "pone huevos“ es redundante: si la eliminamos, no parece influir en la decisión de lo que constituye un ave. Simplificando:• Tiene plumas• Tiene alas

Tratemos de llevar nuestro proceso de simplificación un paso más allá y vamos a la eliminación de una nueva norma, para dejar:• Tiene alas

… Hemos ido demasiado lejos esta vez: la abstracción de un pájaro es ahora tan general que íbamos a incluir aviones, insectos y todo tipo de otros elementos.

El proceso de definición de reglas para los fines de clasificación consiste en la "marcación" de un conjunto de reglas no demasiado generales, no demasiado restrictivas, y que no contienen redundancias para definir la pertenencia correcta a una clase en particular.

Page 12: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

12

… Organización de las abstracciones en clasificaciones jerárquicas

… tiene alashey! Se está

haciendo muy apretado aquí!

que te ha invitado?

Page 13: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

13

Abstracción como base del desarrollo del Software

Fijar los requisitos para un proyecto de desarrollo de sistemas, suele comenzar por reunir información sobre la situación del mundo real en el que el sistema se va a basar. Estos detalles son generalmente una combinación de:

• Aquellos que “aparecen” explícitamente al entrevistar a los posibles usuarios del sistema• Aquellos que de otro modo se pueden observar

Tenemos que hacer un juicio sobre cuál de estos detalles son relevantes para el propósito final del sistema. Esto es esencial, ya que no se puede automatizar todos. Incluir demasiados detalles es complicar excesivamente el sistema resultante y consecuentemente más difícil de diseñar, programar, probar, depurar, documentar, mantener y ampliar en el futuro.

Al igual que con todas las abstracciones, todas nuestras decisiones de inclusión o eliminación en la construcción de un sistema de software debe hacerse dentro del contexto de la finalidad general y el ámbito o tema importante a enfocar en el futuro sistema. Cuando se representa a una persona en un sistema de software, por ejemplo, ¿su color de ojos es importante? ¿Qué hay de su perfil genético? ¿Salario? ¿Hobbies?.

La respuesta es que cualquiera de estas características de una persona pueden ser relevantes o irrelevantes, dependiendo de si el sistema a desarrollar es de: Nómina, comercialización demografía, optometrista, pacientes ó más buscados por el FBI.

Page 14: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

14

Reutilización de las abstracciones

Cuando se aprende algo nuevo, automáticamente buscamos en nuestro archivo mental abstracciones / modelos que hemos construido anteriormente, para buscar similitudes que se puedan construir. Cuando se aprende a montar en bicicleta de dos ruedas por primera vez, por ejemplo, se puede recurrir a las lecciones donde aprendió a andar en triciclo de niños.

Ambos tienen manijas que se utilizan para dirigir; ambos tienen pedales que se utilizan para propulsar la bicicleta hacia adelante. A pesar de las abstracciones no se ha encontrado perfectamente una bicicleta de dos ruedas, por tanto, el reto es tener que equilibrar por sí mismo la bicicleta y aprovechar la experiencia de dirección y pedales que ya se había dominado con el triciclo… lo que queda es centrarse en el aprendizaje de la nueva habilidad de cómo mantener el equilibrio sobre dos ruedas.

Page 15: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

15

Reutilización de las abstracciones

Esta es una técnica de comparación de características para encontrar una abstracción bastante similar que pueda serreutilizada con éxito, se la conoce también conoce como la

coincidencia de patrones y reutilización.

La reutilización es una técnica importante para el desarrollo de software orientado a objetos,

ya que nos ahorra el tener que volver a inventar la rueda con cada proyecto nuevo. Si somos capaces de reutilizar

una abstracción o modelo de un proyecto anterior, podemos centrarnos en aquellos aspectos del nuevo

proyecto que difieren del anterior, ganando una tremenda cantidad de productividad en el proceso.

Page 16: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

16

Desafíos de las abstracción

A pesar del hecho de que la abstracción es un proceso tan natural para los seres humanos, en el desarrollo de un modelo apropiado para un sistema de software es quizás el aspecto más difícil de la ingeniería de software, porque:• Hay un número ilimitado de posibilidades. La abstracción es en cierta medida

relativa al ojo del espectador: varios observadores diferentes que trabajan de manera independiente es casi seguro que para llegar a diferentes modelos de que es lo mejor, muestren argumentos apasionados.

• Para complicar aún más las cosas, no hay prácticamente sólo un "mejor" o el modelo "correcto", sólo "mejor" o "peor“.

• Tenga en cuenta, sin embargo, que no hay tal cosa como un modelo incorrecto: que tergiversa la situación del mundo real (por ejemplo, el modelado de una persona que tiene dos diferentes tipos de sangre).

• No existe una prueba de fuego para determinar si un modelo ha capturado adecuadamente todos los requisitos de un usuario. La prueba definitiva de si existe o no una abstracción buena está en el éxito del sistema de software resultante.

• No queremos esperar hasta el final de un proyecto antes de saber que hemos ido por mal camino. Debido a esto, es imprescindible que aprendamos maneras de comunicar nuestro modelo de forma concisa y sin ambigüedades a las siguientes personas:

• Los futuros usuarios de nuestra aplicación, para que puedan proporcionar una comprobación de validez a nuestra comprensión del problema que hay que resolver antes de embarcarse en el desarrollo de software.

• Nuestros ingenieros de software, para que los miembros del equipo pueden compartir una visión común de lo que vamos a construir en colaboración

Page 17: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

17

La abstracción como buena base del modelado de software, TIPS

• La comprensión del dominio del problema: Lo ideal es que vamos a ser capaces de recurrir a nuestro propio mundo real de experiencias, como la experiencia anterior o actual como estudiante, que será muy útil para cuando se determinen los requisitos para un sistema de notas, por ejemplo.

• Creatividad: Tenemos que ser capaces de pensar "fuera de la caja", en el caso de los futuros usuarios entrevistados, ellos han estado inmersos en el área del problema durante tanto tiempo y quizá no ven innovaciones que se pueden hacer.

• Buenas habilidades de escucha: Los futuros usuarios del sistema describen cómo hacen su trabajo actual, o cómo se imaginan haciendo su trabajo en el futuro, con la ayuda del sistema que estamos a punto de desarrollar.

• Buenas habilidades de observación: Las acciones hablan más que las palabras. Sólo mediante la observación de los usuarios sobre su negocio diario, podemos recoger detalles esenciales que se han dejado de lado…, y es que ellos hacen su trabajo de manera tan rutinaria, casi como hábito.

• Se requiere un proceso organizado para determinar cuál es la abstracción, lo cual se consigue siguiendo una probada lista de pasos (metodoogía) para producir un modelo, y reducir en gran medida la probabilidad de que vamos a omitir alguna característica importante o descuidar un requisito fundamental.

• La abstracción es una manera de comunicar el modelo resultante en forma concisa y sin ambigüedades a nuestros compañeros los desarrolladores de software y a los usuarios potenciales de nuestra aplicación. Si bien es cierto es posible describir una abstracción en un texto narrativo, una imagen vale más que mil palabras, por lo que el lenguaje con el que nos comuniquemos es a menudo una notación gráfica. Una muy conocida es el Lenguaje de Modelado Unificado (UML)

Page 18: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

18

… La abstracción como buena base del modelado de software, TIPS

.

Page 19: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

19

Ejercicio 01

Dibuje una jerarquía de clases que se refiere a todas las clases siguientes de una manera razonable:• manzana• plátano• carne de res• bebida• queso• producto lácteos• alimento• fruta• judía verde• carne• leche• carne de cerdo• espinacas• vegetal

Justifique su respuesta, teniendo en cuenta los desafíos que enfrente mientras realiza éste ejercicio.

Page 20: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

20

Ejercicio 02

¿Qué aspectos de un aparato de televisión, sería importante desde la perspectiva de:?

• Un consumidor que desee comprar uno?• Un ingeniero responsable del diseño de uno?• La tienda que los vende?• El fabricante?

Page 21: Generalidades sobre la Abstracción

ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

21

Ejercicio 03

Seleccione un área de problema que le gustaría modelar desde una perspectiva orientada a objetos. Idealmente, puede ser un problema que usted esté interesado realmente en trabajar. Supongamos que usted va a escribir un programa para automatizar algunos aspectos y debe escribir un resumen de una página sobre los requisitos para este programa.

Asegúrese de que su primer párrafo resume la finalidad del sistema, ya que el primer párrafo es por ejemplo un sistema de calificaciones. Asimismo, destaque las exigencias funcionales, es decir, aquello que un usuario no técnico puede afirmar en cuanto a cómo debe comportarse el sistema.

Evite términos técnicos como por ejemplo: "Este sistema debe funcionar en una plataforma Windows NT, y debe usar el TCP / IP protocolo. . . "