Aplicação do modelo em espiral neste projeto
Por: Sara • 14/11/2017 • 1.650 Palavras (7 Páginas) • 476 Visualizações
...
Este protótipo inicial se manteve com poucas alterações, até o resultado final. Um protótipo mais recente incluiu a possibilidade de consultar a lista de carros estacionados, afora isso, as alterações foram estéticas e para facilitar a visualização.
A partir da função principal (e da tela principal), é chamado um menu de opções que leva às diferentes funções do sistema. Esta, em sua última versão, apresenta as seguintes opções, que foram implantadas gradualmente, a cada “passo” no processo:
- Inserção de veículo, com geração do comprovante de entrada;
- Saída de veículo, com emissão do comprovante. (Esta inclui o cálculo do tempo de permanência e o cálculo do valor da estadia)
- Consulta à lista de carros estacionados de suas horas de entrada;
- Saída do sistema com geração de um relatório do período;
- Saída do sistema, sem geração do relatório.
6.2.1 Estrutura interna e uso da linguagem C
Internamente, a placa de cada veículo e o horário de entrada são armazenados em dois vetores, a placa na forma de uma cadeia de caracteres e o horário de entrada na forma de variável “número natural long” (long int). Na impossibilidade de usar um banco de dados externos, decidimos usar vetores indexados que permitem armazenar e encontrar dados em pares ou grupos identificados entre si pelo mesmo índice.
Horário e tempo de permanência: O horário fica armazenado em um uma variável que conta os segundos deste a 01.jan.1970 às 00:00h GMT (hora do meridiano de Greenwich). O cálculo da duração da permanência (fornecido em horas e minutos) se realiza em duas etapas. O número total de minutos de permanência é calculado através da diferença entre a variável do horário de saída e a do horário de entrada, ambas divididas por 60 (divisão de inteiros, sem resto). A partir dos minutos, o número de horas é calculado a com a divisão de inteiros (sem resto) do número de minutos por 60, e os minutos em número menor que 60 são dados pelo resto da mesma divisão (MOD, ou operador %, em C). A hora atual UTC e as funções para conversão desta em dias, meses, anos e horários, são fornecidas pela biblioteca do padrão ANSI C. Foi necessário explorar estas funções para fornecer a data, hora de entrada, hora de saída e calcular as durações de permanência, bem como gerar o nome do arquivo de relatório.
Apontadores (pointers): O uso de apontadores é muito comum na linguagem C, já que agiliza o processamento e otimiza o uso da memória. Como nosso sistema é simples e com relativamente poucos dados, o uso de apontadores se restringiu a apontadores para arquivos, como o apontador que abre, escreve e fecha o arquivo com o relatório diário, e o apontador que aponta para a impressora, para impressão dos comprovantes.
Variáveis e tipos: em linguagem C, cada variável do tipo char (caractere isolado) corresponde a um número do tipo int, correspondente ao valor do caractere na tabela ASCII. Esta característica foi bastante utilizada, tanto no projeto dos menus quanto nas funções que buscam os carros no vetor de carros. As cadeias de caracteres de placas de carros tinham seus primeiros três caracteres convertidos para letras maiúsculas, caso já não o fossem, e o caractere especial de fim de cadeia ('\0')era forçado no final de cada cadeia de placas, tornando, assim, impossível a entrada de placas com mais de sete caracteres.
Cadeias de caracteres: Cadeias de caracteres não são um “tipo” de variável em C, mas um vetor de caracteres (tipo char). As funções utilizadas para comparar as placas de carros no vetor de placas, a fim de encontrar o veículo a sair do sistema, bem como a função que gera o nome do arquivo de relatório dependeram de funções específicas presentes na biblioteca que, como seu nome diz, contém as funções para lidar com este tipo especial de vetor.
6.2.2 Os “Passos” da Espiral
Dadas todas as limitações inerentes a um trabalho escolar, realizado por um grupo que não pode se encontrar face a face e em quem todos os membros trabalham e têm outros compromissos pessoais, além do prazo exíguo para a realização do trabalho, os “passos” ou iterações do nosso ciclo de vida evolutivo em espiral foram bastante curtos e poucas funcionalidades foram incluídas em cada momento. Também, como seria de se esperar em um trabalho desta natureza, as iterações mais recentes mostraram progressos mais acentuados, não apenas devido á aproximação do prazo final, mas também devido ao fato de que nosso aprendizado sobre a linguagem foi contínuo e a capacidade de solução de problemas aumentou significativamente neste período.
---------------------------------------------------------------
- Bibliografia
Luis Fernando Espinosa Cocian. Manual Da Linguagem C. Canoas: Ed. ULBRA, 2004, 500p.
UNIP INTERATIVA. Manual PIM IV – Analise e Desenvolvimento de Sistemas. UNIP. 2014.
Wikipédia. Modelo de Ciclo de Vida. Disponível em: http://pt.wikipedia.org/wiki/Modelos_ciclo_de_vida> Acesso em: 11.nov.2014
Wikipédia. “Manifesto C”. Disponível em: http://pt.wikipedia.org/wiki/Manifesto_%C3%81gil. Acesso em: 11.nov.2014
Richard Johnsonbaugh & Martin Kalin. Applications Programming in ANSI C. Prentice Hall. New Jersey, EUA. 1996
Brian W. Kernighan & Dennis M. Ritchie. C, A linguagem de programação: padrão ANSI, 7a.Edição. Editora
...