engsoft

Upload: daniel-macario

Post on 04-Feb-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/21/2019 Engsoft

    1/16

    Universidade Federal do Esprito Santo

    Centro Tecnolgico

    Departamento de Informtica

    Programao Aplicada de Computadores

    (INF 09324) 2014/2

    Prof. Vtor E. Silva Souza0

    !"#$%&'&%()*+ -+ ./(0(12+ 3/45&%+

    O trabalho prtico da disciplina consiste em desenvolver um sistema computacional parasoluo do problema descrito abaixo na linguagem de programao Java, inicialmente seminteratividade com o usurio e posteriormente adicionando interface grfica interativa.

    1.

    Descrio do problema

    Uma revista de informtica, a EngeSoft, deseja um novo sistema para gerenciar suasatividades. EngeSoft publicada mensalmente, sendo que uma edio tem diversosartigos, todos versando sobre um mesmo tema. Por exemplo, a edio deste ms sobreo tema Qualidade de Software, tendo oito artigos. De uma edio deseja-se saber o

    volume, nmero, data prevista de publicao, tema e artigos submetidos.Autores submetem artigos para uma edio especfica. De um artigo deseja-se saber osautores e o ttulo. Os autores devem informar, alm de seus nomes, e-mails e asinstituies a que pertencem, com endereo. Para artigos com mais de um autor, deve serindicado um autor como contato.

    Para avaliar os artigos submetidos publicao, a EngeSoft possui um conjunto decolaboradores que avaliam artigos (chamados revisores). Dos revisores deseja-se saber onome, e-mail, instituio e temas para os quais est habilitado a avaliar artigos.

    Essas informaes so usadas para distribuir os artigos para os colaboradores. Cada artigo

    obrigatoriamente avaliado por trs revisores, todos habilitados ao tema da ediocorrespondente, que atribuem notas de 0 a 10 (com at uma casa decimal) a trs itens:originalidade, contedo e apresentao. Com base nessas avaliaes que se decide seum artigo ser publicado ou no. Para simplificar, considere que um revisor obrigado aavaliar um artigo quando este lhe atribudo (ou seja, no pode haver cancelamento deatribuio).

    Artigos que j foram avaliados pelos seus trs revisores esto prontos para a seleo dequais artigos sero publicados na edio em questo, caso contrrio encontram-se aindaem avaliao. Apenas quando todos os artigos submetidos para uma edio tiverem sidoavaliados que a seleo pode ser efetuada. Esta seleo feita pelo editor-chefe da

    edio, escolhido previamente no conjunto de colaboradores. Finda a seleo, sabem-sequais artigos foram selecionados para publicao e quais foram rejeitados.

    A diretoria da revista EngeSoft gostaria de um sistema para auxiliar a tarefa do editor-chefe de cada edio. O sistema dever, dadas as avaliaes dos artigos, calcular asmdias das avaliaes e apresentar ao editor-chefe um relatrio dos artigos avaliados, porordem de mdia das avaliaes. So pedidos, ainda, alguns relatrios complementares,descritos nas prximas sees.

    O projeto de construo de um sistema para a revista EngeSoftse dar em duas etapas:na primeira etapa, os dados sero mantidos em planilhas eletrnicas e, quando todos os

    dados estiverem prontos, eles sero passados ao programa, que produzir relatrios deacordo com os dados fornecidos (vide seo 2). Numa segunda etapa, ser construdauma interface grfica com o usurio para que os dados sejam inseridos diretamente nonovo sistema, promovendo uma maior interatividade com o usurio.

  • 7/21/2019 Engsoft

    2/16

    Universidade Federal do Esprito Santo

    Centro Tecnolgico

    Departamento de Informtica

    Programao Aplicada de Computadores

    (INF 09324) 2014/2

    Prof. Vtor E. Silva Souza0

    2.Primeira etapa

    Para a primeira etapa, dever ser construdo um software sem interatividade, que efetua aleitura dos arquivos de entrada e produz automaticamente os relatrios de sada. Parauma transio mais lenta entre o sistema atual (manual) e um sistema completamenteinformatizado, foi combinado que os cadastros seriam feitos em planilhas eletrnicas aolongo do ms e, assim que estivessem completos (todas as informaes da edio), elesseriam passados ao software para gerao dos relatrios.

    Para o processamento destes dados e gerao dos relatrios desejados, um funcionriosda EngeSoft ir exportar os dados das planilhas para arquivos de texto simples comvalores separados por vrgulas, conhecido como CSV (Comma Separated Values). Noentanto, para evitar conflito com representao de valores decimais (ex.: 3,9), os dadossero exportados utilizando ponto-e-vrgula como separador (ex.: 123;456;9,5;7,8;8,0 representando que o revisor 123 avaliou o artigo 456 e atribuiu-lhe as notas 9,5; 7,8; e8,0).

    Para facilitar a leitura dos relatrios produzidos pelo programa, ser feita a importao dosdados dos relatrios do formato CSV para planilha eletrnica. Portanto, seu programadeve ser capaz de ler dados neste formato e gerar os relatrios tambm no mesmoformato.

    O restante desta seo especifica em detalhes como o software deve funcionar naprimeira etapa. A especificao encontra-se dividida em quatro partes: leitura dos dados,

    processamento, escrita dos relatrios e tratamento de excees.

    2.1.Leitura dos dados

    So cinco os arquivos de entrada de dados:

    Informaes da edio; Cadastro de temas; Cadastro de pessoas; Cadastro de artigos; Cadastro de revises.

    Os nomes dos arquivos so especificados durante a execuo do programa (vide Seo3). Abaixo encontra-se especificada a ordem que os dados devem aparecer em cada umdestes arquivos e os tipos de dados esperados. Note, no entanto, que todo arquivo CSVpossui uma linha de ttulo (a 1 linha) que no deve ser lida como dado, mas simdescartada. Consulte os exemplos disponveis junto ao script de testes.

    !"#$%&'()*+ -' *-.(/$

    Ao contrrio dos cadastros, o arquivo de informaes da edio no encontra-se emformato CSV. Ele contm informaes de uma nica edio (a que est sendo produzida)

  • 7/21/2019 Engsoft

    3/16

    Universidade Federal do Esprito Santo

    Centro Tecnolgico

    Departamento de Informtica

    Programao Aplicada de Computadores

    (INF 09324) 2014/2

    Prof. Vtor E. Silva Souza0

    e cada informao encontra-se em uma linha diferente. Volume e nmero so numricos

    (inteiros), data de publicao uma data no formato dia/ms/ano-com-4-dgitos e osdemais campos devem ser lidos como texto.

    0'-'+1%$ -* 1*&'+

    ;

    Os cdigos dos revisores so numricos (inteiros) e separados por vrgula. Nome deve serlido como texto.

    0'-'+1%$ -* 2*++$'+

    ;;;;;

    Cdigo numrico (inteiro), tipo deve ser A (para autor) ou R (para revisor) e os demaiscampos devem ser lidos como texto.

    0'-'+1%$ -* '%1.3$+

    ;;;

    Todos os cdigos so numricos (inteiros) e os cdigos dos autores so separados porvrgula. O cdigo do autor contato s obrigatrio quando o artigo tem mais de um autor.O ttulo deve ser lido como texto.

    0'-'+1%$ -* %*4.+)*+;;;;

    Todos os dados so numricos, sendo os cdigos inteiros e as notas nmeros reais comat 1 casa decimal.

    2.2.Processamento

    Lidos todos os dados, o programa deve criar objetos em memria representando asinformaes contidas nos arquivos de entrada. Tais objetos devem estar ligados

    adequadamente, conforme as associaes entre as classes de objetos.Antes de proceder para os clculos e escrita dos relatrios, preciso efetuar umaverificao de consistncia dos dados. A tabela abaixo lista os possveis problemas deconsistncia que podem ocorrer e o que deve ser includo no relatrio de resumo (videprxima subseo) no caso dos dados no estarem consistentes.

    # Possvel inconsistncia A incluir no resumo

    1 O nome do tema em Informaes daediono existe no Cadastro de temas

    O tema "" no foiencontrado no cadastro.

    2 O nome do editor-chefe emInformaes da edio no existe noCadastro de pessoascomo um revisor.

    O editor-chefe ""no foi encontrado no cadastro.

  • 7/21/2019 Engsoft

    4/16

    Universidade Federal do Esprito Santo

    Centro Tecnolgico

    Departamento de Informtica

    Programao Aplicada de Computadores

    (INF 09324) 2014/2

    Prof. Vtor E. Silva Souza0

    # Possvel inconsistncia A incluir no resumo

    3 Revisores referenciados no Cadastro detemasno correspondem a revisores noCadastro de pessoas.

    O cdigo associado aotema "" no correspondea um revisor cadastrado.

    4 No h ao menos 3 revisores noCadastro de temas para o tema daedio em questo.

    O tema "" possui apenas revisores. So necessrios no mnimo3 revisores.

    5 Uma das pessoas no Cadastro depessoaspossui tipo diferente de A ou R.

    O tipo de "" no umtipo vlido: .

    6 Autores referenciados no Cadastro deartigosno correspondem a autores noCadastro de pessoas.

    O cdigo associado ao

    artigo "" no correspondea um autor cadastrado.

    7 O autor de contato no Cadastro deartigosno um dos autores do artigoem questo.

    O autor ""()informado como autor de contato nocorresponde a um dos autores do artigo"".

    8 Revisores referenciados no Cadastro derevises no correspondem a revisores

    no Cadastro de pessoas.

    O cdigo encontradono cadastro de revises no corresponde a

    um revisor cadastrado.9 Artigos referenciados no Cadastro de

    revisesno se encontram no Cadastrode artigos.

    O cdigo encontrado nocadastro de revises no corresponde a umartigo cadastrado.

    10

    Revisores referenciados no Cadastro derevises no esto aptos a revisarartigos do tema da edio.

    O revisor "" avaliou oartigo "", porm ele noconsta como apto a revisar o tema "", desta edio.

    11 No h exatamente trs revises para

    cada artigo no Cadastro de revises.

    O artigo "" possui

    revises. Cada artigo deve ter exatamente 3revises.

    Alguns problemas de consistncia podem ocorrer mais de uma vez (ex.: se no cadastro derevises houver mais de um artigo com um nmero de revises diferente de 3, oproblema #11 ocorrer uma vez para cada artigo). Nesse caso devem ser includas norelatrio mltiplas mensagens, uma para cada ocorrncia do problema.

    Caso o programa passe a verificao de consistncia sem erros, ele dever calcular asestatsticas e as mdias das revises dos artigos de modo a possibilitar a escrita dos dados

    nos relatrios. Os dados exatos a serem calculados podem ser vistos na prxima seo,que descreve em detalhes o que deve ser escrito em cada relatrio.

  • 7/21/2019 Engsoft

    5/16

    Universidade Federal do Esprito Santo

    Centro Tecnolgico

    Departamento de Informtica

    Programao Aplicada de Computadores

    (INF 09324) 2014/2

    Prof. Vtor E. Silva Souza0

    2.3.Escrita dos relatrios

    So trs os arquivos de sada de dados, listados abaixo com seus respectivos nomes: Resumo: relat-resumo.txt; Relatrio de revises: relat-revisoes.csv; Relatrio de revisores: relat-revisores.csv.

    Abaixo encontra-se especificada a ordem que os dados devem aparecer em cada umdestes arquivos e os formatos que devem ser utilizados:

    5*+6&$

    EngeSoft, num. , volume - Tema: Editor-chefe:

    Consistncia dos dados:

    Artigos submetidos: Revisores capacitados: Revisores envolvidos: Mdia artigos/revisor:

    Ao contrrio dos relatrios, o resumo no deve ser escrito em formato CSV. Ele deve serescrito exatamente como acima, substituindo os termos entre < e > pelos valoresapropriados:

    Nmero de volume da edio devem ser impressos normalmente como nmeros,sem formatao especial;

    A data deve ser impressa no formato de . Por exemplo: Setembro de 2014;

    Tema e editor-chefe devem ser impressos normalmente como texto, semformatao especial;

    O campo deve ser substitudo pelas mensagens de erro geradas

    durante a validao da consistncia dos dados. As mensagens devem ser impressasno formato - Erro : , onde deve ser substitudo pelonmero do erro (vide 1 coluna da tabela de possveis inconsistncias, apresentadaanteriormente) e deve ser substituda pela mensagem de erro. Porexemplo:

    Consistncia dos dados:- Erro 8: O cdigo encontrado no cadastro derevises no corresponde a um revisor cadastrado.- Erro 11: O artigo Exemplo de Artigo possui 2 revises. Cadaartigo deve ter exatamente 3 revises.- Erro 11: O artigo Outro Exemplo de Artigo possui 4 revises.

    Cada artigo deve ter exatamente 3 revises.

  • 7/21/2019 Engsoft

    6/16

    Universidade Federal do Esprito Santo

    Centro Tecnolgico

    Departamento de Informtica

    Programao Aplicada de Computadores

    (INF 09324) 2014/2

    Prof. Vtor E. Silva Souza0

    As mensagens de erro devem ser ordenadas primeiramente pelo nmero do erro e,

    em seguida (para erros de mesmo nmero), em ordem alfabtica; Caso no haja nenhum problema de consistncia, o campo deve ser substitudo por - Nenhum problema encontrado.;

    Por fim, os nmeros inteiros nas estatsticas devem ser impressos normalmente,sem formatao, enquanto a mdia de artigos por revisor deve ser impressa com 2casas decimais.

    Caso haja qualquer problema de consistncia, as estatsticas ao final do resumo e osdemais relatrios no devem ser gerados. O programa gera s o resumo e s at alista de inconsistncias.

    5*7'18%.$ -* %*4.+)*+;;;;;

    O relatrio de revises deve ser escrito em CSV e conter as informaes de um artigo porlinha. O ttulo do artigo, o autor de contato e os nomes dos revisores devem ser escritoscomo texto, sem formatao especial. A mdia deve ser formatada para ter apenas 2casas decimais e usar separao com vrgula (brasileira). Os revisores de uma mesmalinha do arquivo devem aparecer em ordem alfabtica. O arquivo como um todo deve serordenado em ordem decrescente de mdia. Em caso de empate, ordene alfabeticamentepelo ttulo do artigo.

    5*7'18%.$ -* %*4.+$%*+

    ;;

    O relatrio de revisores deve conter apenas os revisores que participaram da edio, ouseja, que revisaram artigos. Eles devem ser includos no relatrio em ordem alfabtica dosnomes, que devem ser escritos normalmente, sem formatao. O nmero de artigosrevisados um nmero inteiro e tambm no necessita de formatao. A mdia das notasatribudas deve ser formatada com 2 casas decimais e separao com vrgula.

    2.4.Tratamento de excees

    Leitura de dados de arquivos, formatao, etc. so fontes comuns de erros e excees.Seu programa deve tratar apenasos seguintes tipos de erro:

    1. Erros de entrada e sada de dados como, por exemplo, o arquivo especificado noexistir ou o programa no ter permisso para ler ou escrever em um arquivo.Nestes casos, o programa deve exibir a mensagem Erro de I/O (sem as aspas);

    2. Erro de formatao dos dados nos arquivos, ou seja, um valor formatado de formaincorreta nos arquivos de entrada (ex.: encontrado caractere onde esperava-se umnmero), causando erros de parsing dos dados. Nestes casos, o programa deve

    exibir a mensagem Erro de formatao (sem as aspas).No programa sem interatividade, as mensagens devem ser impressas na tela e oprograma deve ser terminado em seguida. No caso do programa com interface grfica, as

  • 7/21/2019 Engsoft

    7/16

    Universidade Federal do Esprito Santo

    Centro Tecnolgico

    Departamento de Informtica

    Programao Aplicada de Computadores

    (INF 09324) 2014/2

    Prof. Vtor E. Silva Souza0

    mensagens devem ser exibidas de alguma forma na interface com o usurio e o programa

    deve continuar rodando, permitindo que o usurio modifique os parmetros.Quaisquer outras situaes de erro possveis devem ser ignoradas. Pode-se assumir quenos testes feitos durante a avaliao dos trabalhos outros tipos de erros diferentes doslistados acima nunca acontecero.

    3.Execuo (primeira etapa)

    Esta seo descreve como o programa deve ser executado aps a primeira etapa (ou seja,sem interface grfica com o usurio). Seu programa deve ser executado especificando osnomes dos arquivos de entrada como opes de linha de comando, especificadas a seguir:

    -e : informaes da edio; -t : cadastro de temas; -p : cadastro de pessoas; -a : cadastro de artigos; -r : cadastro de revises.

    Apesar do uso do pacote defaultno ser recomendado, para efeito dos exemplos abaixovamos supor que a classe do seu programa que possui o mtodomain()chama-se Maine encontra-se no pacote default. Portanto, para executar seu programa lendo os arquivosedicao.txt, temas.csv, pessoas.csv, artigos.csv, revisoes.csv como arquivos de entrada, o

    comando seria:java Main -e edicao.txt -t temas.csv -p pessoas.csv -aartigos.csv -r revisoes.csv

    Recuperao de pontos1: alm dos parmetros acima, possvel recuperar pontosperdidos: basta que seu programa aceite dois parmetros opcionais que estabelecem trsmodos de execuo diferentes. Neste caso, o programa deve poder ser chamado das trsformas, como a seguir:

    a) java Main -e edicao.txt -t temas.csv -p pessoas.csv -a

    artigos.csv -r revisoes.csv: quando no forem especificadas opes deexecuo, o programa deve ler os arquivos de entrada, gerar os relatrios eescrev-los nos arquivos de sada, como descrito anteriormente;

    b) java Main --read-only -e edicao.txt -t temas.csv -ppessoas.csv -a artigos.csv -r revisoes.csv: quando especificada aopo --read-only, o programa deve ler os arquivos de entrada, montar asestruturas de objetos em memria e serializar essas estruturas em um arquivochamado engesoft.dat. Os relatrios no devem ser gerados neste caso;

    c) java Main --write-only: quando especificada esta opo, o programa devecarregar os objetos serializados no arquivo engesoft.dat, gerar os relatrios eescrev-los nos arquivos de sada. Neste caso no h leitura de arquivo CSV.

    1Recupera pontos perdidos, o que significa que a nota do trabalho no poder ultrapassar o valor mximode 10 pontos.2 Para saber mais sobre Hash MD5, visite sua pgina na Wikipedia:https://pt.wikipedia.org/wiki/MD5#Hashes_MD5

  • 7/21/2019 Engsoft

    8/16

    Universidade Federal do Esprito Santo

    Centro Tecnolgico

    Departamento de Informtica

    Programao Aplicada de Computadores

    (INF 09324) 2014/2

    Prof. Vtor E. Silva Souza0

    Note que as opes de execuo podem ser passadas em qualquer ordem. Portanto, ocomando

    java Main --read-only -e edicao.txt -t temas.csv -ppessoas.csv -a artigos.csv -r revisoes.csv

    equivalente a:

    java Main -r revisoes.csv -p pessoas.csv -e edicao.txt --read-only -t temas.csv -a artigos.csv

    4.

    Segunda etapa

    A segunda etapa consiste na criao de uma interface grfica com o usurio (GUI) quesubstitua a execuo do programa conforme vista na seo 3 (chamada via terminal/linhade comando) por uma forma mais interativa.

    Ao ser executado sem parmetros (ex.: java Main) seu programa deve abrir uma janelaque permita ao usurio indicar os arquivos de entrada, executar o programa, ver osarquivos de sada e qualquer outra interao que seja necessria para executar asfuncionalidades desenvolvidas na primeira etapa.

    A segunda etapa do trabalho ser apresentada ao professor por meio de entrevista,conforme descrito na seo 5.3.

    5.Condies de entrega

    O trabalho deve ser feito obrigatoriamente em dupla e em duas verses, ambas em Java:uma sem interatividade (primeira etapa) e outra com interface grfica (segunda etapa). Oprimeiro deve ser entregue at o dia 07/12/2014, enquanto o segundo deve serapresentado ao professor (por meio de entrevista) at o dia 15/12/2014,impreterivelmente.

    Alunos que no fizerem o trabalho em dupla sofrero penalidade de 2 pontos na nota dotrabalho. No caso de haver um nmero mpar de alunos matriculados, o professor indicarum aluno que poder, a seu critrio, fazer o trabalho sozinho ou juntar-se a uma duplapara formar um trio. As duplas para os trabalhos 1 e 2 devem ser as mesmas. No caso dedesistncia de aluno, o aluno que se encontrar sozinho para o trabalho 2 deve informar aoprofessor para que a situao possa ser solucionada.

    Dado que existem vrias verses dos compiladores Java, fica determinado o uso dasverses instaladas nas mquinas do LCEE como verses de referncia para o trabalhoprtico. Seu trabalho deve compilar e executar corretamente nas mquinas do LCEE. Almdisso, os arquivos de cdigo-fonte devem estar em arquivos codificados com Unicode(UTF-8) para evitar erros de compilao.

  • 7/21/2019 Engsoft

    9/16

    Universidade Federal do Esprito Santo

    Centro Tecnolgico

    Departamento de Informtica

    Programao Aplicada de Computadores

    (INF 09324) 2014/2

    Prof. Vtor E. Silva Souza0

    5.1.Entrega do trabalho sem interatividade (correo automtica)

    Para o trabalho da primeira etapa (vide sees 2 e 3), sua soluo dever ser compactadae enviados por e-mail (anexo ao e-mail) para o monitor da disciplina([email protected]) e com cpia para o professor ([email protected]). Seroaceitos (sem penalidade) trabalhos entregues at as 23h59 da data limite. O assunto doe-mail dever ser o seguinte:

    PAC - Trab1 - Nomes dos alunos

    substituindo Nomes dos alunospelos nomes completos dos alunos do grupo, separadopor vrgula.

    Assim que possvel, o monitor responder o e-mail com um hash MD52

    do arquivorecebido. Para garantir que o arquivo foi recebido sem ser corrompido, gere o hashMD5do arquivo que voc enviou3e compare com o hashrecebido na confirmao. Caso vocno receba o e-mail de confirmao ou caso o valor do hash seja diferente, envie otrabalho novamente. Se o problema persistir, contate o professor o mais rpido possvel.

    Dada a quantidade de trabalhos que devem ser avaliados, a correo dos trabalhos daprimeira etapa passar por um processo de testes automticos. Para que os testesautomticos funcionem, o arquivo compactado enviado por e-mail deve estar no formatozipcom o nome trabalho.zipe conter o arquivo de build(explicaes a seguir) e ocdigo-fonte. O arquivo enviado no deve conter nenhuma classe compilada. Os testes

    automticos sero executados no diretrio onde encontra-se o arquivo de build. O cdigo-fonte pode ser organizado da forma que a dupla achar melhor, desde que o arquivo debuildesteja adequado a esta estrutura.

    5.2.Preparao e execuo do script de testes

    O trabalho prtico da disciplina ser avaliado em duas etapas (vide seo 6), sendo aprimeira uma avaliao objetiva, com testes automticos. Foi disponibilizado aos alunosum script para execuo de alguns testes automticos, sendo portanto possvel garantirque o trabalho passa nesses testes antes de submet-lo ao professor.

    O script de teste funciona somente em ambientes Linux/MacOS e foi testado no LCEE.Recomenda-se fortemente que os testes finais do seu trabalho sejam feitos no LCEE, poisas verses das ferramentas instaladas nas mquinas do laboratrio sero consideradascomo verses de referncia para a correo do trabalho.

    Para obter e executar o script, siga os passos abaixo:

    1. Na pgina da disciplina, obtenha o arquivo teaching-br-pac-20142-script-java.zip;2. Descompacte o arquivo em alguma pasta do seu sistema;

    2 Para saber mais sobre Hash MD5, visite sua pgina na Wikipedia:https://pt.wikipedia.org/wiki/MD5#Hashes_MD53 Para gerar hash MD5 de arquivos no Linux, veja as instrues emhttp://roneymedice.com.br/2009/07/30/gerando-hash-md5-dos-arquivos-no-linux/ . J na pginahttp://www.mundodoshackers.com.br/como-gerar-e-checar-hashs-md5 voc encontra instrues tambmpara Windows (porm os exemplos mostram gerao de hash para strings, no para arquivos).

  • 7/21/2019 Engsoft

    10/16

    Universidade Federal do Esprito Santo

    Centro Tecnolgico

    Departamento de Informtica

    Programao Aplicada de Computadores

    (INF 09324) 2014/2

    Prof. Vtor E. Silva Souza0

    3.Abra um terminal, acesse esta pasta;

    4.

    Execute o script: ./test.she o resultado deve ser parecido com a sada abaixo:

    $ ./test.shScript de teste PAC 2014/2 - Trabalho 1

    $

    O script reconhece trabalhos se forem colocados em pastas no mesmo diretrio em que seencontra o script test.sh e se os trabalhos seguirem as instrues contidas a seguir.Note que h j uma pasta testes, que contm os arquivos de teste executados pelo

    script. O script j configurado a no considerar esta pasta como uma pasta de trabalho.No exemplo abaixo, o comando lsmostra que h um diretrio professor dentro do qualencontra-se a implementao do trabalho do professor. Em seguida, mostra a execuodo script de testes sem erro algum:

    $ ls -Flpahtotal 8drwxr-xr-x 5 vitor wheel 170B May 30 18:00 ./drwxr-xr-x@ 55 vitor wheel 1.8K May 30 17:54 ../drwxr-xr-x 4 vitor wheel 136B May 30 12:30 professor/-rwxr-xr-x@ 1 vitor wheel 2.0K May 30 17:57 test.sh

    drwxr-xr-x 6 vitor wheel 204B May 30 17:24 testes/

    $ ./test.shScript de teste PAC 2014/2 - Trabalho 1

    [I] Testando professor...[I] Testando professor: teste 01[I] Testando professor: teste 01, tudo OK em relat-resumo.txt[I] Testando professor: teste 01, tudo OK em relat-revisoes.csv[I] Testando professor: teste 01, tudo OK em relat-revisores.csv[I] Testando professor: teste 02[I] Testando professor: teste 02, serializao OK![I] Testando professor: teste 03[I] Testando professor: teste 03, serializao OK![I] Testando professor: teste 03, tudo OK em relat-resumo.txt[I] Testando professor: teste 03, tudo OK em relat-revisoes.csv[I] Testando professor: teste 03, tudo OK em relat-revisores.csv[I] Testando professor: teste 04[I] Testando professor: teste 04, tudo OK em relat-resumo.txt[I] Testando professor: teste 05[I] Testando professor: teste 05, tudo OK em relat-resumo.txt[I] Testando professor: teste 06[I] Testando professor: teste 06, tudo OK em relat-resumo.txt

    [I] Testando professor: pronto!$

  • 7/21/2019 Engsoft

    11/16

    Universidade Federal do Esprito Santo

    Centro Tecnolgico

    Departamento de Informtica

    Programao Aplicada de Computadores

    (INF 09324) 2014/2

    Prof. Vtor E. Silva Souza0

    O script compara cada arquivo de sada gerado pelo trabalho do aluno com o arquivo de

    sada gerado pela implementao do professor. No exemplo acima, nenhum erro foiencontrado e tudo est OK. Quando diferenas so encontradas, as mesmas somostradas na tela e implicam perda de pontos na correo automtica. O aluno deve,portanto, tentar reduzir o nmero de diferenas ao mximo possvel antes de entregar otrabalho.

    Para testar o seu trabalho, crie uma pasta com um nome qualquer dentro do mesmodiretrio em que se encontra o script test.she copie seu cdigo-fonte para esta pasta.Alm do cdigo-fonte, crie um arquivo de builddo Apache Ant (http://ant.apache.org) queindique como compilar e executar seu programa.

    Os arquivos fonte podem estar organizados da forma que voc achar melhor, desde que o

    Ant consiga compil-los, executar as classes geradas e limpar o projeto. Para que isso sejafeito de forma automatizada, o arquivo de builddo Ant deve, obrigatoriamente, encontrar-se na raiz da pasta criada e chamar-se build.xml. Alm disso, ele deve ser feito deforma a responder aos seguintes comandos:

    Comando Resultado esperado

    ant compile O cdigo-fonte deve ser compilado, gerando os arquivos.class para todas as classes do trabalho.

    ant run O programa deve ser executado especificando as opes -eedicao.csv -t temas.csv -p pessoas.csv -a

    artigos.csv -r revisoes.csvcomo parmetro.ant run-read-only O programa deve ser executado no modo --read-only

    (ver seo 3), especificando alm disso as mesmas opesdo comando ant runacima.

    ant run-write-only O programa deve ser executado no modo --write-only(ver seo 3).

    ant clean Todos os arquivos gerados (classes compiladas, relatriosde sada, arquivo de serializao) e eventuais arquivos de

    entrada de dados devem ser excludos, sobrando somente ocontedo original do arquivo compactado (ou seja, ocdigo-fonte e o arquivo de build).

    Caso voc no implemente as opes read-onlye write-only, faa com que os respectivoscomandos funcionem da mesma forma que o comando run, ou seja, efetuem a execuonormal.

    Segue abaixo um exemplo de arquivo build.xmlque atende s especificaes acima.Em negrito encontram-se marcados os dados que devem ser adaptados dependendo do

    projeto: src: subpasta onde encontra-se todo o cdigo-fonte; bin: subpasta onde sero colocadas as classes compiladas;

  • 7/21/2019 Engsoft

    12/16

    Universidade Federal do Esprito Santo

    Centro Tecnolgico

    Departamento de Informtica

    Programao Aplicada de Computadores

    (INF 09324) 2014/2

    Prof. Vtor E. Silva Souza0

    meupacote.MinhaClassePrincipal: nome da classe principal do programa,

    ou seja, aquela que possui o mtodomain().

    Arquivo de build do trabalho de PAC, 2014/2.

  • 7/21/2019 Engsoft

    13/16

    Universidade Federal do Esprito Santo

    Centro Tecnolgico

    Departamento de Informtica

    Programao Aplicada de Computadores

    (INF 09324) 2014/2

    Prof. Vtor E. Silva Souza0

    Recuperao de pontos4:ser dado 1 ponto extra ao grupo que preparar e enviar aoprofessor, at o prazo do trabalho 1, dois conjuntos de arquivos de entrada (edicao.txt,

    temas.csv, pessoas.csv, artigos.csv e revisoes.csv) que atendam aos seguintes critrios: No conter trechos iguais a outros arquivos de teste disponveis no site;

    Conter o cadastro de pelo menos 5 temas, 5 revisores, 15 autores e 10 artigos;

    Os dois conjuntos de arquivos devem ser quase iguais: um deles no deve terinconsistncia nenhuma enquanto o outro deve apresentar de 2 a 4 inconsistncias(a escolha do grupo), de acordo com a tabela da seo 2.2.

    Os arquivos de teste enviados podero, a critrio do professor, ser disponibilizados aos

    demais alunos como parte do script de testes. Atualizaes do script sero divulgadas emsala de aula.

    5.3.Apresentao do trabalho em entrevista

    O trabalho completo (primeira e segunda etapas concludas) deve ser apresentado aoprofessor por meio de entrevista. Para tal, os alunos devem acessar o sistema demarcao de horrios YouCanBook.Me no seguinte endereo:

    https://vitorsouza.youcanbook.me

    4Idem seo 3.

  • 7/21/2019 Engsoft

    14/16

    Universidade Federal do Esprito Santo

    Centro Tecnolgico

    Departamento de Informtica

    Programao Aplicada de Computadores

    (INF 09324) 2014/2

    Prof. Vtor E. Silva Souza0

    Na tabela de horrios que se apresenta, cada dupla deve agendar um horrio, dentre os

    horrios disponveis, at a data limite (15/12/2014), com durao de 30 minutos efornecendo os dados solicitados pelo formulrio (nome e e-mail). Para o propsito dareunio, selecionar a opo Aluno(a) de Programao Aplicada de Computadores.

    Ateno aos seguintes detalhes sobre o agendamento:

    O sistema s permite agendamentos com antecedncia mnima de 8 horas (emxima de 2 semanas);

    O sistema bloqueia automaticamente horrios j reservados ou em que o professortenha outros compromissos;

    de responsabilidade do aluno achar um horrio disponvel. Planeje-se comantecedncia para evitar problemas de ltima hora (ex.: falta de horrios

    adequados).

    Uma vez agendada a reunio, os alunos devem comparecer sala do professor (Ufes, CT-7, 1 andar, sala 28) para a entrevista pontualmente no dia e hora marcados. Aapresentao do trabalho pode ser feita em computador porttil trazido pelos alunos ouno computador do professor. Em qualquer caso, os alunos devem tambm trazer ocdigo-fonte do trabalho em disco removvel (pen-drive) para o professor.

    A entrevista consiste em uma apresentao do trabalho em funcionamento feita pelosalunos, seguida de uma entrevista feita pelo professor. Na entrevista, os alunos sero

    questionados individualmentesobre detalhes do trabalho e sero avaliados com relaos respostas fornecidas. Os critrios de avaliao so descritos na seo a seguir.

    6.Critrios de avaliao

    O trabalho ser avaliado em duas etapas, conforme descrito na seo anterior:

    Avaliao objetiva com testes automticos, valendo 10 pontos; Avaliao subjetiva em entrevista, valendo 10 pontos.

    A nota final do trabalho a mdia aritmtica simples entre as notas acima. Para aavaliao objetiva, todo trabalho possui inicialmente nota 10 e sofre modificaes nassituaes descritas na tabela abaixo:

    Situao Modificao

    No observou as regras para envio do trabalho 1. -1

    No foi feito em dupla. -2

    No compilou nos testes automticos, mas foi possvel corrigirmanualmente (ex.: arquivos no codificados em UTF-8).

    -3

    No compilou nem manualmente. -10No gerou sadas nos testes automticos. -5

    No gerou sadas nem manualmente. -8

  • 7/21/2019 Engsoft

    15/16

    Universidade Federal do Esprito Santo

    Centro Tecnolgico

    Departamento de Informtica

    Programao Aplicada de Computadores

    (INF 09324) 2014/2

    Prof. Vtor E. Silva Souza0

    Situao Modificao

    Pequenas diferenas das sadas em relao ao teste automtico (ex.:formatao, arredondamentos, etc.).

    -1

    Grandes diferenas das sadas em relao ao teste automtico (ex.:valores sensivelmente diferentes). -2

    Entrega fora do prazo. -1 por dia

    Opes --read-only e --write-only funcionaram no testeautomtico.

    +2

    Para avaliao subjetiva, novamente os trabalhos comeam com nota 10 e perdem pontos(que variam de acordo com a avaliao feita pelo professor) caso no estejam bemescritos ou organizados. Critrios utilizados na avaliao subjetiva incluem (mas no estolimitados a):

    Uso dos princpios bsicos da orientao a objetos, como encapsulamento,abstrao e modularizao;

    Legibilidade (nomes de variveis bem escolhidos, cdigo bem formatado, uso decomentrios quando necessrio, etc.);

    Consistncia (utilizao de um mesmo padro de cdigo, sugere-se a conveno decdigo do Java: http://www.oracle.com/technetwork/java/codeconv-138413.html);

    Eficincia (sem exageros, tentar evitar grandes desperdcios de recursos); Uso eficaz da API Java (leitura com Scanner, API de colees, etc.) e das

    funcionalidades das novas verses da plataforma (ex.: tipos genricos, lao for-each, trycom recursos fechveis, etc.);

    Se o aluno sabe responder questes formuladas pelo professor durante a entrevistasobre o cdigo-fonte escrito pela dupla.

    7.Pontos extra5

    Para incentivar alunos que desejarem aprender contedos avanados da linguagem Java

    por conta prpria, so oferecidos pontos extra para os alunos que demonstrarem naentrevista final do trabalho que adicionaram uma ou mais das seguintes funcionalidadesao programa:

    Funcionalidade opcional Pontos extra

    Substituio da serializao descrita na seo 3 por armazenamentoem banco de dados utilizando a tecnologia JDBC.

    At 2 pontos

    5Apesar dos pontos extras permitirem que a nota do trabalho Java ultrapasse o valor mximo de 10 pontos,no clculo da mdia parcial do aluno, a nota mxima continua sendo 10, no podendo ser ultrapassada.

  • 7/21/2019 Engsoft

    16/16

    Universidade Federal do Esprito Santo

    Centro Tecnolgico

    Departamento de Informtica

    Programao Aplicada de Computadores

    (INF 09324) 2014/2

    Prof. Vtor E. Silva Souza0

    Substituio da serializao descrita na seo 3 por armazenamento

    em banco de dados utilizando alguma tecnologia de mapeamentoobjeto/relacional (ex.: Hibernate).

    At 2 pontos

    A coluna Pontos extra indica o mximo de pontos extra que podem ser obtidos pelaimplementao da funcionalidade extra correspondente. A pontuao exata serestabelecida pelo professor aps avaliado o cdigo, que deve ser explicado pelos alunos.

    8.Observaes finais

    Caso haja algum erro neste documento, sero publicadas novas verses e divulgadas

    erratas em sala de aula. responsabilidade do aluno manter-se informado, frequentandoas aulas ou acompanhando as novidades na pgina da disciplina na Internet.