sábado, 23 de mayo de 2015

LENGUAJE UNIFICADO DE MODELADO UML

Fecha de Clase: 18 - 22 de mayo 2015

INTRODUCCIÓN
El tema de esta clase fue UML (lenguaje unificado de modelado), la cual es importante su estudio puesto que este ayuda a los profesionales dentro de la ingeniería en software. El UML es muy utilizado, ya que ayuda a representar de manera gráfica la funcionabilidad de los sistemas de software intensivo, ayudando al cliente a entender el software, también a los desarrolladores a construir software.
El lenguaje unificado de modelado tiene modelos estructurales y de comportamiento, los cuales tienen diagramas que son de gran importancia y  de gran utilidad en la ingeniería. A continuación en este documento se describirá el lenguaje unificado de modelado.

OBJETIVO
Conocer las características  y la importancia del lenguaje unificado de modelado (UML).

MARCO TEÓRICO
Según Enrique Hernández “Un modelo es una simplificación de la realidad. El objetivo del modelado de un sistema es capturar las partes esenciales del sistema. Para facilitar este modelado, se realiza una abstracción y se plasma en una notación gráfica. Esto se conoce como modelado visual. El modelado visual permite manejar la complejidad de los sistemas a analizar o diseñar. De la misma forma que para construir una choza no hace falta un modelo, cuando se intenta construir un sistema complejo como un rascacielos, es necesario abstraer la complejidad en modelos que el ser humano pueda entender”. Un modelado tiene características como son:


Es por esto que nace el lenguaje unificado de modelado para dar solución a esta problemática.

LENGUAJE UNIFICADO DE MODELADO
En 1997 UML fue aprobado como estándar por el OMG (Object Management Group). Aunque en los últimos años este lenguaje ha sido modificado.
UML es un lenguaje unificado de modelado que sirve para visualizar, construir, especificar y documentar los sistemas de software. El lenguaje unificado de modelado es muchas veces confundido como un lenguaje de programación, pero no lo es, es simplemente una herramienta que ayuda a generar código o facilita la construcción de software. Este modelo usa información estructural (estática) y de comportamiento (dinamica) de un sistema.
Imagen 1. UML

BENEFICIOS DE UML
Muchas veces para desarrollar software complejos, es muy difícil describirlo a través de texto, pero si lo expresamos a través de diagrama es más fácil entenderlo. Es por esto que UML presenta tres beneficios: este modelo
  • Visualizar: se expresa a través de gráficos un sistema, de manera que sea fácil de entender.
  • Especificar: puede especificar las características de un sistema.
  • Construir: se  pueden diseñar sistemas
  • Documentar: sirven para documentar el desarrollo del software.

MODELOS ESTRUCTURALES O ESTÁTICOS

Imagen 2. Modelo estructurales UML
Diagrama de clases: muestra las clases y la relaciones entre ellas.
Diagrama de Objeto: están vinculados con los diagramas de clase.
Diagrama de paquetes: organiza los elementos del modelado.
Diagrama de despliegue: Muestra la relación entre los componentes de hardware y software
Diagrama de componentes: muestra los componentes de mayor nivel de la programación.

MODELOS DE COMPORTAMIENTO

Imagen 2. Modelo de comportamiento UML
Diagrama de casos de uso: muestra a los actores, los casos de uso y sus relaciones.
Diagrama de secuencia: muestra los objetos y las relaciones entre ellos.
Diagrama de colaboración: muestra objetos y sus relaciones, pero en esta se destaca los objetos que intercambia mensajes.
Diagrama de actividad: detalla las actividades, sus cambios y sus eventos.
Diagrama de estado muestra los cambios de estado y eventos en un objeto o en parte del sistema.
Diagrama de cronológico: muestra las interacciones de tiempo de los objetos.
Diagrama de interacciones: representa la forma como un actor y la clase se comunican a través de eventos

CONCLUSIÓN
En conclusión los modelados permiten analizar y  desarrollar software más complejos y eficaces, permitiendo obtener un modelo visual del sistema.
El lenguaje unificado de modelado es de gran importancia en la ingeniería, ayuda a modelar grandes sistemas y es muy utilizado en distintos tipos de software. El UML cada vez es más implementado, ya que ayuda a obtener un mayor entendimiento sobre las funcionalidades del software tanto para el desarrollador y para el cliente. Este modelado no  solo permite diseñar, graficar, etc; sino que también facilita la construcción de los sistemas, a través de los diferentes modelos de estructurales y de comportamientos. Estos diagramas son utilizados según la necesidad y el tipo de sistema que se vaya a desarrollar.

BIBLIOGRAFÍA
Larman, C. 1999. UML y Patrones. Pearson.

Lopez, P Y Ruiz, F. 2010?. Lenguaje Unificado de Modelado – UML. (En Linea). Formato PDF.

Hernández, E.  2002. El Lenguaje  Unificado de Modelado (UML). (En Linea). Formato PDF.

Gutiérrez, D. 2009. UML diagramas de Paquetes. Universidad de los Andes. (En Linea). Formato PDF.

Ferré X, Sánchez M. Desarrollo Orientado a Objetos con UML. Facultad de Informática – UPM. Formato PDF.

Pressman, R. 2010. Ingeniería del Software un enfoque Práctico. 7ma. ed. México: Mc Graw Hill.

Sommerville, I. 2005. Ingeniería del software. 7ma ed. Madrid. Pearson Educación.

_________. 2010. Diagrama de objetos, secuencias y despliegue en UML. (En Linea). Formato PDF.

sábado, 9 de mayo de 2015

METODOLOGÍA AGÍL

Fecha de Clase: 4 - 8 de Mayo 2015

INTRODUCCIÓN
En esta clase se trato acerca de la metodología ágil, las cuales son una rama nueva de la ingeniería del software que está teniendo una gran acogida en la actualidad. Cada día este tipo de metodología está siendo implementada en la gran mayoría de proyectos de desarrollo de software, ya que estas presentan más beneficios tanto al cliente como al desarrollador; dejando atrás a la metodología tradicional.
Las características que posee este manifiesto ágil ayudan a reducir el número de equipo de desarrollo, plazos reducidos, requisitos volátiles, nuevas tecnología. Actualmente se han desarrollado un gran número de método ágil, en el cual se destaca la XP y SCRUM.

OBJETIVO
Conocer los beneficios y las características de la metodología ágil.

MARCO TEÓRICO
AGILIDAD
Según el análisis de Ivar Jacobson de la agilidad dentro de la Ingeniería en Software dice:
“La agilidad se ha convertido en la palabra mágica de hoy para describir un proceso del software moderno. Todos son ágiles. Un equipo ágil es diestro y capaz de responder de manera apropiada a los cambios. El cambio es de lo que trata el software en gran medida. Hay cambios en el software que se construye, en los miembros del equipo, debidos a las nuevas tecnologías, de todas clases y que tienen un efecto en el producto que se elabora o en el proyecto que lo crea. Deben introducirse apoyos para el cambio en todo lo que se haga en el software; en ocasiones se hace porque es el alma y corazón de éste. Un equipo ágil reconoce que el software es desarrollado por individuos que trabajan en equipo, y que su capacidad, su habilidad para colaborar, es el fundamento para el éxito del proyecto.” (Pressman, R. 2010).

METODOLOGÍA ÁGIL
El término ágil  en el desarrollo del software nace en febrero del 2001, en una reunión celebrada en Utah-EEUU, en la cual participaban 17 expertos de la industria del software. El cual tenía como objetivo primordial resolver las problemáticas que se presentaban en el desarrollo de software
Según Carvajal, J. dice que la metodología ágil “dan una mayor importancia a las personas en vez de a los procesos y se caracterizan principalmente por el uso de técnicas para agilizar el desarrollo del software, así como de una mayor flexibilidad para adaptarse a los cambios en los requisitos del proyecto".

METODOLOGÍA ÁGIL VS METODOLOGÍA TRADICIONAL



PRINCIPIOS DE AGILIDAD
Según la Alianza Ágil define 12 principios de agilidad para aquellos modelos que los quieran conseguir:
 1. La prioridad más alta es satisfacer al cliente a través de la entrega pronta y continua de software valioso.
2. Son bienvenidos los requerimientos cambiantes, aun en una etapa avanzada del desarrollo. Los procesos ágiles dominan el cambio para provecho de la ventaja competitiva del cliente.
 3. Entregar con frecuencia software que funcione, de dos semanas a un par de meses, de preferencia lo más pronto que se pueda.
4. Las personas de negocios y los desarrolladores deben trabajar juntos, a diario y durante todo el proyecto.
5. Hay que desarrollar los proyectos con individuos motivados. Debe darse a éstos el ambiente y el apoyo que necesiten, y confiar en que harán el trabajo.
6. El método más eficiente y eficaz para transmitir información a los integrantes de un equipo de desarrollo, y entre éstos, es la conversación cara a cara.
7. La medida principal de avance es el software que funciona.
8. Los procesos ágiles promueven el desarrollo sostenible. Los patrocinadores, desarrolladores y usuarios deben poder mantener un ritmo constante en forma indefinida.
9. La atención continua a la excelencia técnica y el buen diseño mejora la agilidad.
10. Es esencial la simplicidad: el arte de maximizar la cantidad de trabajo no realizado.
11. Las mejores arquitecturas, requerimientos y diseños surgen de los equipos con organización propia.
12. El equipo reflexiona a intervalos regulares sobre cómo ser más eficaz, para después afinar y ajustar su comportamiento en consecuencia.
Aunque no todos modelos alcanzan todos los principios mencionados, es importante recalcar  su importancia ya que en ellos nace el espíritu ágil.

FACTORES HUMANOS DENTRO DE LA METODOLOGÍA ÁGIL
Las metodologías agiles, toman mucho en cuentan los valores humanos que poseen los integrantes del equipo de desarrollo de software. El equipo ágil debe de tener las siguientes características:

LOS MODELOS ÁGILES DE PROCESO
Aunque existen diferentes métodos todos tienen los mismo principios de desarrollo y entrega increméntales, proponiendo procesos diferentes para llegar a su objetivo. Los modelos agiles son:

El modelo de proceso ágil más utilizado en los proyectos de desarrollo de software es el XP.

CONCLUSIÓN
La metodología ágil es una herramienta para el desarrollo de software, que cada día van creciendo a pasos agigantados, ha revolucionado al área de la ingeniería del software ya que muchos de los ingenieros que trabajan en esta área tienen opiniones diferentes acerca de esta temática. Esta metodología presenta muchas ventajas en lo que es la comunicación con el cliente, y por lo tanto se conocen mucho mejor los requerimiento del cliente; obteniendo mejores resultado y software más eficientes. Una de las desventajas que puede tener este tipo de metodología desde, mi opinión es que siempre esta expuestas a cambios, por lo que el equipo siempre va tener que saber actuar frente a ello.
Esta metodología está muy relacionada o toma en cuenta los factores humanos que poseen los miembros del equipo que van a desarrollar el software, muchos autores aseguran que el éxito de esta metodología incluye los valores humanos, se han desarrollado muchos modelos agiles que han sido de gran utilidad al momento de querer aplicar esta temática, pero las más conocidas y utilizadas son XP y SCRUM.

BIBLIOGRAFÍA
Pressman, R. 2010. Ingeniería del Software un enfoque Práctico. 7ma. ed. México: Mc Graw Hill.

Sommerville, I. 2005. Ingeniería del software. 7ma ed. Madrid. Pearson Educación.

Canos, H; Letelier, P y Penades, M. 2003. Metodologías Ágiles en el Desarrollo de Software. Grupo ISSI. Alicante- España.

Schenone, M. 2004. Diseño de una Metodología Ágil de Desarrollo de Software. Buenos Aire.


Carvajal, C. 2008.Metodologías ágiles: herramientas y modelo de desarrollo para aplicaciones java EE como metodología empresarial. Barcelona.