martes, 31 de mayo de 2011

Lenguaje Unificado de Modelado (UML)

Es un lenguaje de modelado de sistemas de software, que permite capturar las partes esenciales del mismo.
“UML sirve para el modelado completo de sistemas complejos, tanto en el diseño de los sistemas software como para la arquitectura hardware donde se ejecuten.”

Entre los objetivos de UML expuestos por (Hernández) se encuentran:

Visualizar: Permite expresar de una forma gráfica un sistema de forma que otro lo puede entender.

Especificar: Permite especificar cuáles son las características de un sistema antes de su construcción.

Construir: A partir de los modelos especificados se pueden construir los sistemas diseñados.

Documentar: Los propios elementos gráficos sirven como documentación del sistema desarrollado que pueden servir para su futura revisión.

UML cuenta con varios tipos de diagramas, los cuales muestran diferentes aspectos de las entidades representadas, estos diagramas son:

• Diagrama de casos de uso.
• Diagrama de clases.
• Diagrama de objetos.
• Diagrama de secuencia.
• Diagrama de colaboración.
• Diagrama de estados.
• Diagrama de actividades.
• Diagrama de componentes.
• Diagrama de despliegue.

Beneficios de la utilización de UML

-Produce un aumento en la calidad del desarrollo. 
-Mejores tiempos totales de desarrollo (de 50 % o más).
-Modelar sistemas (y no sólo de software) utilizando conceptos orientados a objetos.
-Establecer conceptos y artefactos ejecutables.
-Brinda la posibilidad de obtener un "plano" del sistema. 
-Encaminar el desarrollo del escalamiento en sistemas complejos de misión crítica.
-Crear un lenguaje de modelado utilizado tanto por humanos como por máquinas.
-Mejor soporte a la planeación y al control de proyectos.
-Alta reutilización y minimización de costos.
-Permite especificar la estructura y el comportamiento del sistema y comunicarlo a todos los integrantes del proyecto. 
-Permite dimensionar mejor los riesgos de un proyecto tener un mejor rendimiento antes de construir el sistema.
-Facilita la documentación de las decisiones de la arquitectura del proyecto. 
-Ofrece mayor rigurosidad en la especificación.
-Permite realizar una verificación y validación del modelo realizado.
-Se pueden automatizar determinados procesos y permite generar código a partir de los modelos y viceversa.

Anexo les dejo este video que habla un poco de lo que ES y  NO es UML, así como de sus historia y la definición de los diagramas de clases



Fuente:

lunes, 9 de mayo de 2011

EVOLUCIÓN DE LA INGENIERÍA DEL SOFTWARE

La ingeniería del software, en comparación con otras ramas de la ingeniería aún se encuentra muy joven, en los tiempos actuales aún se está buscando una forma clara de definirla o trabajarla y la búsqueda de estándares que lleven a un mejor perfeccionamiento en el desarrollo del software. De ahí las continuas interrogantes de considerarla ingeniería o no. Algunos autores consideran que sí, que aún se está en la etapa de establecimiento de bases, otros por el contrario no la califican como tal por falta de técnicas y conocimientos generales que se apliquen en el desarrollo del software.

Como disciplina surge en el año 1968 a raíz de la llamada “crisis del software”, de la cual muchos autores consideran que todavía no se ha salido. Este ha evolucionado con respecto a métodos, lenguajes (de alto y bajo nivel), paradigmas en donde se ha pasado de modelo procedimental al funcional, de este al orientado a objetos y más recientemente el orientado a servicios. En los últimos años el software ha mostrado un claro desarrollo de lo que ha sido los procesos y las herramientas a privilegiar a los individuos y los procesos, ayudado por la masificación del conocimiento y la democracia tecnológica Se ha evolucionado de una programación sin métodos, que era vista como un arte, sin planificación, en donde el software era diseñado a medida para cada aplicación y en donde el oficio de programación se aprendía normalmente por ensayo y error a una programación estructurada, donde se consideraba el retorno dentro de la programación, el paso de la creación del prototipo, a una reducción de las expectativas, a una ingeniería del software basada en componentes y un sinfín de conocimientos que aún se siguen probando para tratar de llegar a una estandarización en la medida de lo posible en la ingeniería del Software.
            Casallas (2007) en su artículo ¿Aún en crisis? expone una reflexión acerca de la crisis, que según la autora, aún vive el desarrollo del software, pudiéndose sentir en la cantidad de proyectos que fallan, que sobrepasan los costos y los tiempos estimados. Se plantean diferentes ideas para desmentir mitos en la ingeniería del software, como son: el ver los proyectos de ingeniería del software de forma similar a como se definen proyectos de otras ingenierías. Mitos referentes a los requerimientos de sistemas, el diseño, los planes detallados del proyecto y las personas que trabajan en el mismo. Establece como el desarrollo en ciclos incrementales permite proponer soluciones a estos problemas que se han convertido en mitos dentro del área. Entender los proyectos del desarrollo de software como proyectos de aprendizaje. Es obvio como la escritora realiza una  crítica a los métodos de programar-corregir que aún siguen siendo muy aplicados en la actualidad.


Fuentes: