Requisitos do sistema - AbnerSantos25/ProjetoAgenda GitHub Wiki

Diagrama de classes e requisitos Funcionais do sistema

A imagem a seguir apresenta o diagrama de classes do sistema desenvolvido.

Diagrama de Classes.

Requisitos Funcionais

RF01 - Adicionar Contato

Função Adicionar contato
Descrição Adiciona um novo contato à agenda.
Entradas Um objeto do tipo Contact.
Origem Usuário.
Destino Estrutura de dados (lista de contatos).
Ação O sistema valida o novo contato, verifica se o número de celular já existe, adiciona o contato à agenda e grava os dados atualizados no arquivo.
Pré-condição O arquivo da agenda deve existir e ser legível.
Pós-condição O novo contato é adicionado à agenda.
Efeitos colaterais A agenda é atualizada com o novo contato.

Diagrama de Casos de Uso.

RF02. Validar Duplicidade

Função Verificar duplicidade de número de celular
Descrição Verifica se um número de celular já existe na lista de contatos, excluindo um contato específico.
Entradas Uma string phoneNumber e um Guid excludingContactId.
Origem Sistema.
Destino Estrutura de dados (lista de contatos).
Ação O sistema verifica se o número de celular fornecido já existe em qualquer contato, excluindo o contato especificado pelo excludingContactId. Se o número já existir, retorna true; caso contrário, retorna false.
Pré-condição A lista de contatos deve estar carregada na memória.
Pós-condição O sistema retorna um booleano indicando a existência ou não do número de celular.
Efeitos colaterais Nenhum.

Diagrama de Casos de Uso.

RF03. Visualizar Contato

Função Mostrar mais informações do contato
Descrição Redireciona o usuário para a página de detalhes do contato e exibe suas informações.
Entradas Um objeto do tipo Contact.
Origem Usuário.
Destino Navegador (via NavigationManager).
Ação O usuário seleciona um contato e o sistema redireciona para a página de detalhes do contato, exibindo o nome e os números de telefone.
Pré-condição O contato deve existir na agenda e o sistema deve estar em execução.
Pós-condição A página de detalhes do contato é exibida ao usuário.
Efeitos colaterais Nenhum.

Diagrama de Casos de Uso.

RF04. Editar Contato

Função Editar contato
Descrição Edita um contato existente na agenda, atualizando suas informações.
Entradas Um objeto do tipo Contact.
Origem Usuário.
Destino Estrutura de dados (lista de contatos).
Ação O usuário edita um contato existente. O sistema valida o contato, verifica a duplicidade de números, atualiza as informações do contato e grava os dados atualizados no arquivo.
Pré-condição O contato deve existir na agenda e o arquivo da agenda deve estar presente e legível.
Pós-condição As informações do contato são atualizadas na agenda.
Efeitos colaterais O contato atualizado substitui o contato antigo na agenda.

Diagrama de Casos de Uso.

RF05 - Excluir contato

Função Deletar contato
Descrição Deleta o contato se ele existir na lista de contatos.
Entradas Guid contactId.
Origem Usuário.
Destino Estrutura de dados (lista de contatos).
Ação O sistema valida a existência do arquivo da agenda, verifica se o contato existe na agenda e o remove se encontrado, depois grava os dados atualizados no arquivo.
Pré-condição O arquivo da agenda deve existir e ser legível. O contato deve existir na agenda.
Pós-condição O contato é removido da agenda.
Efeitos colaterais O contato desaparece da agenda.

Diagrama de Casos de Uso.

Requisitos não Funcionais

RNF01 - Linguagem de programação

O sistema deve ser escrito na linguagem de programação C#, utilizando a versão 8.0.101 ou superior do .NET, e a interface visual com Blazor.

RNF02 - Ambiente de execução

O sistema deve ser executado em Windows, a partir da versão 10, será necessário ter no mínimo 4gb de memoria RAM e espaço livre no disco.