Complejidad y abstracción

Publicado el 23 marzo 2014 por Alexander171294 @std_io
Buenas tardes, hoy voy a continuar con una entrada que se relaciona íntegramente con una entrada previa de abstracción...
Hablaremos sobre Complejidad y Abstracción.

El desarrollo de software está lejos de ser una tarea trivial, por el contrario desarrollar software implica tratar con la complejidad, no solo como Brooks sugiere con la complejidad esencial de la porción de la realidad que se pretende modelar, sino además, con la complejidad arbitraria, propia del proceso de desarrollo.
Típicamente manejamos la complejidad presente en la realidad construyendo modelos de ciertas porciones de ella. Un modelo es una visión o representación simplificada de cómo algo trabaja de modo que podamos comprenderlo y usarlo.
Por ejemplo, consideremos un mapa como modelo de un territorio. Para ser de alguna utilidad el mapa debe ser más simple que el territorio que modela, si cada detalle del territorio fuese incluido en el mapa, este probablemente no cumpliría con su propósito.
Un mapa es de utilidad no solo por lo que muestra sino también por lo que elije no mostrar. Un mapa de rutas muestra los caminos disponibles entre diferentes ubicaciones permitiendo elegir una opción para desplazarse entre estas. Un mapa topográfico muestra la superficie de una región por ejemplo para determinar la traza de un nuevo camino. Cada uno de estos es útil para su propósito específico no solo por lo que elige incluir en el modelo sino también por aquello que no se incluye.
Así como un mapa debe ser significativamente más pequeño que el territorio que modela y solo incluir aquella información requerida para su propósito, nuestros modelos mentales de la realidad solo deben incluir aquellas características requeridas o esenciales para nuestra comprensión de la misma, mientras ignoran u omiten aquellas que por el momento resultan irrelevantes a nuestra comprensión.
Esta observación selectiva, donde el criterio de selección es relativo al observador y al interés o propósito del modelo, de las características de un objeto o preceso es conocido como abstracción. La abstracción es una de las herramientas fundamentales con la que los humanos abordamos la complejidad. Como Wulf enfatiza:
"Nosotros hemos desarrollado una técnica excepcionalmente potente para tratar con la complejidad. Nos abstraemos de ella, la ignoramos, incapaces de manejar la totalidad de un objeto complejo, elegimos ignorar aquellos detalles no esenciales, tratando en su lugar con un modelo generalizado e idealizado de el---"
En esencia este proceso de construir modelos es el mismo que el que se requiere para desarrollar software, pero el desarrollo de software es único en el sentido que el mismo, produce modelos que pueden ser concretados en un computador.HablaremosSoy amante de la programación, me gusta ver y crear cosas nuevas... Me gusta el metal, rock, y también daftpunk jajaja

También podría interesarte :

Quizás te interesen los siguientes artículos :