·
Análise de Sistemas ·
Linguagens de Programação
Send your question to AI and receive an answer instantly
Recommended for you
45
Manual PIM VIII: Guia Completo para Análise e Desenvolvimento de Sistemas
Linguagens de Programação
UNIP
30
Manual PIM IV Analise e Desenvolvimento de Sistemas - Guia Completo
Linguagens de Programação
UNIP
45
Manual PIM IV Analise e Desenvolvimento de Sistemas - UNIP
Linguagens de Programação
UNIP
45
PIM VI - Sistema de Venda de Jogos Eletrônicos e Acessórios Geek - Requisitos e Estrutura
Linguagens de Programação
UNIP
19
Pim Hortifrutaria
Linguagens de Programação
UNIP
11
Trabalho Pim
Linguagens de Programação
UNIP
14
PIM IV Software C para Startup de Solucoes Ambientais Gerenciamento e Cadastro
Linguagens de Programação
UNIP
38
Manual PIM VII Analise e Desenvolvimento de Sistemas - Guia Completo
Linguagens de Programação
UNIP
1
Controle de Estoque - Legumes Frutas e Vegetais
Linguagens de Programação
UNIP
40
Manual PIM V - Curso Superior Tecnologia Analise Desenvolvimento Sistemas
Linguagens de Programação
UNIP
Preview text
Manual do PIM IV Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Sumário 1 INFORMAÇÕES GERAIS SOBRE O PIM 3 2 INFORMAÇÕES ESPECÍFICAS SOBRE O PIM IV 24 3 ENVIO DO PIM 27 4 PRAZOS E VALIDAÇÃO DO RECEBIMENTO DO PIM 27 5 DÚVIDAS SOBRE O PIM 28 6 IMPORTANTE 28 7 PLÁGIO 29 5 Para isso o aluno deve seguir um roteiro para a digitação dos trabalhos onde estão sugeridos tipo e tamanho de fonte posição e formato de títulos e sequência das partes integrantes do trabalho Cabe ressaltar que conforme a NBR 147242002 o projeto gráfico é de responsabilidade do autor do trabalho Todavia as padronizações de elementos previstas pela ABNT deverão ser todas atendidas 15 Aspectos Gerais Texto Papel A4 210x297 mm branco Margens Superior e Esquerda 30 cm Inferior e Direita 20 cm Espaçamento entrelinhas e parágrafos O espaçamento entrelinhas deve ser de 15 cm Embora a padronização do espaçamento pela NBR 147242002 seja por espaçamento entrelinhas duplo adotaremos o espaçamento entrelinhas de um e meio O início do texto de cada parágrafo deve ficar a 15 cm a partir da margem esquerda Podese optar por definir o recuo especial para a primeira linha utilizando os recursos do editor de textos As citações longas notas referências e os resumos em língua vernácula e em língua estrangeira devem ser digitados em espaço simples 6 Escrita Recomendase utilizar fonte Arial ou Times New Roman tamanho 12 para o corpo do texto e tamanho 10 para citações longas com mais de 3 linhas e para notas de rodapé assim como alinhamento justificado Paginação Todas as páginas do trabalho a partir da folha de rosto devem ser contadas sequencialmente mas não numeradas A numeração é colocada a partir da primeira página da parte textual Introdução em algarismos arábicos no canto superior direito da folha Havendo apêndice e anexo as páginas devem ser numeradas de maneira contínua e a paginação deve dar seguimento à paginação do texto principal Estrutura do trabalho A estrutura do trabalho acadêmico dissertação tese monografia trabalho de conclusão de curso e similares definida na NBR147242002 com vigência a partir de 29092002 deve contemplar os elementos prétextuais textuais e póstextuais de acordo com o que se indica na tabela a seguir 7 Tabela 1 Estrutura do trabalho Estrutura Elemento Condição Prétexto Capa Lombada Folha de rosto Errata Folha de aprovação Dedicatória Agradecimentos Epígrafe Resumo Resumo em língua estrangeira Sumário Lista de ilustrações Lista de tabelas Lista de abreviaturas e siglas Lista de símbolos Obrigatório Opcional Opcional Opcional Opcional Opcional Opcional Opcional Obrigatório Obrigatório Obrigatório Opcional Opcional Opcional Opcional Texto Introdução Desenvolvimento Conclusão Obrigatório Obrigatório Obrigatório Póstexto Referências Glossário Apêndice Anexo Índice Obrigatório Opcional Opcional Opcional Opcional 16 O significado dos elementos prétextuais Capa externa São informações indispensáveis à sua identificação na seguinte ordem 8 1 NOME DO AUTOR 2 TÍTULO E SUBTÍTULO 3 LOCAL cidade da instituição onde deve ser apresentado 4 ANO DE DEPÓSITO da entrega Folha de rosto anverso Elemento opcional É a página que apresenta os elementos essenciais à identificação do trabalho Nela deve constar 5 NOME DO AUTOR responsável intelectual pelo trabalho 6 TÍTULO E SUBTÍTULO o primeiro em caixa alta ambos centralizados 7 NATUREZA contendo indicação do tipo de trabalho tese dissertação TCC etc objetivo aprovação em disciplina grau pretendido etc nome da instituição a qual o trabalho é submetido área de concentração justificada à direita 8 NOME DO ORIENTADOR justificado à direita 9 LOCAL e ANO Folha de rosto verso Elemento opcional Deve conter a ficha catalográfica conforme Código de Catalogação AngloAmericano CCAA2 Lembrete Este item deve ser adaptado de acordo com a característica e destinação do trabalho podendo ser admitida sua supressão 9 Errata Elemento opcional Tratase de uma lista com a indicação das páginas e linhas em que ocorreram erros com as correções necessárias Geralmente se apresenta em papel avulso ou encartado acrescido ao trabalho depois de impresso Folha de aprovação Elemento opcional Deve conter o nome do autor título por extenso e subtítulo se houver local e data de aprovação nome assinatura e instituição dos membros componentes da avaliação Lembrete Este item é indispensável para dissertações e teses mas de acordo com a característica e destinação do trabalho podese admitir sua supressão Dedicatória Elemento opcional em que o autor presta homenagem ou dedica seu trabalho A dedicatória deve figurar à direita na parte inferior da folha Agradecimentos Elemento opcional em que são registrados agradecimentos às pessoas eou instituições que colaboraram com o autor 10 Epígrafe Elemento opcional em que o autor inclui uma citação seguida de indicação de autoria relacionada com a matéria tratada no corpo do trabalho A citação deve figurar à direita na parte inferior da folha Resumo Elemento obrigatório que consiste na apresentação concisa dos pontos relevantes do trabalho O resumo deve dar uma visão rápida e clara do conteúdo e das conclusões do trabalho por meio de uma sequência corrente de frases concisas e objetivas não sendo uma simples enumeração de tópicos não ultrapassando 500 palavras e sendo seguido pelas palavraschave ou descritores que são palavras mais representativas do conteúdo do trabalho Abstract ou Resumen ou Résumé Elemento obrigatório que consiste em uma versão do resumo em um idioma de divulgação internacional inglês espanhol ou francês Deve ser seguido por palavras chave ou descritores na mesma língua em que estiver A tradução do resumo deve ser feita apenas em uma língua Lembrete Este item deve ser adaptado de acordo com a característica e destinação do trabalho Sumário Elemento obrigatório É a relação das principais seções do trabalho na ordem em que se sucedem no texto e com indicação da página inicial As seções do trabalho 11 devem ser numeradas em algarismos arábicos Elementos como listas de figuras tabelas abreviaturas símbolos resumos e apêndices não devem constar no sumário A apresentação tipográfica das divisões e subdivisões utilizada no sumário deve ser idêntica às utilizadas no texto Para maiopres informações consultar as normas da ABNT Listas São itens opcionais que relacionam elementos selecionados do texto na ordem da ocorrência com a respectiva indicação de páginas Pode haver uma lista única para todos os tipos de ilustrações ou uma lista para cada tipo As listas devem apresentar o número da figura sua legenda e a página onde se encontra 17 O significado dos elementos textuais Como regra geral devese considerar que o texto poderá ser lido por um leitor não especialista no assunto Assim o texto deve ser claro objetivo e de fácil leitura cuidando para que não seja sucinto em demasia pois o leitor não domina necessariamente os mesmos conhecimentos e informações do autor Devese ainda cuidar para que o referencial teórico utilizado ofereça a sustentação adequada ao tema discutido Introdução Elemento obrigatório A introdução deve conter o objetivo da pesquisa a ser desenvolvida no PIM a metodologia utilizada e uma breve apresentação da empresa selecionada para a investigação Ela deve permitir ao leitor um entendimento sucinto da proposta do trabalho em pauta 12 Desenvolvimento dos capítulos Elemento obrigatório O desenvolvimento é a parte mais extensa do trabalho também pode ser chamado de corpo do assunto O seu principal objetivo é comunicar ao leitor os resultados da pesquisa É a apresentação do tema de forma lógica e progressivamente ordenada por meio de capítulos e subcapítulos e dos pontos principais do trabalho Sugerese consultar as normas da ABNT Contém revisão de literatura descrição de métodos e materiais utilizados apresentação de resultados e a discussão dos resultados que conduziram às principais conclusões apresentadas Devese cuidar para que as citações menção a uma informação extraída de outra fonte as citações diretas transcrição dos conceitos do autor consultado as citações indiretas transcrição livre do texto do autor consultado e as citações de citações transcrição direta ou indireta de um texto cujo original não se pôde acessar estejam de acordo com as normas da ABNT Conclusão Elemento obrigatório Embora reúna um conjunto de conclusões o título deve permanecer no singular já que remete à seção não ao número de conclusões formuladas As conclusões devem ser apresentadas de maneira lógica clara e concisa fundamentadas nos resultados e na discussão abordada ao longo do desenvolvimento do trabalho capítulos O autor deve ainda retomar as propostas iniciais apresentadas na Introdução e reafirmar de maneira sintética a ideia principal e os pontos importantes do corpo do trabalho 13 18 O significado dos elementos póstextuais Referências Elemento obrigatório É o conjunto padronizado de elementos descritivos retirados de um documento que permite sua identificação individual relação de autores consultados ou citados em ordem alfabética da palavra de ordem Vide normas da ABNT Glossário Elemento opcional Consiste em uma lista em ordem alfabética de palavras ou expressões técnicas de uso restrito ou de sentido obscuro utilizadas no texto acompanhadas das respectivas definições Apêndice Elemento opcional Consiste em um texto ou documento elaborado pelo autor a fim de complementar sua argumentação sem prejuízo da unidade nuclear do trabalho Geralmente são questionários entrevistas fotos etc que auxiliam na fundamentação da pesquisa A citação ao Apêndice no decorrer dos capítulos deve ocorrer entre parênteses identificados por algarismos romanos ou letras maiúsculas consecutivas travessões e respectivos títulos Exemplo Apêndice A Título ou Apêndice I Título Apêndice B Título ou Apêndice II Título Anexo Elemento opcional Consiste em um texto ou documento não elaborado pelo autor que serve de fundamentação comprovação e ilustração São geralmente documentos 14 projetos de leis decretos etc cuja função é complementar o trabalho Quando apresentados na forma de fotocópias recomendase cuidado com sua nitidez e legibilidade Cabe lembrar que os Anexos são todos os documentos de autoria de terceiros apenas podendo ser utilizados se o conteúdo e a referência estiverem compondo o desenvolvimento do trabalho São identificados por algarismos romanos ou letras maiúsculas consecutivas travessões e respectivos títulos Exemplo Anexo A Título ou Anexo I Título Anexo B Título ou Anexo II Título Índice Elemento opcional Consiste na lista de palavras ou frases ordenadas de acordo com determinado critério que localiza e remete às informações contidas no texto Para complementação consultar a NBR603 15 ANEXO 19 Modelos para o corpo do PIM 191 Capa UNIVERSIDADE PAULISTA UNIP EaD Projeto Integrado Multidisciplinar Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas NOME DO ALUNO RA TÍTULO DO TRABALHO Subtítulo se houver Local cidade da instituição onde o trabalho deve ser apresentado ANO da entrega 16 192 Folha de rosto NOME DO ALUNO RA TÍTULO DO TRABALHO Subtítulo se houver Projeto Integrado Multidisciplinar em Análise e Desenvolvimento de Projetos Projeto Integrado Multidisciplinar para obtenção do título de tecnólogo em nome do curso apresentado à Universidade Paulista UNIP EaD Orientador a Local cidade da instituição onde o trabalho deve ser apresentado ANO da entrega 17 193 Resumo RESUMO De 150 a 500 palavras Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx Palavraschave Xxxxxxx Xxxxxxxxx Xxxxxxx Xxxxxxxxx Xxxxxxxxx 18 194 Abstract ABSTRACT Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx Keywords Xxxxxxx Xxxxxxxxx Xxxxxxx Xxxxxxxxx Xxxxxxxxx 19 195 Sumário SUMÁRIO 1 Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x 2 Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x 3 Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x 4 Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x 20 196 Introdução 1 INTRODUÇÃO Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 21 197 Desenvolvimento do PIM Neste item começa o desenvolvimento dos capítulos e subcapítulos se houver Mínimo de 15 e máximo de 20 páginas 2 NOME DO CAPÍTULO Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx 22 198 Conclusão 3 CONCLUSÃO Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 23 199 Referências REFERÊNCIAS Utilizar a normalização da ABNT 25 23 Contextualização do caso A startup de Soluções Ambientais surgiu com o objetivo de cadastrar mapear e gerenciar indústrias que necessitam abater seu material particulado e gases da atmosfera provenientes de seus processos de produção O cadastro e relatórios gerados e enviados para seus clientes permitem além de solicitações de benefícios fiscais que o governo possa mapear zonas com maiores e menores índices de poluição produzidos por indústrias de médio e grande porte A atuação inicial da startup era regional entretanto o número de contratos cresceu exponencialmente o que demandou a necessidade do desenvolvimento um sistema computacional que gerencie todas as suas tarefas de cadastro e relatórios Inicialmente um profissional da startup deve realizar o login no sistema informando o usuário e a senha e cadastrar os dados da indústria do cliente como nome e dados do responsável nome da empresa CNPJ razão social nome fantasia telefone endereço rua número bairro cidade estado e CEP email data de abertura e dados relevantes para cadastro Mensalmente um funcionário deve atualizar as quantidades de resíduos ambientais tratados e valor estimado de custo Todos os dados devem ser salvos em arquivos e as informações sensíveis dos usuários segundo a LGPD deverão ser criptografadas mesmo que de forma simples Após o cadastro o sistema deverá gerar relatórios referentes às atividades dos clientes que podem ser individualizadas por exemplo total de insumos tratados semestralmente total de gastos mensais etc ou relatórios globais por exemplo qual região estão localizadas as indústrias que tratam um maior volume de resíduos industriais no último semestre quais são as indústrias que menos produziram qual é o aporte financeiro semestral etc 28 O PIM é uma disciplina que consta do Programa Pedagógico dos Cursos Superiores de Tecnologia e corresponde à computação de 50 horas para cada PIM totalizando 100 horas no semestre equivalendo ao controle de frequência e nota do aluno Caso o aluno obtenha o conceito final menor que a média mínima exigida para aprovação ou não envie o PIM dentro do semestre ficará em situação de reprovado na disciplina PIM e só poderá reenviar seu trabalho caso esteja matriculado em regime de dependência via Secretaria Virtual e siga as informações sobre o PIM contidas na plataforma Blackboard no semestre que estiver cursando Lembrete Atenção quanto aos prazos estipulados pela Secretaria para a realização das matrículas nas disciplinas em que tenha sido reprovado 5 DÚVIDAS SOBRE O PIM Caso o aluno tenha dúvidas sobre o desenvolvimento do PIM poderá contatar seu tutor a distância que estará à disposição pela Central de Atendimento pelo Fórum de discussão do PIM ou pela Tutoria 6 IMPORTANTE 1 O PIM poderá ser realizado individualmente ou em grupo de até 6 integrantes do mesmo curso e turma e somente o líder deve acessar o local de postagem compor o grupo no AVA relacionando os demais componentes e enviar o PIM 2 É possível confirmar o conteúdo enviado no mesmo local de postagem caso o arquivo esteja corrompido não abra ou não apresente conteúdo nenhum o aluno ou grupo será reprovado no PIM Portanto verifique com atenção o arquivo antes e depois de postálo 29 3 A pesquisa é extremamente importante para sua formação profissional e acadêmica No entanto além do embasamento teórico ao utilizar um conteúdo pesquisado é importante transcrevêlo com suas próprias palavras de modo que esse exercício resulte em um enlace teóricoprático Textos descritos na íntegra deverão ser devidamente citados e referenciados de acordo com a ABNT 4 Confirme se todas as partes obrigatórias e se todas as atividades solicitadas no manual do PIM foram desenvolvidas 5 Não serão aceitos trabalhos peexistentes que apresentem textos produzidos por outros autores O trabalho precisa ser inédito Trabalhos encontrados em sites que disponibilizam trabalhos prontos na web mesmo que de autoria do aluno ou que sejam trechos de vários sites sem a devida citação e referência serão REPROVADOS 6 Acompanhe os avisos publicados e o Calendário Acadêmico para não perder o prazo de postagem 7 PLÁGIO Um trabalho é considerado plágio quando contém trechos copiados de outros trabalhos sem citar a fonte No Brasil plágio é considerado crime pois é uma violação do direito autoral Este tema é de grande preocupação das instituições de ensino pois além de colocar a reputação dos autores em risco pode também colocar a reputação da instituição em uma situação desconfortável Em trabalhos acadêmicos é necessário sempre citar a fonte no corpo do texto logo em seguida à apresentação da ideia E no final do trabalho no espaço destinado às referências é preciso identificar as obras utilizadas seguindo as normas da ABNT 30 A UNIP utiliza um software que compara o trabalho apresentado por outros alunos com conteúdos disponibilizados na internet Caso o percentual de similaridade do trabalho esteja em nível elevado isso ocasionará a reprovação 71 Tipos de plágio Integral o plágio integral ocorre quando a obra é copiada na sua totalidade e a fonte não é apresentada Parcial o plágio parcial consiste na utilização de trechos de diversas obras para a criação de novo trabalho Conceitual o plágio conceitual acontece quando uma ideia é reescrita com outras palavras sem apresentação da autoria original MENEZES Pedro O que é plágio Disponível em httpswwwsignificadoscombrplagio Acesso em 28 jul 2022 Não se deve também incorrer na prática de má conduta acadêmica do autoplágio que consiste na apresentação total ou parcial de textos já publicados pelo mesmo autor sem as devidas referências aos trabalhos anteriores ou ainda a publicação do próprio PIM em sites sem credibilidade acadêmica Bons estudos Atenciosamente CST Análise e Desenvolvimento de Sistemas Geração de Binários Exe gcc codigofontec o c Geração de DLLs gcc shared o ddddll codigofontec Arquivos de Teste include stdioh include asserth Função de exemplo que será testada int somarint a int b return a b Função de teste para a função somar void testarSoma assertsomar2 3 5 assertsomar1 1 0 assertsomar0 0 0 Adicione mais casos de teste conforme necessário int main Chamando a função de teste testarSoma printfTestes passaram com sucesso return 0 Frameworks de Teste Unity e Ceedling include unityh void testarSoma TESTASSERTEQUALINT5 somar2 3 TESTASSERTEQUALINT0 somar1 1 TESTASSERTEQUALINT0 somar0 0 Arquivo de Configuração FILE configFile fopenconfigtxt r if configFile NULL Realize a leitura das configurações aqui fcloseconfigFile UNIVERSIDADE PAULISTA UNIP EaD Projeto Integrado Multidisciplinar Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas NOME DO ALUNO RA Desenvolvimento de um software em Linguagem C que gerencie todas as tarefas de cadastro e relatórios de uma startup de Soluções Ambientais Local cidade da instituição onde o trabalho deve ser apresentado 2023 NOME DO ALUNO RA Desenvolvimento de um software em Linguagem C que gerencie todas as tarefas de cadastro e relatórios de uma startup de Soluções Ambientais Projeto Integrado Multidisciplinar em Análise e Desenvolvimento de Projetos Projeto Integrado Multidisciplinar para obtenção do título de tecnólogo em nome do curso apresentado à Universidade Paulista UNIP EaD Orientador a Local cidade da instituição onde o trabalho deve ser apresentado 2023 RESUMO Utilizando o paradigma procedural estruturado exploramos os conceitos fundamentais de lógica de programação na implementação do algoritmo do sistema Os objetivos gerais e específicos foram delineados com base nas disciplinas de Linguagem e Técnicas de Programação e Engenharia de Software I incentivando a aplicação prática dos conhecimentos adquiridos e o desenvolvimento de habilidades em equipe A contextualização do caso da startup de Soluções Ambientais revelou a necessidade premente de um sistema para gerenciar o crescente número de contratos com destaque para o cadastro e relatórios que visam beneficiar não apenas os clientes mas também a esfera governamental na identificação de zonas de poluição industrial Além disso discutimos a importância de aspectos como segurança e privacidade na implementação incluindo a criptografia de dados conforme exigido pela Lei Geral de Proteção de Dados LGPD A abordagem das telas e interface de usuário ressaltou a relevância do design para a usabilidade do software Ao apresentar o códigofonte exemplificamos a aplicação prática dos conceitos discutidos Palavraschave Desenvolvimento Software Linguagem C Soluções Ambientais Paradigma Procedural ABSTRACT Using the structured procedural paradigm we explore the fundamental concepts of programming logic in implementing the systems algorithm The general and specific objectives were outlined based on the subjects of Language and Programming Techniques and Software Engineering I encouraging the practical application of acquired knowledge and the development of team skills The contextualization of the case of the Environmental Solutions startup revealed the pressing need for a system to manage the growing number of contracts with emphasis on registration and reports that aim to benefit not only customers but also the government sphere in identifying pollution zones industrial Furthermore we discuss the importance of aspects such as security and privacy in the implementation including data encryption as required by the General Data Protection Law LGPD The approach to screens and user interface highlighted the relevance of design to the usability of the software By presenting the source code we exemplify the practical application of the concepts discussed Keywords Development Software Language C Environmental Solutions Procedural Paradigm SUMÁRIO 1 INTRODUÇÃO 6 2 DESENVOLVIMENTO 7 21 Paradigma Procedural Estruturado em Linguagem C 7 22 Metodologias de Desenvolvimento de Software 10 23 Segurança e Privacidade na LGPD 14 24 Desenvolvimento de Telas e Interface de Usuário 17 3 CONCLUSÃO 24 REFERÊNCIAS 26 1 INTRODUÇÃO A crescente demanda por soluções ambientais tem impulsionado a startup a expandir suas operações tornando essencial o desenvolvimento de um sistema eficiente para gerenciar as complexas tarefas de cadastro e relatórios Nesse contexto o presente Projeto Integrado Multidisciplinar PIM propõe a criação de um software desktop em Linguagem C alinhado aos ensinamentos das disciplinas de Linguagem e Técnicas de Programação e Engenharia de Software I O objetivo principal desta iniciativa é dotar a startup de uma ferramenta robusta capaz de cadastrar e gerar relatórios relacionados às Soluções Ambientais oferecidas aos clientes Para atingir tal meta a equipe do PIM será desafiada a aplicar os conhecimentos adquiridos nas disciplinas mencionadas fomentando a colaboração em equipe e a integração de múltiplas disciplinas no desenvolvimento do sistema A startup que inicialmente atuava regionalmente enfrentou um aumento exponencial nos contratos tornando imperativo o desenvolvimento de um sistema computacional para gerenciar suas atividades A necessidade de cadastrar mapear e gerenciar indústrias juntamente com a geração de relatórios para solicitações de benefícios fiscais e mapeamento de índices de poluição requer um sistema eficiente e abrangente No processo de desenvolvimento um profissional realizará o login no sistema inserindo usuário e senha para então cadastrar os dados da indústria do cliente Informações como nome CNPJ endereço email e dados relevantes para cadastro serão registrados mensalmente incluindo a atualização das quantidades de resíduos ambientais tratados e valor estimado de custo A proteção da privacidade dos usuários será priorizada seguindo as diretrizes da LGPD com a criptografia de informações sensíveis Após o cadastro o sistema terá a capacidade de gerar relatórios específicos das atividades dos clientes oferecendo uma visão abrangente tanto individualizada quanto global Dentre os relatórios propostos estão informações como o total de insumos tratados semestralmente gastos mensais localização de indústrias com maior volume de resíduos entre outros O desenvolvimento do sistema será conduzido de forma a integrar os conhecimentos adquiridos nas disciplinas abordando o paradigma procedural estruturado com o auxílio da Linguagem e Técnicas de Programação e aplicando métodos e técnicas de Engenharia de Software I para facilitar o processo de desenvolvimento O sistema contemplará telas de login menu inicial cadastro de clientes e funcionários relatórios diversos e será acessível pela internet atendendo às necessidades operacionais da startup 2 DESENVOLVIMENTO 21 Paradigma Procedural Estruturado em Linguagem C O paradigma procedural estruturado em Linguagem C é uma abordagem clássica e eficiente para o desenvolvimento de algoritmos e sistemas de software Este paradigma se baseia na organização e estruturação do código de forma linear onde as instruções são executadas sequencialmente Neste contexto exploraremos a aplicação dos conceitos fundamentais de lógica de programação no desenvolvimento do algoritmo de um sistema destacando a relevância da Linguagem C nesse processo DEITEL DEITEL 2015 Antes de adentrarmos na aplicação do paradigma procedural estruturado é essencial compreender os fundamentos da lógica de programação A lógica de programação é a base que sustenta a criação de algoritmos e programas eficientes Envolve a capacidade de raciocínio lógico organização de pensamento e a habilidade de transformar problemas complexos em sequências de passos lógicos e compreensíveis PERRY 2014 No paradigma procedural a lógica de programação é aplicada de forma estruturada o que significa que o código é organizado em blocos lógicos e estruturados de maneira hierárquica Isso facilita a compreensão do código tornandoo mais legível e manutenível TANENBAUM 2012 A escolha da Linguagem C para a implementação do paradigma procedural estruturado é motivada por diversas razões A Linguagem C oferece uma sintaxe clara e concisa permitindo a expressão eficiente de algoritmos complexos Além disso sua proximidade com a linguagem de máquina tornaa uma escolha eficaz para o desenvolvimento de sistemas de baixo nível como é comum em aplicações que requerem alto desempenho DEITEL DEITEL 2015 A estrutura de controle de fluxo da Linguagem C incluindo instruções condicionais ifelse e estruturas de repetição loops facilita a implementação de algoritmos procedurais A capacidade de manipular ponteiros em C também contribui para a eficiência na manipulação de dados um aspecto crucial no desenvolvimento de sistemas No contexto do paradigma procedural estruturado o desenvolvimento do algoritmo iniciase com a decomposição do problema em módulos ou funções Cada função é responsável por realizar uma tarefa específica e a comunicação entre essas funções é realizada de maneira organizada TANENBAUM 2012 O algoritmo é concebido como uma sequência de passos lógicos onde cada passo representa uma instrução que será executada pelo computador A estruturação lógica do código em Linguagem C permite a criação de um fluxo de controle claro e compreensível simplificando a identificação de erros e facilitando a manutenção do sistema ao longo do tempo TANENBAUM 2012 O uso eficaz de variáveis é fundamental no paradigma procedural estruturado As variáveis armazenam dados temporários necessários para a execução das operações do algoritmo Na Linguagem C a declaração de variáveis é direta e seu escopo pode ser controlado para evitar vazamento de informações DEITEL DEITEL 2015 Além das variáveis a escolha adequada de estruturas de dados é crucial para otimizar o desempenho do algoritmo Arrays structs e outras estruturas disponíveis em Linguagem C permitem a organização eficiente e acessível dos dados manipulados pelo sistema A manipulação cuidadosa dessas estruturas contribui para a eficiência e eficácia do algoritmo PERRY 2014 No paradigma procedural o controle de fluxo é essencial para a execução ordenada do algoritmo As estruturas de decisão como o ifelse permitem que o programa tome decisões com base em condições específicas Isso é crucial para lidar com casos diferentes e garantir que o algoritmo se adapte dinamicamente às diversas situações que podem surgir durante a execução VINE 2007 A utilização adequada das estruturas de decisão contribui para a robustez do algoritmo tornandoo capaz de lidar com uma variedade de cenários sem comprometer sua eficiência A clareza na expressão das condições e a organização lógica dessas estruturas são aspectos importantes na aplicação do paradigma procedural estruturado As estruturas de repetição desempenham um papel fundamental no paradigma procedural estruturado permitindo a execução repetida de determinadas instruções ou blocos de código Em Linguagem C as estruturas de repetição como o loop for e o loop while são ferramentas poderosas para otimizar a execução de tarefas que exigem repetição controlada VINE 2007 A aplicação adequada das estruturas de repetição contribui para a eficiência do algoritmo evitando a duplicação desnecessária de código e facilitando a manutenção do sistema No desenvolvimento do algoritmo em paradigma procedural a escolha adequada entre estruturas de decisão e repetição é crucial para atender aos requisitos específicos do sistema KOCHAN 2014 A modularidade é uma característicachave do paradigma procedural estruturado No desenvolvimento do algoritmo em Linguagem C as funções desempenham um papel central na criação de módulos independentes e reutilizáveis Cada função é responsável por uma tarefa específica promovendo a clareza e a organização do código A passagem de parâmetros entre funções permite a comunicação eficiente de dados evitando o uso de variáveis globais que podem comprometer a legibilidade e a manutenibilidade do código A correta definição e chamada de funções são aspectos fundamentais na aplicação do paradigma procedural estruturado garantindo a coesão e a baixa acoplamento entre os módulos do sistema O tratamento de exceções e erros é uma consideração importante no desenvolvimento de algoritmos especialmente em sistemas complexos Na Linguagem C o uso de estruturas de controle de fluxo como o trycatch presente em outras linguagens não está disponível de forma nativa Portanto estratégias específicas como o uso de valores de retorno especiais ou o estabelecimento de códigos de erro são adotadas para lidar com situações excepcionais PERRY 2014 O desenvolvimento do algoritmo em paradigma procedural requer a implementação cuidadosa de mecanismos de tratamento de erros para garantir a estabilidade do sistema em diferentes cenários A identificação precoce de potenciais problemas e a comunicação clara de mensagens de erro contribuem para a robustez do algoritmo SEDGEWICK 1997 A Linguagem C conhecida por sua eficiência e desempenho permite a otimização cuidadosa do código A alocação eficiente de memória a minimização do uso de recursos e a atenção aos detalhes de implementação são aspectos cruciais na busca por um sistema que atenda aos requisitos de desempenho SEDGEWICK 1997 A escolha de algoritmos eficientes a minimização do uso de instruções redundantes e a gestão cuidadosa dos recursos do sistema são considerações fundamentais no desenvolvimento do algoritmo em paradigma procedural estruturado A otimização de desempenho contribui para a eficácia e a responsividade do sistema garantindo uma experiência do usuário mais fluida KOCHAN 2014 A exploração e aplicação dos conceitos fundamentais de lógica de programação no desenvolvimento do algoritmo do sistema utilizando o paradigma procedural estruturado em Linguagem C representam uma abordagem sólida e eficiente para a criação de software robusto e de alto desempenho A clareza na expressão lógica a organização modular o controle de fluxo e a atenção à eficiência são características intrínsecas a essa abordagem SEDGEWICK 1997 Ao compreender os fundamentos da lógica de programação e aplicálos de forma estruturada na Linguagem C os desenvolvedores têm a capacidade de criar sistemas que não apenas atendem às necessidades específicas mas também são elegantes legíveis e facilmente mantidos ao longo do tempo O paradigma procedural estruturado em Linguagem C continua a ser uma escolha relevante e poderosa na construção de soluções de software que exigem um equilíbrio entre eficiência organização e desempenho KOCHAN 2014 22 Metodologias de Desenvolvimento de Software O desenvolvimento de software para Soluções Ambientais é uma tarefa complexa e multidisciplinar que requer uma abordagem metodológica sólida para garantir eficiência qualidade e cumprimento de prazos Neste contexto a escolha adequada de metodologias de desenvolvimento de software desempenha um papel crucial SUTHERLAND 2015 O desenvolvimento de software para Soluções Ambientais envolve uma série de desafios desde a identificação precisa dos requisitos do cliente até a implementação eficiente e a manutenção contínua do sistema O uso de metodologias apropriadas ajuda a organizar e orientar o processo de desenvolvimento fornecendo estrutura e direcionamento à equipe de desenvolvimento ANDERSON 2014 Uma das metodologias amplamente adotadas no cenário de desenvolvimento de software é o SCRUM Este método ágil é conhecido por sua abordagem iterativa e incremental que se alinha bem com projetos dinâmicos e sujeitos a mudanças frequentes nos requisitos No contexto das Soluções Ambientais em que os requisitos podem evoluir à medida que novas regulamentações são estabelecidas a flexibilidade do SCRUM é uma vantagem significativa PRESSMAN 2016 O SCRUM divide o desenvolvimento em ciclos chamados sprints cada um resultando em incrementos tangíveis do produto Isso permite uma entrega contínua de funcionalidades proporcionando ao cliente a oportunidade de validar e ajustar os requisitos ao longo do processo A transparência a colaboração e a adaptação contínua são pilares do SCRUM tornandoo uma escolha sólida para projetos dinâmicos como os relacionados às Soluções Ambientais JOHNSON 2010 Outra abordagem valiosa que merece consideração é o método Kanban Focado no controle visual e no fluxo contínuo de trabalho o Kanban proporciona uma visão clara do progresso do projeto No contexto das Soluções Ambientais onde o gerenciamento eficiente de tarefas é essencial o Kanban oferece uma ferramenta poderosa para visualização e otimização do fluxo de trabalho PRESSMAN 2016 O Kanban utiliza quadros visuais para representar as etapas do processo destacando tarefas individuais em cartões Cada cartão representa uma atividade específica permitindo que a equipe acompanhe facilmente o status e identifique gargalos Para um projeto de desenvolvimento de software para Soluções Ambientais em que a colaboração e a comunicação eficazes são fundamentais o Kanban proporciona uma abordagem simples e visual para gerenciar o fluxo de trabalho ANDERSON 2014 A escolha entre SCRUM Kanban ou outras metodologias específicas para o desenvolvimento do software para Soluções Ambientais deve levar em consideração diversos fatores específicos do projeto bem como as características únicas do ambiente em que o software será utilizado JOHNSON 2010 No caso do SCRUM a flexibilidade e a adaptabilidade do método são particularmente vantajosas para lidar com possíveis mudanças nos requisitos regulatórios ou nas necessidades do cliente A capacidade de entregar incrementos funcionais em curtos períodos de tempo permite uma resposta rápida a essas mudanças garantindo que o software atenda continuamente às demandas do setor de Soluções Ambientais COCKBURN 2008 Por outro lado o Kanban destacase pela sua simplicidade e ênfase no controle visual Em um contexto em que o acompanhamento preciso do progresso e a identificação imediata de possíveis problemas são cruciais o Kanban oferece uma solução intuitiva Sua aplicação pode proporcionar uma visão clara do estado atual do projeto permitindo ajustes em tempo real para garantir a eficiência e a qualidade do software ANDERSON 2014 Além do SCRUM e do Kanban outras metodologias podem ser consideradas dependendo das necessidades específicas do projeto A metodologia em Espiral por exemplo é conhecida por seu enfoque no gerenciamento de riscos e na avaliação constante do projeto Em um contexto como o das Soluções Ambientais em que os riscos podem variar de acordo com mudanças regulatórias essa metodologia pode ser uma escolha estratégica A metodologia Lean originária do setor de manufatura também é aplicável ao desenvolvimento de software Priorizando a eliminação de desperdícios e a maximização do valor entregue ao cliente o Lean pode ser especialmente relevante em projetos que buscam otimizar recursos e fornecer soluções eficientes para questões ambientais PRESSMAN 2016 No contexto do desenvolvimento de software para Soluções Ambientais a opção por metodologias ágeis como SCRUM encontra justificativa em diversos aspectos A natureza dinâmica do setor ambiental com mudanças regulatórias frequentes e a necessidade de rápida adaptação favorece a abordagem ágil PRESSMAN 2016 O SCRUM especificamente permite a entrega iterativa e incremental de funcionalidades o que se alinha perfeitamente com a capacidade de responder rapidamente a mudanças A colaboração estreita entre a equipe de desenvolvimento e os stakeholders é facilitada por práticas ágeis garantindo uma compreensão contínua dos requisitos e das expectativas do cliente ANDERSON 2014 A transparência e a comunicação contínua proporcionadas pelo SCRUM são cruciais em um contexto em que as Soluções Ambientais demandam uma compreensão profunda das necessidades do cliente e a capacidade de traduzir essas necessidades em soluções práticas A abordagem ágil contribui para a criação de um ambiente colaborativo no qual a equipe pode ajustarse dinamicamente às mudanças maximizando o valor entregue ao cliente SUTHERLAND 2015 Apesar dos benefícios a implementação de metodologias ágeis no desenvolvimento de software para Soluções Ambientais não está isenta de desafios Um dos desafios significativos pode ser a resistência à mudança especialmente em ambientes onde práticas tradicionais de desenvolvimento são predominantes A introdução de práticas ágeis requer um processo de adaptação cultural e a compreensão de que a flexibilidade e a colaboração são fundamentais para o sucesso do projeto JOHNSON 2010 Além disso as Soluções Ambientais podem envolver aspectos regulatórios complexos que precisam ser considerados no planejamento ágil A resposta a mudanças regulatórias pode exigir adaptações rápidas no desenvolvimento do software e a metodologia ágil deve ser capaz de lidar com essas mudanças de forma eficiente SUTHERLAND 2015 O paradigma procedural estruturado em Linguagem C aplicado no desenvolvimento de software para Soluções Ambientais ganha eficácia quando aliado a metodologias de desenvolvimento apropriadas A escolha entre SCRUM Kanban ou outras metodologias específicas deve ser guiada pelas características únicas do projeto e pelas necessidades do ambiente em que o software será utilizado PRESSMAN 2016 No contexto dinâmico das Soluções Ambientais onde a adaptabilidade e a resposta rápida a mudanças são essenciais as metodologias ágeis como SCRUM emergem como escolhas naturais A capacidade de entrega iterativa a colaboração intensiva com o cliente e a flexibilidade para ajustarse dinamicamente às mudanças são características valiosas que contribuem para o sucesso do desenvolvimento de software nesse setor SUTHERLAND 2015 Entretanto é fundamental reconhecer que não existe uma abordagem única que se aplique a todos os projetos A escolha da metodologia deve ser baseada em uma análise cuidadosa das necessidades específicas do projeto considerando fatores como a complexidade dos requisitos a dinâmica do setor e a capacidade da equipe de adaptação COCKBURN 2008 Em última análise a combinação do paradigma procedural estruturado em Linguagem C com metodologias de desenvolvimento adequadas proporciona uma base sólida para o desenvolvimento de software eficiente colaborativo e adaptável atendendo às demandas complexas das Soluções Ambientais PRESSMAN 2016 23 Segurança e Privacidade na LGPD No contexto do desenvolvimento de software utilizando o paradigma procedural estruturado em Linguagem C a garantia da segurança e privacidade dos dados tornase uma preocupação central especialmente diante das crescentes regulamentações voltadas para a proteção da privacidade como a Lei Geral de Proteção de Dados LGPD SCHNEIER 1996 A LGPD inspirada no Regulamento Geral de Proteção de Dados GDPR europeu é uma legislação brasileira que visa proteger a privacidade e a segurança dos dados pessoais dos cidadãos Ela estabelece diretrizes claras para a coleta armazenamento processamento e compartilhamento de informações pessoais exigindo das organizações a implementação de medidas robustas de segurança para garantir a integridade e confidencialidade desses dados FERGUSON KOHNO 2010 No contexto do desenvolvimento de software a LGPD tem implicações significativas e as equipes de desenvolvimento devem estar atentas às diretrizes da lei desde as fases iniciais do projeto Isso inclui a escolha adequada de técnicas e ferramentas para garantir que as informações sensíveis dos clientes sejam devidamente protegidas contra acessos não autorizados A criptografia é uma das medidas mais eficazes e amplamente reconhecidas para garantir a segurança e privacidade dos dados Consiste na transformação dos dados em um formato ilegível durante a transmissão ou armazenamento sendo necessário uma chave específica para descriptografar e tornar os dados legíveis novamente Essa técnica é fundamental para proteger as informações sensíveis contra ameaças externas e garantir que apenas usuários autorizados possam acessálas STAMP EASTTOM 2015 No desenvolvimento de software em Linguagem C a implementação da criptografia pode ser realizada por meio de bibliotecas especializadas como OpenSSL A escolha e configuração adequadas dessas bibliotecas são cruciais para garantir a eficácia da criptografia e sua conformidade com os padrões de segurança exigidos pela LGPD Embora a criptografia seja uma ferramenta poderosa sua implementação efetiva pode enfrentar desafios específicos no contexto do desenvolvimento de software em Linguagem C Um dos desafios fundamentais é garantir que a criptografia não comprometa significativamente o desempenho do sistema Em aplicações que demandam alto processamento de dados é essencial encontrar um equilíbrio entre a segurança proporcionada pela criptografia e a eficiência operacional SCHNEIER 1996 Outro desafio é a gestão adequada das chaves de criptografia A perda ou comprometimento das chaves pode resultar na inacessibilidade permanente dos dados criptografados Portanto é vital estabelecer práticas seguras para o armazenamento recuperação e renovação das chaves garantindo sua confidencialidade e integridade LU 2017 Além disso a compatibilidade da criptografia com as demais funcionalidades do sistema deve ser cuidadosamente considerada Integrações com outros sistemas processos de backup e recuperação e a facilidade de manutenção do sistema são aspectos que demandam atenção especial para garantir a eficácia contínua da criptografia SCHNEIER 1996 A implementação efetiva da criptografia no desenvolvimento de software proporciona diversas vantagens em conformidade com a LGPD A criptografia garante que as informações sensíveis dos clientes permaneçam confidenciais mesmo em casos de acesso não autorizado aos sistemas Isso é fundamental para atender ao princípio da confidencialidade estabelecido pela LGPD Ao proteger os dados contra modificações não autorizadas a criptografia contribui para garantir a integridade das informações Qualquer tentativa de alteração nos dados criptografados será detectada reforçando a confiabilidade dos sistemas FERGUSON KOHNO 2010 A criptografia permite um controle rigoroso de quem pode acessar e visualizar os dados As chaves de criptografia funcionam como mecanismos de controle de acesso garantindo que apenas usuários autorizados tenham permissão para descriptografar e utilizar as informações sensíveis ANDERSON 2008 A LGPD exige que as organizações adotem medidas adequadas para proteger os dados pessoais A criptografia é uma prática reconhecida e aceita globalmente para cumprir esses requisitos demonstrando o comprometimento da organização com a segurança dos dados Além dos desafios específicos relacionados à criptografia a adoção da LGPD no desenvolvimento de software em Linguagem C apresenta desafios adicionais que merecem consideração Identificar e classificar os dados pessoais armazenados ou processados pelo sistema é um passo fundamental para garantir a conformidade com a LGPD Isso envolve mapear o fluxo de dados no sistema e classificar as informações de acordo com sua sensibilidade STAMP EASTTOM 2015 A LGPD estabelece diretrizes claras quanto à retenção e descarte de dados pessoais Desenvolver políticas e práticas adequadas para a retenção de dados é essencial garantindo que as informações não sejam armazenadas por mais tempo do que o necessário STAMP EASTTOM 2015 Realizar uma Avaliação de Impacto à Privacidade é uma exigência da LGPD para projetos que envolvem o processamento de dados pessoais Essa avaliação visa identificar e mitigar riscos à privacidade desde as fases iniciais do desenvolvimento ANDERSON 2008 Implementar mecanismos claros de obtenção e registro de consentimento dos usuários para o processamento de seus dados é essencial A LGPD destaca a importância do consentimento informado e específico para cada finalidade de processamento STAMP EASTTOM 2015 O desenvolvimento de software utilizando o paradigma procedural estruturado em Linguagem C implica uma responsabilidade significativa na garantia da segurança e privacidade dos dados especialmente diante das exigências da LGPD A criptografia quando implementada de forma adequada emerge como uma ferramenta crucial para atender aos requisitos de segurança e conformidade com a legislação ANDERSON 2008 A LGPD com seu foco na proteção dos dados pessoais e no fortalecimento dos direitos dos titulares demanda uma abordagem holística na incorporação de medidas de segurança Além da criptografia a mapeamento e classificação adequados dos dados políticas de retenção eficientes Avaliação de Impacto à Privacidade e mecanismos claros de obtenção de consentimento são elementos essenciais para assegurar a conformidade e fortalecer a confiança dos usuários FERGUSON KOHNO 2010 A conscientização sobre os desafios específicos enfrentados no desenvolvimento em Linguagem C juntamente com a compreensão das diretrizes da LGPD capacita as equipes de desenvolvimento a adotarem uma abordagem proativa na proteção dos dados sensíveis Ao integrar práticas de segurança desde as fases iniciais do desenvolvimento as organizações podem não apenas atender aos requisitos regulatórios mas também estabelecer uma base sólida para a construção de sistemas seguros e confiáveis FERGUSON KOHNO 2010 24 Desenvolvimento de Telas e Interface de Usuário O processo de desenvolvimento de telas e interface de usuário desempenha um papel crucial na experiência global do usuário em um sistema Cada elemento visual desde a tela de login até os relatórios desempenha um papel fundamental na usabilidade e na eficiência do software Neste contexto é essencial detalhar o processo de criação dessas telas considerando boas práticas de design de interface para otimizar a interação do usuário com o sistema KRUG 2014 A tela de login representa o ponto de entrada para os usuários e sua concepção deve equilibrar a segurança com a facilidade de uso A utilização de elementos como campos de entrada para nome de usuário e senha juntamente com a inclusão de mensagens claras e indicativas contribui para uma experiência de login intuitiva Adicionalmente a consideração de recursos como a opção de lembrar senha ou a recuperação de conta pode aprimorar ainda mais a experiência do usuário Ao passar para o menu inicial a clareza na disposição dos elementos é crucial A organização lógica das opções de menu a utilização de ícones representativos e a minimização de elementos desnecessários contribuem para uma navegação eficiente A interface do menu inicial deve ser intuitiva permitindo que os usuários acessem rapidamente as funcionalidades desejadas A aplicação de cores de forma consistente alinhada às diretrizes visuais do sistema reforça a identidade visual e facilita a compreensão No que diz respeito ao cadastro de clientes e funcionários a simplicidade e clareza são essenciais A estrutura das telas de cadastro deve guiar o usuário de forma intuitiva solicitando informações relevantes de maneira organizada A utilização de campos obrigatórios e a validação em tempo real ajudam a evitar erros durante o preenchimento Elementos visuais como ícones e rótulos explicativos fornecem orientação adicional garantindo uma experiência de cadastro fluída e sem complicações KRUG 2014 Quando se trata dos relatórios a apresentação dos dados desempenha um papel crucial A disposição lógica das informações gráficos intuitivos e a possibilidade de personalização são aspectos a serem considerados Os relatórios devem fornecer insights de maneira clara e concisa permitindo que os usuários compreendam rapidamente as tendências e os dados apresentados A inclusão de opções de exportação como salvar em arquivo TXT oferece flexibilidade aos usuários no uso dos dados gerados Ao longo de todo o processo de desenvolvimento de telas e interface de usuário a aderência a boas práticas de design é fundamental A consistência visual a escolha de fontes legíveis o espaçamento adequado entre elementos e a seleção de cores acessíveis contribuem para uma experiência visual agradável Além disso a consideração da acessibilidade como a utilização de rótulos descritivos e a garantia de que as telas sejam compreensíveis para usuários com deficiências visuais amplia a usabilidade do sistema KRUG 2009 A usabilidade é um conceito central no desenvolvimento de interface de usuário A facilidade com que os usuários podem interagir com o sistema completar tarefas e compreender as informações apresentadas impacta diretamente na eficiência e satisfação do usuário Portanto a criação de telas que sigam princípios de usabilidade é crucial para o sucesso do software NORMAN 2013 Ao considerar a usabilidade é imperativo compreender as necessidades e expectativas dos usuários A realização de testes de usabilidade preferencialmente com usuários reais ou representativos do públicoalvo fornece feedback valioso Observar como os usuários interagem com as telas identificar pontos de confusão ou dificuldade e ajustar a interface com base nesses insights contribui para uma experiência mais otimizada KRUG 2014 A consistência na interface também é um componente chave da usabilidade A utilização de padrões visuais e de interação ao longo de todas as telas cria uma experiência coesa Elementos como botões menus e ícones devem manter uma aparência consistente para evitar confusão e garantir que os usuários se sintam familiarizados independentemente da tela em que se encontram Além disso a resposta do sistema às ações do usuário desempenha um papel significativo na percepção da usabilidade Telas que respondem de forma rápida e eficiente às interações do usuário proporcionam uma experiência mais fluída e agradável Isso inclui a minimização de atrasos perceptíveis ao carregar informações ou realizar transições entre telas KRUG 2009 No contexto específico do desenvolvimento em Linguagem C é importante considerar a eficiência do código por trás das telas A otimização do desempenho é uma parte integral da usabilidade especialmente em sistemas que podem operar em diferentes ambientes e configurações de hardware A escolha de algoritmos eficientes a minimização do uso de recursos e a atenção à alocação de memória são aspectos cruciais para garantir a responsividade do sistema A segurança da interface de usuário também deve ser uma prioridade no processo de desenvolvimento A implementação de práticas de segurança como a validação adequada dos dados de entrada ajuda a prevenir vulnerabilidades como injeção de SQL e ataques de script entre sites Além disso a proteção contra ataques de força bruta especialmente na tela de login é essencial para garantir a integridade do sistema NORMAN 2013 O design responsivo é outro elemento que merece destaque na criação de telas de interface de usuário A variedade de dispositivos desde desktops até smartphones exige que as telas se adaptem de maneira eficiente a diferentes tamanhos de tela e orientações A utilização de técnicas como layouts flexíveis e media queries permite uma experiência consistente independentemente do dispositivo utilizado pelo usuário Ao criar telas de interface de usuário a acessibilidade não deve ser negligenciada A inclusão de recursos que tornam o sistema utilizável por pessoas com deficiências visuais auditivas ou motoras é uma consideração ética e legal A utilização de rótulos descritivos para elementos interativos a garantia de que as telas sejam navegáveis por meio de teclado e a adequação do contraste são medidas que promovem a acessibilidade Em relação à tela de login além de considerações de segurança a simplicidade é um princípio fundamental Os campos de entrada devem ser claramente identificados e a inclusão de mensagens de erro descritivas ajuda os usuários a corrigir problemas rapidamente A opção de recuperação de senha quando necessária deve ser facilmente acessível contribuindo para a experiência do usuário em caso de problemas de acesso A interface do menu inicial desempenha um papel central na navegação do usuário pelo sistema A disposição das opções de menu deve refletir a lógica das funcionalidades oferecidas facilitando a localização e seleção das ferramentas desejadas A utilização de ícones intuitivos e a designação clara de categorias contribuem para a compreensão rápida da estrutura do menu No que diz respeito ao cadastro de clientes e funcionários a simplicidade e a lógica são essenciais As telas de cadastro devem guiar o usuário de forma intuitiva solicitando informações de maneira organizada A inclusão de validações em tempo real evita erros comuns durante o preenchimento promovendo uma experiência de cadastro fluida Além disso a apresentação de mensagens de sucesso após o cadastro reforça a conclusão bemsucedida da tarefa Os relatórios enquanto parte integrante do sistema devem apresentar os dados de forma clara e organizada A disposição lógica das informações gráficos intuitivos e a possibilidade de personalização são aspectos que contribuem para uma experiência positiva A inclusão de opções de exportação como salvar em arquivo TXT oferece flexibilidade aos usuários no uso dos dados gerados pelos relatórios Ao longo de todo o processo de desenvolvimento de telas e interface de usuário a atenção aos detalhes é crucial A consistência visual a escolha de fontes legíveis e a seleção de cores acessíveis contribuem para uma experiência visual agradável A aplicação de princípios de design responsivo e a realização de testes em diferentes dispositivos garantem uma experiência consistente independentemente do meio de acesso A criação de telas de interface de usuário não é apenas uma questão estética é uma parte intrínseca da funcionalidade e usabilidade do sistema Telas bem projetadas promovem a eficiência reduzem a curva de aprendizado para os usuários e contribuem para a satisfação geral do usuário Portanto ao detalhar o processo de desenvolvimento de telas a consideração cuidadosa das necessidades do usuário boas práticas de design e a adesão a princípios de usabilidade são fundamentais para o sucesso do sistema Na condução da pesquisa em questão propomos o desenvolvimento de um código em Linguagem C que exemplifica um sistema de gerenciamento para uma startup de Soluções Ambientais Este código aborda funcionalidades essenciais como login cadastro de clientes e funcionários além da possibilidade de gerar relatórios O objetivo é proporcionar uma visão prática e aplicada dos conceitos discutidos na pesquisa demonstrando a implementação do paradigma procedural estruturado A seguir apresentamos o códigofonte que ilustra o sistema proposto Este código utiliza estruturas para representar clientes e funcionários implementa uma função de login simples e oferece a capacidade de cadastrar clientes cadastrar funcionários e acessar o menu principal Vale ressaltar que o código é um exemplo didático e sua simplicidade visa facilitar a compreensão dos conceitos abordados na pesquisa include stdioh include stdlibh include stringh Definição da estrutura para clientes typedef struct int id char nome50 Outros campos do cliente Cliente Definição da estrutura para funcionários typedef struct int id char nome50 Outros campos do funcionário Funcionario Função para realizar o login int fazerLogin char usuario20 char senha20 printfDigite o nome de usuário scanfs usuario printfDigite a senha scanfs senha Lógica para verificar o login exemplo simples if strcmpusuario admin 0 strcmpsenha senha123 0 return 1 Login bemsucedido else return 0 Login falhou Função para cadastrar um cliente void cadastrarClienteCliente clientes int numClientes Lógica para cadastrar cliente Você pode adicionar mais campos e validar os dados printfDigite o nome do cliente scanfs clientesnumClientesnome clientesnumClientesid numClientes 1 numClientes printfCliente cadastrado com sucesso Função para cadastrar um funcionário void cadastrarFuncionarioFuncionario funcionarios int numFuncionarios Lógica para cadastrar funcionário Você pode adicionar mais campos e validar os dados printfDigite o nome do funcionário scanfs funcionariosnumFuncionariosnome funcionariosnumFuncionariosid numFuncionarios 1 numFuncionarios printfFuncionário cadastrado com sucesso Função para exibir o menu inicial void exibirMenu printf Menu Inicial printf1 Cadastrar Cliente printf2 Cadastrar Funcionário printf3 Gerar Relatórios printf4 Sair int main int opcao int logado 0 Simulação de login logado fazerLogin if logado printfLogin bemsucedido Cliente clientes100 Exemplo array para armazenar clientes int numClientes 0 Funcionario funcionarios100 Exemplo array para armazenar funcionários int numFuncionarios 0 Loop do menu do exibirMenu printfEscolha uma opção scanfd opcao switch opcao case 1 cadastrarClienteclientes numClientes break case 2 cadastrarFuncionariofuncionarios numFuncionarios break case 3 Lógica para gerar relatórios printfImplemente a lógica para gerar relatórios aqui break case 4 printfSaindo do programa Até logo break default printfOpção inválida Tente novamente while opcao 4 4 é a opção de sair else printfLogin falhou Programa encerrado return 0 O código desenvolvido exemplifica um sistema de gerenciamento com uma estrutura de login permitindo o cadastro de clientes e funcionários além da opção de gerar relatórios A estrutura é composta por funções específicas para cada operação proporcionando modularidade e clareza no código A função fazerLogin simula um processo de login onde são solicitados um nome de usuário e senha A lógica de verificação é simples considerando um usuário admin com senha senha123 Em um contexto real essa lógica seria substituída por um mecanismo mais robusto As funções cadastrarCliente e cadastrarFuncionario são responsáveis por coletar informações do usuário para cadastrar clientes e funcionários respectivamente Os dados são armazenados em estruturas adequadas e um identificador único é atribuído a cada registro A função exibirMenu apresenta as opções disponíveis no menu principal enquanto a função main coordena a execução do programa Após a simulação do login o programa entra em um loop que exibe o menu e direciona o usuário de acordo com a opção escolhida O código demonstra a estrutura procedural estruturada destacando a organização e clareza na implementação das funcionalidades propostas 3 CONCLUSÃO Ao longo desta pesquisa exploramos o desenvolvimento de um software em Linguagem C voltado para o gerenciamento de tarefas de cadastro e relatórios em uma startup de Soluções Ambientais Adotamos o paradigma procedural estruturado como base para a implementação abrangendo desde a definição de estruturas de dados até a criação de funções específicas para operações como login cadastro de clientes e funcionários além da geração de relatórios A escolha da Linguagem C para esse desenvolvimento foi motivada pela eficiência e proximidade ao hardware características fundamentais em ambientes que demandam processamento otimizado como é o caso de sistemas voltados para Soluções Ambientais O paradigma procedural estruturado ofereceu uma abordagem clara e modular para o design do software permitindo a fácil compreensão e manutenção do código No âmbito do desenvolvimento dedicamos atenção especial à exploração do paradigma procedural estruturado destacando a importância da lógica de programação na construção de algoritmos eficientes A definição de estruturas para representar clientes e funcionários exemplificou a organização de dados enquanto as funções específicas demonstraram a modularidade característica desse paradigma Além disso discutimos os objetivos gerais e específicos da pesquisa abordando desde a aplicação dos conhecimentos adquiridos nas disciplinas de Linguagem e Técnicas de Programação e Engenharia de Software I até a contextualização do caso da startup de Soluções Ambientais A identificação de necessidades proposição de soluções técnicas e pesquisa de metodologias foram pontoschave para o sucesso do projeto A segurança e privacidade dos dados essenciais em qualquer sistema foram consideradas com a implementação de medidas como a criptografia de informações sensíveis garantindo a conformidade com a Lei Geral de Proteção de Dados LGPD Essa discussão reflete a responsabilidade inerente ao desenvolvimento de sistemas especialmente quando lidamos com informações sensíveis dos usuários A abordagem das telas e interface de usuário ressaltou a importância do design na usabilidade do software A criação de telas intuitivas e funcionais seguindo boas práticas de design é vital para proporcionar uma experiência agradável ao usuário A usabilidade considerada em cada etapa do desenvolvimento contribui diretamente para a eficiência e satisfação do usuário final O códigofonte apresentado oferece uma implementação prática dos conceitos discutidos servindo como um guia didático para compreender a aplicação do paradigma procedural estruturado em um contexto real Cada função e estrutura foram elaboradas visando a clareza e entendimento buscando proporcionar um exemplo concreto do que foi abordado ao longo da pesquisa Em síntese a pesquisa culminou na criação de um sistema em Linguagem C que atende aos requisitos específicos da startup de Soluções Ambientais destacando a aplicação do paradigma procedural estruturado considerações de segurança e privacidade e a importância do design de interface para a usabilidade do software O conhecimento adquirido ao longo desta jornada contribui não apenas para o entendimento teórico mas também para a capacidade prática de desenvolver soluções eficientes e funcionais em um ambiente de programação estruturada REFERÊNCIAS ANDERSON David J Kanban Mudança Evolutiva de Sucesso para Seu Negócio de Tecnologia Porto Alegre Bookman 2014 ANDERSON Ross J Security Engineering A Guide to Building Dependable Distributed Systems Sl Wiley 2008 COCKBURN Alistair Desenvolvimento Ágil de Software Uma Abordagem Prática Porto Alegre Bookman 2008 DEITEL Paul J DEITEL Harvey M C How to Program 8th Edition Pearson 2015 FERGUSON Niels SCHNEIER Bruce KOHNO Tadayoshi Cryptography Engineering Design Principles and Practical Applications Sl Wiley 2010 JOHNSON Ralph E Metodologias Ágeis para o Desenvolvimento de Software São Paulo Novatec 2010 KOCHAN Stephen G Programming in C 4th Edition AddisonWesley 2014 KRUG Steve Dont Make Me Think Revisited A Common Sense Approach to Web Usability New Riders 2014 KRUG Steve Rocket Surgery Made Easy The DoItYourself Guide to Finding and Fixing Usability Problems New Riders 2009 LU Yang Privacy Engineering A Dataflow and Ontological Approach Sl Springer 2017 NORMAN Don The Design of Everyday Things Basic Books 2013 PERRY Perry C Programming Absolute Beginners Guide 3rd Edition Que Publishing 2014 PRESSMAN Roger S Engenharia de Software Uma Abordagem Profissional 7 ed Porto Alegre AMGH 2016 SEDGEWICK Robert Algorithms in C Parts 14 Fundamentals Data Structure Sorting Searching AddisonWesley 1997 SCHNEIER Bruce Applied Cryptography Protocols Algorithms and Source Code in C Sl Wiley 1996 SEDGEWICK Robert Algorithms in C Parts 14 Fundamentals Data Structure Sorting Searching AddisonWesley 1997 SUTHERLAND Jeff Scrum A Arte de Fazer o Dobro do Trabalho na Metade do Tempo Rio de Janeiro LeYa 2015 TANENBAUM Andrew S Structured Computer Organization Pearson 2012 TIDWELL Jenifer Designing Interfaces Patterns for Effective Interaction Design OReilly Media 2005 VINE Michael C Programming for the Absolute Beginner Second Edition Course Technology PTR 2007 UNIVERSIDADE PAULISTA UNIP EaD Projeto Integrado Multidisciplinar Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas NOME DO ALUNO RA Desenvolvimento de um software em Linguagem C que gerencie todas as tarefas de cadastro e relatórios de uma startup de Soluções Ambientais Local cidade da instituição onde o trabalho deve ser apresentado 2023 NOME DO ALUNO RA Desenvolvimento de um software em Linguagem C que gerencie todas as tarefas de cadastro e relatórios de uma startup de Soluções Ambientais Projeto Integrado Multidisciplinar em Análise e Desenvolvimento de Projetos Projeto Integrado Multidisciplinar para obtenção do título de tecnólogo em nome do curso apresentado à Universidade Paulista UNIP EaD Orientador a Local cidade da instituição onde o trabalho deve ser apresentado 2023 RESUMO Utilizando o paradigma procedural estruturado exploramos os conceitos fundamentais de lógica de programação na implementação do algoritmo do sistema Os objetivos gerais e específicos foram delineados com base nas disciplinas de Linguagem e Técnicas de Programação e Engenharia de Software I incentivando a aplicação prática dos conhecimentos adquiridos e o desenvolvimento de habilidades em equipe A contextualização do caso da startup de Soluções Ambientais revelou a necessidade premente de um sistema para gerenciar o crescente número de contratos com destaque para o cadastro e relatórios que visam beneficiar não apenas os clientes mas também a esfera governamental na identificação de zonas de poluição industrial Além disso discutimos a importância de aspectos como segurança e privacidade na implementação incluindo a criptografia de dados conforme exigido pela Lei Geral de Proteção de Dados LGPD A abordagem das telas e interface de usuário ressaltou a relevância do design para a usabilidade do software Ao apresentar o códigofonte exemplificamos a aplicação prática dos conceitos discutidos Palavraschave Desenvolvimento Software Linguagem C Soluções Ambientais Paradigma Procedural ABSTRACT Using the structured procedural paradigm we explore the fundamental concepts of programming logic in implementing the systems algorithm The general and specific objectives were outlined based on the subjects of Language and Programming Techniques and Software Engineering I encouraging the practical application of acquired knowledge and the development of team skills The contextualization of the case of the Environmental Solutions startup revealed the pressing need for a system to manage the growing number of contracts with emphasis on registration and reports that aim to benefit not only customers but also the government sphere in identifying pollution zones industrial Furthermore we discuss the importance of aspects such as security and privacy in the implementation including data encryption as required by the General Data Protection Law LGPD The approach to screens and user interface highlighted the relevance of design to the usability of the software By presenting the source code we exemplify the practical application of the concepts discussed Keywords Development Software Language C Environmental Solutions Procedural Paradigm SUMÁRIO 1 INTRODUÇÃO6 2 DESENVOLVIMENTO7 21 Paradigma Procedural Estruturado em Linguagem C7 22 Metodologias de Desenvolvimento de Software10 23 Segurança e Privacidade na LGPD14 24 Desenvolvimento de Telas e Interface de Usuário17 3 CONCLUSÃO24 REFERÊNCIAS26 1 INTRODUÇÃO A crescente demanda por soluções ambientais tem impulsionado a startup a expandir suas operações tornando essencial o desenvolvimento de um sistema eficiente para gerenciar as complexas tarefas de cadastro e relatórios Nesse contexto o presente Projeto Integrado Multidisciplinar PIM propõe a criação de um software desktop em Linguagem C alinhado aos ensinamentos das disciplinas de Linguagem e Técnicas de Programação e Engenharia de Software I O objetivo principal desta iniciativa é dotar a startup de uma ferramenta robusta capaz de cadastrar e gerar relatórios relacionados às Soluções Ambientais oferecidas aos clientes Para atingir tal meta a equipe do PIM será desafiada a aplicar os conhecimentos adquiridos nas disciplinas mencionadas fomentando a colaboração em equipe e a integração de múltiplas disciplinas no desenvolvimento do sistema A startup que inicialmente atuava regionalmente enfrentou um aumento exponencial nos contratos tornando imperativo o desenvolvimento de um sistema computacional para gerenciar suas atividades A necessidade de cadastrar mapear e gerenciar indústrias juntamente com a geração de relatórios para solicitações de benefícios fiscais e mapeamento de índices de poluição requer um sistema eficiente e abrangente No processo de desenvolvimento um profissional realizará o login no sistema inserindo usuário e senha para então cadastrar os dados da indústria do cliente Informações como nome CNPJ endereço email e dados relevantes para cadastro serão registrados mensalmente incluindo a atualização das quantidades de resíduos ambientais tratados e valor estimado de custo A proteção da privacidade dos usuários será priorizada seguindo as diretrizes da LGPD com a criptografia de informações sensíveis Após o cadastro o sistema terá a capacidade de gerar relatórios específicos das atividades dos clientes oferecendo uma visão abrangente tanto individualizada quanto global Dentre os relatórios propostos estão informações como o total de insumos tratados semestralmente gastos mensais localização de indústrias com maior volume de resíduos entre outros O desenvolvimento do sistema será conduzido de forma a integrar os conhecimentos adquiridos nas disciplinas abordando o paradigma procedural estruturado com o auxílio da Linguagem e Técnicas de Programação e aplicando métodos e técnicas de Engenharia de Software I para facilitar o processo de desenvolvimento O sistema contemplará telas de login menu inicial cadastro de clientes e funcionários relatórios diversos e será acessível pela internet atendendo às necessidades operacionais da startup 2 DESENVOLVIMENTO 21 Paradigma Procedural Estruturado em Linguagem C O paradigma procedural estruturado em Linguagem C é uma abordagem clássica e eficiente para o desenvolvimento de algoritmos e sistemas de software Este paradigma se baseia na organização e estruturação do código de forma linear onde as instruções são executadas sequencialmente Neste contexto exploraremos a aplicação dos conceitos fundamentais de lógica de programação no desenvolvimento do algoritmo de um sistema destacando a relevância da Linguagem C nesse processo DEITEL DEITEL 2015 Antes de adentrarmos na aplicação do paradigma procedural estruturado é essencial compreender os fundamentos da lógica de programação A lógica de programação é a base que sustenta a criação de algoritmos e programas eficientes Envolve a capacidade de raciocínio lógico organização de pensamento e a habilidade de transformar problemas complexos em sequências de passos lógicos e compreensíveis PERRY 2014 No paradigma procedural a lógica de programação é aplicada de forma estruturada o que significa que o código é organizado em blocos lógicos e estruturados de maneira hierárquica Isso facilita a compreensão do código tornandoo mais legível e manutenível TANENBAUM 2012 A escolha da Linguagem C para a implementação do paradigma procedural estruturado é motivada por diversas razões A Linguagem C oferece uma sintaxe clara e concisa permitindo a expressão eficiente de algoritmos complexos Além disso sua proximidade com a linguagem de máquina tornaa uma escolha eficaz para o desenvolvimento de sistemas de baixo nível como é comum em aplicações que requerem alto desempenho DEITEL DEITEL 2015 A estrutura de controle de fluxo da Linguagem C incluindo instruções condicionais ifelse e estruturas de repetição loops facilita a implementação de algoritmos procedurais A capacidade de manipular ponteiros em C também contribui para a eficiência na manipulação de dados um aspecto crucial no desenvolvimento de sistemas No contexto do paradigma procedural estruturado o desenvolvimento do algoritmo iniciase com a decomposição do problema em módulos ou funções Cada função é responsável por realizar uma tarefa específica e a comunicação entre essas funções é realizada de maneira organizada TANENBAUM 2012 O algoritmo é concebido como uma sequência de passos lógicos onde cada passo representa uma instrução que será executada pelo computador A estruturação lógica do código em Linguagem C permite a criação de um fluxo de controle claro e compreensível simplificando a identificação de erros e facilitando a manutenção do sistema ao longo do tempo TANENBAUM 2012 O uso eficaz de variáveis é fundamental no paradigma procedural estruturado As variáveis armazenam dados temporários necessários para a execução das operações do algoritmo Na Linguagem C a declaração de variáveis é direta e seu escopo pode ser controlado para evitar vazamento de informações DEITEL DEITEL 2015 Além das variáveis a escolha adequada de estruturas de dados é crucial para otimizar o desempenho do algoritmo Arrays structs e outras estruturas disponíveis em Linguagem C permitem a organização eficiente e acessível dos dados manipulados pelo sistema A manipulação cuidadosa dessas estruturas contribui para a eficiência e eficácia do algoritmo PERRY 2014 No paradigma procedural o controle de fluxo é essencial para a execução ordenada do algoritmo As estruturas de decisão como o ifelse permitem que o programa tome decisões com base em condições específicas Isso é crucial para lidar com casos diferentes e garantir que o algoritmo se adapte dinamicamente às diversas situações que podem surgir durante a execução VINE 2007 A utilização adequada das estruturas de decisão contribui para a robustez do algoritmo tornandoo capaz de lidar com uma variedade de cenários sem comprometer sua eficiência A clareza na expressão das condições e a organização lógica dessas estruturas são aspectos importantes na aplicação do paradigma procedural estruturado As estruturas de repetição desempenham um papel fundamental no paradigma procedural estruturado permitindo a execução repetida de determinadas instruções ou blocos de código Em Linguagem C as estruturas de repetição como o loop for e o loop while são ferramentas poderosas para otimizar a execução de tarefas que exigem repetição controlada VINE 2007 A aplicação adequada das estruturas de repetição contribui para a eficiência do algoritmo evitando a duplicação desnecessária de código e facilitando a manutenção do sistema No desenvolvimento do algoritmo em paradigma procedural a escolha adequada entre estruturas de decisão e repetição é crucial para atender aos requisitos específicos do sistema KOCHAN 2014 A modularidade é uma característicachave do paradigma procedural estruturado No desenvolvimento do algoritmo em Linguagem C as funções desempenham um papel central na criação de módulos independentes e reutilizáveis Cada função é responsável por uma tarefa específica promovendo a clareza e a organização do código A passagem de parâmetros entre funções permite a comunicação eficiente de dados evitando o uso de variáveis globais que podem comprometer a legibilidade e a manutenibilidade do código A correta definição e chamada de funções são aspectos fundamentais na aplicação do paradigma procedural estruturado garantindo a coesão e a baixa acoplamento entre os módulos do sistema O tratamento de exceções e erros é uma consideração importante no desenvolvimento de algoritmos especialmente em sistemas complexos Na Linguagem C o uso de estruturas de controle de fluxo como o trycatch presente em outras linguagens não está disponível de forma nativa Portanto estratégias específicas como o uso de valores de retorno especiais ou o estabelecimento de códigos de erro são adotadas para lidar com situações excepcionais PERRY 2014 O desenvolvimento do algoritmo em paradigma procedural requer a implementação cuidadosa de mecanismos de tratamento de erros para garantir a estabilidade do sistema em diferentes cenários A identificação precoce de potenciais problemas e a comunicação clara de mensagens de erro contribuem para a robustez do algoritmo SEDGEWICK 1997 A Linguagem C conhecida por sua eficiência e desempenho permite a otimização cuidadosa do código A alocação eficiente de memória a minimização do uso de recursos e a atenção aos detalhes de implementação são aspectos cruciais na busca por um sistema que atenda aos requisitos de desempenho SEDGEWICK 1997 A escolha de algoritmos eficientes a minimização do uso de instruções redundantes e a gestão cuidadosa dos recursos do sistema são considerações fundamentais no desenvolvimento do algoritmo em paradigma procedural estruturado A otimização de desempenho contribui para a eficácia e a responsividade do sistema garantindo uma experiência do usuário mais fluida KOCHAN 2014 A exploração e aplicação dos conceitos fundamentais de lógica de programação no desenvolvimento do algoritmo do sistema utilizando o paradigma procedural estruturado em Linguagem C representam uma abordagem sólida e eficiente para a criação de software robusto e de alto desempenho A clareza na expressão lógica a organização modular o controle de fluxo e a atenção à eficiência são características intrínsecas a essa abordagem SEDGEWICK 1997 Ao compreender os fundamentos da lógica de programação e aplicálos de forma estruturada na Linguagem C os desenvolvedores têm a capacidade de criar sistemas que não apenas atendem às necessidades específicas mas também são elegantes legíveis e facilmente mantidos ao longo do tempo O paradigma procedural estruturado em Linguagem C continua a ser uma escolha relevante e poderosa na construção de soluções de software que exigem um equilíbrio entre eficiência organização e desempenho KOCHAN 2014 22 Metodologias de Desenvolvimento de Software O desenvolvimento de software para Soluções Ambientais é uma tarefa complexa e multidisciplinar que requer uma abordagem metodológica sólida para garantir eficiência qualidade e cumprimento de prazos Neste contexto a escolha adequada de metodologias de desenvolvimento de software desempenha um papel crucial SUTHERLAND 2015 O desenvolvimento de software para Soluções Ambientais envolve uma série de desafios desde a identificação precisa dos requisitos do cliente até a implementação eficiente e a manutenção contínua do sistema O uso de metodologias apropriadas ajuda a organizar e orientar o processo de desenvolvimento fornecendo estrutura e direcionamento à equipe de desenvolvimento ANDERSON 2014 Uma das metodologias amplamente adotadas no cenário de desenvolvimento de software é o SCRUM Este método ágil é conhecido por sua abordagem iterativa e incremental que se alinha bem com projetos dinâmicos e sujeitos a mudanças frequentes nos requisitos No contexto das Soluções Ambientais em que os requisitos podem evoluir à medida que novas regulamentações são estabelecidas a flexibilidade do SCRUM é uma vantagem significativa PRESSMAN 2016 O SCRUM divide o desenvolvimento em ciclos chamados sprints cada um resultando em incrementos tangíveis do produto Isso permite uma entrega contínua de funcionalidades proporcionando ao cliente a oportunidade de validar e ajustar os requisitos ao longo do processo A transparência a colaboração e a adaptação contínua são pilares do SCRUM tornandoo uma escolha sólida para projetos dinâmicos como os relacionados às Soluções Ambientais JOHNSON 2010 Outra abordagem valiosa que merece consideração é o método Kanban Focado no controle visual e no fluxo contínuo de trabalho o Kanban proporciona uma visão clara do progresso do projeto No contexto das Soluções Ambientais onde o gerenciamento eficiente de tarefas é essencial o Kanban oferece uma ferramenta poderosa para visualização e otimização do fluxo de trabalho PRESSMAN 2016 O Kanban utiliza quadros visuais para representar as etapas do processo destacando tarefas individuais em cartões Cada cartão representa uma atividade específica permitindo que a equipe acompanhe facilmente o status e identifique gargalos Para um projeto de desenvolvimento de software para Soluções Ambientais em que a colaboração e a comunicação eficazes são fundamentais o Kanban proporciona uma abordagem simples e visual para gerenciar o fluxo de trabalho ANDERSON 2014 A escolha entre SCRUM Kanban ou outras metodologias específicas para o desenvolvimento do software para Soluções Ambientais deve levar em consideração diversos fatores específicos do projeto bem como as características únicas do ambiente em que o software será utilizado JOHNSON 2010 No caso do SCRUM a flexibilidade e a adaptabilidade do método são particularmente vantajosas para lidar com possíveis mudanças nos requisitos regulatórios ou nas necessidades do cliente A capacidade de entregar incrementos funcionais em curtos períodos de tempo permite uma resposta rápida a essas mudanças garantindo que o software atenda continuamente às demandas do setor de Soluções Ambientais COCKBURN 2008 Por outro lado o Kanban destacase pela sua simplicidade e ênfase no controle visual Em um contexto em que o acompanhamento preciso do progresso e a identificação imediata de possíveis problemas são cruciais o Kanban oferece uma solução intuitiva Sua aplicação pode proporcionar uma visão clara do estado atual do projeto permitindo ajustes em tempo real para garantir a eficiência e a qualidade do software ANDERSON 2014 Além do SCRUM e do Kanban outras metodologias podem ser consideradas dependendo das necessidades específicas do projeto A metodologia em Espiral por exemplo é conhecida por seu enfoque no gerenciamento de riscos e na avaliação constante do projeto Em um contexto como o das Soluções Ambientais em que os riscos podem variar de acordo com mudanças regulatórias essa metodologia pode ser uma escolha estratégica A metodologia Lean originária do setor de manufatura também é aplicável ao desenvolvimento de software Priorizando a eliminação de desperdícios e a maximização do valor entregue ao cliente o Lean pode ser especialmente relevante em projetos que buscam otimizar recursos e fornecer soluções eficientes para questões ambientais PRESSMAN 2016 No contexto do desenvolvimento de software para Soluções Ambientais a opção por metodologias ágeis como SCRUM encontra justificativa em diversos aspectos A natureza dinâmica do setor ambiental com mudanças regulatórias frequentes e a necessidade de rápida adaptação favorece a abordagem ágil PRESSMAN 2016 O SCRUM especificamente permite a entrega iterativa e incremental de funcionalidades o que se alinha perfeitamente com a capacidade de responder rapidamente a mudanças A colaboração estreita entre a equipe de desenvolvimento e os stakeholders é facilitada por práticas ágeis garantindo uma compreensão contínua dos requisitos e das expectativas do cliente ANDERSON 2014 A transparência e a comunicação contínua proporcionadas pelo SCRUM são cruciais em um contexto em que as Soluções Ambientais demandam uma compreensão profunda das necessidades do cliente e a capacidade de traduzir essas necessidades em soluções práticas A abordagem ágil contribui para a criação de um ambiente colaborativo no qual a equipe pode ajustarse dinamicamente às mudanças maximizando o valor entregue ao cliente SUTHERLAND 2015 Apesar dos benefícios a implementação de metodologias ágeis no desenvolvimento de software para Soluções Ambientais não está isenta de desafios Um dos desafios significativos pode ser a resistência à mudança especialmente em ambientes onde práticas tradicionais de desenvolvimento são predominantes A introdução de práticas ágeis requer um processo de adaptação cultural e a compreensão de que a flexibilidade e a colaboração são fundamentais para o sucesso do projeto JOHNSON 2010 Além disso as Soluções Ambientais podem envolver aspectos regulatórios complexos que precisam ser considerados no planejamento ágil A resposta a mudanças regulatórias pode exigir adaptações rápidas no desenvolvimento do software e a metodologia ágil deve ser capaz de lidar com essas mudanças de forma eficiente SUTHERLAND 2015 O paradigma procedural estruturado em Linguagem C aplicado no desenvolvimento de software para Soluções Ambientais ganha eficácia quando aliado a metodologias de desenvolvimento apropriadas A escolha entre SCRUM Kanban ou outras metodologias específicas deve ser guiada pelas características únicas do projeto e pelas necessidades do ambiente em que o software será utilizado PRESSMAN 2016 No contexto dinâmico das Soluções Ambientais onde a adaptabilidade e a resposta rápida a mudanças são essenciais as metodologias ágeis como SCRUM emergem como escolhas naturais A capacidade de entrega iterativa a colaboração intensiva com o cliente e a flexibilidade para ajustarse dinamicamente às mudanças são características valiosas que contribuem para o sucesso do desenvolvimento de software nesse setor SUTHERLAND 2015 Entretanto é fundamental reconhecer que não existe uma abordagem única que se aplique a todos os projetos A escolha da metodologia deve ser baseada em uma análise cuidadosa das necessidades específicas do projeto considerando fatores como a complexidade dos requisitos a dinâmica do setor e a capacidade da equipe de adaptação COCKBURN 2008 Em última análise a combinação do paradigma procedural estruturado em Linguagem C com metodologias de desenvolvimento adequadas proporciona uma base sólida para o desenvolvimento de software eficiente colaborativo e adaptável atendendo às demandas complexas das Soluções Ambientais PRESSMAN 2016 23 Segurança e Privacidade na LGPD No contexto do desenvolvimento de software utilizando o paradigma procedural estruturado em Linguagem C a garantia da segurança e privacidade dos dados tornase uma preocupação central especialmente diante das crescentes regulamentações voltadas para a proteção da privacidade como a Lei Geral de Proteção de Dados LGPD SCHNEIER 1996 A LGPD inspirada no Regulamento Geral de Proteção de Dados GDPR europeu é uma legislação brasileira que visa proteger a privacidade e a segurança dos dados pessoais dos cidadãos Ela estabelece diretrizes claras para a coleta armazenamento processamento e compartilhamento de informações pessoais exigindo das organizações a implementação de medidas robustas de segurança para garantir a integridade e confidencialidade desses dados FERGUSON KOHNO 2010 No contexto do desenvolvimento de software a LGPD tem implicações significativas e as equipes de desenvolvimento devem estar atentas às diretrizes da lei desde as fases iniciais do projeto Isso inclui a escolha adequada de técnicas e ferramentas para garantir que as informações sensíveis dos clientes sejam devidamente protegidas contra acessos não autorizados A criptografia é uma das medidas mais eficazes e amplamente reconhecidas para garantir a segurança e privacidade dos dados Consiste na transformação dos dados em um formato ilegível durante a transmissão ou armazenamento sendo necessário uma chave específica para descriptografar e tornar os dados legíveis novamente Essa técnica é fundamental para proteger as informações sensíveis contra ameaças externas e garantir que apenas usuários autorizados possam acessálas STAMP EASTTOM 2015 No desenvolvimento de software em Linguagem C a implementação da criptografia pode ser realizada por meio de bibliotecas especializadas como OpenSSL A escolha e configuração adequadas dessas bibliotecas são cruciais para garantir a eficácia da criptografia e sua conformidade com os padrões de segurança exigidos pela LGPD Embora a criptografia seja uma ferramenta poderosa sua implementação efetiva pode enfrentar desafios específicos no contexto do desenvolvimento de software em Linguagem C Um dos desafios fundamentais é garantir que a criptografia não comprometa significativamente o desempenho do sistema Em aplicações que demandam alto processamento de dados é essencial encontrar um equilíbrio entre a segurança proporcionada pela criptografia e a eficiência operacional SCHNEIER 1996 Outro desafio é a gestão adequada das chaves de criptografia A perda ou comprometimento das chaves pode resultar na inacessibilidade permanente dos dados criptografados Portanto é vital estabelecer práticas seguras para o armazenamento recuperação e renovação das chaves garantindo sua confidencialidade e integridade LU 2017 Além disso a compatibilidade da criptografia com as demais funcionalidades do sistema deve ser cuidadosamente considerada Integrações com outros sistemas processos de backup e recuperação e a facilidade de manutenção do sistema são aspectos que demandam atenção especial para garantir a eficácia contínua da criptografia SCHNEIER 1996 A implementação efetiva da criptografia no desenvolvimento de software proporciona diversas vantagens em conformidade com a LGPD A criptografia garante que as informações sensíveis dos clientes permaneçam confidenciais mesmo em casos de acesso não autorizado aos sistemas Isso é fundamental para atender ao princípio da confidencialidade estabelecido pela LGPD Ao proteger os dados contra modificações não autorizadas a criptografia contribui para garantir a integridade das informações Qualquer tentativa de alteração nos dados criptografados será detectada reforçando a confiabilidade dos sistemas FERGUSON KOHNO 2010 A criptografia permite um controle rigoroso de quem pode acessar e visualizar os dados As chaves de criptografia funcionam como mecanismos de controle de acesso garantindo que apenas usuários autorizados tenham permissão para descriptografar e utilizar as informações sensíveis ANDERSON 2008 A LGPD exige que as organizações adotem medidas adequadas para proteger os dados pessoais A criptografia é uma prática reconhecida e aceita globalmente para cumprir esses requisitos demonstrando o comprometimento da organização com a segurança dos dados Além dos desafios específicos relacionados à criptografia a adoção da LGPD no desenvolvimento de software em Linguagem C apresenta desafios adicionais que merecem consideração Identificar e classificar os dados pessoais armazenados ou processados pelo sistema é um passo fundamental para garantir a conformidade com a LGPD Isso envolve mapear o fluxo de dados no sistema e classificar as informações de acordo com sua sensibilidade STAMP EASTTOM 2015 A LGPD estabelece diretrizes claras quanto à retenção e descarte de dados pessoais Desenvolver políticas e práticas adequadas para a retenção de dados é essencial garantindo que as informações não sejam armazenadas por mais tempo do que o necessário STAMP EASTTOM 2015 Realizar uma Avaliação de Impacto à Privacidade é uma exigência da LGPD para projetos que envolvem o processamento de dados pessoais Essa avaliação visa identificar e mitigar riscos à privacidade desde as fases iniciais do desenvolvimento ANDERSON 2008 Implementar mecanismos claros de obtenção e registro de consentimento dos usuários para o processamento de seus dados é essencial A LGPD destaca a importância do consentimento informado e específico para cada finalidade de processamento STAMP EASTTOM 2015 O desenvolvimento de software utilizando o paradigma procedural estruturado em Linguagem C implica uma responsabilidade significativa na garantia da segurança e privacidade dos dados especialmente diante das exigências da LGPD A criptografia quando implementada de forma adequada emerge como uma ferramenta crucial para atender aos requisitos de segurança e conformidade com a legislação ANDERSON 2008 A LGPD com seu foco na proteção dos dados pessoais e no fortalecimento dos direitos dos titulares demanda uma abordagem holística na incorporação de medidas de segurança Além da criptografia a mapeamento e classificação adequados dos dados políticas de retenção eficientes Avaliação de Impacto à Privacidade e mecanismos claros de obtenção de consentimento são elementos essenciais para assegurar a conformidade e fortalecer a confiança dos usuários FERGUSON KOHNO 2010 A conscientização sobre os desafios específicos enfrentados no desenvolvimento em Linguagem C juntamente com a compreensão das diretrizes da LGPD capacita as equipes de desenvolvimento a adotarem uma abordagem proativa na proteção dos dados sensíveis Ao integrar práticas de segurança desde as fases iniciais do desenvolvimento as organizações podem não apenas atender aos requisitos regulatórios mas também estabelecer uma base sólida para a construção de sistemas seguros e confiáveis FERGUSON KOHNO 2010 24 Desenvolvimento de Telas e Interface de Usuário O processo de desenvolvimento de telas e interface de usuário desempenha um papel crucial na experiência global do usuário em um sistema Cada elemento visual desde a tela de login até os relatórios desempenha um papel fundamental na usabilidade e na eficiência do software Neste contexto é essencial detalhar o processo de criação dessas telas considerando boas práticas de design de interface para otimizar a interação do usuário com o sistema KRUG 2014 A tela de login representa o ponto de entrada para os usuários e sua concepção deve equilibrar a segurança com a facilidade de uso A utilização de elementos como campos de entrada para nome de usuário e senha juntamente com a inclusão de mensagens claras e indicativas contribui para uma experiência de login intuitiva Adicionalmente a consideração de recursos como a opção de lembrar senha ou a recuperação de conta pode aprimorar ainda mais a experiência do usuário Ao passar para o menu inicial a clareza na disposição dos elementos é crucial A organização lógica das opções de menu a utilização de ícones representativos e a minimização de elementos desnecessários contribuem para uma navegação eficiente A interface do menu inicial deve ser intuitiva permitindo que os usuários acessem rapidamente as funcionalidades desejadas A aplicação de cores de forma consistente alinhada às diretrizes visuais do sistema reforça a identidade visual e facilita a compreensão No que diz respeito ao cadastro de clientes e funcionários a simplicidade e clareza são essenciais A estrutura das telas de cadastro deve guiar o usuário de forma intuitiva solicitando informações relevantes de maneira organizada A utilização de campos obrigatórios e a validação em tempo real ajudam a evitar erros durante o preenchimento Elementos visuais como ícones e rótulos explicativos fornecem orientação adicional garantindo uma experiência de cadastro fluída e sem complicações KRUG 2014 Quando se trata dos relatórios a apresentação dos dados desempenha um papel crucial A disposição lógica das informações gráficos intuitivos e a possibilidade de personalização são aspectos a serem considerados Os relatórios devem fornecer insights de maneira clara e concisa permitindo que os usuários compreendam rapidamente as tendências e os dados apresentados A inclusão de opções de exportação como salvar em arquivo TXT oferece flexibilidade aos usuários no uso dos dados gerados Ao longo de todo o processo de desenvolvimento de telas e interface de usuário a aderência a boas práticas de design é fundamental A consistência visual a escolha de fontes legíveis o espaçamento adequado entre elementos e a seleção de cores acessíveis contribuem para uma experiência visual agradável Além disso a consideração da acessibilidade como a utilização de rótulos descritivos e a garantia de que as telas sejam compreensíveis para usuários com deficiências visuais amplia a usabilidade do sistema KRUG 2009 A usabilidade é um conceito central no desenvolvimento de interface de usuário A facilidade com que os usuários podem interagir com o sistema completar tarefas e compreender as informações apresentadas impacta diretamente na eficiência e satisfação do usuário Portanto a criação de telas que sigam princípios de usabilidade é crucial para o sucesso do software NORMAN 2013 Ao considerar a usabilidade é imperativo compreender as necessidades e expectativas dos usuários A realização de testes de usabilidade preferencialmente com usuários reais ou representativos do públicoalvo fornece feedback valioso Observar como os usuários interagem com as telas identificar pontos de confusão ou dificuldade e ajustar a interface com base nesses insights contribui para uma experiência mais otimizada KRUG 2014 A consistência na interface também é um componente chave da usabilidade A utilização de padrões visuais e de interação ao longo de todas as telas cria uma experiência coesa Elementos como botões menus e ícones devem manter uma aparência consistente para evitar confusão e garantir que os usuários se sintam familiarizados independentemente da tela em que se encontram Além disso a resposta do sistema às ações do usuário desempenha um papel significativo na percepção da usabilidade Telas que respondem de forma rápida e eficiente às interações do usuário proporcionam uma experiência mais fluída e agradável Isso inclui a minimização de atrasos perceptíveis ao carregar informações ou realizar transições entre telas KRUG 2009 No contexto específico do desenvolvimento em Linguagem C é importante considerar a eficiência do código por trás das telas A otimização do desempenho é uma parte integral da usabilidade especialmente em sistemas que podem operar em diferentes ambientes e configurações de hardware A escolha de algoritmos eficientes a minimização do uso de recursos e a atenção à alocação de memória são aspectos cruciais para garantir a responsividade do sistema A segurança da interface de usuário também deve ser uma prioridade no processo de desenvolvimento A implementação de práticas de segurança como a validação adequada dos dados de entrada ajuda a prevenir vulnerabilidades como injeção de SQL e ataques de script entre sites Além disso a proteção contra ataques de força bruta especialmente na tela de login é essencial para garantir a integridade do sistema NORMAN 2013 O design responsivo é outro elemento que merece destaque na criação de telas de interface de usuário A variedade de dispositivos desde desktops até smartphones exige que as telas se adaptem de maneira eficiente a diferentes tamanhos de tela e orientações A utilização de técnicas como layouts flexíveis e media queries permite uma experiência consistente independentemente do dispositivo utilizado pelo usuário Ao criar telas de interface de usuário a acessibilidade não deve ser negligenciada A inclusão de recursos que tornam o sistema utilizável por pessoas com deficiências visuais auditivas ou motoras é uma consideração ética e legal A utilização de rótulos descritivos para elementos interativos a garantia de que as telas sejam navegáveis por meio de teclado e a adequação do contraste são medidas que promovem a acessibilidade Em relação à tela de login além de considerações de segurança a simplicidade é um princípio fundamental Os campos de entrada devem ser claramente identificados e a inclusão de mensagens de erro descritivas ajuda os usuários a corrigir problemas rapidamente A opção de recuperação de senha quando necessária deve ser facilmente acessível contribuindo para a experiência do usuário em caso de problemas de acesso A interface do menu inicial desempenha um papel central na navegação do usuário pelo sistema A disposição das opções de menu deve refletir a lógica das funcionalidades oferecidas facilitando a localização e seleção das ferramentas desejadas A utilização de ícones intuitivos e a designação clara de categorias contribuem para a compreensão rápida da estrutura do menu No que diz respeito ao cadastro de clientes e funcionários a simplicidade e a lógica são essenciais As telas de cadastro devem guiar o usuário de forma intuitiva solicitando informações de maneira organizada A inclusão de validações em tempo real evita erros comuns durante o preenchimento promovendo uma experiência de cadastro fluida Além disso a apresentação de mensagens de sucesso após o cadastro reforça a conclusão bemsucedida da tarefa Os relatórios enquanto parte integrante do sistema devem apresentar os dados de forma clara e organizada A disposição lógica das informações gráficos intuitivos e a possibilidade de personalização são aspectos que contribuem para uma experiência positiva A inclusão de opções de exportação como salvar em arquivo TXT oferece flexibilidade aos usuários no uso dos dados gerados pelos relatórios Ao longo de todo o processo de desenvolvimento de telas e interface de usuário a atenção aos detalhes é crucial A consistência visual a escolha de fontes legíveis e a seleção de cores acessíveis contribuem para uma experiência visual agradável A aplicação de princípios de design responsivo e a realização de testes em diferentes dispositivos garantem uma experiência consistente independentemente do meio de acesso A criação de telas de interface de usuário não é apenas uma questão estética é uma parte intrínseca da funcionalidade e usabilidade do sistema Telas bem projetadas promovem a eficiência reduzem a curva de aprendizado para os usuários e contribuem para a satisfação geral do usuário Portanto ao detalhar o processo de desenvolvimento de telas a consideração cuidadosa das necessidades do usuário boas práticas de design e a adesão a princípios de usabilidade são fundamentais para o sucesso do sistema Na condução da pesquisa em questão propomos o desenvolvimento de um código em Linguagem C que exemplifica um sistema de gerenciamento para uma startup de Soluções Ambientais Este código aborda funcionalidades essenciais como login cadastro de clientes e funcionários além da possibilidade de gerar relatórios O objetivo é proporcionar uma visão prática e aplicada dos conceitos discutidos na pesquisa demonstrando a implementação do paradigma procedural estruturado A seguir apresentamos o códigofonte que ilustra o sistema proposto Este código utiliza estruturas para representar clientes e funcionários implementa uma função de login simples e oferece a capacidade de cadastrar clientes cadastrar funcionários e acessar o menu principal Vale ressaltar que o código é um exemplo didático e sua simplicidade visa facilitar a compreensão dos conceitos abordados na pesquisa include stdioh include stdlibh include stringh Definição da estrutura para clientes typedef struct int id char nome50 Outros campos do cliente Cliente Definição da estrutura para funcionários typedef struct int id char nome50 Outros campos do funcionário Funcionario Função para realizar o login int fazerLogin char usuario20 char senha20 printfDigite o nome de usuário scanfs usuario printfDigite a senha scanfs senha Lógica para verificar o login exemplo simples if strcmpusuario admin 0 strcmpsenha senha123 0 return 1 Login bemsucedido else return 0 Login falhou Função para cadastrar um cliente void cadastrarClienteCliente clientes int numClientes Lógica para cadastrar cliente Você pode adicionar mais campos e validar os dados printfDigite o nome do cliente scanfs clientesnumClientesnome clientesnumClientesid numClientes 1 numClientes printfCliente cadastrado com sucesso Função para cadastrar um funcionário void cadastrarFuncionarioFuncionario funcionarios int numFuncionarios Lógica para cadastrar funcionário Você pode adicionar mais campos e validar os dados printfDigite o nome do funcionário scanfs funcionariosnumFuncionariosnome funcionariosnumFuncionariosid numFuncionarios 1 numFuncionarios printfFuncionário cadastrado com sucesso Função para exibir o menu inicial void exibirMenu printf Menu Inicial printf1 Cadastrar Cliente printf2 Cadastrar Funcionário printf3 Gerar Relatórios printf4 Sair int main int opcao int logado 0 Simulação de login logado fazerLogin if logado printfLogin bemsucedido Cliente clientes100 Exemplo array para armazenar clientes int numClientes 0 Funcionario funcionarios100 Exemplo array para armazenar funcionários int numFuncionarios 0 Loop do menu do exibirMenu printfEscolha uma opção scanfd opcao switch opcao case 1 cadastrarClienteclientes numClientes break case 2 cadastrarFuncionariofuncionarios numFuncionarios break case 3 Lógica para gerar relatórios printfImplemente a lógica para gerar relatórios aqui break case 4 printfSaindo do programa Até logo break default printfOpção inválida Tente novamente while opcao 4 4 é a opção de sair else printfLogin falhou Programa encerrado return 0 O código desenvolvido exemplifica um sistema de gerenciamento com uma estrutura de login permitindo o cadastro de clientes e funcionários além da opção de gerar relatórios A estrutura é composta por funções específicas para cada operação proporcionando modularidade e clareza no código A função fazerLogin simula um processo de login onde são solicitados um nome de usuário e senha A lógica de verificação é simples considerando um usuário admin com senha senha123 Em um contexto real essa lógica seria substituída por um mecanismo mais robusto As funções cadastrarCliente e cadastrarFuncionario são responsáveis por coletar informações do usuário para cadastrar clientes e funcionários respectivamente Os dados são armazenados em estruturas adequadas e um identificador único é atribuído a cada registro A função exibirMenu apresenta as opções disponíveis no menu principal enquanto a função main coordena a execução do programa Após a simulação do login o programa entra em um loop que exibe o menu e direciona o usuário de acordo com a opção escolhida O código demonstra a estrutura procedural estruturada destacando a organização e clareza na implementação das funcionalidades propostas 3 CONCLUSÃO Ao longo desta pesquisa exploramos o desenvolvimento de um software em Linguagem C voltado para o gerenciamento de tarefas de cadastro e relatórios em uma startup de Soluções Ambientais Adotamos o paradigma procedural estruturado como base para a implementação abrangendo desde a definição de estruturas de dados até a criação de funções específicas para operações como login cadastro de clientes e funcionários além da geração de relatórios A escolha da Linguagem C para esse desenvolvimento foi motivada pela eficiência e proximidade ao hardware características fundamentais em ambientes que demandam processamento otimizado como é o caso de sistemas voltados para Soluções Ambientais O paradigma procedural estruturado ofereceu uma abordagem clara e modular para o design do software permitindo a fácil compreensão e manutenção do código No âmbito do desenvolvimento dedicamos atenção especial à exploração do paradigma procedural estruturado destacando a importância da lógica de programação na construção de algoritmos eficientes A definição de estruturas para representar clientes e funcionários exemplificou a organização de dados enquanto as funções específicas demonstraram a modularidade característica desse paradigma Além disso discutimos os objetivos gerais e específicos da pesquisa abordando desde a aplicação dos conhecimentos adquiridos nas disciplinas de Linguagem e Técnicas de Programação e Engenharia de Software I até a contextualização do caso da startup de Soluções Ambientais A identificação de necessidades proposição de soluções técnicas e pesquisa de metodologias foram pontoschave para o sucesso do projeto A segurança e privacidade dos dados essenciais em qualquer sistema foram consideradas com a implementação de medidas como a criptografia de informações sensíveis garantindo a conformidade com a Lei Geral de Proteção de Dados LGPD Essa discussão reflete a responsabilidade inerente ao desenvolvimento de sistemas especialmente quando lidamos com informações sensíveis dos usuários A abordagem das telas e interface de usuário ressaltou a importância do design na usabilidade do software A criação de telas intuitivas e funcionais seguindo boas práticas de design é vital para proporcionar uma experiência agradável ao usuário A usabilidade considerada em cada etapa do desenvolvimento contribui diretamente para a eficiência e satisfação do usuário final O códigofonte apresentado oferece uma implementação prática dos conceitos discutidos servindo como um guia didático para compreender a aplicação do paradigma procedural estruturado em um contexto real Cada função e estrutura foram elaboradas visando a clareza e entendimento buscando proporcionar um exemplo concreto do que foi abordado ao longo da pesquisa Em síntese a pesquisa culminou na criação de um sistema em Linguagem C que atende aos requisitos específicos da startup de Soluções Ambientais destacando a aplicação do paradigma procedural estruturado considerações de segurança e privacidade e a importância do design de interface para a usabilidade do software O conhecimento adquirido ao longo desta jornada contribui não apenas para o entendimento teórico mas também para a capacidade prática de desenvolver soluções eficientes e funcionais em um ambiente de programação estruturada REFERÊNCIAS ANDERSON David J Kanban Mudança Evolutiva de Sucesso para Seu Negócio de Tecnologia Porto Alegre Bookman 2014 ANDERSON Ross J Security Engineering A Guide to Building Dependable Distributed Systems Sl Wiley 2008 COCKBURN Alistair Desenvolvimento Ágil de Software Uma Abordagem Prática Porto Alegre Bookman 2008 DEITEL Paul J DEITEL Harvey M C How to Program 8th Edition Pearson 2015 FERGUSON Niels SCHNEIER Bruce KOHNO Tadayoshi Cryptography Engineering Design Principles and Practical Applications Sl Wiley 2010 JOHNSON Ralph E Metodologias Ágeis para o Desenvolvimento de Software São Paulo Novatec 2010 KOCHAN Stephen G Programming in C 4th Edition AddisonWesley 2014 KRUG Steve Dont Make Me Think Revisited A Common Sense Approach to Web Usability New Riders 2014 KRUG Steve Rocket Surgery Made Easy The DoItYourself Guide to Finding and Fixing Usability Problems New Riders 2009 LU Yang Privacy Engineering A Dataflow and Ontological Approach Sl Springer 2017 NORMAN Don The Design of Everyday Things Basic Books 2013 PERRY Perry C Programming Absolute Beginners Guide 3rd Edition Que Publishing 2014 PRESSMAN Roger S Engenharia de Software Uma Abordagem Profissional 7 ed Porto Alegre AMGH 2016 SEDGEWICK Robert Algorithms in C Parts 14 Fundamentals Data Structure Sorting Searching AddisonWesley 1997 SCHNEIER Bruce Applied Cryptography Protocols Algorithms and Source Code in C Sl Wiley 1996 SEDGEWICK Robert Algorithms in C Parts 14 Fundamentals Data Structure Sorting Searching AddisonWesley 1997 SUTHERLAND Jeff Scrum A Arte de Fazer o Dobro do Trabalho na Metade do Tempo Rio de Janeiro LeYa 2015 TANENBAUM Andrew S Structured Computer Organization Pearson 2012 TIDWELL Jenifer Designing Interfaces Patterns for Effective Interaction Design OReilly Media 2005 VINE Michael C Programming for the Absolute Beginner Second Edition Course Technology PTR 2007
Send your question to AI and receive an answer instantly
Recommended for you
45
Manual PIM VIII: Guia Completo para Análise e Desenvolvimento de Sistemas
Linguagens de Programação
UNIP
30
Manual PIM IV Analise e Desenvolvimento de Sistemas - Guia Completo
Linguagens de Programação
UNIP
45
Manual PIM IV Analise e Desenvolvimento de Sistemas - UNIP
Linguagens de Programação
UNIP
45
PIM VI - Sistema de Venda de Jogos Eletrônicos e Acessórios Geek - Requisitos e Estrutura
Linguagens de Programação
UNIP
19
Pim Hortifrutaria
Linguagens de Programação
UNIP
11
Trabalho Pim
Linguagens de Programação
UNIP
14
PIM IV Software C para Startup de Solucoes Ambientais Gerenciamento e Cadastro
Linguagens de Programação
UNIP
38
Manual PIM VII Analise e Desenvolvimento de Sistemas - Guia Completo
Linguagens de Programação
UNIP
1
Controle de Estoque - Legumes Frutas e Vegetais
Linguagens de Programação
UNIP
40
Manual PIM V - Curso Superior Tecnologia Analise Desenvolvimento Sistemas
Linguagens de Programação
UNIP
Preview text
Manual do PIM IV Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Sumário 1 INFORMAÇÕES GERAIS SOBRE O PIM 3 2 INFORMAÇÕES ESPECÍFICAS SOBRE O PIM IV 24 3 ENVIO DO PIM 27 4 PRAZOS E VALIDAÇÃO DO RECEBIMENTO DO PIM 27 5 DÚVIDAS SOBRE O PIM 28 6 IMPORTANTE 28 7 PLÁGIO 29 5 Para isso o aluno deve seguir um roteiro para a digitação dos trabalhos onde estão sugeridos tipo e tamanho de fonte posição e formato de títulos e sequência das partes integrantes do trabalho Cabe ressaltar que conforme a NBR 147242002 o projeto gráfico é de responsabilidade do autor do trabalho Todavia as padronizações de elementos previstas pela ABNT deverão ser todas atendidas 15 Aspectos Gerais Texto Papel A4 210x297 mm branco Margens Superior e Esquerda 30 cm Inferior e Direita 20 cm Espaçamento entrelinhas e parágrafos O espaçamento entrelinhas deve ser de 15 cm Embora a padronização do espaçamento pela NBR 147242002 seja por espaçamento entrelinhas duplo adotaremos o espaçamento entrelinhas de um e meio O início do texto de cada parágrafo deve ficar a 15 cm a partir da margem esquerda Podese optar por definir o recuo especial para a primeira linha utilizando os recursos do editor de textos As citações longas notas referências e os resumos em língua vernácula e em língua estrangeira devem ser digitados em espaço simples 6 Escrita Recomendase utilizar fonte Arial ou Times New Roman tamanho 12 para o corpo do texto e tamanho 10 para citações longas com mais de 3 linhas e para notas de rodapé assim como alinhamento justificado Paginação Todas as páginas do trabalho a partir da folha de rosto devem ser contadas sequencialmente mas não numeradas A numeração é colocada a partir da primeira página da parte textual Introdução em algarismos arábicos no canto superior direito da folha Havendo apêndice e anexo as páginas devem ser numeradas de maneira contínua e a paginação deve dar seguimento à paginação do texto principal Estrutura do trabalho A estrutura do trabalho acadêmico dissertação tese monografia trabalho de conclusão de curso e similares definida na NBR147242002 com vigência a partir de 29092002 deve contemplar os elementos prétextuais textuais e póstextuais de acordo com o que se indica na tabela a seguir 7 Tabela 1 Estrutura do trabalho Estrutura Elemento Condição Prétexto Capa Lombada Folha de rosto Errata Folha de aprovação Dedicatória Agradecimentos Epígrafe Resumo Resumo em língua estrangeira Sumário Lista de ilustrações Lista de tabelas Lista de abreviaturas e siglas Lista de símbolos Obrigatório Opcional Opcional Opcional Opcional Opcional Opcional Opcional Obrigatório Obrigatório Obrigatório Opcional Opcional Opcional Opcional Texto Introdução Desenvolvimento Conclusão Obrigatório Obrigatório Obrigatório Póstexto Referências Glossário Apêndice Anexo Índice Obrigatório Opcional Opcional Opcional Opcional 16 O significado dos elementos prétextuais Capa externa São informações indispensáveis à sua identificação na seguinte ordem 8 1 NOME DO AUTOR 2 TÍTULO E SUBTÍTULO 3 LOCAL cidade da instituição onde deve ser apresentado 4 ANO DE DEPÓSITO da entrega Folha de rosto anverso Elemento opcional É a página que apresenta os elementos essenciais à identificação do trabalho Nela deve constar 5 NOME DO AUTOR responsável intelectual pelo trabalho 6 TÍTULO E SUBTÍTULO o primeiro em caixa alta ambos centralizados 7 NATUREZA contendo indicação do tipo de trabalho tese dissertação TCC etc objetivo aprovação em disciplina grau pretendido etc nome da instituição a qual o trabalho é submetido área de concentração justificada à direita 8 NOME DO ORIENTADOR justificado à direita 9 LOCAL e ANO Folha de rosto verso Elemento opcional Deve conter a ficha catalográfica conforme Código de Catalogação AngloAmericano CCAA2 Lembrete Este item deve ser adaptado de acordo com a característica e destinação do trabalho podendo ser admitida sua supressão 9 Errata Elemento opcional Tratase de uma lista com a indicação das páginas e linhas em que ocorreram erros com as correções necessárias Geralmente se apresenta em papel avulso ou encartado acrescido ao trabalho depois de impresso Folha de aprovação Elemento opcional Deve conter o nome do autor título por extenso e subtítulo se houver local e data de aprovação nome assinatura e instituição dos membros componentes da avaliação Lembrete Este item é indispensável para dissertações e teses mas de acordo com a característica e destinação do trabalho podese admitir sua supressão Dedicatória Elemento opcional em que o autor presta homenagem ou dedica seu trabalho A dedicatória deve figurar à direita na parte inferior da folha Agradecimentos Elemento opcional em que são registrados agradecimentos às pessoas eou instituições que colaboraram com o autor 10 Epígrafe Elemento opcional em que o autor inclui uma citação seguida de indicação de autoria relacionada com a matéria tratada no corpo do trabalho A citação deve figurar à direita na parte inferior da folha Resumo Elemento obrigatório que consiste na apresentação concisa dos pontos relevantes do trabalho O resumo deve dar uma visão rápida e clara do conteúdo e das conclusões do trabalho por meio de uma sequência corrente de frases concisas e objetivas não sendo uma simples enumeração de tópicos não ultrapassando 500 palavras e sendo seguido pelas palavraschave ou descritores que são palavras mais representativas do conteúdo do trabalho Abstract ou Resumen ou Résumé Elemento obrigatório que consiste em uma versão do resumo em um idioma de divulgação internacional inglês espanhol ou francês Deve ser seguido por palavras chave ou descritores na mesma língua em que estiver A tradução do resumo deve ser feita apenas em uma língua Lembrete Este item deve ser adaptado de acordo com a característica e destinação do trabalho Sumário Elemento obrigatório É a relação das principais seções do trabalho na ordem em que se sucedem no texto e com indicação da página inicial As seções do trabalho 11 devem ser numeradas em algarismos arábicos Elementos como listas de figuras tabelas abreviaturas símbolos resumos e apêndices não devem constar no sumário A apresentação tipográfica das divisões e subdivisões utilizada no sumário deve ser idêntica às utilizadas no texto Para maiopres informações consultar as normas da ABNT Listas São itens opcionais que relacionam elementos selecionados do texto na ordem da ocorrência com a respectiva indicação de páginas Pode haver uma lista única para todos os tipos de ilustrações ou uma lista para cada tipo As listas devem apresentar o número da figura sua legenda e a página onde se encontra 17 O significado dos elementos textuais Como regra geral devese considerar que o texto poderá ser lido por um leitor não especialista no assunto Assim o texto deve ser claro objetivo e de fácil leitura cuidando para que não seja sucinto em demasia pois o leitor não domina necessariamente os mesmos conhecimentos e informações do autor Devese ainda cuidar para que o referencial teórico utilizado ofereça a sustentação adequada ao tema discutido Introdução Elemento obrigatório A introdução deve conter o objetivo da pesquisa a ser desenvolvida no PIM a metodologia utilizada e uma breve apresentação da empresa selecionada para a investigação Ela deve permitir ao leitor um entendimento sucinto da proposta do trabalho em pauta 12 Desenvolvimento dos capítulos Elemento obrigatório O desenvolvimento é a parte mais extensa do trabalho também pode ser chamado de corpo do assunto O seu principal objetivo é comunicar ao leitor os resultados da pesquisa É a apresentação do tema de forma lógica e progressivamente ordenada por meio de capítulos e subcapítulos e dos pontos principais do trabalho Sugerese consultar as normas da ABNT Contém revisão de literatura descrição de métodos e materiais utilizados apresentação de resultados e a discussão dos resultados que conduziram às principais conclusões apresentadas Devese cuidar para que as citações menção a uma informação extraída de outra fonte as citações diretas transcrição dos conceitos do autor consultado as citações indiretas transcrição livre do texto do autor consultado e as citações de citações transcrição direta ou indireta de um texto cujo original não se pôde acessar estejam de acordo com as normas da ABNT Conclusão Elemento obrigatório Embora reúna um conjunto de conclusões o título deve permanecer no singular já que remete à seção não ao número de conclusões formuladas As conclusões devem ser apresentadas de maneira lógica clara e concisa fundamentadas nos resultados e na discussão abordada ao longo do desenvolvimento do trabalho capítulos O autor deve ainda retomar as propostas iniciais apresentadas na Introdução e reafirmar de maneira sintética a ideia principal e os pontos importantes do corpo do trabalho 13 18 O significado dos elementos póstextuais Referências Elemento obrigatório É o conjunto padronizado de elementos descritivos retirados de um documento que permite sua identificação individual relação de autores consultados ou citados em ordem alfabética da palavra de ordem Vide normas da ABNT Glossário Elemento opcional Consiste em uma lista em ordem alfabética de palavras ou expressões técnicas de uso restrito ou de sentido obscuro utilizadas no texto acompanhadas das respectivas definições Apêndice Elemento opcional Consiste em um texto ou documento elaborado pelo autor a fim de complementar sua argumentação sem prejuízo da unidade nuclear do trabalho Geralmente são questionários entrevistas fotos etc que auxiliam na fundamentação da pesquisa A citação ao Apêndice no decorrer dos capítulos deve ocorrer entre parênteses identificados por algarismos romanos ou letras maiúsculas consecutivas travessões e respectivos títulos Exemplo Apêndice A Título ou Apêndice I Título Apêndice B Título ou Apêndice II Título Anexo Elemento opcional Consiste em um texto ou documento não elaborado pelo autor que serve de fundamentação comprovação e ilustração São geralmente documentos 14 projetos de leis decretos etc cuja função é complementar o trabalho Quando apresentados na forma de fotocópias recomendase cuidado com sua nitidez e legibilidade Cabe lembrar que os Anexos são todos os documentos de autoria de terceiros apenas podendo ser utilizados se o conteúdo e a referência estiverem compondo o desenvolvimento do trabalho São identificados por algarismos romanos ou letras maiúsculas consecutivas travessões e respectivos títulos Exemplo Anexo A Título ou Anexo I Título Anexo B Título ou Anexo II Título Índice Elemento opcional Consiste na lista de palavras ou frases ordenadas de acordo com determinado critério que localiza e remete às informações contidas no texto Para complementação consultar a NBR603 15 ANEXO 19 Modelos para o corpo do PIM 191 Capa UNIVERSIDADE PAULISTA UNIP EaD Projeto Integrado Multidisciplinar Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas NOME DO ALUNO RA TÍTULO DO TRABALHO Subtítulo se houver Local cidade da instituição onde o trabalho deve ser apresentado ANO da entrega 16 192 Folha de rosto NOME DO ALUNO RA TÍTULO DO TRABALHO Subtítulo se houver Projeto Integrado Multidisciplinar em Análise e Desenvolvimento de Projetos Projeto Integrado Multidisciplinar para obtenção do título de tecnólogo em nome do curso apresentado à Universidade Paulista UNIP EaD Orientador a Local cidade da instituição onde o trabalho deve ser apresentado ANO da entrega 17 193 Resumo RESUMO De 150 a 500 palavras Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx Palavraschave Xxxxxxx Xxxxxxxxx Xxxxxxx Xxxxxxxxx Xxxxxxxxx 18 194 Abstract ABSTRACT Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx Keywords Xxxxxxx Xxxxxxxxx Xxxxxxx Xxxxxxxxx Xxxxxxxxx 19 195 Sumário SUMÁRIO 1 Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x 2 Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x 3 Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x 4 Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x 20 196 Introdução 1 INTRODUÇÃO Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 21 197 Desenvolvimento do PIM Neste item começa o desenvolvimento dos capítulos e subcapítulos se houver Mínimo de 15 e máximo de 20 páginas 2 NOME DO CAPÍTULO Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx 22 198 Conclusão 3 CONCLUSÃO Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 23 199 Referências REFERÊNCIAS Utilizar a normalização da ABNT 25 23 Contextualização do caso A startup de Soluções Ambientais surgiu com o objetivo de cadastrar mapear e gerenciar indústrias que necessitam abater seu material particulado e gases da atmosfera provenientes de seus processos de produção O cadastro e relatórios gerados e enviados para seus clientes permitem além de solicitações de benefícios fiscais que o governo possa mapear zonas com maiores e menores índices de poluição produzidos por indústrias de médio e grande porte A atuação inicial da startup era regional entretanto o número de contratos cresceu exponencialmente o que demandou a necessidade do desenvolvimento um sistema computacional que gerencie todas as suas tarefas de cadastro e relatórios Inicialmente um profissional da startup deve realizar o login no sistema informando o usuário e a senha e cadastrar os dados da indústria do cliente como nome e dados do responsável nome da empresa CNPJ razão social nome fantasia telefone endereço rua número bairro cidade estado e CEP email data de abertura e dados relevantes para cadastro Mensalmente um funcionário deve atualizar as quantidades de resíduos ambientais tratados e valor estimado de custo Todos os dados devem ser salvos em arquivos e as informações sensíveis dos usuários segundo a LGPD deverão ser criptografadas mesmo que de forma simples Após o cadastro o sistema deverá gerar relatórios referentes às atividades dos clientes que podem ser individualizadas por exemplo total de insumos tratados semestralmente total de gastos mensais etc ou relatórios globais por exemplo qual região estão localizadas as indústrias que tratam um maior volume de resíduos industriais no último semestre quais são as indústrias que menos produziram qual é o aporte financeiro semestral etc 28 O PIM é uma disciplina que consta do Programa Pedagógico dos Cursos Superiores de Tecnologia e corresponde à computação de 50 horas para cada PIM totalizando 100 horas no semestre equivalendo ao controle de frequência e nota do aluno Caso o aluno obtenha o conceito final menor que a média mínima exigida para aprovação ou não envie o PIM dentro do semestre ficará em situação de reprovado na disciplina PIM e só poderá reenviar seu trabalho caso esteja matriculado em regime de dependência via Secretaria Virtual e siga as informações sobre o PIM contidas na plataforma Blackboard no semestre que estiver cursando Lembrete Atenção quanto aos prazos estipulados pela Secretaria para a realização das matrículas nas disciplinas em que tenha sido reprovado 5 DÚVIDAS SOBRE O PIM Caso o aluno tenha dúvidas sobre o desenvolvimento do PIM poderá contatar seu tutor a distância que estará à disposição pela Central de Atendimento pelo Fórum de discussão do PIM ou pela Tutoria 6 IMPORTANTE 1 O PIM poderá ser realizado individualmente ou em grupo de até 6 integrantes do mesmo curso e turma e somente o líder deve acessar o local de postagem compor o grupo no AVA relacionando os demais componentes e enviar o PIM 2 É possível confirmar o conteúdo enviado no mesmo local de postagem caso o arquivo esteja corrompido não abra ou não apresente conteúdo nenhum o aluno ou grupo será reprovado no PIM Portanto verifique com atenção o arquivo antes e depois de postálo 29 3 A pesquisa é extremamente importante para sua formação profissional e acadêmica No entanto além do embasamento teórico ao utilizar um conteúdo pesquisado é importante transcrevêlo com suas próprias palavras de modo que esse exercício resulte em um enlace teóricoprático Textos descritos na íntegra deverão ser devidamente citados e referenciados de acordo com a ABNT 4 Confirme se todas as partes obrigatórias e se todas as atividades solicitadas no manual do PIM foram desenvolvidas 5 Não serão aceitos trabalhos peexistentes que apresentem textos produzidos por outros autores O trabalho precisa ser inédito Trabalhos encontrados em sites que disponibilizam trabalhos prontos na web mesmo que de autoria do aluno ou que sejam trechos de vários sites sem a devida citação e referência serão REPROVADOS 6 Acompanhe os avisos publicados e o Calendário Acadêmico para não perder o prazo de postagem 7 PLÁGIO Um trabalho é considerado plágio quando contém trechos copiados de outros trabalhos sem citar a fonte No Brasil plágio é considerado crime pois é uma violação do direito autoral Este tema é de grande preocupação das instituições de ensino pois além de colocar a reputação dos autores em risco pode também colocar a reputação da instituição em uma situação desconfortável Em trabalhos acadêmicos é necessário sempre citar a fonte no corpo do texto logo em seguida à apresentação da ideia E no final do trabalho no espaço destinado às referências é preciso identificar as obras utilizadas seguindo as normas da ABNT 30 A UNIP utiliza um software que compara o trabalho apresentado por outros alunos com conteúdos disponibilizados na internet Caso o percentual de similaridade do trabalho esteja em nível elevado isso ocasionará a reprovação 71 Tipos de plágio Integral o plágio integral ocorre quando a obra é copiada na sua totalidade e a fonte não é apresentada Parcial o plágio parcial consiste na utilização de trechos de diversas obras para a criação de novo trabalho Conceitual o plágio conceitual acontece quando uma ideia é reescrita com outras palavras sem apresentação da autoria original MENEZES Pedro O que é plágio Disponível em httpswwwsignificadoscombrplagio Acesso em 28 jul 2022 Não se deve também incorrer na prática de má conduta acadêmica do autoplágio que consiste na apresentação total ou parcial de textos já publicados pelo mesmo autor sem as devidas referências aos trabalhos anteriores ou ainda a publicação do próprio PIM em sites sem credibilidade acadêmica Bons estudos Atenciosamente CST Análise e Desenvolvimento de Sistemas Geração de Binários Exe gcc codigofontec o c Geração de DLLs gcc shared o ddddll codigofontec Arquivos de Teste include stdioh include asserth Função de exemplo que será testada int somarint a int b return a b Função de teste para a função somar void testarSoma assertsomar2 3 5 assertsomar1 1 0 assertsomar0 0 0 Adicione mais casos de teste conforme necessário int main Chamando a função de teste testarSoma printfTestes passaram com sucesso return 0 Frameworks de Teste Unity e Ceedling include unityh void testarSoma TESTASSERTEQUALINT5 somar2 3 TESTASSERTEQUALINT0 somar1 1 TESTASSERTEQUALINT0 somar0 0 Arquivo de Configuração FILE configFile fopenconfigtxt r if configFile NULL Realize a leitura das configurações aqui fcloseconfigFile UNIVERSIDADE PAULISTA UNIP EaD Projeto Integrado Multidisciplinar Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas NOME DO ALUNO RA Desenvolvimento de um software em Linguagem C que gerencie todas as tarefas de cadastro e relatórios de uma startup de Soluções Ambientais Local cidade da instituição onde o trabalho deve ser apresentado 2023 NOME DO ALUNO RA Desenvolvimento de um software em Linguagem C que gerencie todas as tarefas de cadastro e relatórios de uma startup de Soluções Ambientais Projeto Integrado Multidisciplinar em Análise e Desenvolvimento de Projetos Projeto Integrado Multidisciplinar para obtenção do título de tecnólogo em nome do curso apresentado à Universidade Paulista UNIP EaD Orientador a Local cidade da instituição onde o trabalho deve ser apresentado 2023 RESUMO Utilizando o paradigma procedural estruturado exploramos os conceitos fundamentais de lógica de programação na implementação do algoritmo do sistema Os objetivos gerais e específicos foram delineados com base nas disciplinas de Linguagem e Técnicas de Programação e Engenharia de Software I incentivando a aplicação prática dos conhecimentos adquiridos e o desenvolvimento de habilidades em equipe A contextualização do caso da startup de Soluções Ambientais revelou a necessidade premente de um sistema para gerenciar o crescente número de contratos com destaque para o cadastro e relatórios que visam beneficiar não apenas os clientes mas também a esfera governamental na identificação de zonas de poluição industrial Além disso discutimos a importância de aspectos como segurança e privacidade na implementação incluindo a criptografia de dados conforme exigido pela Lei Geral de Proteção de Dados LGPD A abordagem das telas e interface de usuário ressaltou a relevância do design para a usabilidade do software Ao apresentar o códigofonte exemplificamos a aplicação prática dos conceitos discutidos Palavraschave Desenvolvimento Software Linguagem C Soluções Ambientais Paradigma Procedural ABSTRACT Using the structured procedural paradigm we explore the fundamental concepts of programming logic in implementing the systems algorithm The general and specific objectives were outlined based on the subjects of Language and Programming Techniques and Software Engineering I encouraging the practical application of acquired knowledge and the development of team skills The contextualization of the case of the Environmental Solutions startup revealed the pressing need for a system to manage the growing number of contracts with emphasis on registration and reports that aim to benefit not only customers but also the government sphere in identifying pollution zones industrial Furthermore we discuss the importance of aspects such as security and privacy in the implementation including data encryption as required by the General Data Protection Law LGPD The approach to screens and user interface highlighted the relevance of design to the usability of the software By presenting the source code we exemplify the practical application of the concepts discussed Keywords Development Software Language C Environmental Solutions Procedural Paradigm SUMÁRIO 1 INTRODUÇÃO 6 2 DESENVOLVIMENTO 7 21 Paradigma Procedural Estruturado em Linguagem C 7 22 Metodologias de Desenvolvimento de Software 10 23 Segurança e Privacidade na LGPD 14 24 Desenvolvimento de Telas e Interface de Usuário 17 3 CONCLUSÃO 24 REFERÊNCIAS 26 1 INTRODUÇÃO A crescente demanda por soluções ambientais tem impulsionado a startup a expandir suas operações tornando essencial o desenvolvimento de um sistema eficiente para gerenciar as complexas tarefas de cadastro e relatórios Nesse contexto o presente Projeto Integrado Multidisciplinar PIM propõe a criação de um software desktop em Linguagem C alinhado aos ensinamentos das disciplinas de Linguagem e Técnicas de Programação e Engenharia de Software I O objetivo principal desta iniciativa é dotar a startup de uma ferramenta robusta capaz de cadastrar e gerar relatórios relacionados às Soluções Ambientais oferecidas aos clientes Para atingir tal meta a equipe do PIM será desafiada a aplicar os conhecimentos adquiridos nas disciplinas mencionadas fomentando a colaboração em equipe e a integração de múltiplas disciplinas no desenvolvimento do sistema A startup que inicialmente atuava regionalmente enfrentou um aumento exponencial nos contratos tornando imperativo o desenvolvimento de um sistema computacional para gerenciar suas atividades A necessidade de cadastrar mapear e gerenciar indústrias juntamente com a geração de relatórios para solicitações de benefícios fiscais e mapeamento de índices de poluição requer um sistema eficiente e abrangente No processo de desenvolvimento um profissional realizará o login no sistema inserindo usuário e senha para então cadastrar os dados da indústria do cliente Informações como nome CNPJ endereço email e dados relevantes para cadastro serão registrados mensalmente incluindo a atualização das quantidades de resíduos ambientais tratados e valor estimado de custo A proteção da privacidade dos usuários será priorizada seguindo as diretrizes da LGPD com a criptografia de informações sensíveis Após o cadastro o sistema terá a capacidade de gerar relatórios específicos das atividades dos clientes oferecendo uma visão abrangente tanto individualizada quanto global Dentre os relatórios propostos estão informações como o total de insumos tratados semestralmente gastos mensais localização de indústrias com maior volume de resíduos entre outros O desenvolvimento do sistema será conduzido de forma a integrar os conhecimentos adquiridos nas disciplinas abordando o paradigma procedural estruturado com o auxílio da Linguagem e Técnicas de Programação e aplicando métodos e técnicas de Engenharia de Software I para facilitar o processo de desenvolvimento O sistema contemplará telas de login menu inicial cadastro de clientes e funcionários relatórios diversos e será acessível pela internet atendendo às necessidades operacionais da startup 2 DESENVOLVIMENTO 21 Paradigma Procedural Estruturado em Linguagem C O paradigma procedural estruturado em Linguagem C é uma abordagem clássica e eficiente para o desenvolvimento de algoritmos e sistemas de software Este paradigma se baseia na organização e estruturação do código de forma linear onde as instruções são executadas sequencialmente Neste contexto exploraremos a aplicação dos conceitos fundamentais de lógica de programação no desenvolvimento do algoritmo de um sistema destacando a relevância da Linguagem C nesse processo DEITEL DEITEL 2015 Antes de adentrarmos na aplicação do paradigma procedural estruturado é essencial compreender os fundamentos da lógica de programação A lógica de programação é a base que sustenta a criação de algoritmos e programas eficientes Envolve a capacidade de raciocínio lógico organização de pensamento e a habilidade de transformar problemas complexos em sequências de passos lógicos e compreensíveis PERRY 2014 No paradigma procedural a lógica de programação é aplicada de forma estruturada o que significa que o código é organizado em blocos lógicos e estruturados de maneira hierárquica Isso facilita a compreensão do código tornandoo mais legível e manutenível TANENBAUM 2012 A escolha da Linguagem C para a implementação do paradigma procedural estruturado é motivada por diversas razões A Linguagem C oferece uma sintaxe clara e concisa permitindo a expressão eficiente de algoritmos complexos Além disso sua proximidade com a linguagem de máquina tornaa uma escolha eficaz para o desenvolvimento de sistemas de baixo nível como é comum em aplicações que requerem alto desempenho DEITEL DEITEL 2015 A estrutura de controle de fluxo da Linguagem C incluindo instruções condicionais ifelse e estruturas de repetição loops facilita a implementação de algoritmos procedurais A capacidade de manipular ponteiros em C também contribui para a eficiência na manipulação de dados um aspecto crucial no desenvolvimento de sistemas No contexto do paradigma procedural estruturado o desenvolvimento do algoritmo iniciase com a decomposição do problema em módulos ou funções Cada função é responsável por realizar uma tarefa específica e a comunicação entre essas funções é realizada de maneira organizada TANENBAUM 2012 O algoritmo é concebido como uma sequência de passos lógicos onde cada passo representa uma instrução que será executada pelo computador A estruturação lógica do código em Linguagem C permite a criação de um fluxo de controle claro e compreensível simplificando a identificação de erros e facilitando a manutenção do sistema ao longo do tempo TANENBAUM 2012 O uso eficaz de variáveis é fundamental no paradigma procedural estruturado As variáveis armazenam dados temporários necessários para a execução das operações do algoritmo Na Linguagem C a declaração de variáveis é direta e seu escopo pode ser controlado para evitar vazamento de informações DEITEL DEITEL 2015 Além das variáveis a escolha adequada de estruturas de dados é crucial para otimizar o desempenho do algoritmo Arrays structs e outras estruturas disponíveis em Linguagem C permitem a organização eficiente e acessível dos dados manipulados pelo sistema A manipulação cuidadosa dessas estruturas contribui para a eficiência e eficácia do algoritmo PERRY 2014 No paradigma procedural o controle de fluxo é essencial para a execução ordenada do algoritmo As estruturas de decisão como o ifelse permitem que o programa tome decisões com base em condições específicas Isso é crucial para lidar com casos diferentes e garantir que o algoritmo se adapte dinamicamente às diversas situações que podem surgir durante a execução VINE 2007 A utilização adequada das estruturas de decisão contribui para a robustez do algoritmo tornandoo capaz de lidar com uma variedade de cenários sem comprometer sua eficiência A clareza na expressão das condições e a organização lógica dessas estruturas são aspectos importantes na aplicação do paradigma procedural estruturado As estruturas de repetição desempenham um papel fundamental no paradigma procedural estruturado permitindo a execução repetida de determinadas instruções ou blocos de código Em Linguagem C as estruturas de repetição como o loop for e o loop while são ferramentas poderosas para otimizar a execução de tarefas que exigem repetição controlada VINE 2007 A aplicação adequada das estruturas de repetição contribui para a eficiência do algoritmo evitando a duplicação desnecessária de código e facilitando a manutenção do sistema No desenvolvimento do algoritmo em paradigma procedural a escolha adequada entre estruturas de decisão e repetição é crucial para atender aos requisitos específicos do sistema KOCHAN 2014 A modularidade é uma característicachave do paradigma procedural estruturado No desenvolvimento do algoritmo em Linguagem C as funções desempenham um papel central na criação de módulos independentes e reutilizáveis Cada função é responsável por uma tarefa específica promovendo a clareza e a organização do código A passagem de parâmetros entre funções permite a comunicação eficiente de dados evitando o uso de variáveis globais que podem comprometer a legibilidade e a manutenibilidade do código A correta definição e chamada de funções são aspectos fundamentais na aplicação do paradigma procedural estruturado garantindo a coesão e a baixa acoplamento entre os módulos do sistema O tratamento de exceções e erros é uma consideração importante no desenvolvimento de algoritmos especialmente em sistemas complexos Na Linguagem C o uso de estruturas de controle de fluxo como o trycatch presente em outras linguagens não está disponível de forma nativa Portanto estratégias específicas como o uso de valores de retorno especiais ou o estabelecimento de códigos de erro são adotadas para lidar com situações excepcionais PERRY 2014 O desenvolvimento do algoritmo em paradigma procedural requer a implementação cuidadosa de mecanismos de tratamento de erros para garantir a estabilidade do sistema em diferentes cenários A identificação precoce de potenciais problemas e a comunicação clara de mensagens de erro contribuem para a robustez do algoritmo SEDGEWICK 1997 A Linguagem C conhecida por sua eficiência e desempenho permite a otimização cuidadosa do código A alocação eficiente de memória a minimização do uso de recursos e a atenção aos detalhes de implementação são aspectos cruciais na busca por um sistema que atenda aos requisitos de desempenho SEDGEWICK 1997 A escolha de algoritmos eficientes a minimização do uso de instruções redundantes e a gestão cuidadosa dos recursos do sistema são considerações fundamentais no desenvolvimento do algoritmo em paradigma procedural estruturado A otimização de desempenho contribui para a eficácia e a responsividade do sistema garantindo uma experiência do usuário mais fluida KOCHAN 2014 A exploração e aplicação dos conceitos fundamentais de lógica de programação no desenvolvimento do algoritmo do sistema utilizando o paradigma procedural estruturado em Linguagem C representam uma abordagem sólida e eficiente para a criação de software robusto e de alto desempenho A clareza na expressão lógica a organização modular o controle de fluxo e a atenção à eficiência são características intrínsecas a essa abordagem SEDGEWICK 1997 Ao compreender os fundamentos da lógica de programação e aplicálos de forma estruturada na Linguagem C os desenvolvedores têm a capacidade de criar sistemas que não apenas atendem às necessidades específicas mas também são elegantes legíveis e facilmente mantidos ao longo do tempo O paradigma procedural estruturado em Linguagem C continua a ser uma escolha relevante e poderosa na construção de soluções de software que exigem um equilíbrio entre eficiência organização e desempenho KOCHAN 2014 22 Metodologias de Desenvolvimento de Software O desenvolvimento de software para Soluções Ambientais é uma tarefa complexa e multidisciplinar que requer uma abordagem metodológica sólida para garantir eficiência qualidade e cumprimento de prazos Neste contexto a escolha adequada de metodologias de desenvolvimento de software desempenha um papel crucial SUTHERLAND 2015 O desenvolvimento de software para Soluções Ambientais envolve uma série de desafios desde a identificação precisa dos requisitos do cliente até a implementação eficiente e a manutenção contínua do sistema O uso de metodologias apropriadas ajuda a organizar e orientar o processo de desenvolvimento fornecendo estrutura e direcionamento à equipe de desenvolvimento ANDERSON 2014 Uma das metodologias amplamente adotadas no cenário de desenvolvimento de software é o SCRUM Este método ágil é conhecido por sua abordagem iterativa e incremental que se alinha bem com projetos dinâmicos e sujeitos a mudanças frequentes nos requisitos No contexto das Soluções Ambientais em que os requisitos podem evoluir à medida que novas regulamentações são estabelecidas a flexibilidade do SCRUM é uma vantagem significativa PRESSMAN 2016 O SCRUM divide o desenvolvimento em ciclos chamados sprints cada um resultando em incrementos tangíveis do produto Isso permite uma entrega contínua de funcionalidades proporcionando ao cliente a oportunidade de validar e ajustar os requisitos ao longo do processo A transparência a colaboração e a adaptação contínua são pilares do SCRUM tornandoo uma escolha sólida para projetos dinâmicos como os relacionados às Soluções Ambientais JOHNSON 2010 Outra abordagem valiosa que merece consideração é o método Kanban Focado no controle visual e no fluxo contínuo de trabalho o Kanban proporciona uma visão clara do progresso do projeto No contexto das Soluções Ambientais onde o gerenciamento eficiente de tarefas é essencial o Kanban oferece uma ferramenta poderosa para visualização e otimização do fluxo de trabalho PRESSMAN 2016 O Kanban utiliza quadros visuais para representar as etapas do processo destacando tarefas individuais em cartões Cada cartão representa uma atividade específica permitindo que a equipe acompanhe facilmente o status e identifique gargalos Para um projeto de desenvolvimento de software para Soluções Ambientais em que a colaboração e a comunicação eficazes são fundamentais o Kanban proporciona uma abordagem simples e visual para gerenciar o fluxo de trabalho ANDERSON 2014 A escolha entre SCRUM Kanban ou outras metodologias específicas para o desenvolvimento do software para Soluções Ambientais deve levar em consideração diversos fatores específicos do projeto bem como as características únicas do ambiente em que o software será utilizado JOHNSON 2010 No caso do SCRUM a flexibilidade e a adaptabilidade do método são particularmente vantajosas para lidar com possíveis mudanças nos requisitos regulatórios ou nas necessidades do cliente A capacidade de entregar incrementos funcionais em curtos períodos de tempo permite uma resposta rápida a essas mudanças garantindo que o software atenda continuamente às demandas do setor de Soluções Ambientais COCKBURN 2008 Por outro lado o Kanban destacase pela sua simplicidade e ênfase no controle visual Em um contexto em que o acompanhamento preciso do progresso e a identificação imediata de possíveis problemas são cruciais o Kanban oferece uma solução intuitiva Sua aplicação pode proporcionar uma visão clara do estado atual do projeto permitindo ajustes em tempo real para garantir a eficiência e a qualidade do software ANDERSON 2014 Além do SCRUM e do Kanban outras metodologias podem ser consideradas dependendo das necessidades específicas do projeto A metodologia em Espiral por exemplo é conhecida por seu enfoque no gerenciamento de riscos e na avaliação constante do projeto Em um contexto como o das Soluções Ambientais em que os riscos podem variar de acordo com mudanças regulatórias essa metodologia pode ser uma escolha estratégica A metodologia Lean originária do setor de manufatura também é aplicável ao desenvolvimento de software Priorizando a eliminação de desperdícios e a maximização do valor entregue ao cliente o Lean pode ser especialmente relevante em projetos que buscam otimizar recursos e fornecer soluções eficientes para questões ambientais PRESSMAN 2016 No contexto do desenvolvimento de software para Soluções Ambientais a opção por metodologias ágeis como SCRUM encontra justificativa em diversos aspectos A natureza dinâmica do setor ambiental com mudanças regulatórias frequentes e a necessidade de rápida adaptação favorece a abordagem ágil PRESSMAN 2016 O SCRUM especificamente permite a entrega iterativa e incremental de funcionalidades o que se alinha perfeitamente com a capacidade de responder rapidamente a mudanças A colaboração estreita entre a equipe de desenvolvimento e os stakeholders é facilitada por práticas ágeis garantindo uma compreensão contínua dos requisitos e das expectativas do cliente ANDERSON 2014 A transparência e a comunicação contínua proporcionadas pelo SCRUM são cruciais em um contexto em que as Soluções Ambientais demandam uma compreensão profunda das necessidades do cliente e a capacidade de traduzir essas necessidades em soluções práticas A abordagem ágil contribui para a criação de um ambiente colaborativo no qual a equipe pode ajustarse dinamicamente às mudanças maximizando o valor entregue ao cliente SUTHERLAND 2015 Apesar dos benefícios a implementação de metodologias ágeis no desenvolvimento de software para Soluções Ambientais não está isenta de desafios Um dos desafios significativos pode ser a resistência à mudança especialmente em ambientes onde práticas tradicionais de desenvolvimento são predominantes A introdução de práticas ágeis requer um processo de adaptação cultural e a compreensão de que a flexibilidade e a colaboração são fundamentais para o sucesso do projeto JOHNSON 2010 Além disso as Soluções Ambientais podem envolver aspectos regulatórios complexos que precisam ser considerados no planejamento ágil A resposta a mudanças regulatórias pode exigir adaptações rápidas no desenvolvimento do software e a metodologia ágil deve ser capaz de lidar com essas mudanças de forma eficiente SUTHERLAND 2015 O paradigma procedural estruturado em Linguagem C aplicado no desenvolvimento de software para Soluções Ambientais ganha eficácia quando aliado a metodologias de desenvolvimento apropriadas A escolha entre SCRUM Kanban ou outras metodologias específicas deve ser guiada pelas características únicas do projeto e pelas necessidades do ambiente em que o software será utilizado PRESSMAN 2016 No contexto dinâmico das Soluções Ambientais onde a adaptabilidade e a resposta rápida a mudanças são essenciais as metodologias ágeis como SCRUM emergem como escolhas naturais A capacidade de entrega iterativa a colaboração intensiva com o cliente e a flexibilidade para ajustarse dinamicamente às mudanças são características valiosas que contribuem para o sucesso do desenvolvimento de software nesse setor SUTHERLAND 2015 Entretanto é fundamental reconhecer que não existe uma abordagem única que se aplique a todos os projetos A escolha da metodologia deve ser baseada em uma análise cuidadosa das necessidades específicas do projeto considerando fatores como a complexidade dos requisitos a dinâmica do setor e a capacidade da equipe de adaptação COCKBURN 2008 Em última análise a combinação do paradigma procedural estruturado em Linguagem C com metodologias de desenvolvimento adequadas proporciona uma base sólida para o desenvolvimento de software eficiente colaborativo e adaptável atendendo às demandas complexas das Soluções Ambientais PRESSMAN 2016 23 Segurança e Privacidade na LGPD No contexto do desenvolvimento de software utilizando o paradigma procedural estruturado em Linguagem C a garantia da segurança e privacidade dos dados tornase uma preocupação central especialmente diante das crescentes regulamentações voltadas para a proteção da privacidade como a Lei Geral de Proteção de Dados LGPD SCHNEIER 1996 A LGPD inspirada no Regulamento Geral de Proteção de Dados GDPR europeu é uma legislação brasileira que visa proteger a privacidade e a segurança dos dados pessoais dos cidadãos Ela estabelece diretrizes claras para a coleta armazenamento processamento e compartilhamento de informações pessoais exigindo das organizações a implementação de medidas robustas de segurança para garantir a integridade e confidencialidade desses dados FERGUSON KOHNO 2010 No contexto do desenvolvimento de software a LGPD tem implicações significativas e as equipes de desenvolvimento devem estar atentas às diretrizes da lei desde as fases iniciais do projeto Isso inclui a escolha adequada de técnicas e ferramentas para garantir que as informações sensíveis dos clientes sejam devidamente protegidas contra acessos não autorizados A criptografia é uma das medidas mais eficazes e amplamente reconhecidas para garantir a segurança e privacidade dos dados Consiste na transformação dos dados em um formato ilegível durante a transmissão ou armazenamento sendo necessário uma chave específica para descriptografar e tornar os dados legíveis novamente Essa técnica é fundamental para proteger as informações sensíveis contra ameaças externas e garantir que apenas usuários autorizados possam acessálas STAMP EASTTOM 2015 No desenvolvimento de software em Linguagem C a implementação da criptografia pode ser realizada por meio de bibliotecas especializadas como OpenSSL A escolha e configuração adequadas dessas bibliotecas são cruciais para garantir a eficácia da criptografia e sua conformidade com os padrões de segurança exigidos pela LGPD Embora a criptografia seja uma ferramenta poderosa sua implementação efetiva pode enfrentar desafios específicos no contexto do desenvolvimento de software em Linguagem C Um dos desafios fundamentais é garantir que a criptografia não comprometa significativamente o desempenho do sistema Em aplicações que demandam alto processamento de dados é essencial encontrar um equilíbrio entre a segurança proporcionada pela criptografia e a eficiência operacional SCHNEIER 1996 Outro desafio é a gestão adequada das chaves de criptografia A perda ou comprometimento das chaves pode resultar na inacessibilidade permanente dos dados criptografados Portanto é vital estabelecer práticas seguras para o armazenamento recuperação e renovação das chaves garantindo sua confidencialidade e integridade LU 2017 Além disso a compatibilidade da criptografia com as demais funcionalidades do sistema deve ser cuidadosamente considerada Integrações com outros sistemas processos de backup e recuperação e a facilidade de manutenção do sistema são aspectos que demandam atenção especial para garantir a eficácia contínua da criptografia SCHNEIER 1996 A implementação efetiva da criptografia no desenvolvimento de software proporciona diversas vantagens em conformidade com a LGPD A criptografia garante que as informações sensíveis dos clientes permaneçam confidenciais mesmo em casos de acesso não autorizado aos sistemas Isso é fundamental para atender ao princípio da confidencialidade estabelecido pela LGPD Ao proteger os dados contra modificações não autorizadas a criptografia contribui para garantir a integridade das informações Qualquer tentativa de alteração nos dados criptografados será detectada reforçando a confiabilidade dos sistemas FERGUSON KOHNO 2010 A criptografia permite um controle rigoroso de quem pode acessar e visualizar os dados As chaves de criptografia funcionam como mecanismos de controle de acesso garantindo que apenas usuários autorizados tenham permissão para descriptografar e utilizar as informações sensíveis ANDERSON 2008 A LGPD exige que as organizações adotem medidas adequadas para proteger os dados pessoais A criptografia é uma prática reconhecida e aceita globalmente para cumprir esses requisitos demonstrando o comprometimento da organização com a segurança dos dados Além dos desafios específicos relacionados à criptografia a adoção da LGPD no desenvolvimento de software em Linguagem C apresenta desafios adicionais que merecem consideração Identificar e classificar os dados pessoais armazenados ou processados pelo sistema é um passo fundamental para garantir a conformidade com a LGPD Isso envolve mapear o fluxo de dados no sistema e classificar as informações de acordo com sua sensibilidade STAMP EASTTOM 2015 A LGPD estabelece diretrizes claras quanto à retenção e descarte de dados pessoais Desenvolver políticas e práticas adequadas para a retenção de dados é essencial garantindo que as informações não sejam armazenadas por mais tempo do que o necessário STAMP EASTTOM 2015 Realizar uma Avaliação de Impacto à Privacidade é uma exigência da LGPD para projetos que envolvem o processamento de dados pessoais Essa avaliação visa identificar e mitigar riscos à privacidade desde as fases iniciais do desenvolvimento ANDERSON 2008 Implementar mecanismos claros de obtenção e registro de consentimento dos usuários para o processamento de seus dados é essencial A LGPD destaca a importância do consentimento informado e específico para cada finalidade de processamento STAMP EASTTOM 2015 O desenvolvimento de software utilizando o paradigma procedural estruturado em Linguagem C implica uma responsabilidade significativa na garantia da segurança e privacidade dos dados especialmente diante das exigências da LGPD A criptografia quando implementada de forma adequada emerge como uma ferramenta crucial para atender aos requisitos de segurança e conformidade com a legislação ANDERSON 2008 A LGPD com seu foco na proteção dos dados pessoais e no fortalecimento dos direitos dos titulares demanda uma abordagem holística na incorporação de medidas de segurança Além da criptografia a mapeamento e classificação adequados dos dados políticas de retenção eficientes Avaliação de Impacto à Privacidade e mecanismos claros de obtenção de consentimento são elementos essenciais para assegurar a conformidade e fortalecer a confiança dos usuários FERGUSON KOHNO 2010 A conscientização sobre os desafios específicos enfrentados no desenvolvimento em Linguagem C juntamente com a compreensão das diretrizes da LGPD capacita as equipes de desenvolvimento a adotarem uma abordagem proativa na proteção dos dados sensíveis Ao integrar práticas de segurança desde as fases iniciais do desenvolvimento as organizações podem não apenas atender aos requisitos regulatórios mas também estabelecer uma base sólida para a construção de sistemas seguros e confiáveis FERGUSON KOHNO 2010 24 Desenvolvimento de Telas e Interface de Usuário O processo de desenvolvimento de telas e interface de usuário desempenha um papel crucial na experiência global do usuário em um sistema Cada elemento visual desde a tela de login até os relatórios desempenha um papel fundamental na usabilidade e na eficiência do software Neste contexto é essencial detalhar o processo de criação dessas telas considerando boas práticas de design de interface para otimizar a interação do usuário com o sistema KRUG 2014 A tela de login representa o ponto de entrada para os usuários e sua concepção deve equilibrar a segurança com a facilidade de uso A utilização de elementos como campos de entrada para nome de usuário e senha juntamente com a inclusão de mensagens claras e indicativas contribui para uma experiência de login intuitiva Adicionalmente a consideração de recursos como a opção de lembrar senha ou a recuperação de conta pode aprimorar ainda mais a experiência do usuário Ao passar para o menu inicial a clareza na disposição dos elementos é crucial A organização lógica das opções de menu a utilização de ícones representativos e a minimização de elementos desnecessários contribuem para uma navegação eficiente A interface do menu inicial deve ser intuitiva permitindo que os usuários acessem rapidamente as funcionalidades desejadas A aplicação de cores de forma consistente alinhada às diretrizes visuais do sistema reforça a identidade visual e facilita a compreensão No que diz respeito ao cadastro de clientes e funcionários a simplicidade e clareza são essenciais A estrutura das telas de cadastro deve guiar o usuário de forma intuitiva solicitando informações relevantes de maneira organizada A utilização de campos obrigatórios e a validação em tempo real ajudam a evitar erros durante o preenchimento Elementos visuais como ícones e rótulos explicativos fornecem orientação adicional garantindo uma experiência de cadastro fluída e sem complicações KRUG 2014 Quando se trata dos relatórios a apresentação dos dados desempenha um papel crucial A disposição lógica das informações gráficos intuitivos e a possibilidade de personalização são aspectos a serem considerados Os relatórios devem fornecer insights de maneira clara e concisa permitindo que os usuários compreendam rapidamente as tendências e os dados apresentados A inclusão de opções de exportação como salvar em arquivo TXT oferece flexibilidade aos usuários no uso dos dados gerados Ao longo de todo o processo de desenvolvimento de telas e interface de usuário a aderência a boas práticas de design é fundamental A consistência visual a escolha de fontes legíveis o espaçamento adequado entre elementos e a seleção de cores acessíveis contribuem para uma experiência visual agradável Além disso a consideração da acessibilidade como a utilização de rótulos descritivos e a garantia de que as telas sejam compreensíveis para usuários com deficiências visuais amplia a usabilidade do sistema KRUG 2009 A usabilidade é um conceito central no desenvolvimento de interface de usuário A facilidade com que os usuários podem interagir com o sistema completar tarefas e compreender as informações apresentadas impacta diretamente na eficiência e satisfação do usuário Portanto a criação de telas que sigam princípios de usabilidade é crucial para o sucesso do software NORMAN 2013 Ao considerar a usabilidade é imperativo compreender as necessidades e expectativas dos usuários A realização de testes de usabilidade preferencialmente com usuários reais ou representativos do públicoalvo fornece feedback valioso Observar como os usuários interagem com as telas identificar pontos de confusão ou dificuldade e ajustar a interface com base nesses insights contribui para uma experiência mais otimizada KRUG 2014 A consistência na interface também é um componente chave da usabilidade A utilização de padrões visuais e de interação ao longo de todas as telas cria uma experiência coesa Elementos como botões menus e ícones devem manter uma aparência consistente para evitar confusão e garantir que os usuários se sintam familiarizados independentemente da tela em que se encontram Além disso a resposta do sistema às ações do usuário desempenha um papel significativo na percepção da usabilidade Telas que respondem de forma rápida e eficiente às interações do usuário proporcionam uma experiência mais fluída e agradável Isso inclui a minimização de atrasos perceptíveis ao carregar informações ou realizar transições entre telas KRUG 2009 No contexto específico do desenvolvimento em Linguagem C é importante considerar a eficiência do código por trás das telas A otimização do desempenho é uma parte integral da usabilidade especialmente em sistemas que podem operar em diferentes ambientes e configurações de hardware A escolha de algoritmos eficientes a minimização do uso de recursos e a atenção à alocação de memória são aspectos cruciais para garantir a responsividade do sistema A segurança da interface de usuário também deve ser uma prioridade no processo de desenvolvimento A implementação de práticas de segurança como a validação adequada dos dados de entrada ajuda a prevenir vulnerabilidades como injeção de SQL e ataques de script entre sites Além disso a proteção contra ataques de força bruta especialmente na tela de login é essencial para garantir a integridade do sistema NORMAN 2013 O design responsivo é outro elemento que merece destaque na criação de telas de interface de usuário A variedade de dispositivos desde desktops até smartphones exige que as telas se adaptem de maneira eficiente a diferentes tamanhos de tela e orientações A utilização de técnicas como layouts flexíveis e media queries permite uma experiência consistente independentemente do dispositivo utilizado pelo usuário Ao criar telas de interface de usuário a acessibilidade não deve ser negligenciada A inclusão de recursos que tornam o sistema utilizável por pessoas com deficiências visuais auditivas ou motoras é uma consideração ética e legal A utilização de rótulos descritivos para elementos interativos a garantia de que as telas sejam navegáveis por meio de teclado e a adequação do contraste são medidas que promovem a acessibilidade Em relação à tela de login além de considerações de segurança a simplicidade é um princípio fundamental Os campos de entrada devem ser claramente identificados e a inclusão de mensagens de erro descritivas ajuda os usuários a corrigir problemas rapidamente A opção de recuperação de senha quando necessária deve ser facilmente acessível contribuindo para a experiência do usuário em caso de problemas de acesso A interface do menu inicial desempenha um papel central na navegação do usuário pelo sistema A disposição das opções de menu deve refletir a lógica das funcionalidades oferecidas facilitando a localização e seleção das ferramentas desejadas A utilização de ícones intuitivos e a designação clara de categorias contribuem para a compreensão rápida da estrutura do menu No que diz respeito ao cadastro de clientes e funcionários a simplicidade e a lógica são essenciais As telas de cadastro devem guiar o usuário de forma intuitiva solicitando informações de maneira organizada A inclusão de validações em tempo real evita erros comuns durante o preenchimento promovendo uma experiência de cadastro fluida Além disso a apresentação de mensagens de sucesso após o cadastro reforça a conclusão bemsucedida da tarefa Os relatórios enquanto parte integrante do sistema devem apresentar os dados de forma clara e organizada A disposição lógica das informações gráficos intuitivos e a possibilidade de personalização são aspectos que contribuem para uma experiência positiva A inclusão de opções de exportação como salvar em arquivo TXT oferece flexibilidade aos usuários no uso dos dados gerados pelos relatórios Ao longo de todo o processo de desenvolvimento de telas e interface de usuário a atenção aos detalhes é crucial A consistência visual a escolha de fontes legíveis e a seleção de cores acessíveis contribuem para uma experiência visual agradável A aplicação de princípios de design responsivo e a realização de testes em diferentes dispositivos garantem uma experiência consistente independentemente do meio de acesso A criação de telas de interface de usuário não é apenas uma questão estética é uma parte intrínseca da funcionalidade e usabilidade do sistema Telas bem projetadas promovem a eficiência reduzem a curva de aprendizado para os usuários e contribuem para a satisfação geral do usuário Portanto ao detalhar o processo de desenvolvimento de telas a consideração cuidadosa das necessidades do usuário boas práticas de design e a adesão a princípios de usabilidade são fundamentais para o sucesso do sistema Na condução da pesquisa em questão propomos o desenvolvimento de um código em Linguagem C que exemplifica um sistema de gerenciamento para uma startup de Soluções Ambientais Este código aborda funcionalidades essenciais como login cadastro de clientes e funcionários além da possibilidade de gerar relatórios O objetivo é proporcionar uma visão prática e aplicada dos conceitos discutidos na pesquisa demonstrando a implementação do paradigma procedural estruturado A seguir apresentamos o códigofonte que ilustra o sistema proposto Este código utiliza estruturas para representar clientes e funcionários implementa uma função de login simples e oferece a capacidade de cadastrar clientes cadastrar funcionários e acessar o menu principal Vale ressaltar que o código é um exemplo didático e sua simplicidade visa facilitar a compreensão dos conceitos abordados na pesquisa include stdioh include stdlibh include stringh Definição da estrutura para clientes typedef struct int id char nome50 Outros campos do cliente Cliente Definição da estrutura para funcionários typedef struct int id char nome50 Outros campos do funcionário Funcionario Função para realizar o login int fazerLogin char usuario20 char senha20 printfDigite o nome de usuário scanfs usuario printfDigite a senha scanfs senha Lógica para verificar o login exemplo simples if strcmpusuario admin 0 strcmpsenha senha123 0 return 1 Login bemsucedido else return 0 Login falhou Função para cadastrar um cliente void cadastrarClienteCliente clientes int numClientes Lógica para cadastrar cliente Você pode adicionar mais campos e validar os dados printfDigite o nome do cliente scanfs clientesnumClientesnome clientesnumClientesid numClientes 1 numClientes printfCliente cadastrado com sucesso Função para cadastrar um funcionário void cadastrarFuncionarioFuncionario funcionarios int numFuncionarios Lógica para cadastrar funcionário Você pode adicionar mais campos e validar os dados printfDigite o nome do funcionário scanfs funcionariosnumFuncionariosnome funcionariosnumFuncionariosid numFuncionarios 1 numFuncionarios printfFuncionário cadastrado com sucesso Função para exibir o menu inicial void exibirMenu printf Menu Inicial printf1 Cadastrar Cliente printf2 Cadastrar Funcionário printf3 Gerar Relatórios printf4 Sair int main int opcao int logado 0 Simulação de login logado fazerLogin if logado printfLogin bemsucedido Cliente clientes100 Exemplo array para armazenar clientes int numClientes 0 Funcionario funcionarios100 Exemplo array para armazenar funcionários int numFuncionarios 0 Loop do menu do exibirMenu printfEscolha uma opção scanfd opcao switch opcao case 1 cadastrarClienteclientes numClientes break case 2 cadastrarFuncionariofuncionarios numFuncionarios break case 3 Lógica para gerar relatórios printfImplemente a lógica para gerar relatórios aqui break case 4 printfSaindo do programa Até logo break default printfOpção inválida Tente novamente while opcao 4 4 é a opção de sair else printfLogin falhou Programa encerrado return 0 O código desenvolvido exemplifica um sistema de gerenciamento com uma estrutura de login permitindo o cadastro de clientes e funcionários além da opção de gerar relatórios A estrutura é composta por funções específicas para cada operação proporcionando modularidade e clareza no código A função fazerLogin simula um processo de login onde são solicitados um nome de usuário e senha A lógica de verificação é simples considerando um usuário admin com senha senha123 Em um contexto real essa lógica seria substituída por um mecanismo mais robusto As funções cadastrarCliente e cadastrarFuncionario são responsáveis por coletar informações do usuário para cadastrar clientes e funcionários respectivamente Os dados são armazenados em estruturas adequadas e um identificador único é atribuído a cada registro A função exibirMenu apresenta as opções disponíveis no menu principal enquanto a função main coordena a execução do programa Após a simulação do login o programa entra em um loop que exibe o menu e direciona o usuário de acordo com a opção escolhida O código demonstra a estrutura procedural estruturada destacando a organização e clareza na implementação das funcionalidades propostas 3 CONCLUSÃO Ao longo desta pesquisa exploramos o desenvolvimento de um software em Linguagem C voltado para o gerenciamento de tarefas de cadastro e relatórios em uma startup de Soluções Ambientais Adotamos o paradigma procedural estruturado como base para a implementação abrangendo desde a definição de estruturas de dados até a criação de funções específicas para operações como login cadastro de clientes e funcionários além da geração de relatórios A escolha da Linguagem C para esse desenvolvimento foi motivada pela eficiência e proximidade ao hardware características fundamentais em ambientes que demandam processamento otimizado como é o caso de sistemas voltados para Soluções Ambientais O paradigma procedural estruturado ofereceu uma abordagem clara e modular para o design do software permitindo a fácil compreensão e manutenção do código No âmbito do desenvolvimento dedicamos atenção especial à exploração do paradigma procedural estruturado destacando a importância da lógica de programação na construção de algoritmos eficientes A definição de estruturas para representar clientes e funcionários exemplificou a organização de dados enquanto as funções específicas demonstraram a modularidade característica desse paradigma Além disso discutimos os objetivos gerais e específicos da pesquisa abordando desde a aplicação dos conhecimentos adquiridos nas disciplinas de Linguagem e Técnicas de Programação e Engenharia de Software I até a contextualização do caso da startup de Soluções Ambientais A identificação de necessidades proposição de soluções técnicas e pesquisa de metodologias foram pontoschave para o sucesso do projeto A segurança e privacidade dos dados essenciais em qualquer sistema foram consideradas com a implementação de medidas como a criptografia de informações sensíveis garantindo a conformidade com a Lei Geral de Proteção de Dados LGPD Essa discussão reflete a responsabilidade inerente ao desenvolvimento de sistemas especialmente quando lidamos com informações sensíveis dos usuários A abordagem das telas e interface de usuário ressaltou a importância do design na usabilidade do software A criação de telas intuitivas e funcionais seguindo boas práticas de design é vital para proporcionar uma experiência agradável ao usuário A usabilidade considerada em cada etapa do desenvolvimento contribui diretamente para a eficiência e satisfação do usuário final O códigofonte apresentado oferece uma implementação prática dos conceitos discutidos servindo como um guia didático para compreender a aplicação do paradigma procedural estruturado em um contexto real Cada função e estrutura foram elaboradas visando a clareza e entendimento buscando proporcionar um exemplo concreto do que foi abordado ao longo da pesquisa Em síntese a pesquisa culminou na criação de um sistema em Linguagem C que atende aos requisitos específicos da startup de Soluções Ambientais destacando a aplicação do paradigma procedural estruturado considerações de segurança e privacidade e a importância do design de interface para a usabilidade do software O conhecimento adquirido ao longo desta jornada contribui não apenas para o entendimento teórico mas também para a capacidade prática de desenvolver soluções eficientes e funcionais em um ambiente de programação estruturada REFERÊNCIAS ANDERSON David J Kanban Mudança Evolutiva de Sucesso para Seu Negócio de Tecnologia Porto Alegre Bookman 2014 ANDERSON Ross J Security Engineering A Guide to Building Dependable Distributed Systems Sl Wiley 2008 COCKBURN Alistair Desenvolvimento Ágil de Software Uma Abordagem Prática Porto Alegre Bookman 2008 DEITEL Paul J DEITEL Harvey M C How to Program 8th Edition Pearson 2015 FERGUSON Niels SCHNEIER Bruce KOHNO Tadayoshi Cryptography Engineering Design Principles and Practical Applications Sl Wiley 2010 JOHNSON Ralph E Metodologias Ágeis para o Desenvolvimento de Software São Paulo Novatec 2010 KOCHAN Stephen G Programming in C 4th Edition AddisonWesley 2014 KRUG Steve Dont Make Me Think Revisited A Common Sense Approach to Web Usability New Riders 2014 KRUG Steve Rocket Surgery Made Easy The DoItYourself Guide to Finding and Fixing Usability Problems New Riders 2009 LU Yang Privacy Engineering A Dataflow and Ontological Approach Sl Springer 2017 NORMAN Don The Design of Everyday Things Basic Books 2013 PERRY Perry C Programming Absolute Beginners Guide 3rd Edition Que Publishing 2014 PRESSMAN Roger S Engenharia de Software Uma Abordagem Profissional 7 ed Porto Alegre AMGH 2016 SEDGEWICK Robert Algorithms in C Parts 14 Fundamentals Data Structure Sorting Searching AddisonWesley 1997 SCHNEIER Bruce Applied Cryptography Protocols Algorithms and Source Code in C Sl Wiley 1996 SEDGEWICK Robert Algorithms in C Parts 14 Fundamentals Data Structure Sorting Searching AddisonWesley 1997 SUTHERLAND Jeff Scrum A Arte de Fazer o Dobro do Trabalho na Metade do Tempo Rio de Janeiro LeYa 2015 TANENBAUM Andrew S Structured Computer Organization Pearson 2012 TIDWELL Jenifer Designing Interfaces Patterns for Effective Interaction Design OReilly Media 2005 VINE Michael C Programming for the Absolute Beginner Second Edition Course Technology PTR 2007 UNIVERSIDADE PAULISTA UNIP EaD Projeto Integrado Multidisciplinar Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas NOME DO ALUNO RA Desenvolvimento de um software em Linguagem C que gerencie todas as tarefas de cadastro e relatórios de uma startup de Soluções Ambientais Local cidade da instituição onde o trabalho deve ser apresentado 2023 NOME DO ALUNO RA Desenvolvimento de um software em Linguagem C que gerencie todas as tarefas de cadastro e relatórios de uma startup de Soluções Ambientais Projeto Integrado Multidisciplinar em Análise e Desenvolvimento de Projetos Projeto Integrado Multidisciplinar para obtenção do título de tecnólogo em nome do curso apresentado à Universidade Paulista UNIP EaD Orientador a Local cidade da instituição onde o trabalho deve ser apresentado 2023 RESUMO Utilizando o paradigma procedural estruturado exploramos os conceitos fundamentais de lógica de programação na implementação do algoritmo do sistema Os objetivos gerais e específicos foram delineados com base nas disciplinas de Linguagem e Técnicas de Programação e Engenharia de Software I incentivando a aplicação prática dos conhecimentos adquiridos e o desenvolvimento de habilidades em equipe A contextualização do caso da startup de Soluções Ambientais revelou a necessidade premente de um sistema para gerenciar o crescente número de contratos com destaque para o cadastro e relatórios que visam beneficiar não apenas os clientes mas também a esfera governamental na identificação de zonas de poluição industrial Além disso discutimos a importância de aspectos como segurança e privacidade na implementação incluindo a criptografia de dados conforme exigido pela Lei Geral de Proteção de Dados LGPD A abordagem das telas e interface de usuário ressaltou a relevância do design para a usabilidade do software Ao apresentar o códigofonte exemplificamos a aplicação prática dos conceitos discutidos Palavraschave Desenvolvimento Software Linguagem C Soluções Ambientais Paradigma Procedural ABSTRACT Using the structured procedural paradigm we explore the fundamental concepts of programming logic in implementing the systems algorithm The general and specific objectives were outlined based on the subjects of Language and Programming Techniques and Software Engineering I encouraging the practical application of acquired knowledge and the development of team skills The contextualization of the case of the Environmental Solutions startup revealed the pressing need for a system to manage the growing number of contracts with emphasis on registration and reports that aim to benefit not only customers but also the government sphere in identifying pollution zones industrial Furthermore we discuss the importance of aspects such as security and privacy in the implementation including data encryption as required by the General Data Protection Law LGPD The approach to screens and user interface highlighted the relevance of design to the usability of the software By presenting the source code we exemplify the practical application of the concepts discussed Keywords Development Software Language C Environmental Solutions Procedural Paradigm SUMÁRIO 1 INTRODUÇÃO6 2 DESENVOLVIMENTO7 21 Paradigma Procedural Estruturado em Linguagem C7 22 Metodologias de Desenvolvimento de Software10 23 Segurança e Privacidade na LGPD14 24 Desenvolvimento de Telas e Interface de Usuário17 3 CONCLUSÃO24 REFERÊNCIAS26 1 INTRODUÇÃO A crescente demanda por soluções ambientais tem impulsionado a startup a expandir suas operações tornando essencial o desenvolvimento de um sistema eficiente para gerenciar as complexas tarefas de cadastro e relatórios Nesse contexto o presente Projeto Integrado Multidisciplinar PIM propõe a criação de um software desktop em Linguagem C alinhado aos ensinamentos das disciplinas de Linguagem e Técnicas de Programação e Engenharia de Software I O objetivo principal desta iniciativa é dotar a startup de uma ferramenta robusta capaz de cadastrar e gerar relatórios relacionados às Soluções Ambientais oferecidas aos clientes Para atingir tal meta a equipe do PIM será desafiada a aplicar os conhecimentos adquiridos nas disciplinas mencionadas fomentando a colaboração em equipe e a integração de múltiplas disciplinas no desenvolvimento do sistema A startup que inicialmente atuava regionalmente enfrentou um aumento exponencial nos contratos tornando imperativo o desenvolvimento de um sistema computacional para gerenciar suas atividades A necessidade de cadastrar mapear e gerenciar indústrias juntamente com a geração de relatórios para solicitações de benefícios fiscais e mapeamento de índices de poluição requer um sistema eficiente e abrangente No processo de desenvolvimento um profissional realizará o login no sistema inserindo usuário e senha para então cadastrar os dados da indústria do cliente Informações como nome CNPJ endereço email e dados relevantes para cadastro serão registrados mensalmente incluindo a atualização das quantidades de resíduos ambientais tratados e valor estimado de custo A proteção da privacidade dos usuários será priorizada seguindo as diretrizes da LGPD com a criptografia de informações sensíveis Após o cadastro o sistema terá a capacidade de gerar relatórios específicos das atividades dos clientes oferecendo uma visão abrangente tanto individualizada quanto global Dentre os relatórios propostos estão informações como o total de insumos tratados semestralmente gastos mensais localização de indústrias com maior volume de resíduos entre outros O desenvolvimento do sistema será conduzido de forma a integrar os conhecimentos adquiridos nas disciplinas abordando o paradigma procedural estruturado com o auxílio da Linguagem e Técnicas de Programação e aplicando métodos e técnicas de Engenharia de Software I para facilitar o processo de desenvolvimento O sistema contemplará telas de login menu inicial cadastro de clientes e funcionários relatórios diversos e será acessível pela internet atendendo às necessidades operacionais da startup 2 DESENVOLVIMENTO 21 Paradigma Procedural Estruturado em Linguagem C O paradigma procedural estruturado em Linguagem C é uma abordagem clássica e eficiente para o desenvolvimento de algoritmos e sistemas de software Este paradigma se baseia na organização e estruturação do código de forma linear onde as instruções são executadas sequencialmente Neste contexto exploraremos a aplicação dos conceitos fundamentais de lógica de programação no desenvolvimento do algoritmo de um sistema destacando a relevância da Linguagem C nesse processo DEITEL DEITEL 2015 Antes de adentrarmos na aplicação do paradigma procedural estruturado é essencial compreender os fundamentos da lógica de programação A lógica de programação é a base que sustenta a criação de algoritmos e programas eficientes Envolve a capacidade de raciocínio lógico organização de pensamento e a habilidade de transformar problemas complexos em sequências de passos lógicos e compreensíveis PERRY 2014 No paradigma procedural a lógica de programação é aplicada de forma estruturada o que significa que o código é organizado em blocos lógicos e estruturados de maneira hierárquica Isso facilita a compreensão do código tornandoo mais legível e manutenível TANENBAUM 2012 A escolha da Linguagem C para a implementação do paradigma procedural estruturado é motivada por diversas razões A Linguagem C oferece uma sintaxe clara e concisa permitindo a expressão eficiente de algoritmos complexos Além disso sua proximidade com a linguagem de máquina tornaa uma escolha eficaz para o desenvolvimento de sistemas de baixo nível como é comum em aplicações que requerem alto desempenho DEITEL DEITEL 2015 A estrutura de controle de fluxo da Linguagem C incluindo instruções condicionais ifelse e estruturas de repetição loops facilita a implementação de algoritmos procedurais A capacidade de manipular ponteiros em C também contribui para a eficiência na manipulação de dados um aspecto crucial no desenvolvimento de sistemas No contexto do paradigma procedural estruturado o desenvolvimento do algoritmo iniciase com a decomposição do problema em módulos ou funções Cada função é responsável por realizar uma tarefa específica e a comunicação entre essas funções é realizada de maneira organizada TANENBAUM 2012 O algoritmo é concebido como uma sequência de passos lógicos onde cada passo representa uma instrução que será executada pelo computador A estruturação lógica do código em Linguagem C permite a criação de um fluxo de controle claro e compreensível simplificando a identificação de erros e facilitando a manutenção do sistema ao longo do tempo TANENBAUM 2012 O uso eficaz de variáveis é fundamental no paradigma procedural estruturado As variáveis armazenam dados temporários necessários para a execução das operações do algoritmo Na Linguagem C a declaração de variáveis é direta e seu escopo pode ser controlado para evitar vazamento de informações DEITEL DEITEL 2015 Além das variáveis a escolha adequada de estruturas de dados é crucial para otimizar o desempenho do algoritmo Arrays structs e outras estruturas disponíveis em Linguagem C permitem a organização eficiente e acessível dos dados manipulados pelo sistema A manipulação cuidadosa dessas estruturas contribui para a eficiência e eficácia do algoritmo PERRY 2014 No paradigma procedural o controle de fluxo é essencial para a execução ordenada do algoritmo As estruturas de decisão como o ifelse permitem que o programa tome decisões com base em condições específicas Isso é crucial para lidar com casos diferentes e garantir que o algoritmo se adapte dinamicamente às diversas situações que podem surgir durante a execução VINE 2007 A utilização adequada das estruturas de decisão contribui para a robustez do algoritmo tornandoo capaz de lidar com uma variedade de cenários sem comprometer sua eficiência A clareza na expressão das condições e a organização lógica dessas estruturas são aspectos importantes na aplicação do paradigma procedural estruturado As estruturas de repetição desempenham um papel fundamental no paradigma procedural estruturado permitindo a execução repetida de determinadas instruções ou blocos de código Em Linguagem C as estruturas de repetição como o loop for e o loop while são ferramentas poderosas para otimizar a execução de tarefas que exigem repetição controlada VINE 2007 A aplicação adequada das estruturas de repetição contribui para a eficiência do algoritmo evitando a duplicação desnecessária de código e facilitando a manutenção do sistema No desenvolvimento do algoritmo em paradigma procedural a escolha adequada entre estruturas de decisão e repetição é crucial para atender aos requisitos específicos do sistema KOCHAN 2014 A modularidade é uma característicachave do paradigma procedural estruturado No desenvolvimento do algoritmo em Linguagem C as funções desempenham um papel central na criação de módulos independentes e reutilizáveis Cada função é responsável por uma tarefa específica promovendo a clareza e a organização do código A passagem de parâmetros entre funções permite a comunicação eficiente de dados evitando o uso de variáveis globais que podem comprometer a legibilidade e a manutenibilidade do código A correta definição e chamada de funções são aspectos fundamentais na aplicação do paradigma procedural estruturado garantindo a coesão e a baixa acoplamento entre os módulos do sistema O tratamento de exceções e erros é uma consideração importante no desenvolvimento de algoritmos especialmente em sistemas complexos Na Linguagem C o uso de estruturas de controle de fluxo como o trycatch presente em outras linguagens não está disponível de forma nativa Portanto estratégias específicas como o uso de valores de retorno especiais ou o estabelecimento de códigos de erro são adotadas para lidar com situações excepcionais PERRY 2014 O desenvolvimento do algoritmo em paradigma procedural requer a implementação cuidadosa de mecanismos de tratamento de erros para garantir a estabilidade do sistema em diferentes cenários A identificação precoce de potenciais problemas e a comunicação clara de mensagens de erro contribuem para a robustez do algoritmo SEDGEWICK 1997 A Linguagem C conhecida por sua eficiência e desempenho permite a otimização cuidadosa do código A alocação eficiente de memória a minimização do uso de recursos e a atenção aos detalhes de implementação são aspectos cruciais na busca por um sistema que atenda aos requisitos de desempenho SEDGEWICK 1997 A escolha de algoritmos eficientes a minimização do uso de instruções redundantes e a gestão cuidadosa dos recursos do sistema são considerações fundamentais no desenvolvimento do algoritmo em paradigma procedural estruturado A otimização de desempenho contribui para a eficácia e a responsividade do sistema garantindo uma experiência do usuário mais fluida KOCHAN 2014 A exploração e aplicação dos conceitos fundamentais de lógica de programação no desenvolvimento do algoritmo do sistema utilizando o paradigma procedural estruturado em Linguagem C representam uma abordagem sólida e eficiente para a criação de software robusto e de alto desempenho A clareza na expressão lógica a organização modular o controle de fluxo e a atenção à eficiência são características intrínsecas a essa abordagem SEDGEWICK 1997 Ao compreender os fundamentos da lógica de programação e aplicálos de forma estruturada na Linguagem C os desenvolvedores têm a capacidade de criar sistemas que não apenas atendem às necessidades específicas mas também são elegantes legíveis e facilmente mantidos ao longo do tempo O paradigma procedural estruturado em Linguagem C continua a ser uma escolha relevante e poderosa na construção de soluções de software que exigem um equilíbrio entre eficiência organização e desempenho KOCHAN 2014 22 Metodologias de Desenvolvimento de Software O desenvolvimento de software para Soluções Ambientais é uma tarefa complexa e multidisciplinar que requer uma abordagem metodológica sólida para garantir eficiência qualidade e cumprimento de prazos Neste contexto a escolha adequada de metodologias de desenvolvimento de software desempenha um papel crucial SUTHERLAND 2015 O desenvolvimento de software para Soluções Ambientais envolve uma série de desafios desde a identificação precisa dos requisitos do cliente até a implementação eficiente e a manutenção contínua do sistema O uso de metodologias apropriadas ajuda a organizar e orientar o processo de desenvolvimento fornecendo estrutura e direcionamento à equipe de desenvolvimento ANDERSON 2014 Uma das metodologias amplamente adotadas no cenário de desenvolvimento de software é o SCRUM Este método ágil é conhecido por sua abordagem iterativa e incremental que se alinha bem com projetos dinâmicos e sujeitos a mudanças frequentes nos requisitos No contexto das Soluções Ambientais em que os requisitos podem evoluir à medida que novas regulamentações são estabelecidas a flexibilidade do SCRUM é uma vantagem significativa PRESSMAN 2016 O SCRUM divide o desenvolvimento em ciclos chamados sprints cada um resultando em incrementos tangíveis do produto Isso permite uma entrega contínua de funcionalidades proporcionando ao cliente a oportunidade de validar e ajustar os requisitos ao longo do processo A transparência a colaboração e a adaptação contínua são pilares do SCRUM tornandoo uma escolha sólida para projetos dinâmicos como os relacionados às Soluções Ambientais JOHNSON 2010 Outra abordagem valiosa que merece consideração é o método Kanban Focado no controle visual e no fluxo contínuo de trabalho o Kanban proporciona uma visão clara do progresso do projeto No contexto das Soluções Ambientais onde o gerenciamento eficiente de tarefas é essencial o Kanban oferece uma ferramenta poderosa para visualização e otimização do fluxo de trabalho PRESSMAN 2016 O Kanban utiliza quadros visuais para representar as etapas do processo destacando tarefas individuais em cartões Cada cartão representa uma atividade específica permitindo que a equipe acompanhe facilmente o status e identifique gargalos Para um projeto de desenvolvimento de software para Soluções Ambientais em que a colaboração e a comunicação eficazes são fundamentais o Kanban proporciona uma abordagem simples e visual para gerenciar o fluxo de trabalho ANDERSON 2014 A escolha entre SCRUM Kanban ou outras metodologias específicas para o desenvolvimento do software para Soluções Ambientais deve levar em consideração diversos fatores específicos do projeto bem como as características únicas do ambiente em que o software será utilizado JOHNSON 2010 No caso do SCRUM a flexibilidade e a adaptabilidade do método são particularmente vantajosas para lidar com possíveis mudanças nos requisitos regulatórios ou nas necessidades do cliente A capacidade de entregar incrementos funcionais em curtos períodos de tempo permite uma resposta rápida a essas mudanças garantindo que o software atenda continuamente às demandas do setor de Soluções Ambientais COCKBURN 2008 Por outro lado o Kanban destacase pela sua simplicidade e ênfase no controle visual Em um contexto em que o acompanhamento preciso do progresso e a identificação imediata de possíveis problemas são cruciais o Kanban oferece uma solução intuitiva Sua aplicação pode proporcionar uma visão clara do estado atual do projeto permitindo ajustes em tempo real para garantir a eficiência e a qualidade do software ANDERSON 2014 Além do SCRUM e do Kanban outras metodologias podem ser consideradas dependendo das necessidades específicas do projeto A metodologia em Espiral por exemplo é conhecida por seu enfoque no gerenciamento de riscos e na avaliação constante do projeto Em um contexto como o das Soluções Ambientais em que os riscos podem variar de acordo com mudanças regulatórias essa metodologia pode ser uma escolha estratégica A metodologia Lean originária do setor de manufatura também é aplicável ao desenvolvimento de software Priorizando a eliminação de desperdícios e a maximização do valor entregue ao cliente o Lean pode ser especialmente relevante em projetos que buscam otimizar recursos e fornecer soluções eficientes para questões ambientais PRESSMAN 2016 No contexto do desenvolvimento de software para Soluções Ambientais a opção por metodologias ágeis como SCRUM encontra justificativa em diversos aspectos A natureza dinâmica do setor ambiental com mudanças regulatórias frequentes e a necessidade de rápida adaptação favorece a abordagem ágil PRESSMAN 2016 O SCRUM especificamente permite a entrega iterativa e incremental de funcionalidades o que se alinha perfeitamente com a capacidade de responder rapidamente a mudanças A colaboração estreita entre a equipe de desenvolvimento e os stakeholders é facilitada por práticas ágeis garantindo uma compreensão contínua dos requisitos e das expectativas do cliente ANDERSON 2014 A transparência e a comunicação contínua proporcionadas pelo SCRUM são cruciais em um contexto em que as Soluções Ambientais demandam uma compreensão profunda das necessidades do cliente e a capacidade de traduzir essas necessidades em soluções práticas A abordagem ágil contribui para a criação de um ambiente colaborativo no qual a equipe pode ajustarse dinamicamente às mudanças maximizando o valor entregue ao cliente SUTHERLAND 2015 Apesar dos benefícios a implementação de metodologias ágeis no desenvolvimento de software para Soluções Ambientais não está isenta de desafios Um dos desafios significativos pode ser a resistência à mudança especialmente em ambientes onde práticas tradicionais de desenvolvimento são predominantes A introdução de práticas ágeis requer um processo de adaptação cultural e a compreensão de que a flexibilidade e a colaboração são fundamentais para o sucesso do projeto JOHNSON 2010 Além disso as Soluções Ambientais podem envolver aspectos regulatórios complexos que precisam ser considerados no planejamento ágil A resposta a mudanças regulatórias pode exigir adaptações rápidas no desenvolvimento do software e a metodologia ágil deve ser capaz de lidar com essas mudanças de forma eficiente SUTHERLAND 2015 O paradigma procedural estruturado em Linguagem C aplicado no desenvolvimento de software para Soluções Ambientais ganha eficácia quando aliado a metodologias de desenvolvimento apropriadas A escolha entre SCRUM Kanban ou outras metodologias específicas deve ser guiada pelas características únicas do projeto e pelas necessidades do ambiente em que o software será utilizado PRESSMAN 2016 No contexto dinâmico das Soluções Ambientais onde a adaptabilidade e a resposta rápida a mudanças são essenciais as metodologias ágeis como SCRUM emergem como escolhas naturais A capacidade de entrega iterativa a colaboração intensiva com o cliente e a flexibilidade para ajustarse dinamicamente às mudanças são características valiosas que contribuem para o sucesso do desenvolvimento de software nesse setor SUTHERLAND 2015 Entretanto é fundamental reconhecer que não existe uma abordagem única que se aplique a todos os projetos A escolha da metodologia deve ser baseada em uma análise cuidadosa das necessidades específicas do projeto considerando fatores como a complexidade dos requisitos a dinâmica do setor e a capacidade da equipe de adaptação COCKBURN 2008 Em última análise a combinação do paradigma procedural estruturado em Linguagem C com metodologias de desenvolvimento adequadas proporciona uma base sólida para o desenvolvimento de software eficiente colaborativo e adaptável atendendo às demandas complexas das Soluções Ambientais PRESSMAN 2016 23 Segurança e Privacidade na LGPD No contexto do desenvolvimento de software utilizando o paradigma procedural estruturado em Linguagem C a garantia da segurança e privacidade dos dados tornase uma preocupação central especialmente diante das crescentes regulamentações voltadas para a proteção da privacidade como a Lei Geral de Proteção de Dados LGPD SCHNEIER 1996 A LGPD inspirada no Regulamento Geral de Proteção de Dados GDPR europeu é uma legislação brasileira que visa proteger a privacidade e a segurança dos dados pessoais dos cidadãos Ela estabelece diretrizes claras para a coleta armazenamento processamento e compartilhamento de informações pessoais exigindo das organizações a implementação de medidas robustas de segurança para garantir a integridade e confidencialidade desses dados FERGUSON KOHNO 2010 No contexto do desenvolvimento de software a LGPD tem implicações significativas e as equipes de desenvolvimento devem estar atentas às diretrizes da lei desde as fases iniciais do projeto Isso inclui a escolha adequada de técnicas e ferramentas para garantir que as informações sensíveis dos clientes sejam devidamente protegidas contra acessos não autorizados A criptografia é uma das medidas mais eficazes e amplamente reconhecidas para garantir a segurança e privacidade dos dados Consiste na transformação dos dados em um formato ilegível durante a transmissão ou armazenamento sendo necessário uma chave específica para descriptografar e tornar os dados legíveis novamente Essa técnica é fundamental para proteger as informações sensíveis contra ameaças externas e garantir que apenas usuários autorizados possam acessálas STAMP EASTTOM 2015 No desenvolvimento de software em Linguagem C a implementação da criptografia pode ser realizada por meio de bibliotecas especializadas como OpenSSL A escolha e configuração adequadas dessas bibliotecas são cruciais para garantir a eficácia da criptografia e sua conformidade com os padrões de segurança exigidos pela LGPD Embora a criptografia seja uma ferramenta poderosa sua implementação efetiva pode enfrentar desafios específicos no contexto do desenvolvimento de software em Linguagem C Um dos desafios fundamentais é garantir que a criptografia não comprometa significativamente o desempenho do sistema Em aplicações que demandam alto processamento de dados é essencial encontrar um equilíbrio entre a segurança proporcionada pela criptografia e a eficiência operacional SCHNEIER 1996 Outro desafio é a gestão adequada das chaves de criptografia A perda ou comprometimento das chaves pode resultar na inacessibilidade permanente dos dados criptografados Portanto é vital estabelecer práticas seguras para o armazenamento recuperação e renovação das chaves garantindo sua confidencialidade e integridade LU 2017 Além disso a compatibilidade da criptografia com as demais funcionalidades do sistema deve ser cuidadosamente considerada Integrações com outros sistemas processos de backup e recuperação e a facilidade de manutenção do sistema são aspectos que demandam atenção especial para garantir a eficácia contínua da criptografia SCHNEIER 1996 A implementação efetiva da criptografia no desenvolvimento de software proporciona diversas vantagens em conformidade com a LGPD A criptografia garante que as informações sensíveis dos clientes permaneçam confidenciais mesmo em casos de acesso não autorizado aos sistemas Isso é fundamental para atender ao princípio da confidencialidade estabelecido pela LGPD Ao proteger os dados contra modificações não autorizadas a criptografia contribui para garantir a integridade das informações Qualquer tentativa de alteração nos dados criptografados será detectada reforçando a confiabilidade dos sistemas FERGUSON KOHNO 2010 A criptografia permite um controle rigoroso de quem pode acessar e visualizar os dados As chaves de criptografia funcionam como mecanismos de controle de acesso garantindo que apenas usuários autorizados tenham permissão para descriptografar e utilizar as informações sensíveis ANDERSON 2008 A LGPD exige que as organizações adotem medidas adequadas para proteger os dados pessoais A criptografia é uma prática reconhecida e aceita globalmente para cumprir esses requisitos demonstrando o comprometimento da organização com a segurança dos dados Além dos desafios específicos relacionados à criptografia a adoção da LGPD no desenvolvimento de software em Linguagem C apresenta desafios adicionais que merecem consideração Identificar e classificar os dados pessoais armazenados ou processados pelo sistema é um passo fundamental para garantir a conformidade com a LGPD Isso envolve mapear o fluxo de dados no sistema e classificar as informações de acordo com sua sensibilidade STAMP EASTTOM 2015 A LGPD estabelece diretrizes claras quanto à retenção e descarte de dados pessoais Desenvolver políticas e práticas adequadas para a retenção de dados é essencial garantindo que as informações não sejam armazenadas por mais tempo do que o necessário STAMP EASTTOM 2015 Realizar uma Avaliação de Impacto à Privacidade é uma exigência da LGPD para projetos que envolvem o processamento de dados pessoais Essa avaliação visa identificar e mitigar riscos à privacidade desde as fases iniciais do desenvolvimento ANDERSON 2008 Implementar mecanismos claros de obtenção e registro de consentimento dos usuários para o processamento de seus dados é essencial A LGPD destaca a importância do consentimento informado e específico para cada finalidade de processamento STAMP EASTTOM 2015 O desenvolvimento de software utilizando o paradigma procedural estruturado em Linguagem C implica uma responsabilidade significativa na garantia da segurança e privacidade dos dados especialmente diante das exigências da LGPD A criptografia quando implementada de forma adequada emerge como uma ferramenta crucial para atender aos requisitos de segurança e conformidade com a legislação ANDERSON 2008 A LGPD com seu foco na proteção dos dados pessoais e no fortalecimento dos direitos dos titulares demanda uma abordagem holística na incorporação de medidas de segurança Além da criptografia a mapeamento e classificação adequados dos dados políticas de retenção eficientes Avaliação de Impacto à Privacidade e mecanismos claros de obtenção de consentimento são elementos essenciais para assegurar a conformidade e fortalecer a confiança dos usuários FERGUSON KOHNO 2010 A conscientização sobre os desafios específicos enfrentados no desenvolvimento em Linguagem C juntamente com a compreensão das diretrizes da LGPD capacita as equipes de desenvolvimento a adotarem uma abordagem proativa na proteção dos dados sensíveis Ao integrar práticas de segurança desde as fases iniciais do desenvolvimento as organizações podem não apenas atender aos requisitos regulatórios mas também estabelecer uma base sólida para a construção de sistemas seguros e confiáveis FERGUSON KOHNO 2010 24 Desenvolvimento de Telas e Interface de Usuário O processo de desenvolvimento de telas e interface de usuário desempenha um papel crucial na experiência global do usuário em um sistema Cada elemento visual desde a tela de login até os relatórios desempenha um papel fundamental na usabilidade e na eficiência do software Neste contexto é essencial detalhar o processo de criação dessas telas considerando boas práticas de design de interface para otimizar a interação do usuário com o sistema KRUG 2014 A tela de login representa o ponto de entrada para os usuários e sua concepção deve equilibrar a segurança com a facilidade de uso A utilização de elementos como campos de entrada para nome de usuário e senha juntamente com a inclusão de mensagens claras e indicativas contribui para uma experiência de login intuitiva Adicionalmente a consideração de recursos como a opção de lembrar senha ou a recuperação de conta pode aprimorar ainda mais a experiência do usuário Ao passar para o menu inicial a clareza na disposição dos elementos é crucial A organização lógica das opções de menu a utilização de ícones representativos e a minimização de elementos desnecessários contribuem para uma navegação eficiente A interface do menu inicial deve ser intuitiva permitindo que os usuários acessem rapidamente as funcionalidades desejadas A aplicação de cores de forma consistente alinhada às diretrizes visuais do sistema reforça a identidade visual e facilita a compreensão No que diz respeito ao cadastro de clientes e funcionários a simplicidade e clareza são essenciais A estrutura das telas de cadastro deve guiar o usuário de forma intuitiva solicitando informações relevantes de maneira organizada A utilização de campos obrigatórios e a validação em tempo real ajudam a evitar erros durante o preenchimento Elementos visuais como ícones e rótulos explicativos fornecem orientação adicional garantindo uma experiência de cadastro fluída e sem complicações KRUG 2014 Quando se trata dos relatórios a apresentação dos dados desempenha um papel crucial A disposição lógica das informações gráficos intuitivos e a possibilidade de personalização são aspectos a serem considerados Os relatórios devem fornecer insights de maneira clara e concisa permitindo que os usuários compreendam rapidamente as tendências e os dados apresentados A inclusão de opções de exportação como salvar em arquivo TXT oferece flexibilidade aos usuários no uso dos dados gerados Ao longo de todo o processo de desenvolvimento de telas e interface de usuário a aderência a boas práticas de design é fundamental A consistência visual a escolha de fontes legíveis o espaçamento adequado entre elementos e a seleção de cores acessíveis contribuem para uma experiência visual agradável Além disso a consideração da acessibilidade como a utilização de rótulos descritivos e a garantia de que as telas sejam compreensíveis para usuários com deficiências visuais amplia a usabilidade do sistema KRUG 2009 A usabilidade é um conceito central no desenvolvimento de interface de usuário A facilidade com que os usuários podem interagir com o sistema completar tarefas e compreender as informações apresentadas impacta diretamente na eficiência e satisfação do usuário Portanto a criação de telas que sigam princípios de usabilidade é crucial para o sucesso do software NORMAN 2013 Ao considerar a usabilidade é imperativo compreender as necessidades e expectativas dos usuários A realização de testes de usabilidade preferencialmente com usuários reais ou representativos do públicoalvo fornece feedback valioso Observar como os usuários interagem com as telas identificar pontos de confusão ou dificuldade e ajustar a interface com base nesses insights contribui para uma experiência mais otimizada KRUG 2014 A consistência na interface também é um componente chave da usabilidade A utilização de padrões visuais e de interação ao longo de todas as telas cria uma experiência coesa Elementos como botões menus e ícones devem manter uma aparência consistente para evitar confusão e garantir que os usuários se sintam familiarizados independentemente da tela em que se encontram Além disso a resposta do sistema às ações do usuário desempenha um papel significativo na percepção da usabilidade Telas que respondem de forma rápida e eficiente às interações do usuário proporcionam uma experiência mais fluída e agradável Isso inclui a minimização de atrasos perceptíveis ao carregar informações ou realizar transições entre telas KRUG 2009 No contexto específico do desenvolvimento em Linguagem C é importante considerar a eficiência do código por trás das telas A otimização do desempenho é uma parte integral da usabilidade especialmente em sistemas que podem operar em diferentes ambientes e configurações de hardware A escolha de algoritmos eficientes a minimização do uso de recursos e a atenção à alocação de memória são aspectos cruciais para garantir a responsividade do sistema A segurança da interface de usuário também deve ser uma prioridade no processo de desenvolvimento A implementação de práticas de segurança como a validação adequada dos dados de entrada ajuda a prevenir vulnerabilidades como injeção de SQL e ataques de script entre sites Além disso a proteção contra ataques de força bruta especialmente na tela de login é essencial para garantir a integridade do sistema NORMAN 2013 O design responsivo é outro elemento que merece destaque na criação de telas de interface de usuário A variedade de dispositivos desde desktops até smartphones exige que as telas se adaptem de maneira eficiente a diferentes tamanhos de tela e orientações A utilização de técnicas como layouts flexíveis e media queries permite uma experiência consistente independentemente do dispositivo utilizado pelo usuário Ao criar telas de interface de usuário a acessibilidade não deve ser negligenciada A inclusão de recursos que tornam o sistema utilizável por pessoas com deficiências visuais auditivas ou motoras é uma consideração ética e legal A utilização de rótulos descritivos para elementos interativos a garantia de que as telas sejam navegáveis por meio de teclado e a adequação do contraste são medidas que promovem a acessibilidade Em relação à tela de login além de considerações de segurança a simplicidade é um princípio fundamental Os campos de entrada devem ser claramente identificados e a inclusão de mensagens de erro descritivas ajuda os usuários a corrigir problemas rapidamente A opção de recuperação de senha quando necessária deve ser facilmente acessível contribuindo para a experiência do usuário em caso de problemas de acesso A interface do menu inicial desempenha um papel central na navegação do usuário pelo sistema A disposição das opções de menu deve refletir a lógica das funcionalidades oferecidas facilitando a localização e seleção das ferramentas desejadas A utilização de ícones intuitivos e a designação clara de categorias contribuem para a compreensão rápida da estrutura do menu No que diz respeito ao cadastro de clientes e funcionários a simplicidade e a lógica são essenciais As telas de cadastro devem guiar o usuário de forma intuitiva solicitando informações de maneira organizada A inclusão de validações em tempo real evita erros comuns durante o preenchimento promovendo uma experiência de cadastro fluida Além disso a apresentação de mensagens de sucesso após o cadastro reforça a conclusão bemsucedida da tarefa Os relatórios enquanto parte integrante do sistema devem apresentar os dados de forma clara e organizada A disposição lógica das informações gráficos intuitivos e a possibilidade de personalização são aspectos que contribuem para uma experiência positiva A inclusão de opções de exportação como salvar em arquivo TXT oferece flexibilidade aos usuários no uso dos dados gerados pelos relatórios Ao longo de todo o processo de desenvolvimento de telas e interface de usuário a atenção aos detalhes é crucial A consistência visual a escolha de fontes legíveis e a seleção de cores acessíveis contribuem para uma experiência visual agradável A aplicação de princípios de design responsivo e a realização de testes em diferentes dispositivos garantem uma experiência consistente independentemente do meio de acesso A criação de telas de interface de usuário não é apenas uma questão estética é uma parte intrínseca da funcionalidade e usabilidade do sistema Telas bem projetadas promovem a eficiência reduzem a curva de aprendizado para os usuários e contribuem para a satisfação geral do usuário Portanto ao detalhar o processo de desenvolvimento de telas a consideração cuidadosa das necessidades do usuário boas práticas de design e a adesão a princípios de usabilidade são fundamentais para o sucesso do sistema Na condução da pesquisa em questão propomos o desenvolvimento de um código em Linguagem C que exemplifica um sistema de gerenciamento para uma startup de Soluções Ambientais Este código aborda funcionalidades essenciais como login cadastro de clientes e funcionários além da possibilidade de gerar relatórios O objetivo é proporcionar uma visão prática e aplicada dos conceitos discutidos na pesquisa demonstrando a implementação do paradigma procedural estruturado A seguir apresentamos o códigofonte que ilustra o sistema proposto Este código utiliza estruturas para representar clientes e funcionários implementa uma função de login simples e oferece a capacidade de cadastrar clientes cadastrar funcionários e acessar o menu principal Vale ressaltar que o código é um exemplo didático e sua simplicidade visa facilitar a compreensão dos conceitos abordados na pesquisa include stdioh include stdlibh include stringh Definição da estrutura para clientes typedef struct int id char nome50 Outros campos do cliente Cliente Definição da estrutura para funcionários typedef struct int id char nome50 Outros campos do funcionário Funcionario Função para realizar o login int fazerLogin char usuario20 char senha20 printfDigite o nome de usuário scanfs usuario printfDigite a senha scanfs senha Lógica para verificar o login exemplo simples if strcmpusuario admin 0 strcmpsenha senha123 0 return 1 Login bemsucedido else return 0 Login falhou Função para cadastrar um cliente void cadastrarClienteCliente clientes int numClientes Lógica para cadastrar cliente Você pode adicionar mais campos e validar os dados printfDigite o nome do cliente scanfs clientesnumClientesnome clientesnumClientesid numClientes 1 numClientes printfCliente cadastrado com sucesso Função para cadastrar um funcionário void cadastrarFuncionarioFuncionario funcionarios int numFuncionarios Lógica para cadastrar funcionário Você pode adicionar mais campos e validar os dados printfDigite o nome do funcionário scanfs funcionariosnumFuncionariosnome funcionariosnumFuncionariosid numFuncionarios 1 numFuncionarios printfFuncionário cadastrado com sucesso Função para exibir o menu inicial void exibirMenu printf Menu Inicial printf1 Cadastrar Cliente printf2 Cadastrar Funcionário printf3 Gerar Relatórios printf4 Sair int main int opcao int logado 0 Simulação de login logado fazerLogin if logado printfLogin bemsucedido Cliente clientes100 Exemplo array para armazenar clientes int numClientes 0 Funcionario funcionarios100 Exemplo array para armazenar funcionários int numFuncionarios 0 Loop do menu do exibirMenu printfEscolha uma opção scanfd opcao switch opcao case 1 cadastrarClienteclientes numClientes break case 2 cadastrarFuncionariofuncionarios numFuncionarios break case 3 Lógica para gerar relatórios printfImplemente a lógica para gerar relatórios aqui break case 4 printfSaindo do programa Até logo break default printfOpção inválida Tente novamente while opcao 4 4 é a opção de sair else printfLogin falhou Programa encerrado return 0 O código desenvolvido exemplifica um sistema de gerenciamento com uma estrutura de login permitindo o cadastro de clientes e funcionários além da opção de gerar relatórios A estrutura é composta por funções específicas para cada operação proporcionando modularidade e clareza no código A função fazerLogin simula um processo de login onde são solicitados um nome de usuário e senha A lógica de verificação é simples considerando um usuário admin com senha senha123 Em um contexto real essa lógica seria substituída por um mecanismo mais robusto As funções cadastrarCliente e cadastrarFuncionario são responsáveis por coletar informações do usuário para cadastrar clientes e funcionários respectivamente Os dados são armazenados em estruturas adequadas e um identificador único é atribuído a cada registro A função exibirMenu apresenta as opções disponíveis no menu principal enquanto a função main coordena a execução do programa Após a simulação do login o programa entra em um loop que exibe o menu e direciona o usuário de acordo com a opção escolhida O código demonstra a estrutura procedural estruturada destacando a organização e clareza na implementação das funcionalidades propostas 3 CONCLUSÃO Ao longo desta pesquisa exploramos o desenvolvimento de um software em Linguagem C voltado para o gerenciamento de tarefas de cadastro e relatórios em uma startup de Soluções Ambientais Adotamos o paradigma procedural estruturado como base para a implementação abrangendo desde a definição de estruturas de dados até a criação de funções específicas para operações como login cadastro de clientes e funcionários além da geração de relatórios A escolha da Linguagem C para esse desenvolvimento foi motivada pela eficiência e proximidade ao hardware características fundamentais em ambientes que demandam processamento otimizado como é o caso de sistemas voltados para Soluções Ambientais O paradigma procedural estruturado ofereceu uma abordagem clara e modular para o design do software permitindo a fácil compreensão e manutenção do código No âmbito do desenvolvimento dedicamos atenção especial à exploração do paradigma procedural estruturado destacando a importância da lógica de programação na construção de algoritmos eficientes A definição de estruturas para representar clientes e funcionários exemplificou a organização de dados enquanto as funções específicas demonstraram a modularidade característica desse paradigma Além disso discutimos os objetivos gerais e específicos da pesquisa abordando desde a aplicação dos conhecimentos adquiridos nas disciplinas de Linguagem e Técnicas de Programação e Engenharia de Software I até a contextualização do caso da startup de Soluções Ambientais A identificação de necessidades proposição de soluções técnicas e pesquisa de metodologias foram pontoschave para o sucesso do projeto A segurança e privacidade dos dados essenciais em qualquer sistema foram consideradas com a implementação de medidas como a criptografia de informações sensíveis garantindo a conformidade com a Lei Geral de Proteção de Dados LGPD Essa discussão reflete a responsabilidade inerente ao desenvolvimento de sistemas especialmente quando lidamos com informações sensíveis dos usuários A abordagem das telas e interface de usuário ressaltou a importância do design na usabilidade do software A criação de telas intuitivas e funcionais seguindo boas práticas de design é vital para proporcionar uma experiência agradável ao usuário A usabilidade considerada em cada etapa do desenvolvimento contribui diretamente para a eficiência e satisfação do usuário final O códigofonte apresentado oferece uma implementação prática dos conceitos discutidos servindo como um guia didático para compreender a aplicação do paradigma procedural estruturado em um contexto real Cada função e estrutura foram elaboradas visando a clareza e entendimento buscando proporcionar um exemplo concreto do que foi abordado ao longo da pesquisa Em síntese a pesquisa culminou na criação de um sistema em Linguagem C que atende aos requisitos específicos da startup de Soluções Ambientais destacando a aplicação do paradigma procedural estruturado considerações de segurança e privacidade e a importância do design de interface para a usabilidade do software O conhecimento adquirido ao longo desta jornada contribui não apenas para o entendimento teórico mas também para a capacidade prática de desenvolver soluções eficientes e funcionais em um ambiente de programação estruturada REFERÊNCIAS ANDERSON David J Kanban Mudança Evolutiva de Sucesso para Seu Negócio de Tecnologia Porto Alegre Bookman 2014 ANDERSON Ross J Security Engineering A Guide to Building Dependable Distributed Systems Sl Wiley 2008 COCKBURN Alistair Desenvolvimento Ágil de Software Uma Abordagem Prática Porto Alegre Bookman 2008 DEITEL Paul J DEITEL Harvey M C How to Program 8th Edition Pearson 2015 FERGUSON Niels SCHNEIER Bruce KOHNO Tadayoshi Cryptography Engineering Design Principles and Practical Applications Sl Wiley 2010 JOHNSON Ralph E Metodologias Ágeis para o Desenvolvimento de Software São Paulo Novatec 2010 KOCHAN Stephen G Programming in C 4th Edition AddisonWesley 2014 KRUG Steve Dont Make Me Think Revisited A Common Sense Approach to Web Usability New Riders 2014 KRUG Steve Rocket Surgery Made Easy The DoItYourself Guide to Finding and Fixing Usability Problems New Riders 2009 LU Yang Privacy Engineering A Dataflow and Ontological Approach Sl Springer 2017 NORMAN Don The Design of Everyday Things Basic Books 2013 PERRY Perry C Programming Absolute Beginners Guide 3rd Edition Que Publishing 2014 PRESSMAN Roger S Engenharia de Software Uma Abordagem Profissional 7 ed Porto Alegre AMGH 2016 SEDGEWICK Robert Algorithms in C Parts 14 Fundamentals Data Structure Sorting Searching AddisonWesley 1997 SCHNEIER Bruce Applied Cryptography Protocols Algorithms and Source Code in C Sl Wiley 1996 SEDGEWICK Robert Algorithms in C Parts 14 Fundamentals Data Structure Sorting Searching AddisonWesley 1997 SUTHERLAND Jeff Scrum A Arte de Fazer o Dobro do Trabalho na Metade do Tempo Rio de Janeiro LeYa 2015 TANENBAUM Andrew S Structured Computer Organization Pearson 2012 TIDWELL Jenifer Designing Interfaces Patterns for Effective Interaction Design OReilly Media 2005 VINE Michael C Programming for the Absolute Beginner Second Edition Course Technology PTR 2007