Está en la página 1de 9

Nombre; Edgar López Cortés

Fecha; 23-enero-2016
Tema investigado; Abstracción de una problemática.

¿Qué es la abstracción?
La abstracción es la propiedad de los objetos que consiste en tener en cuenta
sólo los aspectos más importantes desde un punto de vista determinado y no
tener en cuenta los restantes aspectos.
El término abstracción que se suele utilizar en programación se refiere al
hecho de diferenciar entre las propiedades externas de una entidad y los
detalles de la composición interna de dicha entidad. Es la abstracción la que
permite ignorar los detalles internos de un dispositivo complejo tal como una
computadora, un automóvil, una lavadora o un horno de microondas, etc., y
usarlo como una única unidad comprensible.
Mediante la abstracción se diseñan y fabrican estos sistemas complejos en
primer lugar y, posteriormente, los componentes más pequeños de los cuales
están compuestos. Cada componente representa un nivel de abstracción en el
cual el uso del componente se aísla de los detalles de la composición interna
del componente.
La abstracción posee diversos grados denominados niveles de abstracción.

¿Para qué sirve la abstracción?
Gracias a la abstracción podemos representar las características esenciales de
un objeto sin preocuparnos de las restantes características (no esenciales). La
abstracción se centra en la vista externa de un objeto, de modo que sirva para
separar el comportamiento esencial de un objeto de su implementación.

Ejemplo de abstracción
En POO, podemos considerar una Persona como un objeto que tiene
propiedades (como nombre, altura, peso, color de pelo, color de ojos, etcétera)
y métodos (como hablar, mirar, andar, correr, parar, etcétera).
Gracias a la abstracción, otro objeto Tren puede manipular objetos Persona sin
tener en cuenta sus propiedades ni métodos ya que sólo le interesa, por

Una de las llaves a programar exitoso son el concepto de la abstracción. se tiene una abstracción de la memoria como un conjunto de celdas. Antecedentes: Sobre los últimos 50 años. es decir. calcular la cantidad de personas que están viajando en él en ese momento. La mayoría de los libros y el reglamento en la historia de programar los idiomas tienden a discutir los idiomas en términos de generaciones. Puntos a desarrollar. En sistemas sencillos. el color de ojos. Es importante entender por qué los idiomas han evolucionado. La abstracción es la llave a la construcción sistemas complejos de software. que almacenan simplemente números. sobre los que va a trabajar el programa. Primera Generación Al desarrollarse las primeras computadoras electrónicas. la necesidad para la abstracción dramáticamente aumentos. y por lo tanto manipula todas estructuras del programa y datos. se vio la necesidad de programarlas.ejemplo. o bien. el nombre. y que la memoria. característica de idiomas usados en el 1950s y '60s. y qué capacidades que los idiomas más nuevos nos dan. Las primeras se usaban como calculadoras simples. se les indicaban los pasos de cálculo. En este modelo. Como el tamaño de nuestros problemas crece. para describir este concepto de "programa almacenado". un solo programista podría entender el problema entero. ¿Cómo es que describimos un programa como números? Se tenía el problema de representar las acciones que iba a realizar la computadora. el programa en sí. tales como la altura. de almacenar en memoria la información sobre la tarea que iban a ejecutar. Estos números pueden representar dos cosas: los datos. solamente nos . John Von Neumann desarrolló el modelo que lleva su nombre. Los programistas son hoy incapaces de entender todos los programas y los datos . Esto es un arreglo útil para clasificar los idiomas por la edad. al estar compuesta por switches correspondientes al concepto de bit. uno por uno. etcétera. los idiomas que programan han evolucionado del código binario de máquina a herramientas poderosas que crean las abstracciones complejas. La abstracción se requiere a permitir que el programista para agarrar los conceptos necesarios.es apenas demasiado grande. sin tener en cuenta ninguna otra información relacionada con dichas personas.

pero no de Computación. muchas personas . y el aumento de poder del hardware. con el primer compilador de FORTRAN (FORmula TRANslation). y la facilidad de usar librerías que también son características de alto nivel. encargándose los compiladores o intérpretes de traducir el lenguaje de alto nivel. Química y otras ramas similares. 2 = RESTA. A partir de FORTRAN. el uso de la memoria. empezaron a entrar al uso de computadoras científicos de otras ramas. como su nombre indica. Segunda Generación El primer gran avance que se dio. fáciles de traducir al lenguaje de la máquina. que. y facilitar la vida al programador.permitía almacenar números binarios. aumentando la productividad. las cuales son sumamente sencillas. La solución que se tomó fue la siguiente: a cada acción que sea capaz de realizar nuestra computadora. 3 = MULTIPLICA. Sin embargo. etcétera. 4 = DIVIDE. al lenguaje de computadora. que siguen el mismo concepto: buscar la mayor abstracción posible. sin embargo. asociarle un número. inició como un "simple" esfuerzo de traducir un lenguaje de fórmulas. que son sumamente engorrosos y difíciles de detectar. pues debe bajar al nivel de la forma en que trabaja el CPU. al lenguaje ensamblador y por consiguiente al lenguaje de máquina. les era sumamente complicado trabajar con lenguaje Ensamblador en vez de fórmulas. Esto redujo los errores triviales. el nacimiento de las primeras herramientas automáticas para generar el código máquina. ellos conocían mucho de Física. aún aquí es fácil para el programador perderse y cometer errores de lógica. como ya se comentó. y requiere de un entendimiento apropiado de cómo funciona la máquina. que será su código de operación (opcode). pero fáciles de cometer. nació el concepto de Lenguaje de Alto Nivel. como podía ser el número que correspondía a una operación. se han desarrollado innumerables lenguajes. y con él. Mi ejemplo favorito es C: contiene estructuras de programación de alto nivel. fue diseñado con muy pocas instrucciones. Ensamblador). y entender bien todo lo que sucede dentro de él. una calculadora programable simple podría asignar los opcodes: 1 = SUMA. Por ello. Así. Hay que notar la existencia de lenguajes que combinan características de los de alto nivel y los de bajo nivel (es decir. Por ejemplo. fue la abstracción dada por el Lenguaje Ensamblador. Tercera Generación Con el desarrollo en los 50s y 60s de algoritmos de más elevado nivel. y por supuesto.

" Por la primera vez. Lenguajes como C++. La mayoría de los idiomas modernos son objetivas orientado. java y C# se llaman lenguajes orientadas al objeto. Ejemplo: Diferentes escalas en mapas. Los idiomas modernos.  Mediante la abstracción creamos MODELOS de la realidad. La llave es que usé el término "mundo verdadero. CARACTERISTICAS  Es una técnica para crear. . Lo nuevo de estas lenguajes son conceptos como clases. pero permite la implementación impuesta de restricciones en abstracciones. tal como C++ y Java. Cuarta Generación Los idiomas de la cuarta generación parecen según las instrucciones a las de la tercera generación. Quiero que mi solución sea orientado de problema. En este proceso de abstracción se considera que el resto de las partes ya han sido resueltas y por lo tanto pueden servir de apoyo para resolver la parte que recibe la atención. para que la solución refleje el mundo verdadero en términos de estructuras de datos y acceso a los datos. lenguajes de nivel medio. Desarrollo: La abstracción es una estrategia de resolución de problemas en la cual el programador se concentra en resolver una parte del problema ignorando completamente los detalles sobre cómo se resuelven el resto de las partes. objetos y eventos que permiten soluciones más fáciles y lógicos. no sólo permite las abstracciones.consideramos a lenguajes como C (que fue diseñado para hacer sistemas operativos). puedo limitar el acceso para modelar las restricciones de mundo verdadero en datos. Además. comprender o manejar sistemas complejos.  En cada nivel de detalle cierta información se muestra y cierta información se omite. que permite que mí modele el mundo verdadero que usa mi idioma. Yo también puedo aplicar directamente y para poder modelar objetos de mundo verdadero usando las clases (en C + + o Java). yo modelo mi solución en términos del problema.

resulta natural resolver cada uno de ellos en una función o un procedimiento. su complejidad (dada por su tamaño y número de variables) será inferior a la complejidad del mismo problema resuelto por medio de un solo procedimiento. LENGUAJES DE PROGRAMACIÓN Y NIVELES DE ABSTRACCIÓN  LOS LENGUAJES DE PROGRAMACIÓN PROPORCIONAN ABSTRACCIONES Espacio del problema  Lenguajes Orientados a Objetos (LOO)  LOO Puros  Smalltalk  Eiffel Espacio de la solución  Lenguajes Ensamblador Lenguajes Imperativos (C. Como los subproblemas son más sencillos que el problema original.… MECANISMOS DE ABSTRACCIÓN EN LOS LENGUAJES DE PROGRAMACIÓN Los diferentes niveles de abstracción ofertados por un lenguaje. Object Pascal. Una vez hecha la descomposición en subproblemas. BASIC)  Lenguajes Específicos (LISP. desde los que se puede abordar una aplicación. PROLOG) LOO Híbridos (Multiparadigma) C++. Fortran. Java. dependen de los mecanismos proporcionados por el lenguaje elegido: .

Perspectiva funcional  Ensamblador  Procedimientos  Módulos Perspectiva de datos  Paquetes  Tipos abstractos de datos (TAD) Perspectiva de servicios  Objetos :  TAD  + paso de mensajes  + herencia  + polimorfismo MECANISMOS DE ABSTRACCIÓN EN LOS LENGUAJES DE PROGRAMACIÓN OCULTACIÓN DE INFORMACIÓN:  Omisión intencionada de detalles de implementación tras una interfaz simple.  Cuando además existe una división estricta entre la vista interna de un componente (objeto) y su vista externa hablamos de ENCAPSULACIÓN. Estas dos vistas son: .

Vista interna  Favorece la intercambiabilidad. "acabamos de escribir una versión de Beta y el cliente entonces pueden decir nosotros lo que ellos quieren realmente. El lenguaje Smalltalk [GR-83] ha causado gran revuelo. Pero conforme avanza la tecnología de computadores es necesario crear programas cada vez más sofisticados. y más en el modelando herramientas. Otros logros lo constituyen los llamados lenguajes de cuarta generación. y que implica una nueva manera de diseñar programas. producirá arquitectónico y los modelos del diseño y la estructura de nuestro código. La salida del modelando herramienta producirá mucho de nuestro código para nosotros." son pasados. que tiene como requisito la abstracción de datos. Los días de decir. hasta tal punto que existen compiladores para lenguajes como C++ [Str-86]. Vista externa  IMPLEMENTACIÓN: CÓMO lo hace. para ser utilizados en el quehacer diario de las empresas. Proyeccion a futuro: Lo que veremos en el futuro es menos dependencia en el idioma.  Favorece la comunicación entre miembros del equipo de desarrollo y la interconexión de los artefactos resultantes del trabajo de cada miembro. La ingeniería de sistemas de información ha progresado gracias a la introducción de nuevas técnicas para construir programas. Cuando los problemas diarios que resolvemos llegan a ser más grande. en el muy menos. (Una excelente discusión de . En la última década ha tomado gran auge el uso de la programación por objetos. tal como el Unificado Modelando el Idioma (UML). que permiten desarrollar sistemas de información en un lenguaje muy especializado. que complementa a la programación estructurada. El primer gran avance lo constituye la programación modular. INTERFAZ: QUÉ sabe hacer el objeto. nosotros tenemos cada vez menos tiempo "volver a hacer" el código. Esto producirá un diseño (y posiblemente código) eso puede ser validado por el cliente antes de completar la implementación y probar. que han sacado la programación por objetos de los laboratorios de investigación.

CONCLUSIONES. paginas WEB visitadas) .. además es una herramienta muy potente en programación. añadir o eliminar un objeto nuevo será más fácil y se realizará con muy poco esfuerzo. revista. La abstracción me parece una estrategia de programación muy importante y muy interesante en computación. cuáles son las partes del problema. construir o comprender. Además debemos saber que la clave de la programación orientada a objetos está en abstraer los métodos y los datos comunes a un conjunto de objetos y agruparlos en una clase y que gracias al conocimiento y dominio de la abstracción. ya que con ella se puede reducir considerablemente el trabajo además la programación orientada a objetos y además aporta elementos para abstraer el problema. generalizar y obtener una visión global del tema. Además mediante la abstracción se diseñan y fabrican estos sistemas complejos que resuelven muchos problemas. ya que sin la abstracción las personas serían incapaces de realizar y resolver los problemas complejos ni descubrir. libro. También otro concepto importante es que expresa las características esenciales de un objeto de las no esenciales dentro de un objeto. A través de la abstracción también podemos extraer las cualidades principales sin detenernos en los detalles además conseguimos a partir de un tema determinado. modificar.los alcances de la programación por objetos puede encontrarse en [Str-88]). las cuales distinguen al objetode los demás y que se puede decir que si el objeto tiene más características de las necesarias los será dificil de usar. Bibliografía: (Fuente de información.

di-mare.6.pdf http://alvenfur.ua.pdf http://assets.mheducation.blogspot.es/bcv/guide/capitulo/844814645X.upm.htm .mx/2009/05/la-abstraccion-en-poo.html http://users.uchile.cl/~lmateu/CC10A/Apuntes/abs/ http://rua.com/adolfo/p/oop-adt.dcc.http://ocw.es/ciencia-de-la-computacion-e-inteligenciaartificial/fundamentosprogramacion/contenidosteoricos/ocwfundamentosprogramaciontema1.es/dspace/bitstream/10045/12188/1/1-IntroPOO-v0.pdf http://www.