Vous êtes sur la page 1sur 21

(http://faccilearn.uleam.edu.ec/course/view.php?

id=67)

CURSO DE ESTRUCTURAS DE DATOS

Universidad Laica ELOY ALFARO de Manab *ULEAM* http://www.uleam.edu.ec Facultad de Ciencias Informticas *FACCI* www.facci.ec Docentes: Ing. Jorge Pincay Ponce Ing. Jacinto Reyes Crdenas Periodo Lectivo: 2012 - 2013
1
ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

Abstraccin

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

Abstraccin
Como seres humanos, estamos inundados de informacin cada da de nuestras vidas. Incluso si pudiramos desactivar temporalmente todas las fuentes de "informacin electrnica" que constantemente nos bombardean -correos electrnicos, mensajes de voz, programas de noticias, y similares-, nuestros cinco sentidos recogeran millones de bits de informacin por da. Darle sentido a todo esta informacin es abrumador. Nuestro cerebro naturalmente simplifica los detalles de todo lo que observamos de modo que estos detalles son manejables a travs de un proceso conocido como abstraccin.

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

Simplificacin a travs de la abstraccin


Tmese un momento para mirar alrededor de la habitacin 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 iluminacin, 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 tamao, su color, su uso previsto, los componentes con que se han ensamblado (las patas de una mesa, la bombillas en una lmpara), etc. Adems, 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 ms detalles que no se ven de estos objetos: de que se fabrican ellos, su composicin qumica, molecular o gentica. Est claro que la cantidad de informacin a ser procesada por el cerebro es realmente impresionante. Para la gran mayora de las personas, esto no representa un problema, porque somos innatamente expertos en la abstraccin, un proceso que implica el reconocimiento y concentracin en las caractersticas importantes de una situacin u objeto, haciendo caso omiso de todos los detalles no esenciales.
4
ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

Simplificacin a travs de la abstraccin


Un ejemplo familiar de una abstraccin es una hoja de ruta. Como abstraccin, una hoja de ruta representa aquellas caractersticas de una determinada zona geogrfica relevantes para alguien que trata de navegar con el mapa, quizs en coche: las principales carreteras y lugares de inters, obstculos tales como grandes cuerpos de agua, etc. Por necesidad, una hoja de ruta no puede incluir todos los edificios, rbol, seal de trfico, cartelera, semforo, restaurante de comida rpida, etc. que existen fsicamente en el mundo real. Si as fuera, entonces sera tan desordenada y virtualmente inutilizable pues ninguna de las caractersticas ms importantes se destacaran. 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 construccin y evaluara la cantidad de rboles que tendrn que ser talados. Un eclogo puede estudiar de cerca las distintas especies de rboles y otras plantas / animales por su diversidad biolgica, con miras a preservar y protegerlos, mientras que un nio 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, tamaos y ubicaciones de los rboles, por ejemplo-, mientras que otros no son relevantes para todas las abstracciones.

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

Organizacin de las abstracciones en clasificaciones jerrquicas.


A pesar de que nuestros cerebros son expertos en la abstraccin de conceptos tales como mapas de carreteras y paisajes, todava 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 sistemticamente organizan la informacin en categoras de acuerdo con los criterios establecidos; este proceso se conoce como clasificacin.

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 espontneo. Debe ser capaz de dar respuesta rpida a la estimulacin. 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.

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

Organizacin de las abstracciones en clasificaciones jerrquicas


Ejemplo de una simple clasificacin jerrquica de los objetos de la naturaleza

Cuando se piensa en una jerarqua, uno piensa en la parte baja de la jerarqua, casi de forma automtica intenta reducir a cero los subrboles de la jerarqua, esa es una caracterstica importante del pensamiento humano por ejemplo si centra en los mamferos temporalmente ignora el resto de la jerarqua.

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

Organizacin de las abstracciones en clasificaciones jerrquicas


El cerebro humano, reduce automticamente el nmero de conceptos y evita malabarismos mentales casi en todo momento del mundo real. En nuestro simplista ejemplo, ahora estamos tratando con slo 4 conceptos en lugar de los 13 originales. No importa cmo una jerarqua compleja crece, no tiene por qu abrumarnos si est correctamente organizado. Precisar normas para clasificar correctamente un objeto dentro de una jerarqua no siempre es fcil. Tomemos, por ejemplo, las reglas que podramos definir de qu constituye un pjaro: Tiene plumas Tiene alas Pone huevos Es capaz de volar

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

Organizacin de las abstracciones en clasificaciones jerrquicas


Teniendo en cuenta estas reglas, ni un avestruz ni un pingino podra ser clasificado como un pjaro, porque no puede volar

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

Organizacin de las abstracciones en clasificaciones jerrquicas


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

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

Organizacin de las abstracciones en clasificaciones jerrquicas


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 decisin de lo que constituye un ave. Simplificando: Tiene plumas Tiene alas Tratemos de llevar nuestro proceso de simplificacin un paso ms all y vamos a la eliminacin de una nueva norma, para dejar: Tiene alas Hemos ido demasiado lejos esta vez: la abstraccin de un pjaro es ahora tan general que bamos a incluir aviones, insectos y todo tipo de otros elementos. El proceso de definicin de reglas para los fines de clasificacin consiste en la "marcacin" 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.
11
ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

Organizacin de las abstracciones en clasificaciones jerrquicas


tiene alas hey! Se est haciendo muy apretado aqu!

12

que te ha invitado?

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

Abstraccin como base del desarrollo del Software


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

Aquellos que aparecen explcitamente al entrevistar a los posibles usuarios del sistema Aquellos que de otro modo se pueden observar
Tenemos que hacer un juicio sobre cul de estos detalles son relevantes para el propsito final del sistema. Esto es esencial, ya que no se puede automatizar todos. Incluir demasiados detalles es complicar excesivamente el sistema resultante y consecuentemente ms difcil de disear, programar, probar, depurar, documentar, mantener y ampliar en el futuro. Al igual que con todas las abstracciones, todas nuestras decisiones de inclusin o eliminacin en la construccin 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 gentico? Salario? Hobbies?. La respuesta es que cualquiera de estas caractersticas de una persona pueden ser relevantes o irrelevantes, dependiendo de si el sistema a desarrollar es de: Nmina, comercializacin demografa, optometrista, pacientes ms buscados por el FBI.

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

Reutilizacin de las abstracciones


Cuando se aprende algo nuevo, automticamente 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 nios. 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 direccin y pedales que ya se haba dominado con el triciclo lo que queda es centrarse en el aprendizaje de la nueva habilidad de cmo mantener el equilibrio sobre dos ruedas.

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

Reutilizacin de las abstracciones

Esta es una tcnica de comparacin de caractersticas para encontrar una abstraccin bastante similar que pueda ser reutilizada con xito, se la conoce tambin conoce como la coincidencia de patrones y reutilizacin. La reutilizacin es una tcnica 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 abstraccin 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.

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

Desafos de las abstraccin


A pesar del hecho de que la abstraccin es un proceso tan natural para los seres humanos, en el desarrollo de un modelo apropiado para un sistema de software es quizs el aspecto ms difcil de la ingeniera de software, porque: Hay un nmero ilimitado de posibilidades. La abstraccin 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 an ms las cosas, no hay prcticamente slo un "mejor" o el modelo "correcto", slo "mejor" o "peor. Tenga en cuenta, sin embargo, que no hay tal cosa como un modelo incorrecto: que tergiversa la situacin 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 abstraccin 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 ambigedades a las siguientes personas:

16

Los futuros usuarios de nuestra aplicacin, para que puedan proporcionar una comprobacin de validez a nuestra comprensin 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 visin comn de lo que vamos a construir en colaboracin

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

La abstraccin como buena base del modelado de software, TIPS


La comprensin 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 cmo hacen su trabajo actual, o cmo se imaginan haciendo su trabajo en el futuro, con la ayuda del sistema que estamos a punto de desarrollar. Buenas habilidades de observacin: Las acciones hablan ms que las palabras. Slo mediante la observacin 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 hbito. Se requiere un proceso organizado para determinar cul es la abstraccin, lo cual se consigue siguiendo una probada lista de pasos (metodooga) para producir un modelo, y reducir en gran medida la probabilidad de que vamos a omitir alguna caracterstica importante o descuidar un requisito fundamental. La abstraccin es una manera de comunicar el modelo resultante en forma concisa y sin ambigedades a nuestros compaeros los desarrolladores de software y a los usuarios potenciales de nuestra aplicacin. Si bien es cierto es posible describir una abstraccin en un texto narrativo, una imagen vale ms que mil palabras, por lo que el lenguaje con el que nos comuniquemos es a menudo una notacin grfica. Una muy conocida es el Lenguaje de Modelado Unificado (UML)

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

La abstraccin como buena base del modelado de software, TIPS


.

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

Ejercicio 01
Dibuje una jerarqua de clases que se refiere a todas las clases siguientes de una manera razonable: manzana pltano carne de res bebida queso producto lcteos alimento fruta juda verde carne leche carne de cerdo espinacas vegetal Justifique su respuesta, teniendo en cuenta los desafos que enfrente mientras realiza ste ejercicio.
19
ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS - ESTRUCTURAS DE DATOS

Ejercicio 02
Qu aspectos de un aparato de televisin, sera importante desde la perspectiva de:?

Un consumidor que desee comprar uno? Un ingeniero responsable del diseo de uno? La tienda que los vende? El fabricante?

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

Ejercicio 03
Seleccione un rea de problema que le gustara 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 pgina sobre los requisitos para este programa. Asegrese de que su primer prrafo resume la finalidad del sistema, ya que el primer prrafo es por ejemplo un sistema de calificaciones. Asimismo, destaque las exigencias funcionales, es decir, aquello que un usuario no tcnico puede afirmar en cuanto a cmo debe comportarse el sistema.

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

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

Vous aimerez peut-être aussi