Prévia do material em texto
UNIP EaD Projeto Integrado Multidisciplinar Cursos Superiores de Tecnologia PROJETO DE IMPLEMENTAÇÃO DE SISTEMA EM LINGUAGEM C PARA BILHETERIA DE TEATRO POLO PARAISO 2019 UNIP EaD Projeto Integrado Multidisciplinar Cursos Superiores de Tecnologia PROJETO DE IMPLEMENTAÇÃO DE SISTEMA EM LINGUAGEM C PARA BILHETERIA DE TEATRO NOME: Carlos Henrique Gruthner Junior RA: 1911504 NOME: José Alexandre da Costa Galvão RA: 1911891 NOME: Maicon Camilo RA: 1909398 NOME: Uellington de Jesus Pinto RA: 1918744 NOME: Vinicius Pormann Barroso RA: 1937070 NOME: Willian Santos Silva RA: 1914001 CURSO: ANÁLISE E DESENVOLVIMENTO DE SISTEMAS SEMESTRE: 2º POLO PARAISO 2019 RESUMO A automação dos processos, por meio da implementação de programas computacionais, tem sido utilizada por diversas instituições públicas e privadas, a fim de se obter mais agilidade e segurança na entrega do seu produto final ao usuário. Diante deste cenário, abordou-se neste projeto de pesquisa a criação de um sistema de venda de ingressos de teatro em Linguagem C com base nos conteúdos das disciplinas de Linguagem e Técnica de Programação e Engenharia de Software I cursadas neste bimestre, no qual são apresentados os argumentos e discussões acerca do ciclo de vida utilizado no desenvolvimento do software (modelo incremental); o fluxograma de desenvolvimento do programa e respectivo código, especificando os diferentes cenários como: tipo e quantidade de ingressos (inteira, meia-entrada, isenta e gratuita), hora e data do espetáculo, fechamento do caixa, além de discriminar espetáculos com temas especiais voltados para crianças carentes com entrada franca todas às terças-feiras. Palavras-chaves: Linguagem C, fluxograma, modelo incremental. ABSTRACT Process automation, through the implementation of computer programs, has been used by several public and private institutions, in order to obtain more agility and security in the delivery of its final product to the user. Given this scenario, this research project addressed the creation of a C-language theater ticket sales system based on the contents of the Language and Technique of Programming and Software Engineering I courses in this quarter, in which they are presented, the arguments and discussions about the life cycle used in software development (incremental model); the program development flowchart and its code, specifying the different scenarios such as: type and quantity of tickets (full, half-ticket, free and free), show time and date, cashier closure, and discriminate shows with themes Specials for needy children with free admission every Tuesday. Keywords: C language, flowchart, incremental model. SUMÁRIO 1 INTRODUÇÃO 5 2. LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO 6 2.1 Linguagem 6 2.2 Fluxograma 6 2.3 Desenvolvimento do sistema 8 3 CICLO DE VIDA 12 3.1 Incremental 12 3.2 Etapas de um ciclo incremental 12 4 COMUNICAÇÃO 12 4.1 Técnicas de reunião walkthrough 12 5 PROJETO DE SISTEMA DE VENDAS DE INGRESSO PARA TEATRO 13 5.1 Levantamento de requisitos de sistema 13 5.2 Incremento 1 13 5.3 Incremento 2 14 5.4 Incremento 3 14 5.5 Incremento 4 15 6 CONCLUSÃO 16 REFERÊNCIAS BIBLIOGRÁFICAS 17 5 1 INTRODUÇÃO Atualmente a automação dos processos nas organizações públicas e privadas tem se tornado cada vez necessária para que seus objetivos sejam alcançados de forma mais rápida, segura, com baixo custo e principalmente seu cliente final fique satisfeito com o produto recebido. Para isso, o uso da tecnologia da informação, por meio da implementação de programas de computadores, cada vez mais sofisticados, tem colaborado na otimização desses processos. Neste contexto, o presente projeto de pesquisa aborda o desenvolvimento de um sistema de venda de ingressos de teatro em linguagem C, utilizada na disciplina de Linguagem e Técnica de Programação, como parte prática do trabalho. Nele, são considerados a tabela de valores dos ingressos, com os seus diferentes tipos (inteira, meia-entrada e gratuita). Além de especificar na tela de um monitor, após a concretização da compra, um ticket com a data, a hora, o nome do espetáculo teatral e o número da poltrona, tomando-se o cuidado de nenhum espectador ter um ingresso com o mesmo número da poltrona de outro espectador da mesma peça teatral de um determinado horário e, com a indisponibilidade de lugares, o sistema não permite a venda de ingressos para a peça em questão. Por fim, o programa, termina com a gestão do caixa, informando seu fechamento com as movimentações do dia e o saldo final. A parte teórica envolve a apresentação dos argumentos e discussões em relação ao uso de processos de software (ciclo de vida), tendo como base a disciplina de Engenharia de Software I. 6 2. LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO 2.1 Linguagem A linguagem C/C++ é bastante utilizada para o desenvolvimento de softwares que necessitem de uma certa integração com o hardware, por ser performática e permitir um melhor gerenciamento de recursos de máquina e alocação de memória. É bastante utilizado na construção de sistemas operacionais, softwares de ERP e gerenciamento, e sistemas embarcados, como na plataforma Arduino. 2.2 Fluxograma Antes de darmos início ao desenvolvimento do sistema, foi elaborado o fluxograma para auxiliar nas tomadas de decisão de cada ação dentro do sistema. Onde poderíamos ver quais caminhos seguir e validar hipóteses antes de iniciar de fato o desenvolvimento. Seguindo um conjunto de símbolos-padrão. Símbolo Função Início e fim do algoritmo Cálculo e atribuição de valores Entrada de dados Decisão com possibilidade de desvio Saída de dados Fluxo de dados. Conectar blocos. 7 8 2.3 Desenvolvimento do sistema Para o desenvolvimento utilizamos a linguagem C++, por ser uma atualização da linguagem C e conter alguns métodos a mais, como os testes booleanos que precisamos para as funções de laço. O método de desenvolvimento foi o incremental, possibilitando que o cliente aprove cada parte do sistema antes que o mesmo fique concluído, diminuindo o risco de grandes implementações futuras. O software foi dividido em dois módulos. O primeiro módulo é reservado para vendas, e o segundo para fechamento de caixa. Figura 1 – Tela inicial: Fonte: Autoria Própria. Dentro do primeiro módulo, temos as opções de compra para o espetáculo. Figura 2 – Tela de escolha do dia da semana: Fonte: Autoria Própria. Nesse momento, o atendente escolhe o dia da semana, após escolhido o dia, será exibido todos os espetáculos em cartaz. 9 Figura 3 – Tela com as informações sobre os espetáculos em exibição. Fonte: Autoria Própria. Após escolher o espetáculo de preferência, deverá ser apresentado as opções de quantidade de entradas para cada faixa etária. O programa calcula automaticamente os valores e descontos inclusos. Figura 4 – Tela de cálculo de entradas e descontos. Fonte: Autoria Própria. Logo, é apresentado a tela de escolhas de poltronas numeradas e separadas para cada usuário. 10 Figura 5 – Escolha de Poltronas Fonte: Autoria Própria. Logo após, a escolha de todos os dados, é apresentado a tela com confirmação e valor total da compra. Ao confirmar é apresentado o comprovante da compra. Figura 6 – Tela de confirmação da compra. Fonte: Autoria Própria. Figura 7 – Tela de comprovante da compra realizada. Fonte: Autoria Própria. 11 Dentro do segundo módulo, é apresentado a tela de fechamento do caixa, que mostra o cálculo do total de todas ascompras realizadas. Figura 8 – Tela de fechamento do caixa de vendas. Fonte: Autoria Própria. Após ser usado todas as funções desejadas e não sendo mais preciso utilizar do programa, basta escolher o terceiro módulo, onde irá pedir confirmação de saída. Confirmando a saída é apresentado a dela de desenvolvimento, basta pressionar qualquer tecla para finalizar o programa. Figura 9 – Tela de finalização. Fonte: Autoria Própria. Figura 10 – Tela de autoria. Fonte: Autoria Própria. Caso queira acessar o código-fonte do projeto acesse: https://github.com/dev-williansilva/Sistema_Teatro. https://github.com/dev-williansilva/Sistema_Teatro 12 3 CICLO DE VIDA 3.1 Incremental Para o desenvolvimento do sistema de vendas de ingressos para teatro, foi adotado o modelo Incremental. Este modelo permite a divisão do projeto total em vários ciclos menores possibilitando que o cliente aprove um ciclo para que seja dada continuidade ao projeto para o próximo ciclo diminuindo assim o risco de grandes implementações futuras, pois se o cliente quiser uma mudança neste ciclo do projeto, é mais fácil e rápido a sua correção. É possível também que mais de um ciclo do projeto seja feito ao mesmo tempo dividindo equipes para outros ciclos do projeto sendo desenvolvido em paralelo. Dentro de um ciclo existem algumas etapas que devem ser executadas para se concluir um ciclo e seguir para o próximo. 3.2 Etapas de um ciclo incremental Comunicação: onde é feito o levantamento de requisitos do sistema, a comunicação entre os desenvolvedores e o cliente é muito importante. Planejamento: onde é definido um plano para o desenvolvimento do sistema, os recursos necessários, produto a ser produzido, descrição de possíveis riscos. Modelagem: onde pode-se criar modelos como protótipos de telas do sistema para que tanto os desenvolvedores como o cliente possam entender melhor os requisitos para o sistema. Construção: consiste em gerar códigos e fazer testes para eliminar erros. Implantação: nesta etapa o cliente recebe o produto para fazer a avaliação e dar um retorno da mesma. Cada conjunto dessas etapas formam um ciclo que nada mais é que um pedaço do sistema que vão sendo agrupados, temos assim o modelo incremental para que no final se tenha um sistema completo. Devido a essa flexibilidade o modelo incremental foi adotado para o desenvolvimento deste projeto. 4 COMUNICAÇÃO E para que a equipe tenha um bom desempenho no projeto, uma boa comunicação é sempre importante e para isso foi atribuído a técnica de reunião Walkthrough. Essa técnica visa melhoria tanto na qualidade do sistema quanto no conhecimento de seu conteúdo. 4.1 Técnicas de reunião walkthrough Esse tipo de reunião pode ser aplicado em diversos momentos do desenvolvimento do projeto e em diversas etapas como levantamento de informações, revisões técnicas etc. É uma técnica considerada mais informal com objetivo de manter a qualidade do projeto e que todos os presentes tenham o conhecimento do conteúdo do projeto. Pode-se dizer que é um tipo de reunião com cara de revisão realizada em pares ou em grupo, é uma prática simples e bem aceita para a melhoria da qualidade do projeto. 13 5 PROJETO DE SISTEMA DE VENDAS DE INGRESSO PARA TEATRO 5.1 Levantamento de requisitos de sistema Em reunião com o cliente foram levantados os requisitos para o sistema. O Sistema deverá levar em consideração uma tabela de valores dos ingressos que são: Figura 11 – Valores para os ingressos Fonte: autoria própria Ao efetuar a compra do ingresso, o sistema deverá mostrar em tela um ticket com a data, a hora, a peça teatral e o número da poltrona. Nenhum espectador pode ter o mesmo número de poltrona de outro espectador da mesma peça teatral no mesmo horário. Informar quando não houver mais lugares disponíveis e não permitir mais a venda para a peça em questão. O sistema deverá fazer a gestão do caixa informando no fechamento todas as movimentações do dia e o saldo do fechamento. 5.2 Incremento 1 - Comunicação: após reunião ficou acertado a entrega da tela de menu e o catálogo de espetáculos juntamente com a lógica de seleção dos ingressos. - Planejamento: será utilizado 1 computador com a plataforma DevC++ instalada para o desenvolvimento dessa parte do projeto. Foi estabelecido uma tela inicial do sistema com o nome do teatro e um menu com as opções de Espetáculos, Fechamento de caixa e sair do sistema, e a tela com o catálogo de espetáculos. - Modelagem: neste ponto foi criado um modelo de tela para que tanto os desenvolvedores como o cliente tivesse uma ideia melhor dos requisitos do sistema. Algumas correções foram feitas e tivemos um melhor resultado. 14 Figura 12 – Frame ilustrando o menu principal da aplicação Fonte: autoria própria - Construção: nesta etapa começa a geração de código feita na linguagem C usando a plataforma DevC++ e testes são feitos para correção de possíveis erros que podem ocorrer no código, efetuando os testes a tela inicial e o menu estando em funcionamento passamos para fase de implantação. - Implantação: o sistema foi entregue ao cliente que avaliou, testou e aprovou tudo que foi entregue e ficou decidido que a interface com fundo preto seria padrão do sistema. 5.3 Incremento 2 - Comunicação: neste ponto ficou acertado a entrega da seleção do ingresso definido por seu tipo e a forma da escolha das poltronas. - Planejamento: 2 computadores foram definidos nesta etapa do projeto, a equipe foi dividida em duas, a primeira vai desenvolver a escolha da peça teatral e o tipo de ingresso, foi definido ter a opção de se escolher o dia da semana e em seguida uma tabela com as peças teatrais em exibição constando o código, nome, sala, preço, horários e lugares vagos, e em seguida a opção para quantidade de ingressos para cada tipo disponível, e a outra equipe vai desenvolver a forma como será feita a escolha das poltronas e ficou definido que ao lado de cada número de poltrona terá a letra ‘o’ para ocupado, ‘v’ para lugar vago e ‘s’ para uma poltrona selecionada. - Modelagem: já com a interface definida anteriormente no incremento 1, foram apresentadas ao cliente as modelagens de tela para a ideia da apresentação dos requisitos, com algumas melhorias da interface. - Construção: nesta etapa começa a geração de código feita na linguagem C usando a plataforma DevC++ e testes são feitos para correção de possíveis erros que podem ocorrer no código, efetuando os testes foram detectados erros e os mesmos corrigidos para apresentação ao cliente. - Implantação: o sistema foi entregue ao cliente que avaliou, testou e aprovou tudo que foi entregue, sendo assim passamos para a próxima etapa. 5.4 Incremento 3 15 - Comunicação: aqui ficou acertado a lógica do cálculo do valor dos ingressos para cada tipo de ingresso juntamente com a impressão em tela dos tickets e a finalização da compra. - Planejamento: a equipe foi dividida em duas, uma cuidando da parte dos cálculos para cada tipo de ingresso onde se tem 3 opções, entrada com 50% de desconto, entrada com 100% de desconto e entrada com preço cheio, conforme a opção escolhida o sistema realiza os cálculos e armazena seus valores que também serão utilizados no próximo incremento conforme os requisitos, e em seguida é solicitado a confirmação da compra, a outra equipe vai desenvolver a exibição em tela do ticket da compra efetuada dispondo de data, a hora, a peça teatral e o número da poltrona. - Modelagem: nesta etapa foram criadas modelos de telas para que tanto os desenvolvedores como o cliente definissem melhor a ideia dos requisitos do sistema. Algumas correções foram feitas após o cliente, junto aos desenvolvedores chegarem a uma decisão, e tivemos um melhor resultado com as telas a seguir: -Construção: os desenvolvedores nesta etapa começam a construção do código feitona linguagem C usando a plataforma DevC++, testes são feitos para correção de possíveis erros que podem ocorrer no código, efetuando os testes foram detectados erros, o código foi refatorado e submetido a novos testes até estar com as funcionalidades fluindo corretamente. - Implantação: o incremento foi entregue ao cliente que avaliou, testou e aprovou tudo que foi entregue e sugeriu algumas pequenas mudanças no projeto que foram anotadas para serem discutidas em uma reunião, sendo assim passamos para a próxima etapa. 5.5 Incremento 4 - Comunicação: neste incremento ficou acertado a lógica para o fechamento de caixa, contabilizando os ingressos e o valor total arrecadado. - Planejamento: nesta etapa final do projeto a equipe se dividiu em duas, uma equipe ficou aplicando vários testes no código de todos os incrementos anteriores para descoberta de possíveis erros e refatoração do código para melhorias e para implementações futuras, a outra equipe cuidou de desenvolver o fechamento do caixa exibindo em tela todos os tipos de ingressos vendidos e as suas quantidades bem como o valor total de cada tipo vendido e o valor total de vendas no dia. - Modelagem: após a seleção no menu principal para fechamento de caixa é exibida a tela com as informações para cada tipo de ingresso e as quantidades vendidas e seus valores e o total do caixa. - Construção: após a definição da tela o código é desenvolvido na linguagem C usando a plataforma DevC++, testes são realizados pequenos erros corrigidos e o incremento segue para ser apresentado ao cliente. - Implantação: o cliente recebeu a parte final do sistema, testou, avaliou e solicitou algumas pequenas melhorias que não iria atrapalhar o funcionamento do sistema, os desenvolvedores se reuniram com o cliente e implementaram as pequenas melhorias solicitadas no mesmo dia, mantendo a qualidade do sistema e a satisfação do cliente. 16 6 CONCLUSÃO Neste Projeto integrado Multidisciplinar foi desenvolvido um Software para vendas de ingressos para teatro, abordando desde a linguagem e técnicas de programação utilizados, como os processos utilizados para o seu desenvolvimento. O Projeto foi desenvolvido em linguagem C/C++ com a utilização de bibliotecas com a plataforma DevC++ para a codificação e compilação do mesmo. Em um fluxograma apresentado mostra-se uma ideia geral do funcionamento do software. O método incremental foi adotado para facilitar o desenvolvimento através de ciclos onde o software é dividido em partes (incrementos), onde em cada incremento desenvolvido passa por etapas pré-definidas de comunicação, planejamento, modelagem, construção e implantação. A comunicação da equipe de desenvolvedores e o cliente é uma parte muito importante, para isso juntamente com o modelo incremental foi utilizada a técnica de reunião Walkthrough, um tipo de reunião que pode ser realizada em qualquer etapa do projeto com um estilo mais informal, prática e simples bem aceita em projetos. A conclusão é que o modelo incremental realmente ajuda muito no desenvolvimento, dando a possibilidade de corrigir erros por partes de cada ciclo concluído, e possibilitando a divisão da equipe de desenvolvedores em partes diferentes do projeto mantendo o prazo de entrega e a qualidade do software. Entendemos também a importância da comunicação entre desenvolvedores e cliente através das reuniões, mantendo sempre o cliente participativo, nos direcionando conforme os requisitos fossem agregados, finalizando a entrega de um software de qualidade de acordo com os requisitos do cliente. 17 REFERÊNCIAS BIBLIOGRÁFICAS COSTA, Ivanir. Engenharia de software. São Paulo: Editora Sol, 2014. IVO, Olavo. Linguagem e técnicas de programação. São Paulo, 2014.
Compartilhar