domingo, 29 de mayo de 2011

Aprendiendo a modelar con UML

   En proyectos de ingeniería, y en otras áreas, es conveniente desarrollar modelos antes de iniciar su construcción, dado que esta representación facilita la comunicación entre los entes involucrados en el desarrollo del producto final, permite la validación de especificaciones y sirve de base para la aceptación de dicho producto.

   En Sistemas de Información (SI) se utilizan modelos conceptuales, de funcionamiento y físicos para representar datos, procesos e interacciones entre los elementos del sistema. Se han generado distintos paradigmas de representación, siendo el más usado el llamado Orientado a Objetos (OO), donde un SI está conformado por objetos que poseen una estructura y funcionamiento, y se comunican entre sí a través del intercambio de mensajes.

   Durante las décadas de los 70, 80 y 90, se gestaron varias metodologías de desarrollo de software OO, hasta que en 1994, tres reconocidos investigadores en esta área, responsables de las metodologías más utilizadas del momento, formularon un lenguaje de modelaje unificado al que denominaron UML, que como ya se ha dicho, no pretende ser una metodología de desarrollo de software, sino una notación estándar para el análisis y el diseño de SI OO.


   En UML se incluyen varios tipos de diagramas, vistas y extensiones que facilitan la representación conceptual y física de los distintos objetos de un SI, y se disponen en el mercado de diferentes herramientas de software para la elaboración y mantenimiento de estos diagramas. UML es un lenguaje para especificar y no para describir métodos o procesos. Se utiliza para definir un sistema de software, para detallar los artefactos en el sistema y para documentar y construir. En otras palabras, es el lenguaje en el que está descrito el modelo. Se puede aplicar en una gran variedad de formas para dar soporte a una metodología de desarrollo de software, pero no especifica en sí mismo qué metodología o proceso usar.

Un lenguaje proporciona un vocabulario y unas reglas, las cuales se centran en la representación conceptual y física de un sistema, y así permiten una comunicación. En este caso, este lenguaje se centra en la representación gráfica de un sistema.

sábado, 7 de mayo de 2011

Ingeniería del Software Libre

   La ingeniería del software libre viene a dar aires renovados a una ingeniería del software tradicional que se encuentra estancada debido básicamente a que no ha sabido crear métodos para cuantificar tiempos, costos y calidad del software de forma aceptable y contrastable.


   Uno de los grandes problemas de la ingenería del software ha sido y es que no ha sabido adaptarse consecuentemente a su propia definición. Esto es algo que se puede considerar como una especie de traición a sí misma, a sus propios fundamentos. El enfoque sistemático y cuantificable ha tenido siempre como barreras las propias de las formas en las que el software se ha publicado y distribuido. El formato binario del software, la opacidad en los modelos de negocios, los secretos y barreras comerciales, entre otros aspectos, han imposibilitado que equipos independientes puedan, en demasiadas ocasiones, verificar de manera sistemática los resultados obtenidos. Las "verdades" enunciadas son con frecuencia experiencias puntuales que han sido generalizadas y dadas por válidas ante la falta de alternativas. En definitiva: la propia forma de desarrollar, distribuir y comerciarlizar software ha sido la que ha llevado a la ingeniería del software a la crisis.

Y es aquí donde el software libre puede dar nuevos aires a la ingeniería del software.

Fuente: http://curso-sobre.berlios.de/curso/trab/grex/sobre-trabajo-grex.pdf