domingo, 27 de septiembre de 2009

Paradigma Orientado a Objetos

Como Desarrolladores de Software requerimos construir software adaptable al cambio, capaz de evolucionar fácilmente a la par de la empresa o proceso a la que da servicio.

El problema principal del software es la complejidad que le es inherente. Esta complejidad esta dada por:
  • Siempre es parte de otros sistemas, por consecuencia hereda su complejidad.
  • Es de naturaleza abstracta.
  • Es el resultado de una actividad intelectual.
Toda esta complejidad la podemos enfrentar con:

  • Descomposición: "Divide y vencerás", dividir un problema en varios subproblemas más sencillos de solucionar.
  • Abstracción: Simplificar la visión que tenemos de un objeto complejo, ignorando las características no relevantes al problema, enfocando nuestros esfuerzos en las características esenciales.
  • Generalización: Clasificando los objetos en grupos de abstracciones relacionadas, podemos distinguir explícitamente las propiedades comunes y distintas de diferentes objetos.

Ante esta problemática resurge el paradigma orientado a objetos como una solución al problema de la complejidad del software.

Los conceptos del paradigma orientado a objetos tienen sus orígenes en un lenguaje creado por Ole-Johan Dahl y Kristen Nygaard del Centro de Cómputo Noruego en Oslo, a finales de los 60’s, pero el impacto de estas ideas se sintió a principios de los 80’s, con la llamada “crisis del software” cuando hubo la terrible necesidad de modificar monstruosas cantidades de código, que iban del orden de los miles ó mucho más.

El Paradigma Orientado a Objetos enfrenta el problema del desarrollo de software desde la perspectiva humana de la comprensión de problemas a diferencia de los otros paradigmas que lo enfrentan desde el punto de vista de la computadora. Entonces este paradigma ofrece las herramientas para “modelar problemas”, que permiten usar la comprensión natural de las situaciones que se quieren sistematizar. Este paradigma pone atención en objetos, atributos y comportamientos de los objetos.

Aprovechando concepciones semánticas desarrolladas desde el preescolar esto es:





Existe un concepto que no parecería tan natural pero que es fundamental en el paradigma orientado a objetos, este es el de la abstracción. Esta ha sido una herramienta fundamental de la mente humana para resolver problemas altamente complejos como lo hace el desarrollo de software, que en pocas palabras significa, eliminar todo aquello que no sea significativo para la resolución del problema, por ejemplo en el programa que realiza café, puede no importarnos la marca de la taza donde se sirve o la cantidad de moléculas que la conforman, a lo más lo que nos interesaría sería su capacidad en mililitros. Todo un concepto que puede llegar a ser muy complejo como el del objeto taza, se transforma en un objeto que tiene un solo atributo que es capacidad. El diseño final quedaría representado por la siguiente estructura:

No hay comentarios:

Publicar un comentario