UML, ejemplo sencillo sobre Modelado de un Proyecto

Fecha: 02/Dic/2004 (30/11/04)
Autor: Luis Armando Canchala F - canchala@hotmail.com

 


 

INTRODUCCION

 

Se presenta a continuación un ejemplo sencillo sobre el modelado de un proyecto, basado en la metodología UML.

UML, o Lenguaje de Modelado Unificado, es una especificación de notación orientada a objetos, el cual se compone de diferentes diagramas, los cuales representan las diferentes etapas del desarrollo del proyecto.

 

El ejemplo de este artículo se centra en el desarrollo de un pequeño aplicativo para Administrar Proyectos de desarrollo, donde se llevará el control de los avances de sus diferentes etapas. Se han usado varios diagramas, buscando mostrar su uso, mas en la práctica  la complejidad del proyecto a desarrollar nos dice cuáles diagramas usar.

 

Espero te ayude en algo, y te invito a calificar en PanoramaBox, para aplicar a la cuarta estrella en el programa DCE.

 

Si quieres profundizar más en el tema te invito a leer un excelente manual sobre UML en el siguiente enlace:   http://programacion.com/tutorial/uml/  de autoría de Pere Martra. (De verdad que es muy bueno).

 

Los diagramas y formatos son los siguientes:

 

OBJETIVO

 

Es una descripción corta del proyecto, de tal manera que nos dé una idea general del mismo.

Es importante su claridad, ya que su información sirve de origen para algunos de los diagramas junto a otros, más adelante.

 

Proyecto: Administrador de Proyectos De Desarrollo

 

Descripción:  Herramienta computacional que permite controlar el proceso

de Desarrollo de Aplicaciones. El sistema permite registrar las fases y las

actividades de cada fase, así como el tiempo invertido en cada una de

éstas, y ofrece informes actualizados en línea sobre el estado de cada

proyecto.

 

 

 


REQUERIMIENTOS.

 

Clasificación de los requerimientos del proyecto, los cuales se identifican con una clave, a la cual se le hará referencia en los diagramas más detallados en adelante. Esta clasificación se hace en tres grandes grupos: Consultas e Informes, Almacenamiento y Procesamiento.

 

 

Control de Proyectos

 

REQUERIMIENTOS

NroRequerimiento

Descripción

Consultas/informes

 

 

 

R1

Informe Proyectos Detallado

R2

Informe Responsables

R3

Informe Movimientos

 

 

Almacenamiento

 

R4

Datos por Proyecto: CodProyecto,nombre, fechaInicio,fechaTerminacion,

 

porcentajeAvance y responsable

R5

Datos por Etapa: CodEtapa,nombre,porcentajeAvance,pesoPorcentual y

 

responsable

R6

Datos por Actividad: codActividad,nombre,porcentajeAvance,responsable

R7

Datos por Responsables: CodResponsable, nombre

R8

Datos por Reporte de Tiempos: codActividad, fecha,responsable,horas y

 

porcentajeAvance

 

 

Procesamiento

 

R9

Cálculo del Porcentaje de Avance de la Etapa:

 

( suma(avanceActividades) / (NroActividades*100) )

R10

Calcula del porcentaje de Avance del Proyecto:

 

suma(porcentajeAvance * pesoPorcentual)

 

 

 


CASOS DE USO

 

Este diagrama representa la funcionalidad completa de una sistema (o una clase), mostrando su interacción con los agentes externos. Esta representación se hace a través de las relaciones entre los actores (agentes externos) y los casos de uso (acciones) dentro del sistema. Los diagramas de Casos de Uso definen conjuntos de funcionalidades afines que el sistema debe cumplir para satisfacer todos los requerimientos que tiene a su cargo. Esos conjuntos de funcionalidades son representados por los casos de uso. Se pueden visualizar como las funciones más importantes que la aplicación puede realizar o como las opciones presentes en el menú de la aplicación.

 

 

 

SUBCASOS DE USO

 

Hacen referencia a la descomposición de los DCU del punto anterior. Se dan cuando existe una relación entre dos casos de uso. Dicha relación puede ser de extensión, que en términos de OO, esta relación es una relación de herencia, donde el “subcaso” especializa al caso. También puede ser una relación de “uso”, donde el caso requiere que el subcaso se realice completamente para que él mismo se realice bien y completamente.

 

 

 

 

DESCRIPCIÓN CASOS DE USO

 

Este formato muestra una descripción para ayudar a comprender los Casos y SubCasos de Uso. También hace referencia a los requerimientos consignados en el documento de requerimientos, con los cuales tiene relación. Por causa del espacio, solo se muestran algunos a continuación.

 

 

 

 

 

Control de Proyectos

 

DESCRIPCION DE CASOS DE USO

Nombre

ManejoProyectos

Alias

 

Actores

Responsable

Funcion

Permitir el mantenimiento de los Proyectos

Descripcion

El Responsable puede registrar Proyectos nuevos, identificando todas sus

 

características. El sistema debe validar que el código esté disponible.

 

También es posible modificar algunas de sus características o eliminar

 

un Proyecto si aun no tiene registro de tiempo.

Referencias

De requerimientos: R8, R10

 

 

 

De Casos: RegistroMovimiento,CalculoAvanceProyecto

 

 

 

 

 

Control de Proyectos

 

DESCRIPCION DE CASOS DE USO

Nombre

ManejoEtapas

Alias

 

Actores

Responsable

Funcion

Permitir el mantenimiento de los etapas

Descripcion

El responsable puede crear y asociar etapas o fases a cada Proyecto. Puede

 

modificar sus características, y eliminar etapas que aun no tengan registro

 

de tiempo por labores o actividades realizadas.

 

 

Referencias

De requerimientos: R8,R9

 

 

 

De Casos:RegistroMovimiento,CalculoAvanceEtapa

 

 

 

 

 

Control de Proyectos

 

DESCRIPCION DE CASOS DE USO

Nombre

ManejoActividades

Alias

 

Actores

Responsable

Funcion

Permitir el mantenimiento de las actividades

Descripcion

El responsable puede crear y asociar actividades a las etapas de cada Proyecto.

 

Puede modificar y eliminar etapas sin movimiento

 

 

Referencias

De requerimientos: R8,R4,R5,R7

 

 

 

De Casos:ManejoEtapas, ManejoProyecto

 

 

 

 

 

Control de Proyectos

 

DESCRIPCION DE CASOS DE USO

Nombre

RegistroMovimiento

Alias

 

Actores

Responsable

Funcion

Permitir el registro del tiempo invertido en cada actividad de cada fase.

Descripcion

El responsable puede registrar el tiempo en horas utilizado en el desarrollo

 

de las actividades del proyecto.  El usuario debe registrar el porcentaje de

 

avance de cada actividad, y el sistema debe calcular el avance ponderado

 

por cada etapa y por el proyecto global.

Referencias

De requerimientos: R4, R5, R6, R9, R10

 

 

 

De Casos: ManejoProyecto,ManejoEtapa,ManejoActividades,

 

CaluloAvanceProyecto, CalculoAvanceEtapa

 

 

 

Control de Proyectos

 

DESCRIPCION DE CASOS DE USO

Nombre

Responsable

Alias

 

Actores

Responsable

Función

Permitir el registro y mantenimiento de los códigos de analistas o responsables.

Descripción

Permitir el ingreso de nuevos analistas al sistema, modificación de su nombre, y

 

eliminación del mismo, solo si no tiene movimiento.

 

 

Referencias

De requerimientos: R8,R4,R5,R6

 

 

 

De Casos: ManejoProyecto,ManejoEtapa,ManejoActividades,RegistroMovimiento

 

 

 

 

 

 

 

Control de Proyectos

 

DESCRIPCION DE CASOS DE USO

Nombre

CaluloAvanceEtapa

Alias

 

Actores

Responsable

Función

Efectuar el calculo del porcentaje de avance por etapa, basado en los tiempos.

Descripción

Al registrar los tiempos por actividad, el sistema aplica la formula para este

 

calculo y actualiza este dato de la etapa a partir de los avances de las actividades

 

correspondientes.

 

 

Referencias

De requerimientos: R8,R4

 

 

 

De Casos:RegistroMovimiento

 

 

 

 

 

Control de Proyectos

 

DESCRIPCION DE CASOS DE USO

Nombre

CaluloAvanceProyecto

Alias

 

Actores

Responsable

Función

Efectuar el calculo del porcentaje de avance por proyecto, basado en los tiempos.

Descripción

Al registrar los tiempos por actividad, el sistema aplica la formula para este

 

calculo y actualizar este dato del proyecto a partir de los avances de las etapas

 

correspondientes.

 

 

Referencias

De requerimientos: R8,R4,R5

 

 

 

De Casos:RegistroMovimiento

 

 

 

 

 

Control de Proyectos

 

DESCRIPCION DE CASOS DE USO

Nombre

Informes Proyectos

Alias

 

Actores

Responsable

Función

Generar Informe de un Proyecto y todos sus componentes

Descripción

Permite obtener un informe para consulta o impresión de uno o varios Proyectos

 

con sus Etapas y actividades asociados, su avance y sus características

 

 

Referencias

De requerimientos: R8,R4,R5

 

 

 

De Casos:RegistroMovimiento

 

 

 

 

 

Control de Proyectos

 

DESCRIPCION DE CASOS DE USO

Nombre

Informes Responsables

Alias

 

Actores

Responsable

Función

Generar Informe de los Responsables o Analistas de los Proyectos

Descripción

Permite obtener un informe para consulta o impresión de los Analistas o

 

Responsables de la realización de los Proyectos

 

 

Referencias

De requerimientos: R7

 

 

 

De Casos: ManejoResponsables

 

 

 

 

 

 

 

Control de Proyectos

 

DESCRIPCION DE CASOS DE USO

Nombre

Informes Movimientos

Alias

 

Actores

Responsable

Función

Generar Informe de los Movimientos reportados a cada actividad

Descripción

Permite obtener un informe para consulta o impresión de los Movimientos de tiempos

 

registrados a cada una de las actividades de las etapas de los proyectos.

 

 

Referencias

De requerimientos:  R4,R5,R6,R7,R8

 

 

 

De Casos: RegistroMovimientos

 

 

 

 

 

 

 

SUBCASOS DE USO

 

 

 

Control de Proyectos

 

DESCRIPCION DE CASOS DE USO

Nombre

ManejoProyectos, IngresoProyectos

Alias

 

Actores

Responsable

Función

Permitir la creación de los Proyectos Nuevos

Descripción

El Responsable puede registrar Proyectos nuevos, identificando todas sus

 

características. El sistema debe validar que el código esté disponible, y que sea

 

valido para ser ingresado.

 

 

Referencias

De requerimientos: R8, R10

 

 

 

De Casos: RegistroMovimiento

 

 

 

 

 

 

 

Control de Proyectos

 

DESCRIPCION DE CASOS DE USO

Nombre

ManejoProyectos, ModificacionProyectos

Alias

 

Actores

Responsable

Función

Permitir la modificación de los Proyectos Existentes

Descripción

El Responsable puede modificar las características de los Proyectos existentes

 

en el sistema. El sistema debe validar que el código exista, que no este terminado,

 

y que solo pueda modificar datos como nombre y duración del proyecto, mas no

 

el tiempo reportado, ya que este es resultado del registro de movimientos.

 

 

Referencias

De requerimientos: R8, R10

 

 

 

De Casos: RegistroMovimiento

 

 

 

 

 

 

 

Control de Proyectos

 

DESCRIPCION DE CASOS DE USO

Nombre

ManejoProyectos, EliminacionProyectos

Alias

 

Actores

Responsable

Función

Permitir la eliminación de Proyectos Existentes

Descripción

El Responsable puede  eliminarProyectos existentes en el sistema, que no tengan

 

movimientos reportados. En este caso deberá eliminar primero ese movimiento

 

primero.

 

 

Referencias

De requerimientos: R8, R10

 

 

 

De Casos: RegistroMovimiento

 

 

 

 

 

 


EVENTOS

 

En este formato se establecen los eventos que pueden ser generados por el actor y van a ser atendidos por cada Caso de Uso. Por evento entendemos la interacción que tiene un actor con la aplicación a través de la interfaz gráfica, como el clic de un ratón, el ingreso de un texto a un componente, el movimiento de un elemento de la interfaz. Todos los eventos van numerados en orden secuencial de acuerdo a la secuencia lógica como ocurrirían en la aplicación (ciclo de vida del caso de uso). De este formato se obtiene la información para la creación de los diagramas de interacción, más específicamente el de secuencia. También se deben presentar los eventos alternos, los cuales permiten establecer las excepciones que se pueden presentar en la ejecución del programa.

 

 

 

Control de Proyectos

FORMATOS DE EVENTOS

Nombre  Caso de Uso

ManejoProyectos; Subcaso IngresoProyectos

Alias

 

Actores

Responsable

Evento

Respuesta del Sistema

 

 

1. Selecciona opción ingreso proyectos

2. Capturar selección

 

3. Mostrar pantalla de captura de datos por proyecto

4. Digitar datos nuevo proyecto

5. Capturar datos nuevo proyecto.

6. Click en grabar datos

7. Graba datos en sistema

 

 

 

 

 

EVENTOS ALTERNOS

Nombre  Caso de Uso

ManejoProyectos; Subcaso IngresoProyectos

Alias

 

Actores

Responsable

Numero de Línea

Respuesta del Sistema

 

 

linea 2

No se digita ninguna selección y muestra mensaje

 

informativo

linea 3

Si el proyecto ya existe no permite seguir y lo informa

 

Si algún dato esta blanco informarle y no seguir

linea 6

Si falla la grabación mostrar mensaje y reversar operación

 

 

 

 

 

 

 

 

Control de Proyectos

FORMATOS DE EVENTOS

Nombre  Caso de Uso

ManejoProyectos; Subcaso ModificacionProyectos

Alias

 

Actores

Responsable

Evento

Respuesta del Sistema

 

 

1. Selecciona opción modificar proyectos

2. Capturar selección

 

3. Mostrar pantalla de modificación de datos por proyecto

4. Modificar datos básicos del proyecto

5. Capturar datos nuevos del proyecto.

6. Click en actualizar datos

7. Actualiza los datos en sistema

 

 

 

 

 

EVENTOS ALTERNOS

Nombre  Caso de Uso

ManejoProyectos; Subcaso ModificacionProyectos

Alias

 

Actores

Responsable

Numero de Línea

Respuesta del Sistema

 

 

linea 2

No se digita ninguna selección y muestra mensaje

 

informativo

linea 3

Si el proyecto no existe lo informa y permite intentarlo de nuevo

 

Si algún dato esta blanco informarle y no seguir

linea 6

Si falla la actualización mostrar mensaje y reversar operación

 

 

 

 

 

 

 

 

Control de Proyectos

FORMATOS DE EVENTOS

Nombre  Caso de Uso

ManejoProyectos; Subcaso EliminacionProyectos

Alias

 

Actores

Responsable

Evento

Respuesta del Sistema

 

 

1. Selecciona opcioneliminar proyectos

2. Capturar selección

 

3. Mostrar pantalla de eliminar de datos por proyecto

4. Click en eliminar datos

5. Elimina los datos del sistema

 

 

 

 

 

EVENTOS ALTERNOS

Nombre  Caso de Uso

ManejoProyectos; Subcaso EliminacionProyectos

Alias

 

Actores

Responsable

Numero de Línea

Respuesta del Sistema

 

 

linea 2

No se digita ninguna selección y muestra mensaje

 

informativo

linea 3

Si el proyecto no existe lo informa y permite intentarlo de nuevo

 

Si el proyecto tiene movimiento no permite borrarlo. Lo informa.

linea 6

Si falla el borrado mostrar mensaje y reversar operación

 

 

 

 

 

 

DIAGRAMA CONCEPTUAL

 

Antes de definir el modelo estático o de clases, es necesario definir el modelo conceptual, el cual nos muestra los conceptos presentes en el dominio del problema. Un concepto para este caso, en términos de POO, es un objeto del mundo real, es decir, es la representación de cosas del mundo real y NO de componentes de software. En él no se definen operaciones ( o métodos). En este modelo se pueden mostrar los conceptos, los atributos de los conceptos (opcionalmente) y la relación o asociación entre ellos. Informalmente podríamos decir que un concepto es una idea, cosa u objeto. Para descubrirlos debemos analizar los sustantivos en las descripciones textuales del dominio del problema, es decir, de la descripción del sistema, de los requerimientos y de los Casos de Uso.

 

 

 

 


 DIAGRAMA DE ESTRUCTURA ESTATICA (DE CLASES)

 

Nos muestra una vista de la aplicación en un determinado momento, es decir, en un instante en que el sistema está detenido. Las clases son la plantilla de los objetos, y aquí podemos ver representados estos con sus atributos o características y su comportamiento o métodos, así como la relación entre ellas.

 

 

 

 

DIAGRAMA DE INTERACCIÓN

 

Son aquellos que muestran las interacciones de un usuario con el sistema. Interacción es una cadena de mensajes enviados entre los objetos en respuesta a un evento generado por el usuario sobre la aplicación.

Los diagramas de interacción pueden ser  Diagramas de Secuencia y Diagramas de Colaboración. Estos diagramas conforman la etapa del diseño de la aplicación, y se crean a partir de los diagramas de Casos de Uso y el Conceptual.

Los Diagramas de Secuencia representa una interacción entre objetos de manera secuencial en el tiempo. Muestra la participación de objetos en la interacción entre sus “líneas de vida”,  (desde que se instancias) y los mensajes que ellos organizadamente intercambian en el tiempo. El responsable o ACTOR es quien inicia el ciclo interactuando inicialmente con la interfaz de usuario: GUI; en seguida se inician todos los objetos que intervienen en el funcionamiento del aplicativo. En este diagrama se comienza a observar el comportamiento del sistema a partir de los eventos generados por los actores. Aquí se interactúa con instancias, no con clases.

 

 

Los De Colaboración dan toda las especificaciones de los métodos. Estos permiten describir una operación específica incluyendo sus argumentos y variables locales creadas durante su ejecución. Se muestran los objetos y mensajes que son necesarios para cumplir con un requerimiento o propósito, o con un conjunto de ellos. Se puede elaborar para una operación o para un Caso de Uso, con el fin de describir el contexto en el cual su comportamiento ocurre.


 

 

CONTRATOS

 

Es un formato que describe lo que una operación debe satisfacer o lograr, en términos de lo qué se hace, mas no de cómo se hace, y haciendo énfasis en los cambios de estado que ocurren en las precondiciones y post condiciones de la operación.

 

Contratos - Caso de Uso IngresarMovto

 

 

CONTRATO

 

Nombre

public double CalculoAvanceEtapa(int proyecto,int etapa)

Alias

 

Clase

GUI

Responsabilidades

Calcular el avance de una etapa de un proyecto

Referencias Cruzadas

R8

Notas

A partir del movimiento reportado en las actividades  de las etapas

 

de los proyectos.

Salida

Un valor decimal que expresa el porcentaje de avance de la etapa dada.

Precondiciones

Deben haberse capturado los datos del movimiento;  que no hayan

 

datos nulos; haber validado la existencia del proyecto y la etapa

 

asociadas al movimiento.

Postcondiciones

Proporciona el porcentaje de avance hasta el momento,

 

incluyendo el movimiento en proceso. Este dato va para la

 

etapa.

 

 

 

 

CONTRATO

 

Nombre

public double CalculoAvanceProyecto(int proyecto)

Alias

 

Clase

GUI

Responsabilidades

Calcular el avance de un proyecto

Referencias Cruzadas

R8

Notas

A partir de los avances de las etapas del proyecto

 

 

Salida

Un valor decimal que expresa el porcentaje de avance del proyecto.

Precondiciones

Deben haberse capturado los datos del movimiento;  que no hayan

 

datos nulos; haber validado la existencia del proyecto y la etapa

 

asociadas al movimiento.

Postcondiciones

Proporciona el porcentaje de avance hasta el momento,

 

Este dato para el proyecto.

 

 

 

 

 

 

 

 

 

 

CONTRATO

 

Nombre

public boolean GrabaMovimiento(lista l)

Alias

 

Clase

GUI

Responsabilidades

Permite la grabación de un movimiento

Referencias Cruzadas

R8

Notas

A partir del registro del reporte de tiempo de una actividad, permite

 

la grabación en la BD.

Salida

Retorna Verdadero si la grabación tuvo éxito, o Falso si falla.

Precondiciones

Deben haberse capturado los datos del movimiento;  que no hayan

 

datos nulos; haber validado la existencia del proyecto y la etapa

 

asociadas al movimiento; y haber calculado los avances tanto

 

de la etapa como el proyecto

Postcondiciones

Graba el registro de  movimiento, actualiza los avances de la etapa

 

y del proyecto.

 

 

 

 

 

 

CONTRATO

 

Nombre

public boolean ActualizaEtapa(proyecto p,etapa e,double ae)

Alias

 

Clase

GUI

Responsabilidades

Permite la actualización avance de una etapa

Referencias Cruzadas

R8

Notas

A partir de los movtos se aplica la formula para este  cálculo.

 

 

Salida

Retorna Verdadero si la grabación tuvo éxito, o Falso si falla.

Precondiciones

Accesar a los movimientos de la correspondiente etapa

 

Calcular el valor del avance, según la formula definida para esto

 

 

Postcondiciones

Actualizar el valor del avance en la etapa del proyecto.

 

 

 

 

 

 

CONTRATO

 

Nombre

public boolean ActualizaProyecto(proyecto e,double ae)

Alias

 

Clase

GUI

Resposabilidades

Permite la actualización  del avance de un proyecto.

Referencias Cruzadas

R8

Notas

A partir de los movtos se aplica la formula para este  cálculo.

 

 

Salida

Retorna Verdadero si la grabación tuvo éxito, o Falso si falla.

Precondiciones

Accesar a los movimientos del correspondiente proyecto

 

Calcular el valor del avance, según la formula definida para esto

 

 

Postcondiciones

Actualizar el valor del avance en la etapa del proyecto.

 

 

 

 

DIAGRAMA DE ESTADO

 

Este diagrama muestra la secuencia de los estados de un objeto durante su ciclo de vida, en respuesta a un estímulo recibido. Los estados de los objetos están dados por el valor de sus atributos (estados) lo cual cambia su comportamientos (métodos).

Los estados hacen referencia a una condición durante la vida de un objeto o a una interacción durante la cual se satisface alguna condición (ejecutar alguna acción, esperar algún evento, etc), por ejemplo una validación de una captura.

Un objeto permanece en un estado por un tiempo finito, hasta que se cumpla la condición de cambio. Se construyen a partir del Diagrama de Estructura Estática, identificando cuáles objetos cambian de estado, cual es le estado inicial y el final, definiendo a qué eventos puede responder el objeto, y qué transacciones ejecutará.

 


 

DIAGRAMA DE  ACTIVIDADES

 

 

Se utilizan para visualizar, especificar, construir y documentar la dinámica de un conjunto de objetos o simplemente para modelar el flujo de control de una operación (método de una clase). Fundamentalmente es un Diagrama de Flujo que muestra el flujo de control entre las actividades. Dentro del flujo se pueden encontrar pasos secuenciales y/o concurrentes y/o condiciones. Permiten en un momento dado construir sistemas ejecutables a través de ingeniería directa (del modelo al .exe) o inversa (de la implementación al modelado)

 


ir al índice