REQUISITOS: LEVANTAMENTO E MODELAGEM · de requisitos, o modelo de caso de uso considera o sistema...

38
COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO REQUISITOS: LEVANTAMENTO E MODELAGEM FOZ DO IGUAÇU 2013

Transcript of REQUISITOS: LEVANTAMENTO E MODELAGEM · de requisitos, o modelo de caso de uso considera o sistema...

COLÉGIO ESTADUAL ULYSSES GUIMARÃES

CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA

ERINALDO SANCHES NASCIMENTO

REQUISITOS: LEVANTAMENTO E MODELAGEM

FOZ DO IGUAÇU

2013

ii

LISTA DE FIGURAS

FIGURA 1 – DIAGRAMA DE CASO DE USO. ............................................................. 6 FIGURA 2 – DIAGRAMA DE CASO DE USO PARA CRIAR UM NOVO WIKI

PESSOAL. .......................................................................................................... 11 FIGURA 3 – DIAGRAMA DE CASO DE USO REPRESENTANDO UM

RELACIONAMENTO EXTEND. .......................................................................... 14 FIGURA 4 – DIAGRAMA DE CASO DE USO REPRESENTANDO UM

RELACIONAMENTO DE GENERALIZAÇÃO. .................................................... 15 FIGURA 5 – INTERFACE DO USUÁRIO DO CAIXA ELETRÔNICO. ........................ 30 FIGURA 6 – MENU PRINCIPAL DA ATM. ................................................................. 31 FIGURA 7 – MENU DE SAQUE DA ATM. .................................................................. 32

iii

LISTA DE QUADROS

QUADRO 1 – DESCRIÇÃO DE UM CASO DE USO .................................................... 8 QUADRO 2 – DESCRIÇÃO DO CASO DE USO PARA CRIAR UM NOVO WIKI

PESSOAL ........................................................................................................... 11 QUADRO 3 – DESCRIÇÃO DO CASO DE USO CHECAR IDENTIFICAÇÃO ........... 12 QUADRO 4 – DESCRIÇÃO DO CASO DE USO APRESENTANDO UM

RELACIONAMENTO EXTEND ........................................................................... 13

iv

SUMÁRIO

3 REQUISITOS ........................................................................................................... 1 3.1 ANÁLISE DE REQUISITOS ................................................................................... 1 3.1.1 Requisito Funcional ............................................................................................ 2 3.1.2 Requisito Não Funcional .................................................................................... 2 3.1.3 Requisito de Domínio ......................................................................................... 2 3.1.4 Não-Requisito ..................................................................................................... 3 3.1.5 Analisar os Requisitos ........................................................................................ 3 3.2 MODELAGEM DE REQUISITOS ........................................................................... 3 3.2.1 Casos de Uso ..................................................................................................... 4 3.2.2 Diretrizes para Descrever Casos de Uso ........................................................... 5 3.2.3 Diagramas de Casos de Uso .............................................................................. 6 3.2.3.1 Ator .................................................................................................................. 6 3.2.3.2 Caso de Uso .................................................................................................... 7 3.2.3.3 Linha de Comunicação .................................................................................... 7 3.2.3.4 Fronteira do Sistema ....................................................................................... 7 3.2.3.5 Descrição do Caso de Uso .............................................................................. 8 3.2.4 Relacionamentos de Caso de Uso ..................................................................... 8 3.2.4.1 O Relacionamento de Inclusão ....................................................................... 9 3.2.4.2 O Relacionamento de Extensão ...................................................................... 9 3.2.4.3 Representação de Relacionamentos em Casos de Uso ............................... 10 3.2.4.4 Relacionamento de Generalização ............................................................... 14 3.3 DESCRIÇÕES DE CASOS DE USO E DIAGRAMAS DE CASOS DE USO ......... 14 3.3.1 Identificar os Principais Casos de Uso ............................................................. 15 3.3.2 Expandir os Principais Casos de Uso .............................................................. 16 3.3.3 Confirmar os Principais Casos de Uso ............................................................. 17 3.3.4 Criar o Diagrama de Caso de Uso ................................................................... 17 3.3.5 Especificar Requisitos Não Funcionais ............................................................ 18 3.4 EXERCÍCIOS ...................................................................................................... 18 3.5 PROJETO ............................................................................................................ 29 3.5.1 Examinar o Documento de Requisitos ............................................................. 29 3.5.2 Diagramas de Casos de Uso ............................................................................ 33 3.6 BIBLIOGRAFIA .................................................................................................... 34

1

3 REQUISITOS

Antes de iniciar a codificação é preciso saber o que será construído. Um

bom conjunto de requisitos diz exatamente o que o programa deve fazer. Os

requisitos são uma lista de coisas que tem que ser implementadas, a fim de criar o

programa.

Um desenvolvedor produtivo, que comete poucos erros e chega a um projeto

bom e limpo, precisa detalhar os requisitos, o quanto melhor. O levantamento dos

requisitos obriga a pensar sobre os detalhes do programa e permite ouvir os

usuários para se tenha uma ideia melhor do que eles realmente querem.

A modelagem de requisitos consiste em análise de requisitos e

especificação de requisitos.

3.1 ANÁLISE DE REQUISITOS

Seja o desenvolvimento de um novo sistema ou a substituição de um

sistema existente, é muito importante especificar os requisitos do novo sistema de

forma precisa e sem ambiguidades. Há frequentemente muitos usuários do sistema,

e em uma grande empresa, estes podem ser engenheiros, equipes de marketing e

vendas, gerentes, equipe de TI, pessoal administrativo, etc. As necessidades de

cada grupo de usuários (ou partes interessadas) deve ser entendido e especificada.

Os requisitos de software descrevem a funcionalidade que o sistema deve

fornecer para os usuários. A análise de requisitos envolve:

entrevistar usuários

analisar o sistema existente (s), manual ou automatizado.

Inclui saber dos usuários o seguinte:

o papel do usuário no sistema atual (seja manual ou automatizado);

como ele utiliza o sistema atual;

as vantagens e limitações do sistema atual;

as características que o novo sistema deve fornecer.

2

Após a análise, os requisitos têm de ser especificados através de um

documento que precisa ser acordado entre os analistas e os usuários. É o ponto de

partida para a concepção e desenvolvimento futuro e por isso também deve ser

entendido pelos desenvolvedores.

3.1.1 Requisito Funcional

Descreve uma funcionalidade que o sistema deve ser capaz de fazer, de

modo a cumprir o propósito do sistema. Na definição de um requisito funcional, é

necessário descrever as informações que precisam ser inseridas no sistema a partir

do ambiente externo (como os usuários externos, sistemas externos ou dispositivos

externos), o que o sistema precisa enviar para o ambiente externo, e que

informações o sistema lê, armazena ou atualiza.

3.1.2 Requisito Não Funcional

Um requisito não funcional, por vezes refere-se a um atributo de qualidade

que o sistema tem de cumprir. São exemplos de requisitos não funcionais:

Requisito de desempenho especificando um tempo de resposta do sistema de 2

segundos

Requisito de disponibilidade especificando que o sistema deve estar operacional

para 99% do tempo

Requisito de segurança, como proteção contra a invasão de sistema.

3.1.3 Requisito de Domínio

São impostos aos desenvolvedores pelo domínio de aplicação do programa.

Os requisitos de domínio são, geralmente, considerados "camada intermediária" de

software, porque eles são o coração da aplicação, abaixo da interface do usuário e

3

acima do sistema operacional, redes, ou banco de dados. Vários requisitos de

domínio serão implementados como classes separadas e bibliotecas com suas

próprias APIs.

3.1.4 Não-Requisito

São as coisas que não serão feitas. Uma das partes mais importantes da

especificação funcional: dizer o que não se fará. O desenvolvedor precisa dizer a

todas as partes interessadas em um projeto o que o programa vai fazer e, também,

o que não vai fazer.

3.1.5 Analisar os Requisitos

A análise de requisitos tem três partes básicas:

Categorizar os requisitos e organizá-los em áreas afins.

Priorizá-los com base em informações do cliente.

Analisar cada requisito em relação a todos os outros para se certificar que eles

se encaixam em um todo coerente. O desenvolvedor deve perguntar a si mesmo

uma série de perguntas:

1. Cada requisito está consistente com o objetivo geral do projeto?

2. Este requisito é realmente necessário?

3. Este requisito é testável?

4. Esta exigência é factível no ambiente técnico de trabalho?

5. Este requisito não é ambíguo?

3.2 MODELAGEM DE REQUISITOS

Na modelagem de casos de uso, os requisitos funcionais são descritos em

termos de atores, que são os usuários do sistema, e casos de uso. Um caso de uso

4

define uma sequência de interações entre um ou mais atores e o sistema. Na fase

de requisitos, o modelo de caso de uso considera o sistema como uma caixa preta e

descreve as interações entre o(s) ator(es) e o sistema de uma forma de narrativa

que consiste em entradas do utilizador e respostas do sistema.

Um ator fornece entradas para o sistema e o sistema fornece respostas ao

ator. Um caso de uso típico é composto de diversas interações entre o ator e o

sistema. Casos de uso mais complexos podem envolver mais que um ator.

3.2.1 Casos de Uso

Os casos de uso são muitas vezes a notação inicial no uso da modelagem

UML em um desenvolvimento. Os casos de uso identificam como um sistema será

usado e que agentes externos (os usuários humanos ou outros agentes externos)

podem interagir com o sistema. A notação é bastante simples, usando ovais para

representar os casos de uso e figuras para representar os agentes (conhecidos

como atores em UML).

Um caso de uso é uma situação em que o sistema é usado para preencher

um ou mais dos requisitos do usuário, um caso de uso captura um pedaço de

funcionalidade que o sistema proporciona. Os casos de uso são o coração do

modelo, uma vez que eles afetam e orientam todos os outros elementos dentro da

modelagem do sistema.

Ao criar casos de uso, a equipe do projeto deve trabalhar em estreita

colaboração com os usuários para reunir os requisitos necessários para os casos de

uso. Cada caso de uso está associado com um e apenas um papel que os usuários

têm no sistema. Por exemplo, uma recepcionista em um consultório médico, pode

desempenhar papéis múltiplos: agendar consultas, atender ao telefone, arquivar

registros médicos, receber pacientes, e etc. Além disso, é possível que vários

usuários desempenhem o mesmo papel. Como tal, os casos de uso devem ser

associados aos papéis desempenhados pelos usuários e não com os próprios

usuários.

5

3.2.2 Diretrizes para Descrever Casos de Uso

A essência de um caso de uso é o fluxo de eventos. Escrever o fluxo de

eventos de uma forma útil para as fases posteriores do desenvolvimento.

1. Escrever cada conjunto na forma de sujeito-verbo-objeto direto (e, por vezes,

preposição-objeto indireto).

2. Deixar claro quem ou o que é o iniciador da ação e quem/o que é o receptor da

ação em cada etapa. Normalmente, o iniciador deve ser o sujeito da frase e o

receptor deve ser o objeto direto da sentença.

3. Escrever os passos a partir da perspectiva de um observador independente (o

iniciador e o receptor).

4. Escrever cada passo com o mesmo nível de abstração.

5. Verificar se o caso de uso tem um conjunto razoável de passos. Cada caso de

uso deve incluir quatro partes:

a. O ator primário inicia a execução do caso de uso através do envio de um

pedido (dados) para o sistema.

b. O sistema garante que o pedido (dados) seja válido.

c. O sistema processa o pedido (dados) e, possivelmente, muda o seu próprio

estado interno.

d. O sistema envia ao ator primário o resultado do processamento.

6. Se o caso de uso se tornar muito complexo e/ou muito grande, o mesmo deve

ser decomposto em um conjunto de casos de uso. Além disso, se o fluxo normal

de eventos tornar-se muito complexo deve ser usado subfluxos. No entanto,

deve-se tomar cuidado para evitar decomposição demasiada.

7. Repitir os passos 1 ao 5, isso torna o caso de uso mais legível para pessoas que

não são familiarizadas com programação.

6

3.2.3 Diagramas de Casos de Uso

Um diagrama de casos de uso ilustra de uma forma muito simples as

principais funções do sistema e os diferentes tipos de usuários que irão interagir com

ele.

A figura 1 represente um diagrama de casos de uso para a descrição do

requisito abaixo.

Requisito 1: O sistema de gerenciamento de conteúdo deve permitir que um

administrador crie uma nova conta de blog, fornecidos os dados pessoais do novo

blogueiro são verificados usando o banco de dados do autor credenciais.

Figura 1 – Diagrama de caso de uso.

3.2.3.1 Ator

Um ator não é um usuário específico, mas um papel que um usuário pode

desempenhar ao interagir com o sistema. Um ator também pode representar outro

sistema no qual o sistema atual interage.

É uma pessoa ou sistema que recebe algum benefício e é externo ao sistema.

É descrito como uma figura humana de bastão.

É rotulado com o seu papel.

Pode ser associado a outros atores usando uma associação de

especialização/superclasse, denotada por uma seta com uma ponta de seta oco.

É colocada fora do limite do sistema.

7

3.2.3.2 Caso de Uso

Um caso de uso, ou trabalho, pode ser tão simples como permitir que o

usuário faça login ou tão complexo como a execução de uma transação distribuída

em vários bancos de dados globais. Um caso de uso, pela perspectiva do usuário, é

uma utilização completa do sistema; há alguma interação com o sistema, bem como

alguma saída dessa interação.

Representa uma grande parte da funcionalidade do sistema.

Pode estender outro caso de uso.

Pode incluir um outro caso de uso.

É colocado dentro do limite do sistema.

É marcado com uma frase verbo-descritivo.

3.2.3.3 Linha de Comunicação

A linha de comunicação conecta um ator e um caso de uso para mostrar a

participação do ator no caso de uso.

3.2.3.4 Fronteira do Sistema

Há uma separação implícita entre os atores (externos ao sistema) e os

casos de uso (internos ao sistema), que marca fronteira do sistema.

Para mostrar limite do sistema em um diagrama de caso de uso, desenhe

uma caixa em torno de todos os casos de uso, mas mantenha os atores fora da

caixa. Nomeie a caixa conforme o sistema que está desenvolvendo.

1. Inclui o nome do sistema no interior ou na parte superior.

2. Representa o alcance do sistema.

8

3.2.3.5 Descrição do Caso de Uso

Um diagrama mostrando os casos de uso e os atores é um bom ponto de

partida, mas não fornece detalhes suficientes para os analistas de sistema

realmente entender como os objetivos do sistema serão cumpridos.

A melhor maneira é expressar-se na forma de uma descrição em texto –

cada caso de uso deve ser acompanhado por um.

O quadro 1 representa a descrição do caso de uso ilustrado pela figura 1.

Quadro 1 – Descrição de um caso de uso

Caso de uso Criar uma nova conta de blog

Requisito Requisito 1

Meta Um novo autor ou existente solicita uma nova conta de blog ao

Administrador.

Pré-condição O sistema é limitado a autores reconhecidos e por isso o autor

tem de ter a prova adequada de identidade.

Sucesso Uma nova conta de blog é criada para o autor.

Falha A aplicação para criar uma nova conta de blog é rejeitada.

Ator primário Administrador

Ator secundário Banco de dados de credenciais de autor.

Gatillho O Administrador solicita ao sistema criar uma nova conta de blog.

3.2.4 Relacionamentos de Caso de Uso

Um caso de uso descreve a forma como o sistema se comporta para atender

a uma exigência. Ao preencher as descrições dos casos de uso, nota-se que existe

alguma semelhança entre as etapas em diferentes casos de uso. Também alguns

casos de uso trabalham em vários modos diferentes ou casos especiais. Finalmente,

pode-se encontrar um caso de uso com múltiplos fluxos ao longo da execução, e

que seria bom mostrar esses importantes casos opcionais nos diagramas de casos

de uso.

9

Quando os casos de uso ficam muito complexos, as dependências entre os

casos de uso podem ser definidas usando relacionamentos include e extend. O

objetivo é maximizar a extensibilidade e a reutilização dos casos de uso. Casos de

uso de inclusão estão determinados a identificar sequências comuns de interações

em vários casos de uso, que podem ser extraídos e reutilizados.

Outro relacionamento de caso de uso fornecido pela UML é a generalização

do caso de uso. A generalização do caso de use é semelhante ao relacionamento de

extensão, porque também é usado para tratar variações.

3.2.4.1 O Relacionamento de Inclusão

Os casos de uso de inclusão sempre refletem funcionalidades comuns a

mais de um caso de uso. Quando esta funcionalidade comum é separada em um

caso de uso de inclusão, o caso de uso de inclusão pode ser reutilizado por vários

casos de uso base (executável). Casos de uso de inclusão podem muitas vezes ser

desenvolvidos apenas após uma iteração inicial, na qual vários casos de uso têm

sido desenvolvidos. Somente então poderão ser observadas as sequências de

interações repetidas que formam a base para os casos de uso de inclusão.

Em termos de programação, um caso de uso de inclusão é análogo a uma

rotina de biblioteca, e um caso de uso base é análogo a um programa que chama a

rotina de biblioteca.

Um caso de uso de inclusão pode não ter um ator específico. O ator é, de

fato, o ator do caso de uso base que inclui o caso de uso de inclusão. Como

diferentes casos de uso base usam o caso de uso de inclusão, é possível para o

caso de uso de inclusão ser usado por diferentes atores.

3.2.4.2 O Relacionamento de Extensão

Em determinadas situações, um caso de uso pode ser muito complexo, com

muitas ramificações alternativas. O relacionamento de extensão é usado para

10

modelar caminhos alternativos que um caso de uso pode tomar. Um caso de uso

pode se tornar muito complexo se tiver muitas alternativas, opcional, e sequências

excepcionais de interações. Uma solução é a cisão de uma sequência alternativa ou

opcional de interações em um caso de uso separado. O objetivo deste novo caso de

uso é estender o caso de uso antigo, se mantém a condição adequada. O caso de

uso que é estendido é referido como o caso de uso de base, e novo é referido como

caso de uso de extensão.

O relacionamento de extensão pode ser utilizado como se segue:

Para mostrar uma parte condicional do caso de uso base que é executado

somente sob determinadas circunstâncias ou

Para modelar caminhos complexos ou alternativas.

É importante que o caso de uso base não dependa do caso de uso de

extensão. O caso de uso de extensão, por outro lado, depende do caso de uso base

e executa somente se a condição no caso de uso base que faz com que ele execute

seja verdadeira. Um caso de uso base pode ser estendido por mais de um caso de

uso de extensão.

3.2.4.3 Representação de Relacionamentos em Casos de Uso

Considere a descrição do requisito abaixo.

Requisito 2: O sistema de gerenciamento de conteúdo deve permitir que um

administrador crie um novo Wiki pessoal, fornecido os detalhes pessoais do autor da

aplicação são verificados usando o banco de dados de Credenciais do Autor.

A figura 2 e o quadro 2 representam respectivamente o diagrama de casos

de uso e a descrição do caso de uso para o requisito 2.

11

Figura 2 – Diagrama de caso de uso para criar um novo wiki pessoal.

Quadro 2 – Descrição do caso de uso para criar um novo wiki pessoal

Caso de uso Criar um novo Wiki pessoal.

Requisito Requisito 2

Meta Um novo autor ou existente solicita um novo Wiki pessoal para o

Administrador.

Pré-condição O autor tem a prova adequada de identidade.

Sucesso Um novo Wiki pessoal é criado para o autor.

Falha A aplicação para um novo Wiki pessoal é rejeitada.

Ator primário Administrador.

Ator secundário Nenhum.

Gatillho O Administrador solicita ao sistema criar um novo Wiki pessoal.

Fluxo Principal Passos Ação

1 O Administrador solicita ao sistema criar um novo Wiki

pessoal.

2 O administrador entra com os dados do autor.

3 Os dados do autor são verificados usando o Banco de

Dados de Credenciais de Autor.

4 O novo Wiki pessoal é criado.

5 Um resumo com os detalhes do novo Wiki pessoal é

enviado por e-mail ao autor.

Extensões Passos Ação ramificada

3.1 O banco de dados de credenciais de autor não verifica

12

os dados do autor.

3.2 O novo Wiki pessoal do autor é rejeitado pela

aplicação.

O quadro 3 apresenta a descrição do caso de uso Checar identificação, um

relacionamento include que inclui a funcionalidade de um caso de uso dentro da

outro.

Quadro 3 – Descrição do caso de uso checar identificação

Caso de uso Checar identificação

Requisito Requisito 1, Requisito 2

Meta Os dados de um autor precisam ser checados e comprovados

como exato.

Pré-condição O autor ser checado tendo a prova adequada de identidade.

Sucesso Os dados são comprovados.

Falha Os dados não são comprovados.

Ator primário Banco de dados de credenciais de autores.

Ator secundário Nenhum.

Gatillho Credenciais de um autor são fornecidas ao sistema para

verificação.

Fluxo Principal Passos Ação

1 Os dados são fornecidos ao sistema.

2 O banco de dados de credenciais de autores verifica

os dados.

3 Os dados retornam como comprovados pelo banco de

dados de credenciais de autores.

Extensões Passos Ação ramificada

2.1 O banco de dados de credenciais de autores não

comprova os dados.

2.2 Os dados retornam como inválidos.

13

O caso de uso criar uma nova conta de blog pode querer registrar que um

novo autor solicitou uma conta e foi rejeitado, acrescentando essa informação para o

histórico do autor do aplicativo.

O quadro 4 apresenta a descrição do caso de uso referido, com um

relacionamento extend que inclui os passos desse comportamento opcional. A figura

3 represente a diagrama de caso de uso, nele tem uma seta desenhada a partir do

caso de uso de extensão para o caso de uso base.

Quadro 4 – Descrição do caso de uso apresentando um relacionamento extend

Caso de uso Criar uma nova conta de blog

Requisito Requisito 1

Meta Um novo autor ou existente solicita uma nova conta de blog ao

Administrador.

Pré-condição O autor tem de ter a identidade comprovada.

Sucesso Uma nova conta de blog é criada para o autor.

Falha A aplicação para criar uma nova conta de blog é rejeitada.

Ator primário Administrador

Ator secundário Nenhum

Gatillho O Administrador solicita ao sistema criar uma nova conta de blog.

Fluxo Principal Passo Ação

1 O Administrador solicita ao sistema criar uma nova

conta de blog.

2 O Administrador seleciona um tipo de conta.

3 O Administrador insere os dados do Autor.

4 Os dados do Autor são checados.

include::Checar Identidade

5 A nova conta é criada.

6 Um resumo com os dados da nova conta de blog são

enviados por email ao Autor.

Extensões Passo Ação ramificada

4.1 O Autor não tem permissão para criar um novo blog.

4.2 O aplicativo conta de blog é rejeitada.

4.3 A rejeição da aplicação é registrada como parte do

histórico do Autor.

14

Figura 3 – Diagrama de caso de uso representando um relacionamento extend.

3.2.4.4 Relacionamento de Generalização

Um relacionamento de generalização representa um caso de uso

especializado para um mais generalizado. Tem uma seta desenhada a partir do caso

de uso especializado para o caso de uso base.

A forma mais comum de se referir a generalização é usar o termo herança.

Caso de uso de herança é útil se quer mostrar que um caso de uso é um tipo

especial de outro caso de uso.

Considere a figura 4 que represente o diagrama de caso de uso onde dois

tipos de contas de blog, regular e editorial, podem ser criadas pelo sistema de

gestão.

3.3 DESCRIÇÕES DE CASOS DE USO E DIAGRAMAS DE CASOS DE USO

Os casos de uso descrevem a funcionalidade de um sistema e são um

modelo de diálogo entre os atores e o sistema. São usados para modelar o contexto

do sistema e os requisitos de execução do sistema. O principal objetivo é

documentar os requisitos funcionais do sistema, mas também são utilizados como

uma base para testar o sistema de evolução.

15

Figura 4 – Diagrama de caso de uso representando um relacionamento de generalização.

3.3.1 Identificar os Principais Casos de Uso

1. Reveja o diagrama de atividades.

Ajuda o analista obter uma visão completa do processo de negócio

subjacente que está sendo modelado.

2. Encontrar limites do assunto.

Ajuda o analista identificar o âmbito de aplicação do sistema. No entanto, à

medida do trabalho evolui através de ciclo de vida do desenvolvimento de software,

a fronteira do sistema muda.

3. Identificar os principais atores e seus objetivos.

Os principais atores envolvidos com o sistema virá de uma lista de

interessados (stackholders) e usuários. Para o sistema ser um sucesso os objetivos

representam a funcionalidade que o sistema deve fornecer ao ator. Identificar as

tarefas que cada ator deve realizar pode facilita.

4. Identificar e escrever os resumos dos casos de uso importantes.

Ajuda os analistas descreverem os casos de uso e reduz a chance de

sobreposição entre os casos de uso. É importante neste momento para entender e

16

definir siglas e jargões, de modo que a equipe do projeto e outros de fora do grupo

de usuários possam entender claramente os casos de uso.

5. Analisar cuidadosamente os casos de uso corrente. Rever, conforme necessário.

Pode ser necessário separar alguns casos de uso em vários ou fundir outros

em um único. Além disso, novos casos de uso podem ser identificados.

3.3.2 Expandir os Principais Casos de Uso

6. Escolher um dos principais casos de uso para expandir.

Usar o nível de importância do caso de uso pode ajudar a fazer isso.

7. Começar a preencher os detalhes do caso de uso escolhido.

Listar todos os stackeholders identificados e os seus interesses, o nível de

importância, uma breve descrição, a informação de disparo, e as relações em que o

caso de uso participa.

8. Escrever o fluxo normal de eventos do caso de uso.

Os passos devem ser listados na ordem em que são realizados, da primeira

para a última. O objetivo é descrever como o caso de uso escolhido opera.

9. Se o fluxo normal de eventos é muito complexo ou longo prazo, se decompõem

em sub-fluxos.

Cada etapa deve ser aproximadamente do mesmo tamanho das outras. Se

acabar com mais de sete passos ou etapas que variam muito em tamanho, deve-se

voltar e rever cada passo cuidadosamente e, possivelmente, reescrever as etapas.

Uma boa abordagem para produzir os passos de um caso de uso é ter a

visão dos usuários.

10. Listar os possíveis fluxos alternativos ou excepcionais.

Os fluxos alternativos ou excepcionais representam o comportamento

opcional ou excepcional. Eles ocorrerem raramente ou como resultado da falha de

um fluxo normal. Eles devem ser rotulados de modo que não haja dúvidas sobre a

qual fluxo normal de eventos está relacionado.

11. Para cada fluxo alternativo ou excepcional, listar o ator e/ou sistema que deve

reagir.

17

Se um fluxo alternativo ou excepcional é para ser executado, descrever a

resposta de que o ator ou o sistema deve produzir.

3.3.3 Confirmar os Principais Casos de Uso

12. Examinar cuidadosamente o atual conjunto de casos de uso. Rever, conforme

necessário.

A revisão deve procurar oportunidades para simplificar um caso de uso,

decompondo-o em um conjunto de casos de uso menores, fundindo-o com outros, à

procura de aspectos comuns em semântica e sintaxe dos casos de uso e

identificação de novos casos de uso. Este é também o momento de procurar e

adicionar relacionamentos de include, extend ou generalização entre casos de uso.

13. Começar no topo novamente.

Usuários, muitas vezes, mudam de ideia sobre o que é um caso de uso e o

que inclui. Por isso, o analista deve continuar a iterar os passos até que ele e os

usuários acreditem que um número suficiente de casos de uso foi documentado para

começar a identificar as classes candidatas para o modelo estrutural. O

desenvolvimento de sistemas orientado a objeto é tanto iterativo e incremental.

Como tal, não se preocupar com a identificação de todos os possíveis casos de uso

neste ponto no desenvolvimento do sistema.

3.3.4 Criar o Diagrama de Caso de Uso

1. Desenhar a fronteira do sistema.

O diagrama do caso de uso inicia-se com o limite do sistema. Isto constitui a

fronteira, separando os casos de uso (funcionalidades do sistema) de agentes

(papéis dos usuários externos).

2. Colocar os casos de uso no diagrama.

Os casos de uso são desenhados no diagrama, tomadas diretamente das

descrições detalhadas dos casos de uso. Casos de uso de associações especiais

18

(include, extend ou generalização) também são adicionados ao modelo neste

momento.

3. Colocar os atores no diagrama.

Os atores são tirados diretamente do elemento ator principal na descrição

detalhada do caso de uso.

4. Desenhar as associações.

O último passo é desenhar as linhas que ligam os atores aos casos de uso

com as quais interagem.

3.3.5 Especificar Requisitos Não Funcionais

Requisitos não funcionais podem ser especificados em uma seção separada

da descrição do caso de uso, em muitos a mesma forma que as sequências

alternativas são especificadas. Se os requisitos não funcionais se aplicam a um

conjunto de casos de uso relacionados, eles podem ser documentados como tal.

3.4 EXERCÍCIOS

1. (TRE–CE) A análise de requisitos no desenvolvimento de sistemas especifica as

funcionalidades (requisitos funcionais) e as propriedades (requisitos não-

funcionais). É considerado um requisito não-funcional

a) uma informação na interface de entrada.

b) a notificação de inconsistência de dado na tela.

c) um histograma na interface gráfica do usuário.

d) a emissão de relatórios fiscais.

e) a disponibilidade do sistema.

2. (FINEP) Uma equipe de analistas está entrevistando gerentes de área para

levantar os requisitos do novo sistema de reservas de uma companhia aérea.

Considere as afirmativas sobre os requisitos levantados.

I - O usuário poderá fornecer um roteiro com múltiplos pontos de parada.

19

II - O total a ser pago deverá ser expresso na moeda escolhida pelo usuário.

III - As trocas de informações com os sistemas das empresas coligadas (hotéis,

locadora de veículos, etc.) são feitas através de Web Services.

É (São) requisito(s) funcional(ais) o que é apresentado em

a) I, apenas.

b) III, apenas.

c) I e II, apenas.

d) II e III, apenas.

e) I, II e III.

3. (TCE–PR) Identificar e especificar os requisitos funcionais e os não funcionais

são atividades da Engenharia de Requisitos realizadas nos processos de

a) planejamento de gerenciamento de requisitos e análise do problema.

b) análise do problema e definição dos sistemas.

c) definição dos sistemas e refinamento dos requisitos

d) refinamento dos requisitos e aprovação dos requisitos.

e) aprovação dos requisitos e planejamento de gerenciamento dos requisitos.

4. (TCE–PR) São do tipo não funcionais, relacionado ao produto software,

APENAS os requisitos de

a) desempenho e de portabilidade.

b) desempenho e de entrega.

c) portabilidade e de interoperabilidade.

d) portabilidade e legais.

e) facilidade de uso e legais.

5. (PRODEMGE) Em relação aos tipos de requisitos de software, analise os itens a

seguir e coloque (V) para a assertiva verdadeira e (F) para a assertiva falsa.

( )

Requisitos de sistema são declarações, em uma linguagem natural com

diagramas, de quais serviços são esperados do sistema.

( ) Requisitos funcionais são declarações de serviços que o sistema deve

fornecer, como o sistema deve reagir a entradas específicas e como

deve se comportar em determinadas situações.

( ) Requisitos de usuário definem, detalhadamente, as funções, os

serviços e as restrições operacionais do sistema.

20

( )

Requisitos de domínio são provenientes do domínio da aplicação do

sistema e refetem as características e as restrições desse domínio.

6. (INB) Ao se proceder a Análise de Requisitos Funcionais de um projeto/sistema a

ser desenvolvido, pode-se afirmar que essa é a etapa onde se dá, EXCETO:

a) O entendimento do negócio.

b) O levantamento da situação atual e do que se pretende desenvolver.

c) O planejamento do projeto/sistema.

d) O fechamento de escopo do projeto/sistema.

e) A definição do hardware que será necessário à implantação do

projeto/sistema.

7. (SAD–PE) Um requisito de software expressa as necessidades e restrições

colocadas em um produto de software que contribuem para a solução de algum

problema do mundo real. Acerca desse assunto, assinale a opção correta.

a) Os contratantes ou clientes são os principais colaboradores envolvidos no

fornecimento de informações para o processo de levantamento ou elicitação de

requisitos de software, os demais grupos de pessoas que podem fornecer

informações são considerados de importância secundária.

b) As necessidades dos usuários a serem atendidas por um produto

de software constituem a classe de requisitos funcionais, e as restrições

mencionadas na definição de requisitos constituem a classe de requisitos não

funcionais.

c) Entre as fontes de informação para a elicitação de requisitos, destacam-se,

além dos colaboradores, o conhecimento do domínio de aplicação em que

o software funcionará, o ambiente operacional do software e o ambiente

organizacional.

d) A negociação de requisitos, de forma similar à observação do ambiente

organizacional, é uma atividade típica da fase de elicitação de requisitos.

e) A técnica de casos de uso, empregada em alguns modelos de

desenvolvimento de software atuais, é mais aderente à construção de cenários

durante a construção de protótipos que durante a elicitação de requisitos.

8. (TCE–TO) A respeito de análise de requisitos, julgue os itens a seguir.

I. O usuário deve ser capaz de pesquisar tanto no banco de dados inteiro como

em uma parte dele.

21

II. A interface de usuário para o sistema deve ser implementada em HTML

sem frames ou em applets Java.

III. O sistema deve fornecer visões apropriadas para que o usuário possa ler

documentos.

IV. Cada ordem deve ter um identificador único (OSID), que o usuário deve poder

copiar na área permanente de armazenamento da conta.

V. O processo de desenvolvimento do sistema e os documentos devem ser

realizados conforme o padrão interno da empresa.

São requisitos funcionais apenas os itens

a) I, II e III. b) I, II e V. c) I, III e IV. d) II, IV e V. e) III, IV e V.

9. (MPE–BA) Identifique com V as afirmativas verdadeiras e com F, as falsas.

( )

Os requisitos não funcionais restringem o sistema que está sendo

desenvolvido e o processo de desenvolvimento que deve ser usado e

estão, frequentemente, relacionados às propriedades emergentes do

sistema de modo que se aplicam ao sistema em sua totalidade.

( )

A prototipação não é considerada uma técnica usada para validação de

requisitos, pois ocorre na fase final do processo de desenvolvimento,

representado a entrega do sistema aos usuários finais e clientes.

( ) Pode-se considerar que a entrada para o estudo de viabilidade consiste

em um conjunto preliminar de requisitos de negócios, um esboço da

descrição do sistema e como esse sistema pretende apoiar os processos

de negócios.

( ) A análise de requisitos possibilita que o Engenheiro de Software

especifique a função e o desempenho do software.

( ) Os testes de software são atividades de garantia da qualidade por si

mesmo.

( ) A segurança de software é uma atividade de garantia de qualidade de

software que se concentra na identificação e avaliação de casualidades

em potencial que possam exercer um impacto negativo sobre o software e

fazer com que todo o sistema falhe.

10. (MEC) Requisitos não-funcionais estão diretamente relacionados com a

satisfação dos usuários. Assinale a alternativa que não indique um requisito

não-funcional

22

a) O sistema de arquivos deve ser protegido, para acesso, apenas, de

usuários autorizados.

b) O software deve ser implementado usando os conceitos de orientação a

objetos.

c) O tempo de desenvolvimento do software não deve ultrapassar seis

meses.

d) O software poderá ser executado em plataforma windows e linux.

e) O software deve emitir relatórios de vendas a cada quinze dias.

11. (SEFAZ-SC) Considere a seguinte relação de requisitos estabelecida para

um software hipotético.

1. O software deverá ser implementado em Java.

2. O software deve interagir com o usuário por meio de um navegador

(browser), isto é, deve ser implementado como uma aplicação para Web.

3. O software deve registrar log de todas as operações realizadas.

4. O software deve responder a qualquer solicitação do usuário em, no

máximo, 500 milissegundos.

5. O conjunto de produtos gerados deve incluir especificação de projeto em

UML.

6. O software deve ser desenvolvido na plataforma Eclipse.

Assinale a alternativa que contém apenas números correspondentes a

requisitos classificáveis como não funcionais.

a) 1 - 5 – 6

b) 1 - 2 - 4 - 5 – 6

c) 1 - 2 - 3 - 4 - 5 – 6

d) 2 - 3 – 4

e) 2 - 4

12. (TCE-GO) Para evitar descrever o mesmo fluxo de eventos diversas vezes

quando se tratar de um comportamento comum a vários casos de uso, é

recomendado escrever esse comportamento em um único caso de uso e

relacioná-lo aos demais por meio de um relacionamento de

a) agregação por composição.

b) agregação simples.

c) generalização.

d) extensão.

23

e) inclusão.

13. (CODESP-SP) No emprego da UML utilizam-se diversos diagramas. Nos

Casos de Uso, analise a situação abaixo:

Sejam ALFA e BETA dois casos de uso.

Quando BETA herda de ALFA, as sequências de comportamento de ALFA

valem também para BETA.

Quando for necessário, BETA pode redefinir as sequências de

comportamento de ALFA.

Além disso, BETA, na condição de caso de uso herdeiro, participa em

qualquer relacionamento no qual ALFA participa.

A situação descrita caracteriza um relacionamento denominado

a) de inclusão.

b) de extensão.

c) generalização.

d) associação.

e) agregação.

14. (BDMG-2011) São elementos que podem estar presentes em um Diagrama

de Casos de Uso da UML, EXCETO:

a) Ator.

b) Assunto.

c) Relacionamento de generalização.

d) Objeto.

15. (INFRAERO-2011) Para captar os requisitos funcionais de um sistema

pode- se utilizar a UML. O diagrama mais adequado para essa finalidade é

o diagrama de

a) casos de uso.

b) atividades.

c) colaboração.

d) classes.

e) comunicações.

16. (TJ-ES) Com base no diagrama de caso de uso da UML 2.0, mostrado na

figura abaixo, é correto afirmar que

24

( ) a seta identificada por V indica uma relação de dependência

obrigatória.

( ) a seta identificada por VI indica uma dependência opcional.

( ) a seta identificada por VII está usada de forma incorreta, pois não

há generalização entre casos de uso.

( ) o usuário Registered Customer pode acionar o caso de uso Pay.

( ) o caso de uso Select menu item será acionado todas as vezes que

Order meal também for acionado.

17. (MEC-2009) A figura abaixo ilustra um Diagrama de Casos de Uso e é

utilizada no desenvolvimento de projetos de sistemas, utilizando

ferramentas da Análise Orientada a Objetos.

25

O relacionamento entre o ator Cliente e o caso de uso Comprar um produto,

é denominado e definido como:

a) Associação / uma funcionalidade do sistema do ponto de vista do usuário

b) Generalização / uma funcionalidade do sistema do ponto de vista do

usuário

c) Generalização / uma funcionalidade do sistema do ponto de vista do

usuário

d) Globalização / uma funcionalidade do sistema do ponto de vista do

relacionamento

e) Generalização / uma funcionalidade do sistema do ponto de vista do

relacionamento

18. (TRE-AP) Os casos de uso podem ser organizados pela especificação de

relacionamentos de

a) evento, ramificação e inclusão.

b) composição, inclusão e extensão.

c) agregação, extensão e bifurcação.

d) generalização, inclusão e extensão.

e) herança, composição e autorrelacionamento.

19. (TRE-RN) Na modelagem de Caso de Uso, <<include>> e <<extend>> são

relacionamentos de

a) dependência.

b) agregação.

c) especialização.

d) atores entre si.

e) atores com os casos de uso.

(PRODAM-AM) Sejam as seguintes assertivas sobre o Modelo de Casos de

Uso na UML2.0:

I. O único tipo de relação possível entre um ator e um caso de uso é uma

associação. Ele representa a comunicação entre um ator e um caso de

uso.

II. A relação de generalização entre casos de uso não é permitida. Ela deve

ser substituída pela relação .

III. Atores podem se relacionar através de uma generalização ou de uma

associação.

26

IV. Os componentes mais importantes do modelo de casos de uso são os

diagramas de caso de uso.

V. O modo pelo qual os casos de uso devem ser textualmente descritos

está formalmente definido no documento OMG Unified Modeling Language

(OMG UML) Superstructure.

Dentre as assertivas acima, quantas são verdadeiras?

a) 1 b) 2 c) 3 d) 4 e) 5

20. (SEFAZ-SC) Considere a seguinte modelagem de casos de uso:

Com base nas informações contidas na modelagem de casos de uso acima,

é correto afirmar:

a) Ambos os elementos representados pelos atores AtorA e AtorB têm

participação em todas as ocorrências do caso de uso UC1.

b) Apenas um dos elementos representados pelos atores (AtorA ou AtorB) tem

participação em cada ocorrência do caso de uso UC2.

c) Ambos os elementos representados pelos atores AtorA e AtorB têm

participação em todas as ocorrências do caso de uso UC3.

d) O elemento representado pelo ator AtorA pode ter participação em uma

ocorrência do caso de uso UC1.

e) O elemento representado pelo ator AtorA tem participação em todas as

ocorrências dos casos de uso UC1, UC2 e UC3.

21. Crie um conjunto de casos de uso e um diagrama de casos de uso para os

seguintes processos em um sistema de locação executado pelo serviço de

alojamento do campus. O serviço de alojamento do campus ajuda os estudantes

encontrarem apartamentos. Os proprietários dos apartamentos preenchem

formulários com as informações sobre as unidades para locação disponíveis (por

exemplo, localização, número de quartos, aluguel mensal), que são, então,

armazenadas em um banco de dados. Os alunos podem pesquisar esta base de

dados através da Web para encontrar apartamentos que atendam às suas

27

necessidades (por exemplo, um apartamento de dois quartos por R$ 400 por

mês menos de 1 km do campus). Eles, então, diretamente, entram em contato

com os proprietários e veem o apartamento e, possivelmente, alugam-no. Os

proprietários dos apartamentos chamam o serviço e excluem o nome da lista,

quando alugam o apartamento.

22. Crie um conjunto de descrições detalhado de casos de uso e desenhe um

diagrama de casos de uso para um sistema on-line de registro universidade. O

sistema deve permitir que a equipe de cada departamento acadêmico examine

os cursos oferecidos pelo departamento, adicione e remova cursos, e altere

informações sobre eles (por exemplo, o número máximo de alunos permitido).

Ele deve permitir que os estudantes examinem os cursos atualmente disponíveis,

adicione e descarte cursos de seus calendários, e examinem os cursos para os

quais estão inscritos. A equipe do departamento deve ser capaz de imprimir uma

variedade de relatórios sobre os cursos e os alunos matriculados nos mesmos. O

sistema deve assegurar que nenhum estudante tenha cursos demais e que os

alunos que tenha qualquer taxa não paga não tenha o registro autorizado (supor

que os dados de pagamento de taxa é mantido pelo escritório financeiro da

universidade, no qual o sistema de registro acessa, mas não altera).

23. Crie um conjunto detalhado das descrições de caso de uso e desenhe um

diagrama de caso de uso para o seguinte sistema: Uma loja de vídeo executa

uma série de reservas de vídeo bastante normal. Antes que um vídeo possa ser

colocado na prateleira, deve ser catalogado no banco de dados. Cada cliente

deve ter um cartão de cliente válido, a fim de alugar um vídeo. Clientes alugam

vídeos por três dias em um momento. Cada vez que um cliente aluga um vídeo,

o sistema deve garantir que ele não tem nenhum vídeo em atraso. Se for assim,

os vídeos vencidos devem ser devolvidos e pago uma multa de atraso antes que

o cliente possa alugar novos vídeos. Da mesma forma, se o cliente devolver

vídeos com atraso, mas ainda não pagou a multa por atraso, a multa deve ser

paga antes que novos vídeos possam ser alugados. Todas as manhãs, o gerente

da loja imprime um relatório que lista os vídeos em atraso. Se um vídeo está com

dois ou mais dias de atraso, o gerente chama o cliente para lembrá-lo de

devolver o vídeo. Se um vídeo é devolvido em condições de avaria, o gerente

remove-o do banco de dados de vídeo e às vezes pode cobrar do cliente.

28

24. Criar um conjunto de descrições detalhadas de caso de uso de e desenhe um

diagrama de casos de uso para um sistema de empréstimos de uma biblioteca

universitária (não se preocupe com a pesquisa do catálogo, etc.) O sistema irá

gravar os livros de propriedade da biblioteca e vai gravar quais livros tenha

emprestado. Antes que alguém possa pedir emprestado um livro, ele deve

mostrar um cartão de identificação válido, que é verificado no banco de dados de

estudante mantido pela secretaria (para os empréstimos de estudantes), o banco

de dados de professores/funcionários mantido pelo departamento de pessoal

(para empréstimos de professores/funcionários). O sistema também deve

verificar e garantir que o mutuário não tem nenhum livro em atraso ou multas não

pagas antes que ele possa pedir emprestado um outro livro. Toda segunda-feira,

a biblioteca imprime e envia postais para as pessoas com livros em atraso. Se

um livro está vencido há mais de duas semanas, uma multa será imposta e um

bibliotecário vai telefonar para o mutuário para lembrar-lhe de devolver o(s)

livro(s). Às vezes, os livros são perdidos ou são devolvidos em condições de

avaria. O gerente deve, então, removê-los do banco de dados e, por vezes,

impor uma multa ao devedor.

25. (Petrobrás – 2012) Um restaurante contratou uma equipe para desenvolver um

sistema de informação que auxilie nas tarefas diárias do negócio. Após um

levantamento inicial, a equipe listou os seguintes requisitos:

o caixa será responsável por encerrar uma conta e registrar o pagamento da

mesma;

caso o pagamento seja feito com cheque, será necessário que o sistema do

restaurante se comunique com o sistema de consulta de cheques do Serviço

de Proteção ao Lojista para obter informações sobre o cliente;

caso o pagamento seja feito com cartão de crédito, será necessário que o

sistema do restaurante se comunique com o sistema da administradora do

cartão para obter autorização;

apenas o gerente terá acesso à função de estorno do valor pago. Caso a

despesa tenha sido paga com cartão, será necessário se comunicar com o

sistema da administradora;

tanto o sistema da administradora de cartões como o de consulta de cheques

serão acessados via web service;

o gerente também poderá encerrar uma conta.

29

Desenhe um diagrama de caso de uso que descreva adequadamente os

requisitos acima.

3.5 PROJETO

O objetivo é projetar e implementar um software orientado a objeto de um

sistema de caixa eletrônico (Automatic Teller Machine – ATM, máquina de

autoatendimento).

3.5.1 Examinar o Documento de Requisitos

O documento de requisitos especifica a finalidade e o que deve fazer o

sistema ATM.

Um banco local pretende instalar uma nova máquina de caixa automatizada

(ATM) para permitir que aos usuários (os clientes do banco) efetuar transações

financeiras básicas. Cada usuário pode ter apenas uma conta no banco. Os usuários

ATM devem ser capazes de ver o saldo da conta, retirar dinheiro da conta e os

fundos de depósito. A interface de usuário do caixa automático é ilustrada na figura

5 e contém:

uma tela que exibe mensagens para o usuário,

um teclado que recebe a entrada numérica do usuário,

um terminal que distribui dinheiro para o usuário e

um slot (abertura) de depósito que recebe envelopes de depósito do usuário.

O terminal começa cada dia carregado com 500 notas de R$ 20,00.

O banco quer o desenvolvimento de um software que realize as transações

financeiras iniciadas por clientes do banco através da ATM. O banco vai integrar o

software com o hardware da ATM em um momento posterior. O software deve

encapsular a funcionalidade dos dispositivos de hardware (por exemplo, o terminal,

o slot de depósito) dentro de componentes de software, mas não precisa se

preocupar com a forma como estes dispositivos desempenharão suas funções. O

30

hardware da ATM ainda não foi desenvolvido, então em vez de escrever o software

para rodar no caixa eletrônico, deve-se desenvolver uma primeira versão para rodar

em um computador pessoal. Esta versão deve usar o monitor do computador para

simular a tela do caixa eletrônico, e o teclado do computador para simular o teclado

da ATM.

Figura 5 – Interface do usuário do caixa eletrônico.

Fonte: DEITEL P. e DEITEL H. (2012), p 320.

Uma sessão da ATM consiste em autenticar um usuário (ou seja, provar a

identidade do usuário), com base em um número de conta e o número de

identificação pessoal (CPF), seguido por criar e executar transações financeiras.

Para autenticar um usuário e executar operações, a ATM deve interagir com o banco

de dados para acessar informações da conta. Para cada conta bancária, o banco de

dados armazena um número de conta, um CPF e um balanço indicando o montante

de dinheiro na conta.

No primeiro acesso a ATM, o usuário deve encontrar a seguinte sequência

de eventos:

1. A tela exibe a mensagem “Bem-vindo!” e solicita que o usuário digite um número

de conta.

2. O usuário digita um número de conta de cinco dígitos usando o teclado.

3. A tela solicita que o usuário digite o CPF (número do cadastro de pessoa física)

associado com o número da conta especificada.

4. O usuário digita uma senha de cinco dígitos usando o teclado.

31

5. Se o usuário digitar um número de conta válido e o CPF correto para essa conta,

a tela exibe o menu principal, apresentado na figura 6. Se o usuário digitar um

número de conta ou um CPF inválido, a tela exibe uma mensagem apropriada,

então a ATM retorna para o passo 1, reiniciando o processo de autenticação.

Figura 6 – Menu principal da ATM.

Fonte: DEITEL P. e DEITEL H. (2012), p 321.

Depois que a ATM autentica o usuário, o menu principal deve conter uma

opção numerada para cada um dos três tipos de operações: 1 – consulta de saldo, 2

– retirada e 3 – depósito. E deve conter uma opção para o usuário sair do sistema.

Se o usuário digitar 1 (consultar o saldo), a tela exibe o saldo da conta do

usuário. Para isso, a ATM deve recuperar o saldo a partir do banco de dados.

Os passos abaixo descrevem o que ocorre quando o usuário entra no 2 para

fazer um saque:

1. A tela exibe um menu como a figura 7, contendo as quantidades padrão de

saque: R$ 20,00 (opção 1), R$ 40,00 (opção 2), R$ 60,00 (opção 3), R$ 100,00

(opção 4) e R$ 200 (opção 5). O menu também contém uma opção para permitir

que o usuário cancele a transação (opção 6).

32

Figura 7 – Menu de saque da ATM.

Fonte: DEITEL P. e DEITEL H. (2012), p 321.

2. O usuário entra com uma seleção do menu usando o teclado.

3. Se o valor do saque escolhido for maior do que o saldo da conta do usuário, a

tela exibe uma mensagem informando isso e dizendo que o usuário escolha uma

quantidade menor. A ATM volta para o passo 1. Se a quantidade escolhida para

saque for inferior ou igual ao saldo da conta do usuário, a ATM prossegue para o

passo 4. Se o usuário optar por cancelar a transação (opção 6), a ATM exibe o

menu principal e espera pela entrada do usuário.

4. Se o terminal contém dinheiro suficiente, a ATM prossegue para o passo 5. Caso

contrário, a tela exibe uma mensagem indicando o problema e informando ao

usuário para escolher uma quantidade menor de retirada. A ATM volta para o

passo 1.

5. A ATM debita o valor do saque da conta do usuário no banco de dados do banco

(ou seja, subtrai o valor do saque do saldo da conta do usuário).

6. O terminal dispensa a quantidade desejada de dinheiro para o usuário.

7. A tela exibe uma mensagem lembrando ao usuário para pegar o dinheiro.

Os passos seguintes descrevem as ações que ocorrem quando o usuário

digita 3 para fazer um depósito:

1. A tela solicita que o usuário digite um valor do depósito ou digitar 0 (zero) para

cancelar.

2. O usuário entra com o montante do depósito ou 0 usando o teclado. O teclado

não contém um ponto decimal ou um sinal de cifrão, por isso, o usuário deve

33

digitar um depósito como um número de centavos (por exemplo, 2725). A ATM,

em seguida divide esse número por 100 para obter um número que representa

um valor em reais (por exemplo, 2725 ÷ 100 = 27,25).

3. Se o usuário especificar um valor do depósito, a ATM prossegue para o passo 4.

Se o usuário optar por cancelar a transação (digitando 0), a ATM exibe o menu

principal e espera por uma entrada do usuário.

4. A tela exibe uma mensagem pedindo ao usuário para insirir um envelope de

depósito.

5. Se o slot de depósito recebea um envelope de depósito no prazo de dois

minutos, o ATM credita o valor do depósito para a conta do usuário no banco de

dados do banco. Esse dinheiro não estará imediatamente disponível para saque.

Primeiro, o banco deve verificar fisicamente a quantia de dinheiro no envelope de

depósito, e todos os controles no envelope deve estar transparentes (por

exemplo, o dinheiro deve ser transferido da conta do emitente do cheque para a

conta do destinatário do cheque). Quando um desses eventos ocorre, o banco

adequadamente atualiza saldo do usuário armazenando em seu banco de dados.

Isso ocorre independentemente do sistema ATM. Se o slot de depósito não

receber um envelope de depósito dentro deste período de tempo, a tela exibe

uma mensagem onde o sistema cancela a transação devido à inatividade. A ATM

exibe o menu principal e espera por entrada do usuário.

Depois que o sistema executar uma transação com sucesso, deve retornar

ao menu principal, de modo que o usuário possa executar operações adicionais. Se

o usuário sair do sistema, a tela deve exibir uma mensagem de agradecimento, em

seguida, exibir a mensagem de boas-vindas para o próximo usuário.

3.5.2 Diagramas de Casos de Uso

Crie um diagrama de casos de uso para modelar as interações entre os

clientes do sistema e os casos uso. Mostre os tipos de interações que os usuários

têm com um sistema sem fornecer detalhes. Os diagramas de casos de uso são

muitas vezes acompanhados de um texto informal que dá mais detalhes, como o

texto que aparece no documento de requisitos. São produzidos durante a fase de

34

análise do ciclo de vida do software. Em sistemas maiores, os diagramas de casos

de uso são ferramentas indispensáveis que ajudam os analistas de sistema

permanecerem focados em satisfazer as necessidades dos usuários.

3.6 BIBLIOGRAFIA

DEITEL, Paul; DEITEL, Harvey. Java for programmers. 2nd ed. Boston: Pearson

Education, 2012.

DENNIS, Alan; WIXOM, Barbara; TEGARDEN, David. System Analysis Design

UML Version 2.0. 3rd ed. Hoboken: John Wiley & Sons, 2009.

DOOLEY, John. Software Development and Professional Practice. 1st. ed. New

York: Apress, 2011.

GOMMA, Hassan. Software Modeling and Design. 1st. ed. New York: Cambridge

University Press, 2011.

MILES, Russ; HAMILTON, Kim. Learning UML 2.0. 1st ed. Sebastopol, 2006.