Especificação trabalho - Unisinos

professor.unisinos.br

Especificação trabalho - Unisinos

UNIVERSIDADE DO VALE DO RIO DOS SINOS

Ciências Exatas e Tecnológicas

Graduação Tecnológica em Segurança da Informação

Disciplina de Estruturas de Dados em C++

Profs. MSc. Leandro Tonietto

Trabalho

Objetivo

Implementar software para simulação de um gerenciador de mensagens e um cliente de consulta e

envio de mensagens. O trabalho visa aplicar as teorias estudadas sobre estrutura de dados,

manipulação de arquivos, gerenciamento de memória e algoritmos de ordenação.

O sistema gerenciador de mensagens tem duas funcionalidades básicas: um cliente para envio e

visualização de mensagens; e o servidor/gerenciador das caixas de mensagens e dos usuários.

Funcionamento do sistema

O usuário deve fazer login para entrar no sistema, entretanto, na primeira vez, deve ser oferecido

ao mesmo a possibilidade de se cadastrar. No momento do cadastro inicial, o sistema deve ler o

nome, um endereço para recebimento de mensagem (como um mail address), um login e uma senha

para o usuário (e demais dados que o aluno julgar relevantes). Quando o usuário terminar de

preencher o cadastro o gerenciador/servidor armazena os dados num arquivo de usuários (dados

com técnica de criptografia de transposição ou substituição) e cria um mailbox para o mesmo,

seguindo algum padrão para nomenclatura do arquivo (pelo nome, pelo e-mail ou por um ID).

Após usuário fazer login, o sistema deve exibir a lista de mensagens (em ordem decrescente de

chegada) da caixa dele (tela principal do sistema). Neste ponto há duas possibilidades de

visualização: ou uma lista única com alguma identificação para as mensagens não lidas, ou duas

listas (uma para e-mails lidos e outra para não lidos). O aluno deve escolher qual visualização vai

implementar (ou implementar as duas e deixar que o usuário escolha a melhor visualização pra si).

Quando o usuário solicitar a leitura de uma mensagem (pelo ID da mensagem) o servidor abre o

conteúdo da respectiva mensagem e a retorna ao cliente de e-mail, que exibe para o usuário.

O usuário pode responder uma mensagem para quem enviou a mensagem atual, pode encaminhar

para outro usuário do sistema, pode postar para o catálogo inteiro do sistema a mensagem (todos os

usuários recebem), pode apagar a mensagem e pode criar uma nova. Repare que o processo de

envio deve ser o mesmo tanto para responder, como para encaminhar ou envio de uma nova, o que

muda são os destinatários e o conteúdo do mail.

Na tela principal, o usuário pode escolher também a opção de excluir uma mensagem da lista de

mensagens.

O gerenciador mantém um arquivo de usuários e um arquivo para cada mailbox criada (ambos com

criptografia). O aluno pode manter outros arquivos que julgar importante ou interessante para

execução do sistema; talvez um arquivo separado da mailbox para as mensagens, de tal forma que o

arquivo da mailbox não fique muito grande para leitura da lista de mensagens.

As figuras 1 e 2 sugerem um diagrama de classes para contemplar o funcionamento deste sistema:

Av. Unisinos, 950 Caixa Postal 275 CEP 93022-000 São Leopoldo Rio Grande do Sul Brasil

Fone: (51) 3591-1122 Fax: (51) 3590-8172 http://www.unisinos.br

Email: ltonietto@unisinos.br Site: http://www.inf.unisinos.br/~ltonietto


UNIVERSIDADE DO VALE DO RIO DOS SINOS

Ciências Exatas e Tecnológicas

Figura 1 Diagrama de classes com definição mais simples.

Figura 2 Diagrama de classes com definição mais sofisticada.

Av. Unisinos, 950 Caixa Postal 275 CEP 93022-000 São Leopoldo Rio Grande do Sul Brasil

Fone: (51) 3591-1122 Fax: (51) 3590-8172 http://www.unisinos.br

Email: ltonietto@unisinos.br Site: http://www.inf.unisinos.br/~ltonietto


UNIVERSIDADE DO VALE DO RIO DOS SINOS

Ciências Exatas e Tecnológicas

O aluno deve implementar uma das duas opções de diagrama; a primeira é suficiente para passar e

a segunda para atingir a nota máxima na disciplina.

As coleções de dados devem ser armazenadas conforme estrutura de dados de lista.

Classes do sistema

Classes básicas do sistema:





ClienteMail: classe que interage diretamente com o usuário e com o servidor. É

responsável pela entrada de dados e pela exibição das informações.

ServidorMail: classe que realiza todas as ações sobre os dados. Mantém os mailboxs, o

cadastro de usuários e o gerenciamento de envio, recebimento e armazenamento de

informações.

Usuario: classe que armazena os dados do usuário, como: id, nome, mail, login e senha.

MailBox: classe que mantém a lista de mensagens do usuário.


Mensagem: uma mensagem possui os dados de quem a enviou, a lista de destinatários, o

assunto e a mensagem (em disco, os dados devem estar criptografados).

Classes adicionais do sistema:







Ordenador: classe que faz ordenação de dados. Esta classe possui duas implementações de

algoritmos de ordenação em duas classes separadas: uma para o algoritmo QuickSort e outra

para o algoritmo MergeSort.

Visualizador: classe que disponibiliza métodos para visualização de dados na tela

Criptografador: classe responsável pela criptografia dos dados. Oferece um método para

criptografar qualquer cadeia de caracteres. O retorno do método é uma outra cadeia de

caracteres cifrada. Possui implementação dos algoritmos de criptografia de substituição e

transposição (em classes distintas).

Todas as classes devem implementar os operadores de atribuição, igualdade, diferença e o

construtor de cópia, tanto quanto necessário.

Atributos devem estar nas seções protegidas ou privadas e devem ser acessados através de

métodos set/get públicos.

Não será permitida a utilização de variáveis globais.

Avaliação

O programa será avaliado da seguinte maneira:

1. Funcionalidades básicas: se o programa realiza o que foi proposto com êxito pelo diagrama de

classes mais simples, de acordo com figura 1 (7 pts):

• Gerenciamento de mensagens

• Gerenciamento de usuários e mailbox

• Exibição e envio de mensagens de mensagens

2. Funcionalidades adicionais, de acordo com o diagrama da figura 2 (3 pts):

• Opção de criptografia

• Opção de ordenação

• Visualizador em classe separada.

O total de pontos que podem ser obtidos pelo aluno é 10.

Av. Unisinos, 950 Caixa Postal 275 CEP 93022-000 São Leopoldo Rio Grande do Sul Brasil

Fone: (51) 3591-1122 Fax: (51) 3590-8172 http://www.unisinos.br

Email: ltonietto@unisinos.br Site: http://www.inf.unisinos.br/~ltonietto


UNIVERSIDADE DO VALE DO RIO DOS SINOS

Ciências Exatas e Tecnológicas

Entrega

O trabalho deverá ser entregue até o dia 04/12/2007. Não será permitido entregas após o prazo de

entrega.

A entrega é composta pelo códigos-fonte do programa devidamente comentado, identado e

compiláveis, bem como pelo executável e demais bibliotecas necessárias para execução. Sugiro que

a compilação seja feita com a opção “estática”; portanto, permitindo ao compilador adicionar as

bibliotecas necessárias para execução do programa.

Av. Unisinos, 950 Caixa Postal 275 CEP 93022-000 São Leopoldo Rio Grande do Sul Brasil

Fone: (51) 3591-1122 Fax: (51) 3590-8172 http://www.unisinos.br

Email: ltonietto@unisinos.br Site: http://www.inf.unisinos.br/~ltonietto

More magazines by this user
Similar magazines