fernando krein pinheiro
DESCRIPTION
n seiTRANSCRIPT
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
1
Documento de Requisitos do Protocolo de
Transferência de Arquivos via Portal Serial
Versão 1.3
Engenharia de Software I
Documento de Requisitos
Fernando Krein Pinheiro
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
2
Cronograma
Autor Versão Descrição Data
Fernando Krein Pinheiro 1.0 Inicio do Documento de Requisitos.
28/10/2010
Fernando Krein Pinheiro 1.1 Descrição do Sistema, Casos de Uso.
01/11/2010
Fernando Krein Pinheiro 1.2 Revisão dos Casos de Uso, Restrições.
05/11/2010
Fernando Krein Pinheiro 1.3 Finalização do Documento.
19/11/2010
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
3
Sumário
1. Introdução........................................................................................................................5
1.1 Proposito....................................................................................................................5
1.2 Âmbito........................................................................................................................5
1.3 Definições, Termos e Abreviações..............................................................................5
1.3.1 Usuario..............................................................................................................5
1.3.2 Sistema..............................................................................................................5
1.3.3 Emissor..............................................................................................................5
1.3.4 Receptor............................................................................................................5
1.3.5 CRC (Código de Redundância Ciclica)................................................................5
1.3.6 ACK (Acknowledgement)...................................................................................6
1.3.7 Gatilho...............................................................................................................7
1.3.8 Requisitos..........................................................................................................7
1.4 Referencias.................................................................................................................7
1.5 Organização do Documento.......................................................................................7
2. Descrição Geral...................................................................................................................7
2.1 Perspectiva do Produto..............................................................................................7
2.1.1 Interfaces com o Usuario..................................................................................7
2.1.1.1 Interface Grafica.....................................................................................7
2.1.1.2 Teclado...................................................................................................8
2.1.2 Interface de Hardware.....................................................................................8
2.1.2.1 Teclado..................................................................................................8
2.1.2.2 Monitor..................................................................................................8
2.1.2.3 Portas Seriais.........................................................................................8
2.1.2.4 Cabo de Rede com Conectores DB25....................................................8
2.1.3 Interfaces de Software.....................................................................................8
2.1.4 Interfaces de Comunicação..............................................................................9
2.1.5 Memoria..........................................................................................................9
2.1.6 Operações........................................................................................................9
2.1.7 Exigências de Adaptação ao Local...................................................................9
2.2 Funções do Produto...................................................................................................9
2.3 Características do Utilizador......................................................................................9
2.4 Restrições.................................................................................................................10
2.5 Assunções e Dependencias......................................................................................10
2.6 Divisão de Atribuição das Exigencias.......................................................................10
3. Exigências Especificas.......................................................................................................10
3.1 Interfaces Externas..................................................................................................10
3.1.1 Teclado...........................................................................................................10
3.1.2 Monitor.........................................................................................................10
3.1.3 Portas Seriais.................................................................................................11
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
4
3.1.4 Cabo de Rede com Conectores DB25............................................................11
3.2 Funções...................................................................................................................11
3.2.1 Requisitos Funcionais de Usuario...................................................................11
3.2.1.1 Caso de Uso [1] - Escolher Estado........................................................11
3.2.2 Requisitos Funcionais do Sistema...................................................................12
3.2.2.1 Caso de Uso [2] - Estabelecer Conexão...............................................12
3.2.2.2 Caso de Uso [3] - Ler Arquivo.............................................................12
3.2.2.3 Caso de Uso [4] - Criar Pacotes...........................................................13
3.2.2.4 Caso de Uso [5] - Codificar Pacotes....................................................14
3.2.2.5 Caso de Uso [6] - Enviar Pacote..........................................................15
3.2.2.6 Caso de Uso [7] - Receber Pacote.......................................................15
3.2.2.7 Caso de Uso [8] - Decodificar Pacote..................................................16
3.2.2.8 Caso de Uso [9] - Escrever Arquivo.....................................................17
3.3 Exigências de Desemprenho....................................................................................17
3.3.1 Capacidade.....................................................................................................17
3.3.1.1 Numero de Usuarios...........................................................................18
3.4 Exigências Logicas da Base de Dados.......................................................................18
3.5 Restrições de Desenho.............................................................................................18
3.5.1 Hardware........................................................................................................18
3.5.1.1 Processador........................................................................................18
3.5.1.2 Memória.............................................................................................18
3.6 Atributos do Sistema de Software...........................................................................18
3.6.1 Disponibilidade...............................................................................................18
3.6.2 Segurança.......................................................................................................18
3.6.3 Capacidade de Manutenção...........................................................................18
3.6.4 Portabilidade..................................................................................................19
3.7 Organização das Exigências Especificas..................................................................19
3.7.1 Modos do Sistema..........................................................................................19
3.7.2 Classes do Utilizador.......................................................................................19
3.7.3 Caracteristicas.................................................................................................19
3.8 Comentarios Adicionais...........................................................................................19
4. Informações de Suporte...................................................................................................19
4.1 Âpendices ...............................................................................................................19
4.1.1 Manual do Software......................................................................................19
4.2 Objetivos................................................................................................................20
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
5
1. Introdução 1.1 Proposito.
Este documento tem por objetivo levantar requisitos de um software protocolo para
envio e recebimento de arquivos via porta serial, fornecendo informações necessárias para sua
implementação, testes e correções do software. Este documento também é um trabalho da
disciplina de Engenharia de Software I do curso de Ciência da Computação.
1.2 Âmbito.
O Protocolo de Transferência de Arquivos via Porta Serial ou PTAVPS será em sua
concepção um software que permitira envio e recebimento de qualquer tipo de arquivos pela
porta serial de um computador para outro. Para ser mais preciso quanto ao tipo de arquivos
posso citar: arquivos de vídeo, música, imagens, documentos etc. O software protocolo deverá
além de enviar e receber dados, fazer o tratamento dos mesmo, corrigindo eventuais erros e
falhas na transmissão.
1.3 Definições, Termos e Abreviaturas.
Para que ocorra uma compreensão correta deste documento, é necessário o
conhecimento de alguns termos específicos que são descritos abaixo:
1.3.1 Usuário
Usuário será o utilizador do software, ou seja, será a pessoa que escolhera as
opções na sua interface e fará a manipulação dos arquivos a serem enviados ou
recebidos.
1.3.2 Sistema
O Sistema será o software protocolo em si podendo ser tanto o Emissor como
o Receptor. Sua principal função com o usuário é fornecer uma interface fácil e
intuitiva.
1.3.3 Emissor
Será tratado como Emissor a parte do Sistema que fara o envio e/ou emissão
do arquivo em questão.
1.3.4 Receptor
Será tratado como Receptor a parte do Sistema responsável por receber o
arquivo enviado pelo Emissor.
1.3.5 CRC (Código de Redundância Cíclica)
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
6
CRC ou Código de Redundância Cíclica é um método pré-definido de correção de erros de dados. Esse método consiste em tratar cadeias de bits como representações de polinômios com coeficientes de 0 e 1, para um quadro de k bits teríamos termos variando de xk+1 a x0 ( polinômio de grau k – 1 ) .
No emprego deste método, o emissor e o receptor devem possuir um mesmo polinômio gerador (G(x)) onde o bit de mais alta e mais baixa ordem devem ser iguais a 1, e um quadro de m bits corresponder ao polinômio M(x). Definido o grau r do gerador, acrescentar r bits zero à extremidade de baixa ordem do quadro, de modo que ela passe a conter m + r bits e corresponda ao polinômio xrM(x), em seguida dividir a sequência de bits correspondente a G(x) pela sequência de bits correspondente a xrM(x) utilizando a divisão módulo 2. Então é subtraído o resto da sequência de bits e o seu resultado é o quadro verificado pela soma que deverá ser transmitido. Chamado de polinômio T(x). O polinômio T(x) deverá ser divisível pelo polinômio gerador, ou seja, seu resto deverá ser zero. Em qualquer problema, diminuindo o dividendo pelo resto o resultado é divisível pelo divisor. Assim, o método CRC detectará todos os erros possíveis como: possíveis interferências no meio físico de transporte de dados. Para o Calculo do CRC existem algoritmos pré-definidos o que nesse caso será útil ao programador pois reduzira seu tempo para o desenvolvimento do protocolo. O polinômio gerador usado nesse sistema será: CRC-12: X12 + X11 + X3 + X2 + X + 1.
1.3.6 ACK (Acknowledgement)
O ACK poderá ser considerado como uma confirmação de recebimento de
dados. No caso do Protocolo de Transferência de Arquivos via Porta Serial o ACK será
usado pelo Receptor o qual enviara uma confirmação de recebimento de dados ou
seja o ACK. O ACK será um pacote de dados que conterá algumas informações
referentes ao tipo de pacote que foi enviado o tamanho total do arquivo e o numero
gerado pelo calculo do CRC. Exemplo fictício do pacote ACK.
|---------------------------------------------20 Bytes------------------------------------------------------|
CRC Tipo do Pacote Tamanho Total do Arquivo
|---------5 Bytes-------------|---------------5 Bytes-----------|---------------10 Bytes--------------|
Esses conceitos serão mais bem entendidos nos Casos de Uso [4], [5] e [6].
1.3.7 Gatilho
Gatilho é o ponto de partida para executar determinada ação, ou seja, será um
evento inicial que desencadeara outros mais.
1.3.8 Requisitos
Requisitos são características, funcionalidades que o software deverá atender.
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
7
1.4. Referências
IEEE830
(http://www.urisan.tche.br/~pbetencourt/engsoftI/IEEE830/introducaosrs.html)
PRESSMAN ROGER S., Engenharia de Software 5° Edição.
SOMMERVILLE, Engenharia de Software 6ª Edição.
TANEMBAUM, Andrews. Redes de Computadores 4° Edição.
1.5. Organização do Documento de Requisitos
Este documento segue o modelo padrão da IEEE, seguindo também seus conceitos quanto à qualidade.
O foco da primeira parte do documento, tópico 1, é dar uma visão geral do documento tentando facilitar o entendimento do mesmo pelo leitor. Ainda durante esta etapa é dada uma visão geral do que será o software.
Durante a segunda etapa do documento, tópico 2, passam a ser discutidas as interfaces do software com o meio externo, ou seja, os meios dos quais ele irá receber ou para os quais irá enviar os dados.
A terceira etapa já apresenta os requisitos do sistema, as exigências que o software deverá cumprir com o objetivo de resolver o problema proposto pelo cliente. Durante esta etapa também são discutidas as formas como o software trata os dados recebidos das interfaces externas comentadas no tópico 2.
A quarta e ultima etapa traz o manual do software a ser implementado como uma informação complementar.
Para qualquer dúvida a respeito da estruturação do documento, consultar o sumário na página 2.
2. Descrição Geral
2.1 Perspectivas do Produto
O PTAVPS não faz parte de outro sistema qualquer por isso precisa que alguns sistemas
de hardware trabalhem em conjunto para obtenção de sucesso total.
2.1.1 Interface com o Usuário
Para o funcionamento correto e usabilidade do usuário para com o sistema necessita-
se de algumas interfaces ou periféricos.
2.1.1.1 Interface Gráfica
O software disponibilizará uma interface no modo texto através de um
shell e apenas três opções Emissor, Receptor ou Sair onde: Como já citado
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
8
anteriormente o Emissor fara envio de dados, o Receptor receberá os dados e
Sair será a opção para sair do programa.
2.1.1.2 Teclado
Como a interface do software será em modo texto através do shell o uso
de um teclado é imprescindível para a interação usuário e sistema, o teclado
deverá ser padrão QWERTY e deverá estar dentro das normas da ABNT2.
2.1.2 Interface de Hardware
Para um correto funcionamento do software o computador necessita de alguns
dispositivos. São eles:
2.1.2.1 Teclado
Como visto anteriormente o teclado será de extrema importância para
interação do usuário e o sistema por isso deverá estar instalado corretamente,
funcionando de maneira correta e estar dentro das normas e padrões da ABNT2.
2.1.2.2 Monitor
Para que o usuário possa interagir com o sistema escolhendo as opções se faz
necessário o uso de um monitor podendo este variar de tamanho e peso mas contanto
que esteja instalado de maneira correta e em perfeito funcionamento.
2.1.2.3 Portas Seriais
O computador deverá obrigatoriamente possuir uma saída serial no padrão RS-
232 onde deverá ser conectado um conector DB25.
2.1.2.4 Cabo de Rede com Conectores DB25
Esse item é fundamental para conectar os dois computadores onde o sistema
irá rodar. Os conectores servem para fazer a conexão entre as portas seriais de cada
computador por isso devem seguir o modelo indicado (modelo DB25). O cabo pode ser
encontrado em qualquer loja de eletroeletrônico.
2.1.3 Interface de Software
O software protocolo devido a sua particularidade não poderá fazer uso de outros
softwares para simulação de testes por isso durante sua implementação necessitará que uma
parte esteja rodando em um computador A e outra em um computador B. Nesse caso o
programador devera implementar o sistema emissor em um computador e o receptor em
outro, terminando essa etapa o mesmo fará os testes necessários para verificar seu perfeito
funcionamento posteriormente deverá unir as duas partes do sistema (emissor mais receptor)
fazendo com que o sistema passe a ser um só, possibilitando ao usuário a escolhe de ser
emissor ou receptor.
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
9
2.1.4 Interface de Comunicação
A principal interface de comunicação a ser usado pelo software será a porta serial
padrão RS – 232 e o cabo de rede citado anteriormente. A interface serial é uma porta de
comunicação utilizada para conectar modems, mouses, algumas impressoras, scanners e
outros equipamentos de hardware. Na interface serial, os bits são transferidos em fila, ou seja,
um bit de dados de cada vez.
2.1.5 Memória
O software deverá utilizar a menor quantidade possível de memoria, sendo possível
executa-lo em computadores com apenas 256 MB. Seu desempenho será melhor visto em
computadores que possuam quantidades acima de 512 MB de memoria.
2.1.6 Operações
As operações executadas pelo utilizador será a escolha do modo do sistema (modo
emissor ou receptor). No caso de ocorrer algum evento anormal ou fora do padrão do
software, o mesmo emitira mensagem de auxilio para que o usuário tome uma atitude correta
mediante a situação. Caso o software não executar corretamente por falhas subsequentes de
sistema operacional o usuário deverá executa-lo novamente.
2.1.7 Exigências de Adaptação ao Local
Esse item não é contemplado no documento, portanto não deverá ser no software.
2.2 Funções do Produto
O Software PTAVPS deve prover:
1 – Emissão de Arquivo: onde um usuário poderá escolher um arquivo para envio ao
computador receptor.
2 – Recebimento de Arquivo: onde o usuário poderá receber um arquivo enviado pelo
emissor de outro computador.
3 – Sair onde o usuário sairá do programa e o mesmo fechar automaticamente.
4 – Implementar correção e controle sobre os dados enviados e recebidos.
2.3 Características do Utilizador
Como o software terá aparência simples e buscará ser o mais intuitivo possível
qualquer usuário com o mínimo de conhecimentos em informática poderá usa-lo. Dessa forma
abrangera uma ampla variedade de usuários. Esperasse que o usuário saiba ler e interpretar
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
10
informações e que tenha usado qualquer outro software que possua funções de envio ou
recebimento de arquivos.
2.4 Restrições
O software protocolo não poderá ter dependência alguma com qualquer outro
software instalado no computador, por exemplo: softwares de áudio, vídeo etc. O sistema faz
uso de bibliotecas de sistema UNIX/LINUX por isso a execução em outros sistemas fica restrita
e não poderá ser feita.
2.5 Assunções e Dependências
A interação do sistema deverá ser feita através de dois computadores apenas, onde
um será o Emissor e o outro o Receptor. O sistema que estiver rodando no computador A
deverá possuir apenas um estado (emissor ou receptor). Por exemplo: No caso de o usuário 1
que estiver no computador A ter escolhido a opção de Emissor (para enviar dados)
obrigatoriamente o usuário 2 que esta no computador B deverá ser o Receptor (receber
dados) e vice-versa.
2.6 Divisão de Atribuição de Exigências
O que poderá ser usado em versões futuras do sistema será controle de concorrência
para que o software possa enviar e receber os mesmo tempo, não tendo que esperar uma
operação encerrar para iniciar outra.
3. Exigências Especificas
3.1 Interfaces Externas
Algumas das informações a seguir já foram citadas anteriormente, portanto, em
partes, estarão redundantes mas essa repetição se faz necessária para especificar em detalhes
as exigências impostas pelo sistema. As principais exigências em relação às interfaces externas
são:
3.1.1 Teclado
O teclado deverá seguir as normas e padrões da ABNT2 ser modelo QWERTY,
deve estar instalado corretamente e em perfeito funcionamento.
3.1.2 Monitor
O monitor poderá ser colorido ou não, devera estar devidamente instalado
configurado e em perfeito funcionamento. Tamanho de telas deverá ser de
preferencia igual ou superior a 13,5 polegadas. Poderá ser executado em telas
menores mas não será garantida uma interface perfeita para esse tamanho de
tela.
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
11
3.1.3 Portas Seriais
As portas seriais deverão seguir o padrão RS – 232 e deverão estar
funcionando corretamente.
3.1.4 Cabo de Rede com Conectores DB25
O cabo de rede para conexão entre os dois computadores deverá possuir em
cada uma de suas extremidades um conector tipo DB25. Seu tamanho não deve
ultrapassar 5 metros de comprimento.
3.2 Funções
As funções definem as ações fundamentais do sistema.
3.2.1 Requisitos Funcionais do Usuário
3.2.1.1 Caso de Uso [1] - Escolher Estado
Descrição: O sistema disponibilizará um menu com duas opções; Emissor ou Receptor. Nesse momento o usuário deverá escolher um dos estados, ou seja dependendo da escolha do usuário um computador passara a possuir um estado definido podendo ser emissor ou receptor mas em hipótese alguma poderá assumir os dois estados ao mesmo tempo. Caso o usuário tenha escolhido a opção de emissão o sistema deverá perguntar o caminho do arquivo a ser enviado. Caso o usuário tenha escolhido a opção de receptor o sistema devera reconhecer se existe uma conexão e esperar pelos dados caso não exista conexão uma mensagem de erro é impressa.
Escopo: Protocolo. Ator primário: Usuário. Prioridade: Media. Nível: Tarefa Primária. Frequência: Media. Interesses: Deseja executar um estado de emissor ou receptor. Pré-condições: O usuário deve ter iniciado corretamente o sistema. Condição de sucesso: Uma mensagem de inicio de conexão é emitida e vai para o Caso de Uso [2]. Condição de fracasso: Uma mensagem de erro é impressa na tela e o usuário deverá tentar novamente. Gatilho: Escolher o estado emissor ou receptor. Cenário Principal de Sucesso: 1 - Uma mensagem de inicio de inicio de conexão é emitida na tela. 2 - Vai para o Caso de Uso [2]
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
12
3.2.2 Requisitos Funcionais do Sistema
3.2.2.1 Caso de Uso [2] - Estabelecer Conexão
Descrição: O sistema deve estabelecer conexão. Somente o sistema emissor poderá requisitar e estabelecer uma conexão. O sistema receptor deverá aceitar a conexão e esperar pelos dados.
Escopo: Protocolo. Ator primário: Sistema. Prioridade: Alta. Nível: Tarefa Primária. Frequência: Média. Interesses: O emissor deseja estabelecer uma conexão com o receptor. Pré-condições: O Caso de Uso [1] deverá ter acontecido. Condição de sucesso: A conexão é estabelecida e uma mensagem de sucesso é impressa na tela. Condição de fracasso: Uma mensagem de erro é impressa na tela e outra mensagem aparecerá para usuário tentando instrui-lo como corrigir o erro. Gatilho: Caso de Uso [1] deverá ter acontecido com sucesso. Cenário Principal de Sucesso:
1 – A conexão é estabelecida.
2 – Uma mensagem de sucesso aparece na tela.
3 – Vai para o Caso de Uso [3].
3.2.2.2 Caso de Uso [3] - Ler Arquivo
Descrição: Esse Caso de Uso é feito somente pelo sistema emissor. O sistema emissor devera verificar o tamanho do arquivo informado pelo usuário no Caso de Uso [1], logo após devera alocar memoria dinamicamente conforme o tamanho do arquivo e então abrir o arquivo, ler os dados e armazenar nesse buffer alocado.
Escopo: Protocolo.
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
13
Ator primário: Sistema. Prioridade: Alta. Nível: Tarefa Primária. Frequência: Média. Interesses: Ler os dados e armazena-los em um buffer de memoria. Pré-condições: O Caso de Uso [2] devera ter acontecido com sucesso. Condição de sucesso: O arquivo é verificado, lido e armazenado em buffer de memoria. Condição de fracasso: Uma mensagem de erro é impressa na tela e o sistema tenta novamente ate ler todo o arquivo corretamente. Gatilho: Arquivo deve ser informado pelo usuário no Caso de Uso [1]. Cenário Principal de Sucesso:
1 – O arquivo é lido
2 – Vai para o Caso de Uso [4]
3.2.2.3 Caso de Uso [4] - Criar Pacotes
Descrição: Com os dados já em buffer o sistema emissor deverá criar pacotes de dados. Nesses pacotes além de informações referentes aos dados do arquivo, devem constar ainda tamanho total do arquivo ocupando 10 Bytes, numero de pacote ocupando 5 Bytes, por exemplo, pacote 1, pacote 2, uma certa quantidade de dados do arquivo ocupando 80 Bytes e o código gerado pelo calculo do CRC ocupando 5 Bytes, gerando assim pacotes de 100 bytes. Exemplo fictício de como deverá ser o pacote.
|------------------------------------------ 100 bytes----------------------------------------------|
CRC Dados do Arquivo a ser Enviado 1° Pacote
Tamanho Total do Arquivo
|-5 Bytes--|------------------------ 80 Bytes-----------------------|-5 Bytes --|----10 Bytes-----| Escopo: Protocolo. Ator primário: Sistema. Prioridade: Alta. Nível: Tarefa Primária. Frequência: Alta. Interesses: Criar pacotes de dados para o envio. Pré-condições: O Caso de Uso [3] deve ter acontecido com sucesso. Condição de sucesso: O arquivo é transformado em vários pacotes e vai para o Caso de Uso [5].
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
14
Condição de fracasso: Os pacotes não são criados corretamente uma mensagem de erro aparece e o sistema tenta novamente ate que o arquivo todo seja transformado em pacotes. Gatilho: O arquivo é lido e esta em um buffer de memoria. Cenário Principal de Sucesso:
1 – Os pacotes são criados
2 – Vai para o Caso de Uso [5].
3.2.2.4 Caso de Uso [5] - Codificar Pacote
Descrição: Nesse Caso de Uso o sistema codifica os pacotes gerados no Caso
de Uso [4]. Essa codificação devera ser feita na base 64 e devera ser utilizado o
esquema MIME especificado pelo padrão RFC 2045 nesse padrão é especificado como
funciona a transformação dos dados para a base 64. O princípio da codificação Base 64
consiste em utilizar caracteres EUA-ASCII (caracteres não acentuados) para codificar
qualquer tipo de dado podendo estes ser vídeos, musicas, imagens etc. Exemplo
fictício de como ficará o pacote após a codificação:
|-------------------------------------------------100 Bytes-------------------------------------------------|
Ahbnlooooocrhiwhrowhlrgnuwherhmxielrciughlbernhygwmcnqwehyqexhqlizxehflzweerxhneemnhwbhek,rxhwleiurnhwmlericgwhgrknhbwkjexhnwrimleuh,eçorm
Escopo: Protocolo. Ator primário: Sistema. Prioridade: Alta. Nível: Tarefa Primária. Frequência: Alta. Interesses: Deseja codificar os pacotes para base 64 pelo esquema MIME do padrão RFC 2045. Pré-condições: O Caso de Uso [4] deve ter acontecido com sucesso. Condição de sucesso: Os pacotes são codificados e aguardam o Caso de Uso [6]. Condição de fracasso: Os pacotes não são codificados, uma mensagem de erro é impressa na tela e o sistema tenta codificar novamente, repete o processo ate conseguir codificar todos os pacotes. Gatilho: Quando todos os pacotes forem criados. Cenário Principal de Sucesso:
1 – A codificação é feita com sucesso.
2 – Vai para o Caso de Uso [6].
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
15
3.2.2.5 Caso de Uso [6] - Enviar Pacote
Descrição: O sistema emissor manda um aviso ao receptor de que iniciara a transmissão e então aguarda uma resposta de confirmação (ACK) do receptor após isso a transferência de pacotes é iniciada. Caso não exista o ACK do receptor o emissor deverá esperar três segundos e avisar novamente repetindo este processo três vezes caso não haja resposta alguma por parte do receptor o envio é abortado e uma mensagem de abortado é exibida na tela.
Escopo: Protocolo. Ator primário: Sistema. Prioridade: Alta. Nível: Tarefa Primária. Frequência: Alta. Interesses: O emissor deseja enviar dados para o receptor. Pré-condições: O Caso de Uso [5] deverá ter acontecido com sucesso. Condição de sucesso: O envio de dados é iniciado, então um percentual de envio é mostrado e atualizado conforme os dados vão sendo enviados. Condição de fracasso: O sistema não consegue enviar os dados e aborta. Gatilho: O ACK é enviado pelo receptor. Cenário Principal de Sucesso:
1 – O ACK é enviado pelo receptor.
2 – O envio tem inicio.
3.2.2.6 Caso de Uso [7] - Receber Pacote
Descrição: O sistema receptor recebe o pacote, verifica seu tamanho, aloca memoria, armazena na memoria alocada, vai para o Caso de Uso [8].
Escopo: Protocolo. Ator primário: Sistema. Prioridade: Alta. Nível: Tarefa Primária. Frequência: Alta.
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
16
Interesses: O receptor recebe o pacote. Pré-condições: O Caso de Uso [6] deve ter acontecido com sucesso. Condição de sucesso: O receptor aloca o pacote em memoria. Condição de fracasso: A memoria não pode ser alocada o pacote é perdido. Volta para o Caso de Uso [6]. Gatilho: O Caso de Uso [6] devera ter acontecido com sucesso. Cenário Principal de Sucesso:
1 – O pacote é recebido e verificado
2 – A memoria é alocada, o pacote é armazenado nessa memoria.
3.2.2.7 Caso de Uso [8] - Decodificar Pacote
Descrição: Com o primeiro pacote já recebido o sistema receptor decodifica o mesmo fazendo com que volte ao seu estado original, ou seja, o pacote devera estar no formato descrito no Caso de Uso [4], para decodificar será preciso fazer o processo inverso da codificação, este processo esta descrito no padrão RFC 2045. Então é realizada a conferencia dos cabeçalhos (Tamanho total do arquivo, tamanho do pacote, dados, CRC). O receptor ira verificar o valor do resultado gerado no calculo do CRC e irá compara com o seu valor gerado (lembrando que o resultado dos cálculos tanto do emissor como do receptor devem ser os mesmo, caso contrario, houve algum erro na transmissão dos dados) se tudo estiver certo o receptor manda o ACK para o emissor contendo as informações do cabeçalho de controle para que o sistema emissor posso ter certeza de que realmente ocorreu de maneira certa e continue enviando o restante dos pacotes, caso exista alguma divergência entre os dados o sistema deverá retornar para o Caso de Uso [6]. Escopo: Protocolo. Ator primário: Sistema. Prioridade: Alta. Nível: Tarefa Primária. Frequência: Alta. Interesses: O sistema receptor deseja decodificar os pacotes. Pré-condições: Os pacotes precisam ser recebidos e o Caso de Uso [5] precisa ter acontecido com sucesso. Condição de sucesso: Os pacotes são decodificados e aguardam o Caso de Uso [9]. Condição de fracasso: Os pacotes não são recebidos e, portanto não podem ser decodificados. Gatilho: Os Casos de Uso [5], [6] e [7] precisam ter acontecido. Cenário Principal de Sucesso:
1 – Os pacotes são decodificados
2 – O ACK é enviado pelo receptor e recebido pelo emissor.
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
17
3.2.2.8 Caso de Uso [9] - Escrever em Arquivo
Descrição: Após o recebimento de todos os pacotes e a decodificação dos mesmos, o sistema receptor extrai dos pacotes apenas a parte de dados do arquivo ignorando CRC, tipo de pacote e o tamanho do arquivo. Com todos os dados extraídos o sistema receptor abre um novo arquivo no mesmo diretório de execução do Sistema Protocolo, escreve os dados, salva o arquivo e então é gerado um arquivo igual ao original enviado pelo emissor e assim esta concluída a transferência total do arquivo. O sistema receptor envia o ultimo ACK para informar ao emissor de que o arquivo foi gerado com sucesso e que poderá ser fechada a conexão. A conexão então é fechada pelo emissor é impressa na tela uma mensagem de transferência concluída o sistema fica em estado de espera para a próxima ação do usuário que poderá ser para enviar outro arquivo ou ser fechado.
Escopo: Protocolo. Ator primário: Sistema. Prioridade: Alta. Nível: Tarefa Primária. Frequência: Baixa. Interesses: Deseja escrever em um arquivo os dados recebidos e montar um arquivo igual ao enviado pelo emissor. Pré-condições: Os dados devem ser extraídos corretamente ignorando CRC, tipo do pacote e tamanho do arquivo. Condição de sucesso: Um arquivo igual ao original enviado pelo emissor é gerado. Condição de fracasso: O arquivo não pode ser aberto, escrito, e salvo. Logo não será gerado um arquivo idêntico ao enviado pelo emissor. Gatilho: Apenas a extração dos dados do arquivo. Cenário Principal de Sucesso:
1 – O arquivo é aberto.
2 – Os dados são escritos o arquivo é salvo.
3 – Um arquivo idêntico ao enviado pelo emissor é gerado.
4 – Uma ultima confirmação é enviada ao emissor para avisar de que tudo ocorreu
perfeitamente bem.
5 – A conexão é fechada pelo emissor.
6 – O sistema fica a espera de outra ação do usuário.
3.3 Exigências de Desempenho
3.3.1 Capacidade
Algumas exigências em relação de desempenho e em relação a capacidade suportada
em algumas situações.
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
18
3.3.1.1 Numero de Usuários
O sistema deverá possuir dois usuários; um assumindo o papel de emitir dados
e o outro receber. Nada impede que o sistema seja usado por uma pessoa apenas
desde que a mesma execute uma operação de emissão em um computador e depois
execute uma operação de receptor em outro computador.
3.4 Exigências Logicas da Base de Dados
Este item não é contemplado no escopo do Documento de Requisitos pois o software
Protocolo não necessidade de uma Base de Dados e por isso deve-se desconsiderar quaisquer
aspectos que envolvam Base de Dados.
3.5 Restrições de Desenho
3.5.1 Hardware
3.5.1.1 Processador
O usuário deverá ser capaz de rodar o software em uma máquina com um
processador de 800 MHz ou superior.
3.5.1.2 Memoria
O software deverá rodar de forma estável em um computador de 256 MB de
memória RAM.
3.6 Atributos do Sistema de Software
3.6.1 Disponibilidade
O software em si necessita de uma boa disponibilidade em relação ao sistema
operacional que esta rodando, para o seu perfeito funcionamento. Também é necessário que
os cabos para a conexão física citados anteriormente estejam em perfeitas condições de uso.
3.6.2 Segurança
Para que o software mantenha uma boa segurança, as seguintes medidas devem ser tomadas: O sistema operacional deve além de estar corretamente instalado, também deve possuir as ultimas atualizações de segurança. O antivírus deve estar com sua base de dados atualizada recentemente. É Altamente recomendado que o sistema operacional esteja com seu firewall ativado.
3.6.3 Capacidade de Manutenção
Pelo fato do software estar usando métodos da engenharia, como documento de
requisitos, orientação a objetos, modelagem, o software poderá ser facilmente alterado
para manutenção.
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
19
3.6.4 Portabilidade
O software é 100% portável apenas para maquinas do tipo UNIX/LINUX não sendo
possível executa-lo em maquinas que possuam outros sistemas operacionais.
A linguagem de programação usada para a concepção do software é C estruturado.
3.7 Organizações das Exigências Especificas
3.7.1 Modos do Sistema
O software apresentará somente um modo de utilização, que é descrito através dos
requisitos citados anteriormente.
3.7.2 Classes do Utilizador
O software será projetado somente para usuários "genéricos" descritos na seção 2.3
deste documento, não havendo outros modos do software para tipos de usuários específicos.
3.7.3 Características
A principal característica do software será a dependência das características citadas
nas seções 2.1.1, 2.1.2, 2.1.3 e suas subseções.
3.8 Comentários Adicionais
Os requisitos do software foram levantados seguindo a técnica de Casos de uso,
onde, além de se obter os atuadores e as funcionalidades, já se estabelece os principais
estímulos recebidos pelo sistema e suas principais respostas.
4. Informações de Suporte
4.1 Apêndices
4.1.1 Manual do Software
1° Passo: O usuário devera verificar se o Cabo de Rede com Conectores DB25 estão
conectados as portas seriais dos computadores.
2° Passo: O usuário devera ter instalado e executado o software nas duas maquinas
3° Passo: O Usuário deverá escolher uma das três opções que aparecerão na tela
Essas informações são referentes ao menu de execução do sistema, elas são:
- Emissor
- Receptor
- Sair
Documento de Requisitos do Protocolo de Transferência de Arquivos via Porta Serial
20
No caso do usuário ter escolhido a opção emissor que esta executando no computador
A, no computador B o usuário devera escolher Receptor caso o contrario o software
não funcionara como esperado.
4.2 Objetivos
O objetivo do software é o envio e recebimento de arquivos por uma conexão serial,
bem como tratar eventuais erros de transmissão e controlar os dados de maneira que eles seja
enviados e recebidos de maneira uniforme.