martes, abril 24, 2007

Modelos, Objetos y UML [ Parte I ]

El producto principal que debe producir un equipo de desarrollo de software es un buen programa que satisfaga por completo las necesidades cambiantes de las personas y las empresas.
¿Difícil tarea verdad? Para lograr estos objetivos existen muchas y variadas técnicas que permite simplificar la realidad, una de las mas importantes consiste en Modelar (basado en los conceptos de Programación Orientada a Objetos).

Modelar nos permite desarrollar sistemas desde diversos puntos de vista usando distintos modelos. Modelar proporciona los planos de un sistema e involucra planos generales o detallados del mismo.

¿Por que construir modelos? ¿por que modelar sistemas? ¿por que modelamos?
¡Pues para comprender mejor el sistema que estamos desarrollando!
¿No seria mas fácil sentarnos y simplemente codificar hasta generar un "buen" software?
NO, no y ¡no! Los modelos ayudan a visualizar como es o queremos que sea un sistema, al sentarnos a codificar hasta que "salga" algo, se esta gastando una gran cantidad de potencia mental del equipo de desarrollo en resolver problemas que fácilmente podrían haber sido descubiertas con solo pensar antes de programar.
  • Modelar permite especificar la estructura o comportamiento de un sistema
  • Proporciona plantillas que nos ayudaran a la construcción de un sistema
  • Documenta decisiones que adoptamos a lo largo del diseño del sistema
Se construyen modelos de un sistema porque no se puede comprender un sistema en su totalidad (hablamos de sistemas grandes y complicados o en sistemas que crecen y se vuelven usualmente de esa manera). ¡Ah! y un modelo puede representarse con diversos niveles de precisión solo en caso de que desees complicarte la vida. Es que cuando se piensa en modelar se reduce la cantidad de datos a comprender sin descartar su esencia (retiramos los excesos de la realidad); por eso partimos y comprendemos el problema, centrándonos cada vez en una sola parte del mismo.
Es el viejo dicho de:
Divide y Vencerás...
aplicada al desarrollo de software.

"Portada del libro: "Divide y Venceras""

Algo importante que se tiene que mencionar es que:
La elección acerca de qué modelos crear tiene una profunda influencia sobre cómo se acomete un problema y cómo se le da forma a una solución.
Y algo más importante que lo anterior es que:
Los mejores modelos están ligados a la "realidad"
Cualquier sistema informático no trivial se aborda mejor a través de un pequeño conjunto de modelos casi independientes con múltiples puntos de vista para asegurar el éxito del sistema.

Ve la segunda parte da click aquí.

Sunsetting Sr. Byte.

El Sr. Byte ha estado más de 5 años inactivo. Digamos que estaba en " code freeze ". Pero ahora es el último release. Quizas no...