Tarefa: Definir Contexto do Sistema
Esta tarefa define como criar um diagrama de contexto do sistema que mostra a colaboração de nível mais alto entre o sistema e seus agentes.
Disciplinas: Análise e Design
Objetivo
  • Com base no Modelo de Caso de Uso,  criar uma colaboração de nível superior que mostre o sistema (modelado como um subsistema de nível superior), suas interfaces e seus relacionamentos com os respectivos agentes, incluindo entidades de E/S externas que fluem entre o agente e o sistema.
Relacionamentos
FunçõesExecutor Primário: Executores Adicionais:
EntradasObrigatório:
    Opcional:
    • Nenhum
    Saídas
      Etapas
      Introdução

      Enquanto o Modelo de Caso de Uso mostra o contexto comportamental do sistema, nesta tarefa, você criará um modelo do sistema em seu ambiente, utilizando o Produto de Trabalho: Modelo de Caso de Uso e o Produto de Trabalho: Especificações Suplementares para delinear o seguinte em um Diagrama de Contexto:

      • As interfaces a serem realizadas pelo sistema, em termos das operações fornecidas pelo sistema e dos protocolos associados suportados, as variáveis de estado e os armazenamentos que o sistema realiza e os atributos caracterizados como Medidas Técnicas de Desempenho).
      • As entidades de E/S que fluem entre o sistema e seus agentes.
      • As interfaces necessárias pelo sistema (a serem realizadas pelos agentes que interagem com o sistema) para o desempenho correto. Muitas vezes, se o agente representa um sistema existente com o qual o sistema deve se comunicar, essas interfaces necessárias simplesmente refletem as restrições impostas por esse outro sistema.

      Um diagrama de contexto mostra a colaboração de nível superior entre o sistema e seus agentes. Esse é o analógico estrutural para o Modelo de Caso de Uso do sistema. Essa colaboração é criada no Modelo de Análise.

      Entidades de E/S (representadas para modelagem como classes estereotipadas de "E/S" com atributos, mas sem operações) descrevem itens que fluem para dentro ou para fora do sistema, podendo, no caso do sistema geral, incluir dados, massa, energia ou partes físicas. Essas entidades de E/S são associadas (durante a modelagem) a pares de agente/sistema, indicando que essas entidades de E/S específicas fluem entre o agente e o sistema. Como opção, elas podem ser mostradas nos diagramas, associadas ao agente, e a direção do fluxo é indicada por um estereótipo de envio" ou "recebimento" na associação, indicando a direção relativa ao agente.

      Uma Operação do Sistema é um serviço que pode ser solicitado a partir de um objeto para gerar um comportamento. Uma operação especifica o nome, o tipo, os parâmetros e as restrições para chamar um comportamento associado. As Operações são agrupadas em torno das interfaces, junto às principais responsabilidades do (sub)sistema em consideração. Uma chamada de operação do sistema representa uma interação mais granular com o sistema em comparação a uma instância de caso de uso, e uma instância de caso de uso é uma composição de chamadas e respostas de operações.

      Variáveis de estado e armazenamentos são atributos definidos nas interfaces realizadas pelo sistema. São abstratas e requerem que o sistema mantenha informações correspondentes ao tipo e a multiplicidade do atributo e que permita o armazenamento, a recuperação e a modificação dessas informações. Não há implicação de que um atributo no sistema corresponda diretamente ao atributo definido na interface. A diferença entre variáveis de estado e armazenamentos não é intrínseca, mas apenas reflete a forma como os atributos são utilizados para controlar a operação da máquina de estado do sistema (abstrato). Um "estado" persiste por um certo período, ao contrário de um evento (como a chegada de um sinal), que ocorre em um ponto no tempo. As máquinas de estado mencionadas aqui são máquinas de estado finitas, e a delineação de "estado" é, em geral, decidida por relativamente poucas variáveis; por exemplo, o estado atual pode ser especificado pelo valor de um único atributo de um tipo de enumeração. Entretanto, a reação do sistema a um evento pode depender não só da natureza desse evento (e das informações que ele transmite, por exemplo, nos parâmetros de operação) e do estado atual, como também do valor de outros atributos (talvez muitos outros).

      Uma TPM (Technical Performance Measure) é um atributo técnico-chave, selecionado a partir de Especificações Suplementares ou de um Modelo de Caso de Uso como indicador crítico da eficácia do sistema, que, se não for obtido, colocará o desenvolvimento do sistema em risco de restrições de custo pelo excesso de execução, planejamento ou desempenho. Os valores emergentes desses atributos são rastreados ao longo da existência do projeto. Por exemplo, talvez seja importante que que o peso entregue de um sistema seja mantido abaixo de um certo limite e que a obtenção dessa meta precise ser rastreada durante o design e a construção. O peso do sistema entregue é obviamente um atributo (que pode ser realizado de várias maneiras) de uma instância do sistema e não é necessariamente igual ao peso de destino durante o desenvolvimento (para que um sistema seja ativado e fique operacional, você provavelmente preferirá que o peso seja menor). Um valor UML rotulado pode ser utilizado para anotar um atributo TPM de forma a indicar a meta de desempenho, por exemplo:

      peso "TPM" {peso_máximo = 1000kg}

      TPMs também podem ser aplicáveis a outras características não estruturais, como o tempo de resposta das operações. Valores rotulados podem ser aplicados a operações do sistema, ou ao próprio sistema, para registrar essas características.

      Criar o Diagrama de Contexto Inicial

      As etapas a seguir mostram os níveis evolutivos de detalhes do sistema no contexto. O exemplo ilustrado é o de um sistema de segurança, protegendo uma propriedade contra invasão não autorizada, que, além de ativar um alarme, é capaz de reportar violações a algum tipo de serviço de resposta. 

      À medida que se evolui e mais detalhes são incluídos no Modelo de Caso de Uso (descobrindo os agentes; ou, se a Modelagem de Negócios tiver sido desempenhada, e os agentes e talvez as operações já tenham sido identificados, elaborando sua interação), você poderá criar a colaboração inicial e ilustrar essa colaboração com um Diagrama de Contexto. O Diagrama de Contexto pode ser criado conforme especificado a seguir, com as interfaces do sistema inicialmente abstraídas. O sistema é representado como um subsistema de nível superior (estereotipado como "sistema") que, com o tempo, realiza várias interfaces. Agentes e suas associações também são mostrados, mais uma vez, sem detalhes no início.

      Diagrama de Contexto (Inicial)

      Diagrama de Contexto (Inicial)

      Refinar Associações e Interfaces

      Em seguida, você refinará as associações entre os agentes e o sistema e a interface do sistema. Comece a considerar as operações do sistema e os atributos do sistema à medida que eles são exteriorizados a partir da Tarefa: Localizar Agentes e Casos de Uso (Posteriormente: Tarefa: Detalhar um Caso de Uso). Observe que, agora, o sistema aparece aos agentes, mostrando a interface. A realização disso poderá ser mostrada se desejado (realçada pelo círculo tracejado no diagrama), mas pode ser omitida sem muita perda de informações.

      Nesse estágio, apenas identifique temporariamente as entidades de E/S, com base no conhecimento de domínio e em qualquer trabalho anteriormente feito na realização de casos de uso em nível corporativo. Observe que não é necessário que as entidades de E/S sejam mostradas no diagrama, mas isso pode ser útil na consideração sobre as interações entre os agentes e o sistema.

      Portanto, você pode começar a caracterizar a(s) conexão(ões) entre o agente e o sistema (por exemplo, registrar o protocolo requerido) e a registrar as entidades que fluem entre eles.

      Diagrama de Contexto (Preliminar)

      Diagrama de Contexto (Preliminar)

      Detalhar Operações do Sistema e Outras Características do Sistema

      Nesta etapa, você começa a construir cenários de caso de uso (instâncias de casos de uso) a partir dos quais possa descrever operações do sistema (fornecidas e necessárias). Os cenários podem ser ilustrados por diagramas de interação ou de atividades. Cada etapa em caixa preta de um caso de uso representa uma interação granular com o sistema e é mapeada para uma chamada de operação (mas não necessariamente uma operação exclusiva; outras etapas em caixas pretas podem utilizar a mesma operação). Além da definição das operações do sistema no Diagrama de Contexto (e, portanto, no Modelo de Análise), os casos de uso também são anotados, por questões de rastreabilidade, para as operações chamadas. As operações também herdam todos os requisitos de desempenho ou outros requisitos não funcionais que foram alocados às etapas em caixa preta. Ao examinar cada etapa em caixa preta desempenhada no cenário, você descobre o uso de nomes que podem sugerir variáveis de estado e armazenamentos que o sistema deve manter para executar o cenário de caso de uso. Você também pode refinar as entidades de E/S que são necessárias e associá-las às chamadas de operações para formar os sinais enviados entre o agente e o sistema. 

      Para auxiliar na compreensão, talvez seja útil dividir a interface do sistema em interfaces mais específicas. De fato, pode haver requisitos de interface na Especificação Suplementar com orientações para essa divisão. A ilustração a seguir mostra a evolução da interface do sistema em direção a uma "interface de sistema fornecida" para cada tipo de agente, embora isso não seja uma ordem fixa. Os agentes podem compartilhar uma interface ou pode haver mais de uma interface para um agente.

      Essa análise também pode identificar interfaces requeridas pelo sistema, ou seja, interfaces que devem ser suportadas pelos agentes (para processar mensagens do sistema). Elas podem ser incluídas no diagrama de forma simétrica (por exemplo, consulte a "interface de sistema requerida" de serviços do IE/ESS realizada pelo agente Serviços de Emergência no diagrama a seguir). Novamente, (embora isso não seja mostrado) um agente pode oferecer suporte a (realizar) mais de uma interface.

      As operações, os armazenamentos e assim por diante precisam ser incluídos em um formato expandido de interfaces (nos compartimentos de atributos e operações), conforme mostrado. O diagrama está apenas parcialmente elaborado (em termos de espaço). A interface de ambiente físico, o agente e assim por diante não foram expandidos. Novamente, a realização das interfaces do sistema fornecidas pode ser omitida sem muita perda de informações.

      Diagrama de Contexto (Final)

      Diagrama de Contexto (Final).

      Esta colaboração de nível superior, capturada no Diagrama de Contexto, permite que interfaces e conexões que fluem para dentro e para fora do sistema, bem como as características de desempenho associadas, sejam rigorosamente especificadas, possibilitando que o desenvolvimento do sistema prossiga de certa forma independentemente de outros elementos no contexto do sistema.