Teoría sobre Elaboración de diagramas de comportamento
Sumario
- 1 Obxectivos
- 2 Introducción
- 3 Tipos de diagramas de comportamento: campo de aplicación
- 4 Diagramas de casos de uso: actores, escenario e relación de comunicación
- 5 Diagramas de interacción: tipos (diagramas de secuencia e de comunicación)
- 6 Diagramas de comunicación
- 7 Diagramas de actividades
- 8 Diagramas de estados
- 9 Resumo
- 10 Bibliografía
- 11 Referencias
Obxectivos
Vimos que os diagramas de clases representan o modelo dun sistema, os distintos obxectos que o compoñen, cómo están relacionados uns cos outros, as xerarquías ou taxonomías existentes entre eles e tanto o estado coma o seu comportamento. É unha visión estática do sistema.
Nesta sección:
- Aprederemos a traballar con diagramas de casos de uso, de secuencia, de estados, etc.
- Permitiranos ver vai a interactuar o sistema co usuario, cal é a secuencia de eeecución, cómo se relacionan os obxectos, en qué orden van a executarse os seus métodos, o ciclo de vida dos obxetos, etc.
- isto é a parte dinámica que vai ser necesaria para o programador
Introducción
Tipos de diagramas de comportamento: campo de aplicación
Diagramas de casos de uso: actores, escenario e relación de comunicación
Diagramas de interacción: tipos (diagramas de secuencia e de comunicación)
Diagramas de secuencia
Diagramas de colaboración
Lembra. Os diagramas de secuencia e os diagramas de colaboración son equivalentes; amosan a mesma información pero de xeito distinto Un diagrama de secuencia pode convertirse nun de colaboración e viceversa.
Diagramas de comunicación
Diagramas de actividades
Os diagramas de actividades son unha variante dos diagramas de estados nos que os estados representan a execución de actividades ou accións e as transaccións só se disparan cando se finaliza a execución das actividades ou accións.
Cando se empeza a traballar con este tipo de diagramas non sempre resulta doado diferenciar un estado dunha actividade. Os estados son xeralmente atómicos (non se poden dividir) e pásase dun estado a outro cando se produce algún evento. As actividades, por contra, non son atómicas (poden dividirse noutras actividades ou accións) e xeralmente pásase dunha a outra cando a actividade termina.
Facendo un símil coas persoas, un estado podería ser triste, e non o podemos dividir en estados mais sinxelos, e normalmente só poderemos cambiar de estado - a contento por exemplo - cando suceda algún evento, por exemplo recibir unha boa noticia. Pola contra, un exemplo de actividade podería ser facer a colada, que podemos dividir en actividades ou accións mais sinxelas (seleccionar roupa, metela na lavadora, poñer a lavadora, etc) e, normalmente cambiaremos a outra actividade, facer a comida por exemplo, cando terminemos a primeira.
A diferenza doutros diagramas que soen empregarse para funcións moi concretas, os diagramas de actividades son mais versátiles e poden empregarse para distintas tarefas dentro do proceso de análise e deseño dun proxecto e a distinto nivel de detalle.
Por exemplo para describir:
- un proceso de negocio ou un fluxo de traballo entre os usuarios e o sistema.
- os pasos que se levan a cabo nun caso de uso.
- un método, unha función ou unha operación de software.
En todos estes casos, debuxar un diagrama de actividades pode axudar a mellorar o proceso que se está representado. Se o diagrama de actividade do proceso resulta ser moi complexo, pódense buscar posibilidades para simplificalo.
Elementos
Os diagramas de actividade poden incluír os seguintes elementos:
- Actividade/Acción. Identificase cun paso ou conxunto de pasos na execución do proceso que se estea representando. A diferenza entre actividades e accións é que as primeiras poden ser subdivididas en outras actividades ou accións e as segundas non (considéranse atómicas, e dicir, indivisibles).
- Represéntanse mediante un rectángulo cos bordos redondeados. Dentro poñerase o nome da actividade ou acción aínda que tamén pode aparecer unha expresión que a identifique.
- Algunhas veces as accións represéntanse cunha figura en forma de píldora ou cápsula para diferencialas das actividades.
- Transición ou fluxo. Determina a actividade que vai a continuación doutra. Representase cunha frecha entre unha actividade e outra.
- Bifurcación. Marca a existencia de fluxos alternativos. En cada fluxo de saída indícase unha condición de garda.
- Represéntase cun rombo que ten unha transición de entrada e 2 ou máis de saída.
- As bifurcacións poden fusionarse despois nun único fluxo. Isto pode vir representado de varias formas:
- Divisións e unións. Utilízanse para representar estados que se poden realizar en paralelo. Graficamente represéntanse cunha barra de sincronización que é unha liña ancha horizontal ou vertical.
- Particións. Pódense facer particións nun diagrama de actividades para identificar as accións que teñen algunha característica en común. Por exemplo que se levan a cabo por un mesmo actor:
Recomendacións
- Tendo en conta que os diagramas de actividade soen estar asociados a unha clase, a unha operación ou a un caso de uso, débese seleccionar correctamente a operación que será representada; recoméndase seleccionar operacións importantes que poidan ser custosas, repetitivas e que causen dificultades no proceso.
- É preciso determinar onde empeza e onde remata o ciclo que se quere representar.
- Convén observar varias veces a operación para dividila nos seus elementos e identificalos claramente.
Finalmente, cos datos anteriores e seguindo a secuencia de elementos, constrúese o diagrama.
Exemplos
Extracción de cartos nun caixeiro automático
Venta de gando
Diagramas de estados
Os diagramas de estados, tamén chamados diagramas de máquina de estados, sirven para amosar os diferentes estados polos cales pasa un obxecto durante o seu ciclo de vida e a maneira en que o obxecto cambia dun estado a outro en resposta aos eventos que chegan a el.
Dentro dun proxecto software, os diagramas de estado normalmente empréganse sempre para mostrar o comportamento dun único obxecto o longo do seu ciclo de vida pero tamén poden ser útiles para representar a secuencia de eventos que poden afectar a un sistema nun determinado caso de uso. Neste caso falamos de diagramas de estado para casos de uso e unicamente soen empregarse en casos de uso complexos con moitos eventos que deben de sucederse seguindo un orden establecido (por exemplo cando estamos utilizando un procesador de texto).
Elementos
Nun diagrama de estados basicamente aparecen dous tipos de elementos:
- Estados. Un estado é unha situación na vida dun obxecto. Identifica un período de tempo do obxecto no cal o obxecto está esperando algunha operación, ten certo estado característico ou pode recibir certo tipo de estímulos. Represéntase mediante un rectángulo cos bordos redondeados, que pode ter tres compartimentos:
- un para o nome
- outro para o valor característico dos atributos do obxecto nese estado
- outro para as accións que se realizan ao entrar, saír ou estar nun estado (entry, exit ou do, respectivamente).
- En moitos diagramas de estado omítense os dous compartimentos inferiores.
- Márcanse tamén os estados iniciais e finais mediante cos símbolos das imaxes.
- Transicións. Unha transición é unha relación entre dous estados que indica que un obxecto que estea no primeiro estado realizará certas accións e entrará no segundo estado cando ocorra un evento determinado e se satisfagan unhas condicións específicas. Graficamente represéntase cunha liña continua con punta de frecha no estado destino e normalmente acompáñase cun texto indicando o nome do evento que desencadea a transición.
- Pode existir unha transición que teña o mesmo estado orixe e destino.
O nome do evento pode vir acompañado cunha serie de parámetros có seguinte formato:
nome-evento '('lista-de-argumentos')' '['condicion-de-garda']' '/' acción '^' claúsula-envío
Onde:
- nome-evento e lista-de-argumentos describen o evento que dá lugar á transición e forman o que se denomina event-signature.
- condicion-de-garda é unha condición (expresión booleana) adicional ao evento e necesaria para que a transición aconteza.
- Se a condicion-de-garda se combina cunha event-signature, entón para que a transición se dispare teñen que suceder dúas cousas: debe acontecer o evento e a condición booleana debe ser verdadeira.
- acción é unha acción que se executa cando se dispara a transición e que, por exemplo, pode ser unha chamada a unha operación.
- "/" Esta barra delimita varias acción nunha transición de estado (no caso de haber máis de unha)
- claúsula-envío é unha acción adicional que se executa co cambio de estado, por exemplo, o envío de eventos a outros paquetes ou clases.
Exemplos
Ascensor
Imos ver un exemplo dun diagrama de estados para un ascensor:
O ascensor empeza estando no primeiro piso. Pode subir ou baixar. Se o ascensor está parado nun piso, acontece un evento de tempo superado despois dun período de tempo e o ascensor baixa ao primeiro piso. Este diagrama de estado non ten un punto de finalización (estado final).
O evento da transición entre os estados EnPrimeiroPiso e Subindo ten un argumento, piso. O mesmo sucede cos eventos das transicións entre Parado e Subindo e entre Parado e Baixando. O estado Parado asigna o valor cero ao atributo temporizador, logo o incrementa continuamente ata que aconteza o evento Chamada ascensor ou ata que a condición [temporizador = tempo-límite] se converta en verdadeira.
Chamada telefónica
Estados polos que pasa un teléfono nunha chamada telefónica:
Resumo
Casos de uso
- Pode especificarse cómo o usuario vai a interactuar co sistema mediante os diagramas de casos de uso.
- O caso de uso é a funcionalidade do sistema.
- Un actor é unha persona ou rol que utiliza o sistema.
- Os casos de uso documéntanse na fase de análise. Esta documentación inclúe os actores, as condicións previas ou precondicións e os fluxos de execución.
- Existen tres tipos de relacións:
- Include ou inclusión. Utilízase cando un caso dentro dun diagrama necesita a funcionalidade doutro.
- Extends ou extensión. Situación na que se ten un caso de uso similar a outro pero que fai algo máis.
- Xeneralización. Identificanse elementos comúns e crease unha xerarquía.
Diagramas de secuencia
- Permiten engadir unha característica fundamental a análise coma é o tempo.
- Extraense do diagrama de clases e do diagrama de casos de uso.
- Existen tres tipos de mensaxes:
- Simples.
- Sincrónicos.
- Asincrónicos.
- É posible representar recursividade nos diagramas de secuencia.
Diagramas de colaboración
- Os diagramas de colaboración amosan:
- cómo os distintos obxectos dun sistema interaccionan uns cos outros
- qué mensaxes se envían
- cómo interactúan tendo en conta a orde
- Os diagramas de secuencia e diagramas de colaboración son equivalentes
- amosan a mesma información, pero de xeito distinto.
- un diagrama de secuencia puede convertirse en un de colaboración e viceversa.
Diagramas de estado
- Os diagramas de estado permiten representar os distintos estados polos que pasa un obxecto.
- Os iconos de estado igual que as clases adoitanter a seguinte información:
- O nome do estado.
- As variables de estado.
- As actividades
- Existen estados en reposo ou standby do mesmo xeito que subestados.
Diagramas de actividades
- Os diagramas de actividades son moi parecidos ós diagramas de fluxo e se crean para coñecer dunha maneira esquemática o que un proceso fai.
- É posible expresar a concurrencia nun diagrama de actividades.
Bibliografía
- Traballo realizado durante unha licenza de formación retribuída pola Consellería de Cultura, Educación e Ordenación Universitaria. María del Carmen Fernández Lameiro, Máximo Fernández López e Andrés del Río Rodríguez. licenza Creative Commons BY-NC-SA
- Entornos de desarrollo. Moreno Pérez, Juan Carlos. Editorial Síntesis. ISBN: 9788491711612
- Pressman, R. S. Ingeniería del Software: Un enfoque práctico. Editorial McGraw-Hill
- Sommerville, I. Ingeniería del software. Editorial Addison Wesley
