Comunidad de diseño web y desarrollo en internet online

Software Blueprints - Planos de Software

Citar            
MensajeEscrito el 04 Oct 2006 12:49 pm
Estaba viendo las distintas metodologías de diseño de software y algoritmos, más puntualmente en el uso de diagramas para expresar conceptos y describir sistemas antes o después de construirlos. Particularmente estaba reparando en dos: Diagramas de Flujo y UML(que es como un diagrama de flujos con esteroides).

Mientras los observaba, meditaba acerca del fin de estos: Una nomenclatura gráfica, unívoca para transmitir ideas acerca de la arquitectura de una determinada pieza de software(o de varias y de como interactúan).

Entonces, en mi reflexión, recordé la forma en que trabajaba el escultor Gianlorenzo Bernini. Una persona muy talentosa para la escultura, con un criterio y un gusto superior al promedio. Cuando se hizo famoso y comenzó a recibir encargos(generalmente de la iglesia), se hizo de un conjunto de discípulos a los que le pasaba pequeños modelos en arcilla hechos por el(algo así como "el plano de la escultura") que sus discípulos trasladaban al mármol. De esta manera, personas que sabían manejar las herramientas para trabajar la piedra, pero sin talento o sin el talento de Bernini, podían realizar obras profesionales y, de esta forma, satisfacer la demanda de esculturas que tenía "la empresa de escultura de Bernini".

Ahora, trasladando esto al software, los diagramas de UML, de flujo y demás metodologías de trabajo. ¿No serán modelos de arcilla para las personas que no son capaces de plasmar en una imagen el funcionamiento de un sistema puedan conseguir empleo decente sin tener talento?.

Acaso esto:



No será una burda imitación de esto otro?:



¿Acaso los "planos de software" no deberían parecerse más a estos últimos? Hay una empresa cuyo negocio es comunicar, mediante gráficos amenos procesos y arquitecturas, su nombre es X-Planations y pueden verse más ejemplos de transmisión de ideas de forma amena en su página web.

Por WEREW0LF

769 de clabLevel

4 tutoriales
1 articulo
1 ejemplo

 

Buenos Aires - Argentina

firefox
Citar            
MensajeEscrito el 16 Oct 2006 04:30 am
Esperate creo q no te entendi bien ? dices que los diagramas UML no tienen mucho sentido teniendo en cuenta "los planos" que mencionas... pues ... son cosas totalmente diferentes... no se a que viene tu sugerencia o lo que hayas querido dar a entender. :zzz: :zzz: Explicate no? :?

Por davo25

183 de clabLevel



 

Lima - Peru

firefox
Citar            
MensajeEscrito el 16 Oct 2006 05:19 pm
Por supuesto que el UML tiene sentido (es una metodología probada y recontraprobada). Lo que digo es que para ciertos casos no cubre totalemtne todas las necesidades. Los diagramas de UML fueron originalmente creados para diseñar y desarrollar(actualmente, cualquier herramienta UML que se precie es capaz de convertir diagrámas a código).
Ahora bien, terminado el ciclo de desarrollo, se tiende a utilizar los diagramas para comunicar, como parte de la documentación. ¿Esto esta mal? Por supuesto que no!, pero hay mejores formas de ofrecer información acerca de la concepción y/o estructura del sistema.
Lo anterior no es necesariamente un escollo insalbable, basta con que quien redacta la documentación tenga buen criterio. Ahora bien, que pasa si es necesario documentar una aplicación base en flash? Con botones, widgets y movieclips distribuidos en el stage y con relaciones entre ellos y con código en cada uno de ellos?, para colmo, la forma en que se encuentran distribuidos entre las capas es crucial, ya que el depth es una parte fundamental de la interface. Sumemosle a esto que varias películas interactúen entre ellas en una estructura de portal(el famoso click to action entre los portlets), y que ademas interactúen con el backend por medio de webservices.

Bueno, aún es posible, si concentras todo el código en clases externas y hacés diagramas de clases, la interacción con los portlets se realiza mediante un diagrama de interacción(valga la redundancia). La distribución de los portlets entre ellos se hace por medio de casos de uso + clases definiendo la interface y el depth management es posible documentarlo separadamente, utilizando bounders(oops, los bounders no son UML compilant!). Bueno, pensandolo un poco más podemos encontrar una soucion para lo anterior. Pero ya comienza a hacerse un poco obscuro para el que desee inferir el funcionamiento del sistema a partir de los diagramas UML.

Ahora llevemoslo un paso mas allá, supongamos que tenemos un RAD, como lotus domino y Oracle, que te permiten meter código de distintas características, ya que son entornos pensados para realizar aplicaciones que corran en varios ambientes. Entonces un botón puede tener código en JavaScript, LotusScript, Fórmulas(como en el excel) o código Java.

Como se puede ver UML comenzó a retrasarse desde el ejepmlo 2 y para este último directamente no está a la altura de las circunstancias.

Terminamos? NO! aún hay mas. Supongamos que es necesario transmitir la estructura del sistema a un equipo de trabajo que no esta familiarizado con el UML(porque son los futuros usuarios, que de programación no entienden un soto). Para transmitirles una idea habría qu darles una clase de UML antes!.

Es evidente que UML requiere una actualización, empresas como Sparks Systens ya están modificando sus herramientas para incorporar la posibilidad de generar diagramas no UML, permitiendo crear diagramas como el que sigue:



Incluyendo una amplia galería de cliparts(como lo hace vicio!) para crear, a partir de diagramas UML, diagramas Human Readable.

Se entendió?

Saludos!

Por WEREW0LF

769 de clabLevel

4 tutoriales
1 articulo
1 ejemplo

 

Buenos Aires - Argentina

firefox
Citar            
MensajeEscrito el 16 Oct 2006 06:26 pm
Aja ya entendi tu idea ... ahora lo tengo mas claro y si pues el UML como tal, tendria problemas con el punto 2 y 3 que dices.. en esos casos un poco de RUP (el UML de Rational Rose) se hace necesario . Pero aun asi, tu programa de Spark se ve mas entendible (son representaciones mas cheveres, segun el grafico mucho mas entendible que un simple nodo ) . Sera cosa de chekar . Excelente dato

Por davo25

183 de clabLevel



 

Lima - Peru

firefox
Citar            
MensajeEscrito el 16 Oct 2006 06:58 pm
Hay una observación que es importante marcar sobre tus palabras, que puede dar pié a una malinterpretación y que creo necesario aclarar, si me lo permites:

RUP no es el UML de Rational (Rational Rose era su producto insignia). RUP es un proceso de desarrollo de software que busca combinar las mejores prácticas de desarrollo del software, como ser:

* Desarrollo iterativo
* Administración de requisitos
* Uso de arquitectura basada en componentes
* Control de cambios
* Modelado visual del software(esto es el UML, una parte de rup, creo que es opcional, aunque no estoy seguro)
* Verificación de la calidad del software

Segun wikipedia:
...el RUP divide el proceso de desarrollo en ciclos, teniendo un producto final al final de cada ciclo, cada ciclo se divide en fases que finalizan con un hito donde se debe tomar una decisión importante...


Así, RUP es un proceso de desarrollo de software, relacionado con UML, pero no son la misma cosa. Hace cosa de 2 años o algo así, Rational fué comprada por IBM, la cual creó una herramienta basada en rational rose llamada IBM Rational Method Composer (RMC). Aunque no puede considerarse la verdadera evolución del Rational Rose, ya que se encuentran razgos de esta ultima en una amplia gama de productos propiedad de IBM, como por ejemplo, el Rational Designer o el IBM Process Coreographer.

Más info en:
Wikipedia(como siempre ;-))
http://en.wikipedia.org/wiki/Rational_Unified_Process

Developerworks de IBM
http://www-128.ibm.com/developerworks/rational

Saludos!

Por WEREW0LF

769 de clabLevel

4 tutoriales
1 articulo
1 ejemplo

 

Buenos Aires - Argentina

firefox
Citar            
MensajeEscrito el 16 Oct 2006 08:30 pm
RUP es una metodología ... UML un lenguaje ...

Por Acidbjazz

716 de clabLevel



Genero:Masculino  

Lima - Perú

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.