jueves, 13 de noviembre de 2025

Semana 1 - Tipo de Datos Abstractos (TDA)

 Tipos de Datos Abstractos



Esta semana exploramos el concepto más fundamental de la programación moderna: la abstracción. La abstracción es el proceso de simplificar una realidad compleja, capturando sus características esenciales e ignorando los detalles irrelevantes. 

Un Tipo de Dato Abstracto (TDA) es la materialización de este concepto en el software. Es un modelo (como una Clase en Java) que representa un objeto del mundo real (ej. "Empleado", "CuentaBancaria") y se define por dos componentes: los datos que almacena (atributos) y las operaciones que se pueden realizar sobre él (métodos). El TDA crea lo que se conoce como una barrera de abstracción, permitiéndonos usar el objeto sin necesidad de conocer su complejidad interna.





Un TDA se compone de dos partes estrictamente separadas:

La Interfaz (Pública): Es la "vista externa" del objeto. Define qué se puede hacer con el objeto. Es el conjunto de métodos públicos y, conceptualmente, es un contrato que le dice al resto del programa: "Yo sé cómo depositar(), retirar() y consultarSaldo()".

La Implementación (Privada): Es la "vista interna" u oculta. Define cómo el objeto realiza sus tareas. Es la lógica interna, los algoritmos y los atributos privados. Gracias al encapsulamiento, esta implementación está protegida y puede ser modificada sin afectar a los programas que usan el TDA, siempre y cuando la interfaz (el contrato) se respete.

El ciclo de vida de un TDA sigue un proceso de ingeniería formal:



  • Especificación (Diseño): Es el "plano" del TDA. Se definen sus propiedades y las pre/post-condiciones de sus operaciones.
  • Implementación (Codificación): Es la traducción de esos planos a un lenguaje de programación (ej. una clase de Java).
  • Uso (Aplicación): Es la utilización o instanciación del TDA dentro de un programa más grande.

Conclusión 

Comprender los TDA es, en mi opinión, el pilar de la Ingeniería de Software y la Programación Orientada a Objetos. Como ingeniero, mi trabajo no es solo escribir código, sino construir sistemas que sean modulares, reutilizables y fáciles de mantener. Los TDA me permiten crear "cajas negras" confiables. Puedo construir un sistema financiero usando un TDA CuentaBancaria y confiar en que funciona, sin necesidad de saber cómo implementa internamente sus transacciones. Esto reduce la complejidad, facilita la detección de errores y permite que grandes equipos colaboren, ya que solo necesitamos conocer las interfaces de los componentes de los demás, no sus implementaciones.


No hay comentarios:

Publicar un comentario

Semana 8 - Listas Doblemente Enlazadas

  Listas Doblemente Enlazadas Esta semana evolucionamos nuestra estructura de lista un paso más allá. En una lista simplemente enlazada (Sem...