análise de requisitos – caso de uso
DESCRIPTION
Material do curso de Engenharia de SoftwareTRANSCRIPT
-
Engenharia de SoftwarePROF. ROBERTO
-
Anlise de Requisitos Caso de uso
Objetivos
Anlise de Requisitos
Atores
Use Cases
-
Anlise de Requisitos Caso de uso
Anlise de Requisitos com UML
O comportamento de um sistema modelado atravs de diagramas casos de uso ("use cases")
Apresentam as operaes do sistema e seus beneficiados
As operaes do sistema so modeladas como "use cases"
As entidades que as realizam so modeladas como atores
O que o sistema deve fazer ?
O que o sistema deve fazer ? Para quem ?
Anlise tradicional
Anlise com use cases
-
Anlise de Requisitos Caso de uso
Processo de Desenvolvimento
Os use cases de um sistema direcionam o seu processo de desenvolvimento
Determinao dos requisitos do sistema
Construo do modelo de anlise
Construo do modelo de projeto
Implementao do cdigo
Determinao dos casos de teste
Planejamento e gerenciamento do projeto
Projeto TesteAnlise CdigoUse case
-
Anlise de Requisitos Caso de uso
Modelo de Use Cases
utilizado na comunicao com os usurios finais e especialistas do domnio da aplicao
Garante o entendimento mtuo dos requisitos
Pode ser utilizado como "contrato" do sistema
-
Anlise de Requisitos Caso de uso
Modelo de Use Cases
utilizado para determinar:
Com quem o sistema deve interagir
Se todos os requisitos foram identificados
A quem interessa cada requisito do sistema
-
Anlise de Requisitos Caso de uso
Atores
Atores representam qualquer elemento que possa interagir com o sistema.
Atores no so parte do sistema, mas representam os elementos externos que interagem com o sistema.
-
Anlise de Requisitos Caso de uso
Atores
Atores podem ser:
Pessoas
Outros sistemas
Equipamentos ligados ao sistema.
-
Anlise de Requisitos Caso de uso
Atores
Um sistema pode ter diversos tipos de usurios. Exemplo: gerente, vendedor, almoxarife, ...
Cada tipo de usurio tem interesse em um conjunto de operaesdisponveis no sistema.
Cada tipo de usurio representado como um ator.
Um ator pode representar um grupo de pessoas.
Uma pessoa que realize o papel de diversos grupos pode ser analisada
-
Anlise de Requisitos Caso de uso
Atores
Atores podem:
Entrar com informaes no sistema
Receber resultados do sistema
Entrar com informaes e receber resultados do sistema
-
Anlise de Requisitos Caso de uso
Atores
Representao
O smbolo abaixo representa um ator em um diagrama de use cases:
-
Anlise de Requisitos Caso de uso
Atores - Identificao
Atores so descobertos a partir de entrevistas com o cliente ou com especialistas do domnio da aplicao
Quem est interessado em uma determinada operao ?
Onde o sistema ser utilizado ?
Quem ser beneficiado pelo sistema ?
Quem fornece informao para o sistema ?
Quem usa ou remove informao do sistema ?
Quem fornece suporte ou manuteno para o sistema ?
O sistema utiliza recursos externos ?
Alguma pessoa realiza diversos papis no sistema ?
Diversas pessoas realizam o mesmo papel no sistema ?
-
Anlise de Requisitos Caso de uso
Caractersticas de um Bom Ator
No existem regras definitivas, mas existem guias:
Dois atores que realizem as mesmas operaes podem ser representados por um nico ator
Um ator que realize as operaes de dois ou mais atores pode ser descomposto nestes atores primrios
-
Anlise de Requisitos Caso de uso
Caractersticas de um Bom Ator
Documentao:
Cada ator deve receber um nome
As funes do ator no sistema devem ser resumidas em um pargrafo
-
Anlise de Requisitos Caso de uso
Caractersticas de um Bom Ator
Exerccios: Analise o sistema de controle, clculo e gerao de resultados das notas escolares de uma faculdade. Quais atores poderamos listar?
-
Anlise de Requisitos Caso de uso
Caractersticas de um Bom Ator
Exerccios: Analise o sistema de controle, clculo e gerao de resultados das notas escolares de uma faculdade. Quais atores poderamos listar?
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso
Definio:
Um use case um conjunto de aes, incluindo variantes de aes, que o sistema pode realizar e que oferece algum benefcio observvel para o usurio.
Um caso de uso captura um contrato entre um patrocinador e um sistema acerca do comportamento do sistema
O caso de uso descreve o comportamento do sistema em diversa; condies, a medida que ele responde a uma requisio gerada por um de seus patrocinadores, chamado de ator primrio.
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso
Um caso de uso um dilogo entre o sistema e um ator
Um caso de uso baseado em um cenrio descritivo de como o a interage com o sistema, identificando os eventos que podem ocorrer e as respostas esperadas a estes
O conjunto de use cases de um sistema representa todas as operaes
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso
Detalhamento dos casos de uso
Casos de uso podem ser descritos por diagramas de estado, diagramas de atividade ou diagramas de colaborao
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso
Instncias de casos de uso
Uma instncia de uma caso de uso representa uma execuo do caso de uso, ou seja, um caminho percorrido atravs de suas redes de fluxos, partindo do fluxo principal.
Instncias de caso de uso devem ser independentes, ou seja, no devem se comunicar com outras instncias de casos de uso durante sua execuo
Assim, o comportamento de um caso de uso deve ser independentedo comportamento de outros casos de uso da aplicao
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso
Instncias de casos de uso
um use case representa uma funo completa do sistema
Incluso + alterao + remoo + consulta = manuteno
Manuteno = um nico use case
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso
Use cases so representados por elipses
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - Identificao
Use cases tambm podem ser identificados atravs de entrevistas com os clientes, especialistas do domnio ou por inspees nos locais onde o sistema ser instalado.
Quais so as funes de cada ator ?
Que atores criam, alteram, removem ou consultam informaes?
Que funes do sistema utilizaram estas informaes?
Algum ator deve ser informado de alguma mudana externa?
Algum ator deve ser informado de alguma ocorrncia no sistema?
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - Descrio de Use Cases
Descrio
Condio de incio do use case
O fluxo de aes do use case
Sub-fluxos do use case
Fluxos de tratamento de erro
Variantes do fluxo de aes
Requisitos especiais e no-funcionais
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - Descobrindo Use Cases
Mtodo direcionado por operaes
Aplicvel a sistemas de informao
Liste as operaes que os atores podem realizar no sistema
Agrupe as operaes que tratem de um mesmo elemento ou processo do mundo real
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - Descobrindo Use Cases
Exemplo: Baseando-nos na identificao de atores do exerccio anterior, abaixo, encontram-se alguns casos de uso possveis:
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - Descobrindo Use Cases
Operaes tpicas de um sistema de informao
Manuteno de cadastros
Servios do sistema
Gerao de relatrios
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - Manuteno de Cadastros
Operaes de incluso, remoo, alterao e consulta de um elemento ou processo do mundo real
O analista deve identificar os elementos estticos do sistema
Elementos estticos so aqueles cujas informaes no mudamsignificativamente ao longo do tempo
Estes elementos normalmente existem para complementar os servios do sistema
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - Servios do Sistema
Representam os servios do sistema no mundo real
Parte mais dinmica do sistema
Identifique atividades realizadas no dia-a-dia do sistema real
Identifique processos ou elementos afetados pelas atividades
Verifique se existem atividades equivalentes ao cadastro
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - Gerao de Relatrios (Consultas)
Identifique as sadas de informao relevantes
Comece pelos cadastros do sistema
Prossiga pelos servios do sistema
Determine os interessados por cada tipo de relatrio
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - De Operaes para Use Cases
A lista de operaes deve ser refinada nos use cases
Refinamento de cadastros
Refinamento de servios
Refinamento de relatrios
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - De Cadastros para Use Cases
Cadastros
Cada cadastro ter um use case com 4 sub-fluxos:
Incluso
Excluso
Alterao
Consulta
importante sempre disponibilizar uma operao de alterao, mesmo que sob restries de segurana, ou seja, mesmo que o usurio precise de uma senha para utilizar esta operao
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - De Servios para Use Cases
Servios
Inicialmente, cada servio ter um use case
Determine se a operao de incluso pode ser renomeada
Determine se a operao de excluso pode ser renomeada
Determine se existem operaes complementares
Para cada servio, o analista deve procurar operaes que possam ser realizadas aps a "incluso" de um novo servio
Uma tcnica para identificar estas operaes seguir a "linha do tempo" das diversas operaes do sistema
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - De Servios para Use Cases
Servios
Crie um use case separado para cada operao renomeada Como estas operaes so muito importantes para o sistema, importante
destac-las no documento de anlise
Crie um use case separado para cada operao complementar Como no tpico anterior, estas operaes so importantes para sistema,
merecendo destaque
Retire as operaes destacadas do use case original do servio Para evitar que elas sejam descritas em dois lugares no mesmo documento
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - Relaes entre Atores e Use-Cases
Objetivo
Uma ligao entre um ator e um use case indica a existncia decomunicao entre eles, ou seja, indica que o ator recebe ou fornecealguma informao para o use case
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - Relaes entre Atores e Use-Cases
Representadas por uma reta entre o ator e o use case
Informao navega nos dois sentidos da relao
Se a navegao ocorre em somente uma direo, devemos acrescentar uma seta apontando para esta direo
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - Relaes entre Use Cases
So unidirecionais e representadas por uma seta
Relao de uso
Diversos use cases compartilham o mesmo comportamento
O comportamento separado em um use case separado
Diversos use cases usam o novo use case
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - Relaes entre Use Cases
Relao de extenso
Indica comportamento opcional (extends) ou dependente (include) de condio.
Complementos de um use case
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - Relaes entre Use Cases
Ainda sobre o exemplo dado sobre uma escola, abaixo encontram-se alguns exemplos de relao entre casos de uso:
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - Classificao para o Usurio
Unem atores, use cases e suas relaes
Podem existir vrios diagramas de use case em um sistema
Diagrama de use cases completo
Diagrama de use cases de um determinado ator
Diagrama de use cases implementados em uma iterao da espiral
Diagrama apresentando um use case e suas relaes
-
Anlise de Requisitos Caso de uso
Use cases Casos de uso - Limitaes dos Casos de Uso
Comunicao a partir do sistema
Em UML, os casos de uso so sempre iniciados a partir dos atores. Assim, a modelagem de situaes em que o sistema inicia o dilogo com os atores no natural
A modelagem de casos de uso complexos atravs de uma estrutura de decomposio ou hierarquia no simples seguindo a notao da UML
As descries de casos de uso tendem a ficar grandes Decomponha um caso de uso em diversos casos de uso
Como os casos de uso no podem se comunicar, a UML tem limitaes em sua capacidade de descrever comportamento dependente do estado/execuo de outras operaes Pr-condies em casos de uso ajudam nesta modelagem
-
Bibliografia
BOOCH, G.; JACOBSON, I.; RUMBAUGH, J. UML: guia do usurio. Rio de Janeiro: CAMPUS, 2002.
PAULA FILHO, W. P. Engenharia de Software: fundamentos, mtodos e padres. 2 Edio. Rio de Janeiro: LTC, 2003.
PRESSMAN, R. S. Engenharia de Software. So Paulo: Makron Books, 1995.
SILVA, D. M. Guia de consulta rpida: UML. So Paulo: NOVATEC, 2001.
SOMMERVILLE, I. Engenharia de Software. 6 Edio. Addison-Wesley, 2003.