Segunda Parte do Trabalho Prático (Parte II) Valor: 70%

Documentos relacionados
Trabalho Prático. Descrição Considere os seguintes dados a respeito de uma pessoa:

P R O J E T O: C A R N A V A L. 2. Informações Básicas sobre o Sistema a ser Desenvolvido

PROJETO: CONFERÊNCIA ACADÊMICA. 2. Informações Básicas sobre o Sistema a ser Desenvolvido

1 Introdução. 2 Especificação

Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)

Tipos de Índices. Profa. Dra. Cristina Dutra de Aguiar Ciferri

Trabalho de LP 15/07/2013. Prof. Flávio Miguel Varejão

Especificação do Trabalho Prático

Gerência do Sistema de Arquivos. Adão de Melo Neto

Capítulo 20. Estruturas de Dados Dinâmicas. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6) Curso: Informática

Projeto 1: Casos de Uso

2 Versão 1: Funcionalidade Básica e Interface Web

Documento de Requisitos SISTEMA DE APOIO À ESCRITA (SAPES)

Programação Aplicada de Computadores. Trabalho 1 Freecell

Algoritmos e Estrutura de Dados. Aula 05 Estrutura de Dados: Listas (Parte II) Prof. Tiago A. E. Ferreira

GRADUAÇÃO EM ANÁLISE E DESENVOLVIMENTO PROGRAMAÇÃO DE COMPUTADORES I Trabalho Final Anual TFA

Fundamentos de Sistemas Operacionais. Gerência de Memória. Prof. Edwar Saliba Júnior Março de Unidade Gerência de Memória

Segundo Projeto Valor: 10% (1,0 pt) da 2ª V.A.

Segundo trabalho prático de implementação Sistema de reserva de assentos

Trabalho 1 GRAFOS. 3. Implementar uma rotina chamada Dijkstra(G, o, d) que determina o menor caminho

Manual do Usuário. Requisição de Veículos

Como se origina um curso de especialização no SIGAA?

Manual da Turma Virtual: CONFIGURAÇÕES. Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo:

Trabalho Prático 2 Mundo dos Blocos Alocação Dinâmica / Listas Encadeadas

INFORMATIVO VERSÃO

Tipos de Publicações:

MANUAL SIPAC ORIENTAÇÕES PARA REQUISIÇÕES DE RP

Comunicado: Janela de Manutenção do Sistema GAR 09/08/2012. Departamento de Produtos Agosto/2012

Sistema de Solicitação de Certidões

Árvores B. Árvores B. Estrutura de Dados II Jairo Francisco de Souza

Universidade Federal Fluminense

SME Introdução à Programação de Computadores Primeiro semestre de Trabalho: jogo Semáforo

Sistema Rodoviário Tabajara

Manual do InCD Reader

Carnê de Pagamento. Copyright ControleNaNet

Guia do Usuário. Portal Web: Foxwin-Acesso. Assunto: Guia do Usuário Portal Web. Produto: Foxwin-Acesso. Versão Doc.: 1.0

Infor LN Guia do usuário para estatísticas

Profa. Dra. Cristina Dutra de Aguiar Ciferri. Estruturas de Indexação de Dados

Armazenamento em disco com uso de índices

Ao selecionar o seu curso, aparecerá a página principal contendo as informações e as atividades disponíveis.

Trabalho GA - Editor de Cenário Isométrico

1. Acesso Portal do Discente Atualizar Foto e Perfil Meus Dados Pessoais Minhas Notas... 7

INF ALGORITMOS E PROGRAMAÇÃO TRABALHO PRÁTICO

AULA 13 PROCEDIMENTOS. Disciplina: Algoritmos e POO Professora: Alba Lopes.

SINACOR GUIA CONCILIADOR

Exercícios: Vetores e Matrizes

BitNota Eletrônica Gerenciador para Nota Fiscal Eletrônica 2.0 Manual Versão 1.0

OFERTA DE DISCIPLINAS POR CURSO...

Capítulo 6 Nível do Sistema Operacional

SSC-546 Avaliação de Sistemas Computacionais

Processo: Compras. Acesso. Motivação. Parâmetros. Nome do Processo: Cotação de compras. Pendências Versão 2009 Release 2 Autor Francisca

Árvore-B* Profa. Dra. Cristina Dutra de Aguiar Ciferri

MANUAL DE USUÁRIO. Versão 1.0 Servidor

MANUAL SISTEMA AUDATEX WEB

GUIA DO USUÁRIO ADMINISTRADOR SASD Sistema de apoio a secretaria departamental

Aula 3 Primeiros programas

Algoritmos e Estruturas de Dados II. Trabalho Prático 4

4ª Lista de Exercícios de Programação I

MANUAL SISTEMA AUDATEX WEB

Simulado para CFPS. Questões de Propósito, Tipo e Fronteira. 1. Um dos objetivos da Análise de Pontos de Função é:

Problema do Caminho Hamiltoniano

Programação II. Trabalho 2 Freecell

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação

Sistema Gerenciador de Fichamentos. Descrição geral do projeto (em poucas palavras)

Guia de Treinamento. SIPAC Módulo Almoxarifado. Requisitante de Material

Release Notes. A seguir são apresentadas as funções implementadas na linha de produto Microsiga Protheus expedidas neste pacote de atualização.

Aula de Arquivos. Jesimar da Silva Arantes. Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos, SP

Agência Municipal de Empregos Manual do Empregador

Gerência do Sistema de Arquivos. Adão de Melo Neto

Manual de operação do sistema. Cadastro Ambiental Rural. 05/2017 Versão 1.0

LISTA DE EXERCÍCIOS - ro. 04

DIAGRAMA DE ATIVIDADES PARA CADASTRO INICIAL

Capítulo 11 Sistemas de Arquivos

NORMAS - SIICUSP 2016

MAC Criptografia Primeiro Semestre de 2011

AMBIENTE VIRTUAL DE APRENDIZAGEM

Cadastro PORTAL DE COMPRAS SÃO JOSÉ DO RIO PRETO

CAU Controle de Acesso Unificado. Manual de Usuário

Programação de Sistemas

Coordenação de Curso dentro

ER Especificação de Requisitos. OSxxxxx_031 - Possibilidade de incluir CNPJ

Lista de Exercícios. Av. Trabalhador São-carlense, 400. centro. São Carlos - SP cep Brasil.

Sistemas de arquivos

Spectrum Miner. Versão 8.0. Guia do usuário para a integração do Portrait Dialogue

Fundamentos de Programação 1

A seguir são apresentadas as funções implementadas na linha de produto Microsiga Protheus, expedidas neste pacote de atualização.

Boletim Técnico. Plano de Desenvolvimento Individual (PDI) Desenvolvimento/Procedimento. Produto : Totvs Gestão de Pessoas Versão 12.1.

Manual. Inclusão de Notas Fiscais

1. ACESSO MENU PRINCIPAL Página Inicial Botões no Topo da Tela Campos para Exibição... 4

Organização de Arquivos. SCE-183 Algoritmos e Estruturas de Dados II

Título: Como configurar e realizar o backup por dentro do sistema?

Relatório de Retrospectiva Contábil, Gerencial e por Centro de Custo

Para os demais formatos, o relatório será gerado mas virá com configurações incorretas.

GNRE on-line LOGIX. Sumário. 1.1 Pré-requisitos Conversores Parametrização... 3

Fundamentos de Arquivos e Armazenamento Secundário

Agendamento de Entregas

Apostila Impress 01. Partes da Janela Principal do Impress

WebSIGOM gerência de vales transportes pela Internet

Transcrição:

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Disciplina de Organização de Arquivos Profa. Dra. Cristina Dutra de Aguiar Ciferri PAE Fábio Felix Dias (Turma A) PAE Anderson Chaves Carniel (Turma B) Segunda Parte do Trabalho Prático (Parte II) Valor: 70% A solução para este trabalho prático deve ser proposta exclusivamente pelo grupo com base nos conhecimentos adquiridos ao longo das aulas. Consulte as notas de aula e o livro texto quando necessário. O trabalho deve ser feito considerando-se o mesmo grupo da Parte I do trabalho prático, com exceção dos grupos cujos alunos foram autorizados pela docente para participarem de outros grupos. Descrição do arquivo de dados Cada registro do arquivo de dados deve conter dados relacionados a: Turma A. Dados dos domínios governamentais registrados no Registro.br (coletado em http://dados.gov.br/dataset/dominios-gov-br), de forma que cada registro indique um domínio governamental. Campos de tamanho fixo: ticket (número do ticket vinculado ao registro da URL no cadastro do Registro.br), documento (número do documento informado ao Registro.br no cadastro da URL), datahoracadastro (data e hora de quando a URL foi cadastrada), datahoraatualiza (data e hora de quando a URL foi modificada). Campos de tamanho variável: dominio (URL cadastrada no Registro.br), nome (nome do Órgão ou Entidade responsável pela URL), cidade (cidade cadastrada no Registro.br), uf (nome do estado por extenso).

Turma B. Dados cadastrais de companhias abertas no Brasil (coletado em http://dados.gov.br/dataset/cias-abertas), de forma que cada registro indique uma companhia aberta. Campos de tamanho fixo: CNPJ (CNPJ de cadastro da companhia), dataregistro (data em que a companhia foi registrada sob o CNPJ), datacancelamento (data em que a companhia foi fechada), CNPJauditor (CNPJ da empresa que presta auditoria para a companhia). Campos de tamanho variável: nomesocial (nome no qual foi registrado o CNPJ), nomefantasia (nome fantasia da companhia), motivocancelamento (razão pela qual a companhia foi fechada), nomeempresa (nome da empresa que presta auditoria). Organização do arquivo de dados Deve ser considerada a organização híbrida de campos e registros, da seguinte forma: Turma A. Campos de tamanho fixo e campos de tamanho variável. Para os campos de tamanho variável, deve-se usar o método indicador de tamanho. Registros de tamanho variável. Para os registros de tamanho variável, deve-se usar o método delimitadores entre registros. Turma B. Campos de tamanho fixo e campos de tamanho variável. Para os campos de tamanho variável, deve-se usar o método delimitadores entre campos. Registros de tamanho variável. Para os registros de tamanho variável, deve-se usar o método delimitadores entre registros.

Importante. A forma de armazenamento da organização híbrida deve ser respeitada. Isso significa que os grupos devem garantir o armazenamento correto requerido pela organização híbrida. Programa Implemente um programa em C que ofereça as seguintes funcionalidades. [1] Ofereça uma interface por meio da qual o usuário possa escolher a funcionalidade a ser realizada. [2] Permita a leitura de vários registros obtidos a partir de um arquivo de entrada e a gravação desses registros em três arquivos de dados de saída. O arquivo de entrada será fornecido juntamente com a especificação do projeto, enquanto que o arquivo de dados de saída deverá ser gerado como parte deste trabalho prático. Note que essa funcionalidade é a mesma que a solicitada na Parte I do Trabalho Prático. Porém, na Parte II do Trabalho Prático, devem ser gerados três arquivos de dados de saída. Ou seja, arquivo de saída 1 arquivo de entrada (.csv) arquivo de saída 2 arquivo de saída 3 Note que os arquivos de saída gerados na funcionalidade 2 serão iguais. [3] Para cada arquivo de dados de saída, crie um índice primário sobre o campo ticket (Turma A) ou sobre o campo CNPJ (Turma B). Considere que o índice somente deve ser criado depois que os arquivos de dados de saída estiverem criados. Ou seja, para o arquivo de saída 1, crie um índice primário 1 sobre o campo ticket (Turma A) ou sobre o campo CNPJ (Turma B)

para o arquivo de saída 2, crie um índice primário 2 sobre o campo ticket (Turma A) ou sobre o campo CNPJ (Turma B) para o arquivo de saída 3, crie um índice primário 3 sobre o campo ticket (Turma A) ou sobre o campo CNPJ (Turma B) Note que os arquivos de índice gerados na funcionalidade 3 serão iguais. [4] Permita a remoção lógica de registros dos arquivos de dados de saída. Essa funcionalidade deve ser desenvolvida da seguinte forma. Primeiramente, o usuário deve indicar um valor para o campo ticket (Turma A) ou para o campo CNPJ (Turma B). Na sequência, para cada arquivo de dados de saída deve-se: (i) buscar o registro desejado usando-se o índice primário correspondente; (ii) realizar a remoção lógica do registro desejado no arquivo de dados; (iii) realizar a remoção física da entrada correspondente no arquivo de índice; e (iv) mostrar uma mensagem informando o sucesso ou não da remoção. [5] Permita a inserção de registros adicionais, com reaproveitamento dinâmico do espaço de registros logicamente removidos. As seguintes estratégias de alocação devem ser usadas: para o arquivo de saída 1, deve-se usar a estratégia de alocação first-fit, sem ordenação da lista de registros removidos, com tratamento da fragmentação interna, e sem realizar a junção de espaços vazios adjacentes para o arquivo de saída 2, deve-se usar a estratégia de alocação best-fit, com ordenação crescente da lista de registros removidos, com tratamento da fragmentação interna, e sem realizar a junção de espaços vazios adjacentes para o arquivo de saída 3, deve-se usar a estratégia de alocação worst-fit, com ordenação decrescente da lista de registros removidos, com tratamento da fragmentação interna, e sem realizar a junção de espaços vazios adjacentes. Para cada registro a ser inserido, essa funcionalidade deve ser desenvolvida da seguinte forma. Primeiramente, o usuário deve indicar o registro a ser inserido. Na sequência, para cada arquivo de dados de saída deve-se: (i) inserir o registro desejado no arquivo de dados; (ii) inserir sua entrada correspondente no arquivo de índice; e (iii) mostrar uma mensagem informando o sucesso ou não da remoção.

[6] Permita a visualização de estatísticas sobre os arquivos de índice. Essa funcionalidade deve exibir uma tabela que mostra, para cada índice primário, a quantidade de entradas que ele possui. Também deve ser permitida a exibição dos registros dos três índices simultaneamente, possibilitando a visualização das semelhanças e das diferenças existentes entre eles. Caso a visualização dos índices seja textual, os dados devem ser mostrados de forma organizada na saída padrão para permitir a distinção dos campos e registros, sendo que deve-se permitir a visualização dos registros, um por vez. O grupo também pode optar por fazer uma visualização gráfica dos índices. Por exemplo, a visualização gráfica pode ser feita por meio de tabelas, uma tabela para cada índice. [7] Permita a visualização de estatísticas sobre as listas de registros removidos. Essa funcionalidade deve exibir uma tabela que mostra, para cada arquivo de dados, a quantidade de elementos presentes em sua lista de registros removidos. Adicionalmente, a funcionalidade também deve permitir a visualização gráfica de cada lista de registros removidos de cada arquivo de dados, contendo informações sobre o byte offset e o tamanho do registro removido, bem como o byte offset do próximo registro. Por exemplo, uma visualização gráfica interessante é: byte offset do registro removido tamanho do registro removido... 200 48 10 60 945 89

Restrições As seguintes restrições têm que ser garantidas no desenvolvimento do trabalho. [1] Os arquivos de dados e os arquivos de índice devem ser gravados em disco no modo binário. O modo texto não deve ser usado. [2] Os dados do registro descrevem os nomes dos campos, os quais não podem ser alterados. Ademais, todos os campos devem estar presentes na implementação, e nenhum campo adicional pode ser incluído. O tamanho de cada campo deve ser determinado pelo grupo. Essa escolha deve ser explicada na documentação externa. [3] Devem ser exibidos avisos ou mensagens de erro sempre que apropriado. [4] Os dados devem ser escritos e lidos campo a campo. Pode-se usar também a serialização (memcpy). [5] Os arquivos de índice devem ser mantidos em disco, mas devem ser carregados em memória primária e serem usados em memória primária durante a execução do programa. Nesse sentido, devem ser implementadas funcionalidades que garantam a reescrita correta do índice em disco. [6] Os integrantes do grupo devem constar como comentário no início do código (i.e. NUSP e nome de cada integrante do grupo). Não será atribuída nota ao aluno cujos dados não constarem no código fonte. [7] Todo código fonte deve ser documentado. A documentação interna inclui, dentre outros, a documentação de procedimentos, de funções, de variáveis, de partes do código fonte que realizam tarefas específicas. Ou seja, o código fonte deve ser documentado tanto em nível de rotinas quanto em nível de variáveis e blocos funcionais.

[8] A interface pode ser feita em modo texto (terminal) ou modo gráfico e deve ser funcional. [9] A implementação deve ser realizada usando a linguagem de programação C. As funções das bibliotecas <stdio.h> devem ser utilizadas para operações relacionadas à escrita e leitura dos arquivos. A implementação não deve ser feita em qualquer outra linguagem de programação. O programa deverá compilar no GCC versão 4.8.2 ou superior para Linux. [9] O programa deve ser acompanhado de uma documentação externa. A documentação externa deve conter a descrição dos principais conceitos usados no trabalho prático, as decisões de projeto e as suas justificativas (ex.: estruturas de dados e algoritmos usados), assim como qualquer outra consideração adicional assumida no desenvolvimento do trabalho prático. Em detalhes, a documentação externa deve possuir: CAPA, com as seguintes informações: o nome da instituição, o nome do curso, o nome da disciplina, o nome do professor responsável, o nome do trabalho prático, o nome dos participantes e os respectivos números USP, e a data de entrega do trabalho prático. ÍNDICE, listando os nomes das seções que compõem o trabalho prático e as suas respectivas páginas de início. SEÇÕES 1 a N: Quaisquer decisões de projeto. Em detalhes, a documentação referente a essas seções deve conter a descrição dos principais conceitos usados no trabalho prático, incluindo desenhos que facilitem a compreensão das estruturas de dados, as decisões de projeto e as suas justificativas, assim como qualquer outra consideração adicional assumida no desenvolvimento do trabalho prático. Todas as funcionalidades do programa devem ser descritas em detalhes. Por exemplo, na Parte I do trabalho, deve ser feita a descrição dos campos dos registros do arquivo de dados, contendo os nomes dos campos, os tamanhos dos campos e um desenho que mostra visualmente a estrutura dos registros. A escolha dos tamanhos dos campos deve ser justificada. A escolha dos tamanhos dos campos, bem como dos campos propriamente ditos, deve ser

justificada. Coloque aqui também os sistemas operacionais que foram usados e como o programa deve ser compilado e executado. SEÇÃO N+1: Cópias de telas da interface, por meio das quais é possível entender o funcionamento do programa. SEÇÃO N+2: Baterias de testes, as quais devem gerar informações que permitam acompanhar a execução do programa. REFERÊNCIAS BIBLIOGRÁFICAS, caso necessário. Material para Entregar Arquivo compactado. Deve ser preparado um arquivo.zip contendo: Código fonte do programa devidamente documentado. Makefile para a compilação do programa. Bibliotecas necessárias para a execução do programa. Documentação externa em formato.pdf. Instruções de entrega. [1] Enviar o arquivo compactado para o e-mail labbdciferri@gmail.com, com o seguinte assunto: [Organização de Arquivos] Trabalho Prático 2017 Turma X Parte Y. Deve constar no corpo da mensagem o NUSP e nome de cada integrante do grupo. Não será atribuída nota ao aluno cujos dados não constarem no corpo da mensagem. [2] Entregar pessoalmente a documentação externa impressa em horário e local definido na página da disciplina. Critério de Correção Critério de avaliação do trabalho. Na correção do trabalho, serão ponderados os seguintes aspectos. Qualidade da documentação (interna e externa) entregue. MAIOR PESO

Corretude da execução do programa. MAIOR PESO Qualidade da interface. Restrições adicionais sobre o critério de correção. A não execução de um programa devido a erros de compilação implica que a nota final da parte do trabalho será igual a zero (0). A ausência da documentação interna implica que haverá uma diminuição expressiva na nota do trabalho. A ausência da documentação externa implica que haverá uma diminuição expressiva na nota do trabalho. A inserção de palavras ofensivas nos arquivos e em qualquer outro material entregue implica que a nota final da parte do trabalho será igual a zero (0). Em caso de cola, as notas dos trabalhos envolvidos será igual a zero (0). Critério de avaliação dos integrantes. Podem ser incluídas uma ou mais perguntas a respeito do trabalho na prova. Data de Entrega do Trabalho Na data especificada na página da disciplina. Bom Trabalho!