Desenvolvimento - Modelagem

UML - Unified Modeling Language - Atores, Atividades e Componentes

Continuando com a séria de artigos vamos conhecer um pouco mais sobre atores, atividades e componentes em UML.

por Admilson Nogueira



Atores - Definição

Atores são usuários e/ou outros meios externos que desenvolvem algum papel em relação ao sistema. Os meios externos são hardwares e/ou softwares que, assim como os usuários, geram informações para o sistema ou necessitam de informações geradas a partir do sistema.

Existem atores que podem desempenhar mais de um papel no sistema, quando se pensar em atores é sempre bom pensar neles como papéis em vez de pensar como pessoas, cargos, máquinas. No sistema podem ter usuários com diferentes permissões, para isto é necessário criar um ator para cada diferente tipo de permissões. Os atores são quem desempenham os casos de uso, um mesmo ator pode estar em um ou mais casos de uso. Cada ator deve possuir um nome cujo terá relação direta com a sua função, possuirá uma descrição que definirá o que ele faz e com quem ele interage.

Vamos pensar em um exemplo:


Imagine um Professor. Ele pode ser um Ator em um Sistema.


Agora pense em que um Professor faz:

  • Ministrar Aulas
  • Corrigir Provas
  • Informar Notas dos Alunos


Consultar Notas dos Alunos
  • Emitir Certificados
  • Coordenar Professores
  • Agora vejamos como fica tudo isso em um Diagrama de Caso de Uso (aprenderemos Diagramas mais adiante):

    Veja que o Professor informa as notas dos Alunos, enquanto o Coordenador consultas as notas (repare nos sentidos das setas).

    Suponha que exista mais um Ator no contexto. Um Ator que desempenha um papel de um outro Sistema. Vamos inventar aqui um Sistema do Governo, e imaginar que as notas dos Alunos devem ser informadas a esse Sistema, representado pelo nosso Ator SIENEM - Sistema Integrado do ENEM. Conforme nosso Diagrama abaixo, vemos que o Ator SIENEM consulta as notas informadas pelo Coordenador.

    Então, conforme dito acima, um Ator pode ser um Sistema ou um Usuário de um Sistema.

    Agora que você já tem uma pequena noção do que são os Atores na UML, no próximo Artigo vamos abordar as Atividades, que nada mais são do que os passos de um processo de alguma funcionalidade do Sistema.

    Atividades - Definição

    Uma Atividade é essencialmente parte de um fluxo, que interage com uma outra atividade, podendo ser paralela a ela ou não.

    Exemplo de Atividade:


    Diagramas de Atividades

    Os diagramas de atividades são um caso especial de diagramas de estado, onde todos os estados têm uma ação interna e nenhuma transição tem um evento de entrada. O propósito de um diagrama de atividades é focar nos fluxos dirigidos pelo processamento interno e descrever o comportamento de processamentos paralelos.

    Diagramas de atividade capturam ações e seus resultados. Eles focam o trabalho executado na implementação de uma operação (método), e suas atividades numa instância de um objeto. O diagrama de atividade é uma variação do diagrama de estado e possui um propósito um pouco diferente do diagrama de estado, que é o de capturar ações (trabalho e atividades que serão executados) e seus resultados em termos das mudanças de estados dos objetos.

    Os diagramas de atividades são usados para detalhar classes, implementação de operações e casos de uso, enquanto os diagramas de estado são usados para especificar o comportamento global de um tipo.

    Um diagrama de atividade é uma maneira alternativa de se mostrar interações, com a possibilidade de expressar como as ações são executadas, o que elas fazem (mudanças dos estados dos objetos), quando elas são executadas (seqüência das ações), e onde elas acontecem (os divisores ou swimlanes).

    Os Divisores

    Os diagramas de atividades representam o que acontece, mas não representam quem faz o que. Isso significa que o diagrama não diz qual classe é responsável por cada atividade. Veja:

    No exemplo acima “Cadastrar” e “Alterar” podem pertencer à mesma Classe.

    Neste caso, os divisores contornam esse problema através da organização das responsabilidades das atividades dentro de uma classe. Veja:

    Através dos divisores podemos separar as atividades de acordo com as classes responsáveis por essas atividades. Os divisores são representados por linhas verticais tracejadas.

    Aplicações

    Um diagrama de atividade pode ser usado com diferentes propósitos inclusive:

    • Para capturar os trabalhos que serão executados quando uma operação é disparada (ações). Este é o uso mais comum para o diagrama de atividade.
    • Para capturar o trabalho interno em um objeto.
    • Para mostrar como um grupo de ações relacionadas pode ser executado, e como elas vão afetar os objetos em torno delas.
    • Para mostrar como uma instância pode ser executada em termos de ações e objetos.
    • Para mostrar como um negócio funciona em termos de trabalhadores (atores), fluxos de trabalho, organização, e objetos (fatores físicos e intelectuais usados no negócio).

    Conclusão

    O diagrama de atividade mostra o fluxo seqüencial das atividades, é normalmente utilizado para demonstrar as atividades executadas por uma operação específica do sistema. Consistem em estados de ação, que contém a especificação de uma atividade a ser desempenhada por uma operação do sistema. Decisões e condições, como execução paralela, também podem ser mostradas na diagrama de atividade. O diagrama também pode conter especificações de mensagens enviadas e recebidas como partes de ações executadas.

    Agora que você já tem uma pequena noção do que são as Atividades na UML, no próximo Artigo vamos abordar os Componentes, que nada mais são do que aspectos físicos do Sistema sendo modelado.

    Componentes - Definição

    Segundo Furlan, os Componentes mostram aspectos físicos entre as partes de um software.

    Diagramas de Componentes

    Os diagramas de componentes representam, de forma estática, aspectos físicos do sistema sendo modelado. São importantes tanto para visualizar, especificar e documentar sistemas, quanto para construir sistemas através de engenharia reversa (reverse) e direta (forward). Os diagramas mostram um conjunto de componentes e seus relacionamentos.

    São tipicamente usados para:

    • Modelar a organização do código fonte:

    • Modelar lançamento de executáveis (versões):

    • Modelar fisicamente um banco de dados:

    Na realidade esse tipo de diagrama mostra o sistema por um lado funcional, expondo as relações entre seus componentes e a organização de seus módulos durante sua execução, descrevendo os componentes de software e suas dependências entre si, representando a estrutura do código gerado. Os componentes são a implementação na arquitetura física dos conceitos e da funcionalidade definidos na arquitetura lógica (classes, objetos e seus relacionamentos). Eles são tipicamente os arquivos implementados no ambiente de desenvolvimento.

    Um componente é mostrado em UML como um retângulo com uma elipse e dois retângulos menores do seu lado esquerdo. O nome do componente é escrito abaixo ou dentro de seu símbolo. Veja mais alguns exemplos:

    Componentes são tipos, mas apenas componentes executáveis podem ter instâncias. Um diagrama de componente mostra apenas componentes como tipos. Para mostrar instâncias de componentes, deve ser usado um diagrama de execução, onde as instâncias executáveis são alocadas em nodes. Aprenderemos isso mais adiante.

    Agora que você já tem uma pequena noção do que são os Componentes na UML, no próximo Artigo vamos abordar os Adornos, que nada mais são do que comentários presentes nas modelagens.
    Admilson Nogueira

    Admilson Nogueira - Empresário, estudioso da Língua Japonêsa, Certificado Intel, Graduado em Matemática com Licenciatura em Física, Analista de Sistemas e Programador. Como especialista Unified Modeling Language e Capability Maturity Model, atuou ativamente em diversos Projetos em empresas como: Infraero, Ministério da Aeronáutica, Embraer, Alcoa, Telefonica, Banco do Brasil (Mainframe), entre outras. Atualmente atua como Analista de Negócios da BM&FBOVESPA em São Paulo, focado em BPM (Business Process Management).
    Blog:
    http://nogueirajr.spaces.live.com.