aula -diagrama_de_actividade
TRANSCRIPT
UML - Diagramas de Actividades(activity diagrams)
Edgar Gemo [email protected]
Zeferino Saugene [email protected]
ObjectivoUm diagrama de actividades decompõe uma actividade em sub-actividades (actividades de mais baixo nível), podendo chegar a acções atómicas, com fluxo de controlo sequencial ou concorrente entre sub-actividades
• Opcionalmente, podem-se definir as unidades organizacionais, entidades ou objectos responsáveis pela execução de acções ou actividades
• Opcionalmente, podem-se indicar fluxos de objectos - objectos que são entrada ou saída de sub-actividades
• Pode-se usar toda a notação dos diagramas de estados
Um diagrama de actividades é essencialmente um fluxogramacom concorrência
A actividade que está a ser decomposta pode ser:• Um caso de utilização• Uma operação de uma classe• Um grupo de casos de utilização relacionados entre si• Uma parte de uma actividade de mais alto nível
Tipos de estadosEstado de espera: a saída é causada por eventos
• Pode ter actividade e acções associadas• Transições de saída têm eventos e possivelmente condições e acções
Estado de acção: estado de execução de uma acção, cuja conclusão determina a saída do estado
• Acção: operação atómica, instantânea, que não pode ser interrompida• Transições de saída não têm eventos, mas podem ter condições e acções
Estado de (sub)actividade: estado de execução de uma (sub)actividade, cuja conclusão determina a saída do estado
• (Sub)Actividade: operação não atómica, possivelmente detalhada noutro diagrama (com ícone), potencialmente demorada, que pode ser interrompida
• Transições de saída não têm eventos, mas podem ter condições e acções
Decisão: estado de passagem em que são testadas condições• As condições aparecem nas transições de saída• Não é um estado verdadeiro, mas uma ramificação numa transição
acção
activ.
Estado
Exemplo: Preparar bebidaProcurar Bebida [não há café] [não há cola]
[há cola][há café]
Pôr Água no ReservatórioPôr Café no Filtro Pôr Chávenas
Pôr Filtro na Maquina
Ligar Máquina
Esperar que aqueça
/send ligar cafeteira
Deitar caféBeber
Buscar latas de cola
luz desliga-seestado de espera
(cantos arredondados)
decisão e ramificação
subactividade(lados arredondados)
envio de sinal
transição disparada por recepção de sinal
barra de sincronização(separação)
barra de sincronização(fusão)
Notação alternativa para envio e recepção de sinais
ligar cafeteira
luz desliga-se
Ligar Máquina
Esperar que aqueça
Deitar café
cafeteira
opcional
Transição com acção de envio de sinal
Transição causada por evento de recepção de sinal
Pistas de responsabilidade (swimlanes)
Um diagrama de actividades pode ser dividido em pistas de responsabilidade (swimlanes), separadas por linhas contínuas
Cada pista é encabeçada pelo nome da unidade organizacional, entidade ou objecto responsável pelas acções e actividades aí localizadas
Cada acção ou actividade é localizada numa única pista, mas uma transição pode atravessar várias pistas
Útil para modelar fluxos de trabalho relativos a processos de negócio
Fluxos de objectos
Um objecto pode ser entrada (para consulta) ou saída (para criação, modificação ou destruição) de uma acção
• indica-se por uma seta a traço interrompido (seta de dependência) entre a acção e o objecto, no sentido do fluxo
Quando uma acção tem como saída um objecto que é entrada para a acção seguinte, é desnecessário indicar o fluxo de controlo (a transição), basta o fluxo de/para objectos (tipo DFD)
acção 1
obj1:C1
acção 2
consultacria, modifica ou destrói
acção 1 obj1:C1 acção 2
Exemplo: Processo de encomenda
Faz encomenda
Cliente
Regista encomenda
Vendas Armazém
Emite factura
Despacha encomenda
Paga factura
e: Encomenda[pendente]
e: Encomenda[despachada]
f: Factura[pendente]
f: Factura[paga]
Estado de objecto
Modelação de processos de negócio
Processo de negócio é actividade estereotipada
Processo pode ter sub-diagrama encaixado
Dependências com estereótipos "supply", "controls", ..., entre processos
Processos transformam objectos de entrada, produzem objectos de saída, usam recursos e pretendem atingir "goals"
Ver "Business Modeling with UML: Business Patterns at Work", de Hans-Erik Eriksson e Magnus Penker, Wiley & Sons, 2000
Requisitar Publicação
Levantar Devolver
Caso de estudo: Biblioteca
Vem requisitar
Devolve a publicação
Recebe a publicação
Consulta a publicação
Vem levantar
Verifica disponibilidade
Recolhe a publicação
Empresta a publicação
Coloca em l is ta de espera
Aguarda disponibil idade
Avisa o requisitante
disponível
[ desiste ]
[ espera ]
[ disponível ][ indisponível ]
a biblioteca : Bibliotecarequisitante : Leitor
Diagrama de actividades relativo ao caso de utilização de negócio "Requisitar publicação"
: requisição[finalizada]
: requisição[espera disponibilidade]
: requisição[espera levantamento]
: requisição[espera devolução]
Exercício 1
Refinar caso de estudo com:• refinar diagrama anterior com controlo de prazos de levantamento e
devolução, e desistência do leitor- Sugestão: usar fluxo de controlo concorrente (com envio/recepção de
sinais) em vez de sequencial
• elaborar diagramas de actividades relativas a outros casos de utilização do negócio
Exercícios adicionais
Exercício 2: Visionamento de cassete de video
Suponha que, para visionar num televisor o conteúdo completo de uma cassete de video de 8mm gravada com uma máquina de filmar, uma pessoa deve proceder da seguinte forma:
• Para preparar a reprodução, realizar as seguintes operações por qualquer ordem:
- conectar a máquina de filmar ao televisor- ligar o televisor no canal “AV”- ligar a máquina de filmar na posição “player”, inserir a cassete, carregar no botão
“rewind” para rebobinar a cassete e esperar pela conclusão da rebobinagem• Carregar então no botão “play” da máquina de filmar para iniciar a
reprodução (visionar o conteúdo da cassete no televisor)• Chegando ao fim da gravação ou ao fim da fita, realizar as seguintes
operações, por qualquer ordem:- rebobinar a cassete (se tiver chegado ao fim da fita, a máquina rebobina-a
automaticamente, e basta esperar pela conclusão da rebobinagem; senão, écarregar em “stop” para parar a reprodução, e carregar em “rewind”), ejectar a cassete e desligar a máquina
- desligar o televisor- retirar os cabos que conectam a máquina ao televisor
Modelize este procedimento num diagrama de actividade
Exercício 3: Procedimento em empresa de software
(ES, 9/1/98) Uma empresa de software segue o seguinte procedimento na fase inicial (análise e especificação de requisitos) dos projectos de desenvolvimento de novos produtos:
• A direcção da empresa começa por contratar com o cliente um caderno de encargos para a 1ª fase do projecto (análise e especificação de requisitos), e nomeia de seguida um analista responsável pela condução dessa fase.
• O analista começa por analisar o caderno de encargos. Seguidamente, entrevista ocliente e, em paralelo, recolhe documentação relevante (nomeadamente legislação). Com base nesses elementos, elabora o relatório de especificação de requisitos, que submete à apreciação da direcção da empresa. A direcção da empresa pode aprovar o relatório ou propor alterações. No 2º caso, o analista elabora uma nova versão com as alterações propostas, que submete de novo à apreciação da direcção. Uma vez obtida a aprovação da direcção, o relatório é submetido à apreciação do cliente, que o pode aprovar ou recusar. No 2º caso, o analista elabora uma nova versão, que volta a apresentar à apreciação da direcção e assim sucessivamente.
• Uma vez obtida a aprovação do cliente, considera-se terminada a fase de análise e especificação de requisitos.
Modelize este procedimento através de um diagrama de actividades