# Documento de Visão

##### Checklist

- \[ \] Validado pelo requerente (escopo e protótipo de telas)

### Introdução

##### Finalidade do documento

A finalidade deste documento é especificar os requisitos relevantes dos usuários, assim como os limites e restrições evidentes que dão uma visão geral. Essa visão viabiliza a identificação e a produção de documentos e requisitos mais técnicos, assim como do próprio sistema. A visão serve como forma de permitir a compreensão, pelos participantes do projeto, do "o quê e por quê" o projeto existe e provê uma estratégia a partir da qual todas as futuras decisões podem ser validadas.

##### Finalidade do sistema

> &gt; Descrever a finalidade do sistema &gt;

### Escopo do produto

##### Declaração do escopo do produto

> &gt; Seção utilizada para documentar novos produtos. Forneça a declaração do escopo do produto, descrevendo as características do produto, serviço ou resultado que se deseja obter com a execução do projeto.

Caso esteja documentando um produto já existente incluir o texto **"Não se aplica"**

> &gt;
> 
> ##### Não faz parte do escopo
> 
> &gt; Descreva de forma explícita as características que não fazem parte do produto. Em muitos casos, é mais fácil declarar que certos comportamentos nunca poderão ocorrer. Exemplo: O sistema não fará controle financeiro; O sistema não fará estatísticas mensais.

Caso esteja documentando um produto já existente incluir o texto **"Não se aplica"**

### Visão geral do produto

##### Modelagem de processos do negócio

> &gt; Cole aqui um diagrama de atividade para representar os processos de negócio (conjunto de atividades que ocorrem em algum negócio com o objetivo de gerar um produto ou serviço, alcançando determinado objetivo). Esse diagrama fornece o entendimento de como são realizadas as diversas atividades contidas em cada processo. &gt;

#### Descrição

Para descrever funcionalidades/requisitos/features há duas opções:

1. Tradicionais requisitos e casos de uso
2. Utilizar Cucumber/Linguagem Gherkin para definir as features

##### Requisitos

> &gt; Descreva os requisitos funcionais e não funcionais do produto. &gt;

<table id="bkmrk-c%C3%B3digo-descri%C3%A7%C3%A3o"><thead><tr><th>Código</th><th>Descrição</th></tr></thead><tbody><tr><td> </td></tr></tbody></table>

##### Casos de Uso

> &gt; Listar e descrever resumidamente as funcionalidades que se espera encontrar no produto. Funcionalidades são capacidades que o produto deve ter para atender a uma necessidade de usuário (ator). Cada funcionalidades descreve um serviço percebido pelo usuário e que tipicamente requer entradas para alcançar o resultado desejado. À medida que o modelo de casos de uso for desenvolvido, atualize a descrição para fazer referência aos casos de uso. Cada funcionalidade será descrita mais detalhadamente no modelo de casos de uso. É recomendado ordernar os casos de uso por ordem de decrescente de prioridade. &gt;

<table id="bkmrk-nome-descri%C3%A7%C3%A3o-pri"><thead><tr><th>Nome</th><th>Descrição</th><th>Prioridade</th><th>Requisitos Relacionados</th></tr></thead><tbody><tr><td> </td><td> </td><td> </td></tr></tbody></table>

##### Diagrama de Casos de Uso

> &gt; Defina aqui o diagrama de casos de uso &gt;

##### Features

Exemplo de uma feature que obedece à sintaxe do Gherkin/Cucumber:

```
<span class="c">#language: pt</span>
<span class="kd">Funcionalidade</span><span class="p">:</span> Gerenciar Workflows
  Para criar fluxos de tramitação de uma requisição
  Como um usuário com permissão para definição de fluxos
  Eu quero selecionar a sequência de papéis para tramitação de acordo com o curso e tipo de requisição


  <span class="kn">Cenario de Fundo</span><span class="p">:</span>
    <span class="nf">Dado</span> que o usuário está logado


  <span class="kn">Cenario</span><span class="p">:</span> Criar workflow
    <span class="nf">Dado</span> que  possui permissão para criar workflows
    <span class="nf">Quando</span> usuário selecionar opção para criar workflow
    <span class="nf">E</span> selecionar o grupo-alvo
    <span class="nf">E</span> selecionar o tipo de requisição
    <span class="nf">E</span> selecionar ordem dos grupos
    <span class="nf">Então</span> solicitar salvamento do workflow na base de dados
    <span class="nf">Mas</span> recusar caso haja algum workflow conflitante


```

##### Protótipo de Telas

> &gt; Defina aqui os protótipos de Telas &gt;