Sunteți pe pagina 1din 9

Nombre; Edgar Lpez Corts

Fecha; 23-enero-2016
Tema investigado; Abstraccin de una problemtica.

Qu es la abstraccin?
La abstraccin es la propiedad de los objetos que consiste en tener en cuenta
slo los aspectos ms importantes desde un punto de vista determinado y no
tener en cuenta los restantes aspectos.
El trmino abstraccin que se suele utilizar en programacin se refiere al
hecho de diferenciar entre las propiedades externas de una entidad y los
detalles de la composicin interna de dicha entidad. Es la abstraccin la que
permite ignorar los detalles internos de un dispositivo complejo tal como una
computadora, un automvil, una lavadora o un horno de microondas, etc., y
usarlo como una nica unidad comprensible.
Mediante la abstraccin se disean y fabrican estos sistemas complejos en
primer lugar y, posteriormente, los componentes ms pequeos de los cuales
estn compuestos. Cada componente representa un nivel de abstraccin en el
cual el uso del componente se asla de los detalles de la composicin interna
del componente.
La abstraccin posee diversos grados denominados niveles de abstraccin.

Para qu sirve la abstraccin?


Gracias a la abstraccin podemos representar las caractersticas esenciales de
un objeto sin preocuparnos de las restantes caractersticas (no esenciales). La
abstraccin se centra en la vista externa de un objeto, de modo que sirva para
separar el comportamiento esencial de un objeto de su implementacin.

Ejemplo de abstraccin
En POO, podemos considerar una Persona como un objeto que tiene
propiedades (como nombre, altura, peso, color de pelo, color de ojos, etctera)
y mtodos (como hablar, mirar, andar, correr, parar, etctera).
Gracias a la abstraccin, otro objeto Tren puede manipular objetos Persona sin
tener en cuenta sus propiedades ni mtodos ya que slo le interesa, por

ejemplo, calcular la cantidad de personas que estn viajando en l en ese


momento, sin tener en cuenta ninguna otra informacin relacionada con dichas
personas, tales como la altura, el nombre, el color de ojos, etctera.

Puntos a desarrollar;
Antecedentes:
Sobre los ltimos 50 aos, los idiomas que programan han evolucionado del
cdigo binario de mquina a herramientas poderosas que crean las abstracciones
complejas. Es importante entender por qu los idiomas han evolucionado, y qu
capacidades que los idiomas ms nuevos nos dan.
Una de las llaves a programar exitoso son el concepto de la abstraccin. La
abstraccin es la llave a la construccin sistemas complejos de software. Como el
tamao de nuestros problemas crece, la necesidad para la abstraccin
dramticamente aumentos. En sistemas sencillos, caracterstica de idiomas
usados en el 1950s y '60s, un solo programista podra entender el problema
entero, y por lo tanto manipula todas estructuras del programa y datos. Los
programistas son hoy incapaces de entender todos los programas y los datos - es
apenas demasiado grande. La abstraccin se requiere a permitir que el
programista para agarrar los conceptos necesarios.
La mayora de los libros y el reglamento en la historia de programar los idiomas
tienden a discutir los idiomas en trminos de generaciones. Esto es un arreglo til
para clasificar los idiomas por la edad.

Primera Generacin
Al desarrollarse las primeras computadoras electrnicas, se vio la necesidad de
programarlas, es decir, de almacenar en memoria la informacin sobre la tarea
que iban a ejecutar. Las primeras se usaban como calculadoras simples; se les
indicaban los pasos de clculo, uno por uno.
John Von Neumann desarroll el modelo que lleva su nombre, para describir este
concepto de "programa almacenado". En este modelo, se tiene una abstraccin de
la memoria como un conjunto de celdas, que almacenan simplemente nmeros.
Estos nmeros pueden representar dos cosas: los datos, sobre los que va a
trabajar el programa; o bien, el programa en s.
Cmo es que describimos un programa como nmeros? Se tena el problema de
representar las acciones que iba a realizar la computadora, y que la memoria, al
estar compuesta por switches correspondientes al concepto de bit, solamente nos

permita almacenar nmeros binarios.


La solucin que se tom fue la siguiente: a cada accin que sea capaz de realizar
nuestra computadora, asociarle un nmero, que ser su cdigo de operacin
(opcode). Por ejemplo, una calculadora programable simple podra asignar los
opcodes:
1 = SUMA, 2 = RESTA, 3 = MULTIPLICA, 4 = DIVIDE.

Segunda Generacin
El primer gran avance que se dio, como ya se coment, fue la abstraccin dada
por el Lenguaje Ensamblador, y con l, el nacimiento de las primeras
herramientas automticas para generar el cdigo mquina. Esto redujo los errores
triviales, como poda ser el nmero que corresponda a una operacin, que son
sumamente engorrosos y difciles de detectar, pero fciles de cometer. Sin
embargo, an aqu es fcil para el programador perderse y cometer errores de
lgica, pues debe bajar al nivel de la forma en que trabaja el CPU, y entender
bien todo lo que sucede dentro de l.

Tercera Generacin
Con el desarrollo en los 50s y 60s de algoritmos de ms elevado nivel, y el
aumento de poder del hardware, empezaron a entrar al uso de computadoras
cientficos de otras ramas; ellos conocan mucho de Fsica, Qumica y otras
ramas similares, pero no de Computacin, y por supuesto, les era sumamente
complicado trabajar con lenguaje Ensamblador en vez de frmulas. As, naci el
concepto de Lenguaje de Alto Nivel, con el primer compilador de FORTRAN
(FORmula TRANslation), que, como su nombre indica, inici como un "simple"
esfuerzo de traducir un lenguaje de frmulas, al lenguaje ensamblador y por
consiguiente al lenguaje de mquina. A partir de FORTRAN, se han desarrollado
innumerables lenguajes, que siguen el mismo concepto: buscar la mayor
abstraccin posible, y facilitar la vida al programador, aumentando la
productividad, encargndose los compiladores o intrpretes de traducir el
lenguaje de alto nivel, al lenguaje de computadora.
Hay que notar la existencia de lenguajes que combinan caractersticas de los de
alto nivel y los de bajo nivel (es decir, Ensamblador). Mi ejemplo favorito es C:
contiene estructuras de programacin de alto nivel, y la facilidad de usar libreras
que tambin son caractersticas de alto nivel; sin embargo, fue diseado con muy
pocas instrucciones, las cuales son sumamente sencillas, fciles de traducir al
lenguaje de la mquina; y requiere de un entendimiento apropiado de cmo
funciona la mquina, el uso de la memoria, etctera. Por ello, muchas personas

consideramos a lenguajes como C (que fue diseado para hacer sistemas


operativos), lenguajes de nivel medio.

Cuarta Generacin
Los idiomas de la cuarta generacin parecen segn las instrucciones a las de la
tercera generacin. Lo nuevo de estas lenguajes son conceptos como clases,
objetos y eventos que permiten soluciones ms fciles y lgicos. Lenguajes como
C++, java y C# se llaman lenguajes orientadas al objeto.
Los idiomas modernos, tal como C++ y Java, no slo permite las
abstracciones, pero permite la implementacin impuesta de restricciones en
abstracciones. La mayora de los idiomas modernos son objetivas orientado, que
permite que m modele el mundo verdadero que usa mi idioma. Adems, puedo
limitar el acceso para modelar las restricciones de mundo verdadero en datos. La
llave es que us el trmino "mundo verdadero." Por la primera vez, yo modelo mi
solucin en trminos del problema. Quiero que mi solucin sea orientado de
problema, para que la solucin refleje el mundo verdadero en trminos de
estructuras de datos y acceso a los datos. Yo tambin puedo aplicar directamente
y para poder modelar objetos de mundo verdadero usando las clases (en C + + o
Java).

Desarrollo:
La abstraccin es una estrategia de resolucin de problemas en la cual el
programador se concentra en resolver una parte del
problema ignorando completamente los detalles sobre cmo se resuelven el
resto de las partes. En este proceso de abstraccin 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 atencin.
CARACTERISTICAS
Es una tcnica para crear, comprender o manejar sistemas complejos.
En cada nivel de detalle cierta informacin se muestra y cierta
informacin se omite. Ejemplo: Diferentes escalas en mapas.
Mediante la abstraccin creamos MODELOS de la realidad.

Una vez hecha la descomposicin en subproblemas, resulta natural


resolver cada uno de ellos en una funcin o un procedimiento. Como los
subproblemas son ms sencillos que el problema original, su
complejidad (dada por su tamao y nmero de variables) ser inferior a
la complejidad del mismo problema resuelto por medio de un solo
procedimiento.

LENGUAJES DE PROGRAMACIN Y NIVELES DE ABSTRACCIN


LOS LENGUAJES DE PROGRAMACIN PROPORCIONAN
ABSTRACCIONES
Espacio del problema
Lenguajes Orientados a Objetos (LOO)
LOO Puros
Smalltalk
Eiffel
Espacio de la solucin
Lenguajes Ensamblador Lenguajes Imperativos (C, Fortran, BASIC)
Lenguajes Especficos (LISP, PROLOG)
LOO Hbridos (Multiparadigma) C++, Object Pascal, Java,

MECANISMOS DE ABSTRACCIN EN LOS LENGUAJES DE


PROGRAMACIN
Los diferentes niveles de abstraccin ofertados por un lenguaje, desde los que
se puede abordar una aplicacin, dependen de los mecanismos proporcionados
por el lenguaje elegido:

Perspectiva funcional
Ensamblador
Procedimientos
Mdulos

Perspectiva de datos
Paquetes
Tipos abstractos de datos (TAD)
Perspectiva de servicios
Objetos :
TAD
+ paso de mensajes
+ herencia

+ polimorfismo
MECANISMOS DE ABSTRACCIN EN LOS LENGUAJES DE
PROGRAMACIN
OCULTACIN DE INFORMACIN:
Omisin intencionada de detalles de implementacin tras una interfaz
simple.
Cuando adems existe una divisin estricta entre la vista interna de un
componente (objeto) y su vista externa hablamos de
ENCAPSULACIN. Estas dos vistas son:

INTERFAZ: QU sabe hacer el objeto. Vista externa


IMPLEMENTACIN: CMO lo hace. Vista interna
Favorece la intercambiabilidad.

Favorece la comunicacin entre miembros del equipo de desarrollo y la


interconexin de los artefactos resultantes del trabajo de cada miembro.

Proyeccion a futuro:
Lo que veremos en el futuro es menos dependencia en el idioma, y ms en el
modelando herramientas, tal como el Unificado Modelando el Idioma
(UML). La salida del modelando herramienta producir mucho de nuestro
cdigo para nosotros; en el muy menos, producir arquitectnico y los
modelos del diseo y la estructura de nuestro cdigo.
Esto producir un diseo (y posiblemente cdigo) eso puede ser validado por
el cliente antes de completar la implementacin y probar. Cuando los
problemas diarios que resolvemos llegan a ser ms grande, nosotros tenemos
cada vez menos tiempo "volver a hacer" el cdigo. Los das de decir,
"acabamos de escribir una versin de Beta y el cliente entonces pueden decir
nosotros lo que ellos quieren realmente," son pasados.
La ingeniera de sistemas de informacin ha progresado gracias a la
introduccin de nuevas tcnicas para construir programas. El primer gran
avance lo constituye la programacin modular, que complementa a la
programacin estructurada. Otros logros lo constituyen los llamados lenguajes
de cuarta generacin, que permiten desarrollar sistemas de informacin en un
lenguaje muy especializado.
Pero conforme avanza la tecnologa de computadores es necesario crear
programas cada vez ms sofisticados. En la ltima dcada ha tomado gran
auge el uso de la programacin por objetos, que tiene como requisito la
abstraccin de datos, y que implica una nueva manera de disear programas.
El lenguaje Smalltalk [GR-83] ha causado gran revuelo, hasta tal punto que
existen compiladores para lenguajes como C++ [Str-86], que han sacado la
programacin por objetos de los laboratorios de investigacin, para ser
utilizados en el quehacer diario de las empresas. (Una excelente discusin de

los alcances de la programacin por objetos puede encontrarse en [Str-88]).

CONCLUSIONES;
La abstraccin me parece una estrategia de programacin muy importante y
muy interesante en computacin, ya que sin la abstraccin las personas seran
incapaces de realizar y resolver los problemas complejos ni descubrir, cules
son las partes del problema. Adems mediante la abstraccin se disean y
fabrican estos sistemas complejos que resuelven muchos problemas.
A travs de la abstraccin tambin podemos extraer las cualidades principales
sin detenernos en los detalles adems conseguimos a partir de un tema
determinado, generalizar y obtener una visin global del tema, adems es una
herramienta muy potente en programacin, ya que con ella se puede reducir
considerablemente el trabajo adems la programacin orientada a objetos y
adems aporta elementos para abstraer el problema..
Adems debemos saber que la clave de la programacin orientada a objetos
est en abstraer los mtodos y los datos comunes a un conjunto de objetos y
agruparlos en una clase y que gracias al conocimiento y dominio de la
abstraccin, aadir o eliminar un objeto nuevo ser ms fcil y se realizar
con muy poco esfuerzo.
Tambin otro concepto importante es que expresa las caractersticas esenciales
de un objeto de las no esenciales dentro de un objeto, las cuales distinguen al
objetode los dems y que se puede decir que si el objeto tiene ms
caractersticas de las necesarias los ser dificil de usar, modificar, construir o
comprender.

Bibliografa: (Fuente de informacin; libro, revista, paginas


WEB visitadas)

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

S-ar putea să vă placă și