2. ¿Qué es?
• Es un proceso mental humano que sirve para desglosar un
problema que debe ser asimilado por la persona en cuestión.
• La abstracción sirve para clasificar distintos fenómenos en
similitudes con el animo de reconocerlas identificarlas y
entenderlas.
• Un ejemplo de esta clasificación es la manera en la que están
divididos los seres vivos según sus hábitos, entorno y
características en general.
– Se buscan todos aquellos elementos relevantes de acuerdo al nivel e
abstracción que estemos observando.
– Los demás aspectos puede que no sean relevantes en un nivel, pero
sean necesario en otro nivel.
11/7/202
3
Propiedad intelectual de la UNIVERSIDAD PILOTO DE COLOMBIA® - Año 2017
2
3. ¿Qué relación tiene con la programación?
• El software puede ser un elemento bastante complejo de
estudiar y peor aun de construir.
• Por este motivo se necesita de un método jerárquico para
clasificar su funcionamiento, abordaje, propuesta de solución,
etc.
• De alguna manera se debe poder minimizar el impacto del
gran numero de detalles que tiene que cumplir un software y
esto se logra a través de la abstracción.
11/7/202
3
Propiedad intelectual de la UNIVERSIDAD PILOTO DE COLOMBIA® - Año 2017
3
4. Lo que se ha Logrado en Programación Usando
Abstracción
• La creación de lenguajes de alto nivel, que permiten
simplificar la construcción de software, evitando al lenguaje
ensamblador.
• Independiente de la arquitectura disponible, los lenguajes de
programación también permiten correr distintos programas
en distintos tipos de maquina.
• La forma en la que se ejecutan las instrucciones permiten que
el programador se centre en tareas lógicas de construcción de
software en vez de pensar en como desplegarlas en una
maquina determinada.
11/7/202
3
Propiedad intelectual de la UNIVERSIDAD PILOTO DE COLOMBIA® - Año 2017
4
5. Programación Funcional
• En una edad muy temprana, los lenguajes de alto nivel ya
incluyen la posibilidad de programar segmentos de código
que se ejecutan o que se ejecutan y devuelven un valor. A ello
se le conoce como procedimientos y funciones
respectivamente.
• Con ello se gana en que hay programadores saben que deben
agregar a las funciones y procedimientos para obtener un
resultado determinado, pero no tiene por que saber como se
obtiene.
• Algo similar ocurre con los tipos de datos clásicos como char,
integer o boolean, que representan un tipo particular de bits,
pero el programador no necesita saber como se crean o se
manejan directamente.
11/7/202
3
Propiedad intelectual de la UNIVERSIDAD PILOTO DE COLOMBIA® - Año 2017
5
6. Tipos de Datos Enumerados y Estructurados
• Otra base que la que cuentan los lenguajes de programación
para facilitar la construcción de soluciones son estos dos
tipos.
• Por su parte los enumerados permiten definir el dominio de
posibles valores que puede tomar una variable.
– Por ejemplo se sabe que un dia de la semana puede ser entre lunes y
Domingo o entre 1 y 7 y no podrá disminuir o sobrepasar este rango.
• Un tipo estructurado representa la asociación que tienen los
datos en un registro y mediante el uso de índices permite la
recuperación de la información asociada a estos.
11/7/202
3
Propiedad intelectual de la UNIVERSIDAD PILOTO DE COLOMBIA® - Año 2017
6
7. Representación y Uso
• Los lenguajes contienen en un su seno una serie de
definiciones estándar de tipos de variables, pero están
condicionadas precisamente a estos estándares, en
funcionamiento y posterior uso.
• El programador a partir de estos tipos básicos, puede
construir estructuras que le permitan abordar problemas mas
complejos usando una metodología similar a la POO.
– Se definen las correspondientes propiedades.
– Se definen las acciones o métodos que son propias de la clase que se
esta definiendo.
• Solo hasta que se obtienen los resultados es posible evaluar si
el nivel de abstracción usado es el adecuado.
11/7/202
3
Propiedad intelectual de la UNIVERSIDAD PILOTO DE COLOMBIA® - Año 2017
7
12. Ejemplo
• A diferencia de las bases de datos, los lenguajes de
programación no definen el uso de variable tipo fecha.
• ¿De que se compone una fecha?
• ¿Qué operaciones se pueden llevar a cabo con este tipo?
• ¿De que nos serviría definir un tipo fecha en el código de un
programa?
11/7/202
3
Propiedad intelectual de la UNIVERSIDAD PILOTO DE COLOMBIA® - Año 2017
12
13. Implicaciones
• De la definición de un tipo de datos anterior se derivan las
definiciones asociadas a la POO.
– Encapsulación.
– Ocultación de datos.
– Herencia
– Polimorfismo.
• Internamente no necesitamos saber como están definidos
estos tipos y que datos deberíamos suministrarles para
obtener por ejemplo un resultado como la fecha actual, hora
actual, etc.
11/7/202
3
Propiedad intelectual de la UNIVERSIDAD PILOTO DE COLOMBIA® - Año 2017
13
14. Implicaciones
• El énfasis se desplaza de los valores a las posibles
operaciones.
• Debería disponerse de una forma de construir estos tipos de
datos, ya que el lenguaje por si solo no lo permite. Por
ejemplo instanciar.
• Se debe disponer (y es muy importante) de dos tipos de
documentación:
– La especificación: Que se puede y que no se puede hacer.
– La implementación: La forma en la que fue construida la solución
desde la perspectiva interna.
11/7/202
3
Propiedad intelectual de la UNIVERSIDAD PILOTO DE COLOMBIA® - Año 2017
14