Exemplo de Diretrizes de Modelagem de Caso de Uso

 

Versão <n.m>

Última Atualização <yyyymmdd>

 

 


Histórico da Revisão

Data

Versão

Descrição

Autor

 

 

 

 

 

 

 

 

 


Índice

1.     Introdução

1.1   Objetivo

1.2   Escopo

1.3   Definições, Acrônimos e Abreviações 

1.4   Referências  

1.5   Visão Geral

2.     Orientações Gerais do Modelo de Caso de Uso

2.1   Estilo Geral 

2.2   Utilização do relacionamento <<Comunicação>>   

2.3   Utilização dos relacionamentos <<Inclusão>> e <<Extensão>>.   

2.3.1  Utilização do relacionamento <<Inclusão>>. 

2.3.2  Utilização do relacionamento <<Extensão>>.

2.4   Utilização da Generalização de Agente

2.5   Utilização de Diagramas de Interação

2.6   Utilização de Diagramas de Atividades

3.     Como Descrever um Caso de Uso

3.1   Orientações do Agente

3.1.1  Cada Caso de Uso concreto estará envolvido com pelo menos um Agente

3.1.2  Nome(s) de Agentes Intuitivos e Descritivos 

3.1.3  Utilização Consistente de Nome(s) de Agentes 

3.2   Nome de Caso de Uso

3.3   Breve Descrição do Caso de Uso 

3.3.1  Pelo menos 1 parágrafo 

3.3.2  Um exemplo (Opcional)

3.4   Utilização consistente do imperativo:Will 

3.5   Utilização de Termos do Glossário

3.6   Utilização de Termos de "Ação"

3.6.1  Definir onde o sistema é responsável por apresentar a Opção de Ação 

3.6.2  Utilização consistente do termo em todo o Caso de Uso 

3.7   Separar parágrafos para comportamento do Agente e do Sistema 

3.8   Fluxos Alternativos e Sub-Fluxos 

3.9   Condições Prévias e Condições Posteriores

3.10 Utilização de sinalizadores de substituição para detalhe ausente (TBD)

3.11 Definição de e Referência a Especificações Suplementares

3.12 Verificação Cruzada com Protótipo/ Design de UI

3.13 Fluxos de Exceção (Opcional)

3.13.1 O que pode dar errado?


Diretrizes de Modelagem de Caso de Uso

 

1.                  Introdução  Vá para o início da página.

1.1               Objetivo Vá para o início da página.

O objetivo deste conjunto de orientações é assegurar a consistência do Modelo de Caso de Uso. Fornece orientação em como documentar um Caso de Uso e também ajuda geral sobre tópicos relacionados freqüentemente problemáticos para Especificadores de Requisitos e Analistas de Sistemas.

1.2               Escopo Vá para o início da página.

Estas orientações podem ser utilizadas como estão, ou podem ser feitas sob medida, para atender as necessidades da maioria dos projetos.

1.3               Definições, Acrônimos e Abreviações Vá para o início da página.

Consulte Glossário do Rational Unified Process.

1.4               Referências Vá para o início da página.

Nenhum

1.5               Visão Geral Vá para o início da página.

Este conjunto de orientações está organizado em duas seções, a primeira descreve nossa maneira preferida de modelar os Casos de Uso e a segunda parte fornece orientações para o conteúdo do modelo de Caso de Uso e para nomear os elementos dentro do modelo.

2.                  Orientações Gerais do Modelo de Caso de Uso Vá para o início da página.

2.1               Estilo Geral Vá para o início da página.

Os Casos de Uso serão gravados utilizando o gabarito fornecido com o Rational Unified Process, com algumas modificações de estilo e layout para se ajustar aos padrões aplicáveis de documentação do projeto.

2.2               Utilização do relacionamento <<Comunicação>> Vá para o início da página.

A associação entre um Agente e um Caso de Uso é chamada de relação Comunicação. É recomendável que esta associação seja unidirecional. Utilizando esta estratégia de modelagem, nós fazemos distinção entre:

q       Agente Ativo
O Agente é considerado ativo em um par Caso de Agente-Uso quando o Agente está iniciando (ou acionando) a execução do Caso de Uso. A seta na relação Comunicação  aponta para o Caso de Uso.

q       Agente Passivo
O Agente é considerado passivo em um par Caso de Agente-Uso quando o Caso de Uso está iniciando a comunicação. Agentes Passivos geralmente serão sistemas ou dispositivos externos com os quais nosso sistema precisa se comunicar. A seta na relação Comunicação aponta para o Agente.

Esta recomendação é feita porque a noção de agentes ativos e passivos inclui valor no leitor do modelo de Caso de Uso.

2.3               Utilização dos relacionamentos <<Inclusão>> e <<Extensão>> Vá para o início da página.

Na primeira instância, é recomendado que você evite a utilização desses relacionamentos. Esta recomendação é feita porque a utilização incorreta desses relacionamentos tem muito mais potencial para desorganizar e confundir do que para ajudar a simplificar o Modelo de Caso de Uso. A melhor opção é evitar esse tipo de decomposição inicialmente e considerar a utilização desses relacionamentos em uma etapa posterior no processo. Esses relacionamentos podem ser utilizados para:

1.       Separar o comportamento que seja comum a dois ou mais casos de uso.

2.       Separar o comportamento do caso de uso da base que não seja necessário para o entendimento do objetivo principal do caso de uso, apenas seu resultado é importante.

3.       Mostrar que pode haver um conjunto de segmentos de comportamento dos quais um ou vários podem ser inseridos em um ponto de extensão em um caso de uso da base.

Mas, eles devem ser utilizados apenas onde incluem valor ajudando a simplificar e gerenciar o modelo de caso de uso.

2.3.1          Utilização do relacionamento <<Inclusão>> Vá para o início da página.

A relação de inclusão descreve um segmento de comportamento que é inserido em uma instância de caso de uso que está executando o caso de uso da base. É um mecanismo semelhante, em natureza, a uma sub-rotina e é mais freqüentemente utilizado para separar comportamento comum. 

Consulte as orientações para relações de inclusão no Rational Unified Process para obter detalhes adicionais.

2.3.2          Utilização do relacionamento <<Extensão>> Vá para o início da página.

A relação de extensão é um relacionamento mais difícil de aproveitar, principalmente porque o caso de uso de extensão não é conhecido pelo caso de uso da base. Como comentário geral, há poucos lugares em que esse relacionamento é útil na maioria dos sistemas de negócios. Tenha em mente, porém, que sempre há exceções às regras e que este mecanismo pode ser útil em determinadas circunstâncias.

Consulte as orientações para relações de extensão no Rational Unified Process para obter detalhes adicionais:

2.4               Utilização da Generalização de Agente Vá para o início da página.

No geral, a Generalização de Agente pode ser utilizada para definir melhor as diferentes funções exercidas pelos usuários do sistema a ser desenvolvido.  Isto é útil em aplicativos com diferentes "categorias" de usuários finais. Dessa maneira, apenas a funcionalidade relevante será apresentada a cada categoria de usuários e nós conseguiremos controlar os direitos de acesso com base nesse agrupamento.

Regra prática : Cada caso de uso será iniciado apenas por um Agente. Esta "regra" pode ser substituída, neste caso a descrição do caso de uso deve justificar a decisão.

Exemplo do Domínio de Negócios da Universidade:  Librarian e Professor são exemplos de duas funções (agentes) existentes no Domínio da Universidade. Essas funções têm algumas tarefas comuns e algumas tarefas que são exclusivas de sua função nos Negócios. A maneira preferida de modelar isto é mostrada abaixo.Detalhe da Imagem Acima no Conteúdo

Consulte as orientações: Generalização de Agente no Rational Unified Process para obter detalhes adicionais.

2.5               Utilização de Diagramas de Interação Vá para o início da página.

Em alguns casos, é bom incluir - além do fluxo textual de eventos - um diagrama de Interação para ilustrar o fluxo de eventos de "alto nível" do caso de uso. É recomendável que você faça um diagrama de seqüência para isto no Rational Rose. Inclua apenas a comunicação entre os agentes e os objetos de limite (abrangendo as mensagens de entrada e as de saída) e trate o sistema como uma caixa preta. Utilize objetos de limite com nomes lógicos conforme definido no fluxo de eventos do caso de uso, sem designá-los a classes neste ponto.

Não é necessário que cada caso de uso tenha um diagrama de interação correspondente: É um produto de trabalho opcional.

2.6              Utilização de Diagramas de Atividades Vá para o início da página.

Onde um diagrama de atividades inclui valor ao ajudar a definir, explicar e concluir o fluxo de eventos no caso de uso, é recomendável que estes sejam modelados no Rational Rose. Uma boa regra  prática é considerar Diagramas de Atividades para casos de uso complexos (contendo vários fluxos alternativos e /ou excepcionais). O diagrama de atividades mostra uma árvore de decisão dos fluxos no caso de uso.

Não é necessário que cada caso de uso tenha um diagrama de atividades correspondente: É um produto de trabalho opcional.

3.                  Como Descrever um Caso de Uso Vá para o início da página.

Para obter informações gerais e orientações adicionais sobre Casos de Uso , consulte o Rational Unified Process.

3.1               Orientações do Agente Vá para o início da página.

Para obter informações gerais e orientações adicionais sobre Agentes , consulte o Rational Unified Process.

3.1.1          Cada Caso de Uso concreto estará envolvido com pelo menos um Agente Vá para o início da página.

Cada caso de uso concreto está envolvido com pelo menos um agente? Se não estiver, há algo errado; um caso de uso que não interage com um agente é supérfluo e você irá removê-lo ou identificar o agente correspondente.

Em alguns casos, mais de um agente pode participar na interação do caso de uso. Certifique-se de que a utilização de vários agentes em um caso de uso seja válida (consulte Generalização de Agente).

3.1.2          Nome(s) de Agentes Intuitivos e Descritivos Vá para o início da página.

Os agentes têm nomes intuitivos e descritivos? Tanto os usuários quanto os clientes entendem os nomes? É importante que os nomes dos agentes correspondam a suas funções. Se não corresponderem, altere-os.

Você deve consultar o Modelo de Caso de Uso para se certificar de que esteja utilizando o nome de agente correto para cada agente em seu caso de uso.

3.1.3          Utilização Consistente de Nome(s) de Agentes Vá para o início da página.

A especificação do caso de uso será gravada utilizando nome(s) de agentes de forma consistente. Tenha cuidado para garantir que a nomenclatura do agente seja clara e não ambígua.

Não se refira genericamente ao "agente"; em vez disso, utilize o nome real utilizado para identificar ou definir exclusivamente o agente. O nome do agente pode ser pensado como a função sendo executada em um conjunto de interações do sistema.

3.2               Nome do Caso de Uso Vá para o início da página.

O nome do caso de uso será exclusivo, intuitivo e explicativo para que defina de forma clara e não ambígua o resultado observável de valor obtido do caso de uso.

Uma boa verificação para o nome do caso de uso é pesquisar se clientes, representantes de negócios, analistas e desenvolvedores entendem os nomes e as descrições dos casos de uso. Lembre-se: Você está definindo um resultado observável de valor da perspectiva dos agentes.

Cada nome de caso de uso descreverá o comportamento que o caso de uso suporta. O nome combinará a ação que está sendo executada e o elemento chave que está sendo "acionado". Com mais freqüência, esta será uma simples combinação Verbo/ Nome. O caso de uso deve ser nomeado da perspectiva do agente que aciona o caso de uso. Os exemplos incluem: "Inscrever-se em um curso", "Selecionar um curso a ensinar".

3.3               Breve Descrição do Caso de Uso Vá para o início da página.

3.3.1          Pelo menos 1 parágrafo Vá para o início da página.

O caso de uso conterá uma breve descrição. Esta descrição terá pelo menos 1 parágrafo e não mais de 3 parágrafos de extensão. A descrição abrangerá uma explicação do objetivo chave, a proposição do valor e conceitos do caso de uso.

3.3.2          Um exemplo (Opcional) Vá para o início da página.

Onde inclui valor, um breve exemplo "story" pode ser incluído com a breve descrição que ajuda a fornecer contexto adicional. Este exemplo, geralmente, seguirá o Fluxo Básico e, onde for útil, incluirá valores de dados.

3.4               Utilização consistente do imperativo: Will Vá para o início da página.

Requisitos do sistema dentro dos casos de uso serão gravados utilizando o imperativo. O termo "Will" foi escolhido em favor de "Shall" e "Must" para descrever os requisitos de forma consistente. A utilização de termos passivos que implicam o requisito é opcional ou indefinida como "should", "possibly", "etc", "might" ou "may" serão evitados.

3.5               Utilização de Termos do Glossário Vá para o início da página.

Todos os Termos de Negócios em um caso de uso serão definidos no Glossário do projeto. Se existir um Termo de Negócios em um caso de uso que não exista no glossário, o termo precisará:

1.       Ser incluído no glossário, incluindo uma breve descrição (máx. de um parágrafo).

2.       Ser alterado no caso de uso para refletir o Termo de Negócios correto definido no glossário.

3.6               Utilização de Termos "Action" Vá para o início da página.

3.6.1          Definir onde o sistema é responsável por apresentar a Opção Action Vá para o início da página.

O caso de uso determinará explicitamente onde o sistema é responsável por apresentar uma ação como uma opção disponível para o agente selecionar. Na maioria dos casos, as opções disponíveis devem ser apresentadas como parte do fluxo básico e ser referidas como o ponto de entrada na primeira instrução no fluxo alternativo correspondente.

3.6.2          Utilização consistente do termo em todo o Caso de Uso Vá para o início da página.

A utilização de termos como New, Modify, Cancel, Delete, OK e Print será consistente em todo o caso de uso: A mesma ação lógica não será mencionada utilizando terminologia diferente. Deverá ser tomado um cuidado especial para garantir que os Termos de Ação utilizados nos Fluxos Alternativos correspondam àqueles utilizados no fluxo básico.

3.7               Separar parágrafos para o comportamento do Agente e do Sistema Vá para o início da página.

Toda vez que a interação entre o agente e o sistema alterar o foco (entre o agente e o sistema), o próximo segmento de comportamento iniciará com um novo parágrafo. Inicie, primeiro, com um agente e, em seguida, com o sistema.

A sentença deve começar com 'O <nome-do-agente> irá xxxxx' ou 'O sistema irá xxxx'. Sempre informe o nome do agente corretamente, por extenso, em vez de qualquer abreviação.

3.8               Fluxos Alternativos e Sub-Fluxos Vá para o início da página.

Cada Fluxo Alternativo e Sub-Fluxo irá definir de forma explícita e clara todos os pontos de entrada possíveis no fluxo e concluirá com todos os pontos de saída possíveis do fluxo.

O fluxo alternativo também informará explicitamente o ponto de saída e onde o agente continua com o próximo -  se está retornando a uma etapa específica no fluxo básico ou encerrando.

Onde o fluxo de eventos se torna confuso devido ao comportamento complexo ou onde um único fluxo excede uma página física impressa no comprimento, os sub-fluxos podem ser utilizados para aprimorar a clareza e gerenciar a complexidade. Os sub-fluxos serão gravados movendo um grupo independente, lógico de comportamento detalhado para um sub-fluxo e mencionando esse comportamento no formulário de resumo dentro do fluxo de eventos.

3.9               Condições Prévias e Condições Posteriores Vá para o início da página.

A especificação do caso de uso incluirá um conjunto de condições (também mencionadas como premissas) que supõe-se que sejam verdadeiras antes que o caso de uso seja iniciado (condições prévias) e depois que o caso de uso for encerrado (pós-condições). Observe que o caso de uso pode ser encerrado de várias maneiras e cada "pós-condição" deve ser descrita de acordo.

3.10           Utilização de sinalizadores de substituição para detalhe ausente (TBD) Vá para o início da página.

Onde as informações ainda não estão definidas ou decididas, o caso de uso incluirá uma referência ao problema ou elemento e incluirá o sinalizador de substituição: TBD.

3.11            Definição de e Referência a Especificações Suplementares Vá para o início da página.

Onde há requisitos adicionais que não podem ser descritos naturalmente durante o fluxo de eventos, eles serão definidos como requisitos suplementares. Aqueles que são específicos de um caso de uso serão definidos na seção Requisitos Especiais da especificação do caso de uso.

Aqueles requisitos que são aplicáveis a todo o sistema, especialmente aqueles de natureza não-funcional, serão definidos em um ou mais documentos de especificação suplementares separados.

Os exemplos incluem:

Confiabilidade:           - O sistema deve estar disponível 24 x 7.

                          - O sistema deve ser executado por 48 h MTBF.

Desempenho:       - O sistema deve fornecer uma resposta on-line que não exceda 5 segundos sob as condições de carregamento normais esperadas.

3.12            Verificação Cruzada com Protótipo/ Design de UI

O conteúdo do caso de uso terá verificação cruzada contra o Protótipo/ Design de UI para garantir que nenhum requisito do sistema esteja faltando no caso de uso ou no Protótipo/ Design de UI. As alterações serão acionadas onde forem requeridas para o caso de uso: As alterações no Protótipo de UI serão anotadas como uma discussão para ação futura.

3.13            Fluxos de Exceção (Opcional)

As orientações a seguir são fornecidas para ajudar na descoberta de Fluxos de Exceção:

3.13.1      O que pode dar errado?

Para cada etapa no caso de uso, considere o que pode dar errado. Cada exceção exclusiva pode ser capturada como um Fluxo de Exceção. Em alguns casos, um único Fluxo de Exceção será utilizado comumente no caso de uso, por exemplo "Timeout". As informações chave a serem capturadas são o que é o requisito de negócios quando ocorre a exceção, isto é, qual deve ser a experiência dos agentes?