Objectivos Aplica¸c˜ ao Web Scripts Auxiliares M´ etricas Frontend Terminal Interface - Powered by Perl Conclus˜ ao e trabalho futuro Perguntas SOPAS - Submiss˜ ao Online Para An´ alise de Software Jos´ e Pedro Silva Pedro Faria Ulisses Costa Engenharia de Linguagens Projecto integrado March 14, 2011 Jos´ e Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submiss˜ ao Online Para An´ alise de Software
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
SOPAS - Submissao Online Para Analise deSoftware
Jose Pedro Silva Pedro Faria Ulisses Costa
Engenharia de LinguagensProjecto integrado
March 14, 2011
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Index
1 Objectivos
2 Aplicacao WebImplementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
3 Scripts Auxiliares
4 Metricas
5 Frontend
6 Terminal Interface - Powered by Perl
7 Conclusao e trabalho futuro
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Ate agora:
Concretizado ate ao ınicio da segunda fase:
Descricao do sistema X
Modelacao formal e informal do problema X
Modelo de dados X
Inicio da implementacao e respectivo tool demo X
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Motivacao e Objectivos
Objectivos para segunda fase:
Terminar a aplicacao web- compilar e executar o codigo fonte submetido- guardar e apresentar resultados
Investigacao das metricas existentes
Scripts auxiliares
Exploracao de um frontend
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Implementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
Index
1 Objectivos
2 Aplicacao WebImplementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
3 Scripts Auxiliares
4 Metricas
5 Frontend
6 Terminal Interface - Powered by Perl
7 Conclusao e trabalho futuro
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Implementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
Index
1 Objectivos
2 Aplicacao WebImplementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
3 Scripts Auxiliares
4 Metricas
5 Frontend
6 Terminal Interface - Powered by Perl
7 Conclusao e trabalho futuro
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Implementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
Implementacao: ate a segunda fase
Ja implementado para o ultimo checkpoint:
Criacao de contas de utilizador (grupo)
Associacao de concorrentes a determinado grupo
Criacao de concursos
Criacao de enunciados (atraves da interface web ousubmetendo em formato xml)
Insercao de baterias de teste para os enunciados
Submissao de programas para avaliacao
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Implementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
Index
1 Objectivos
2 Aplicacao WebImplementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
3 Scripts Auxiliares
4 Metricas
5 Frontend
6 Terminal Interface - Powered by Perl
7 Conclusao e trabalho futuro
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Implementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
Implementacao: linguagens de programacao
Configuracao de linguagens de programacao:
Estando a linguagem correctamente configurada no servidor, esimples preparar o sistema de submissao para avaliar codigosubmetido nessa linguagem
Para isso basta inserir o comando usado para compilar e paraexecutar, que por exemplo, em C seria:String compilacao: gcc -O2 -Wall #{file}String de execucao default: ./a.outString de execucao para makefile: ./#{file}
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Implementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
Index
1 Objectivos
2 Aplicacao WebImplementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
3 Scripts Auxiliares
4 Metricas
5 Frontend
6 Terminal Interface - Powered by Perl
7 Conclusao e trabalho futuro
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Implementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
Implementacao: Compilacao
Caso seja necessario compilar o codigo fonte submetido, eusada a string de compilacao definida aquando daconfiguracao da linguagem
Se for submetido um ficheiro comprimido que inclua ummakefile, e executado o comando make e, o nome doexecutavel criado e obtido a partir de um script perl
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Implementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
Index
1 Objectivos
2 Aplicacao WebImplementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
3 Scripts Auxiliares
4 Metricas
5 Frontend
6 Terminal Interface - Powered by Perl
7 Conclusao e trabalho futuro
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Implementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
Implementacao: Execucao
Para executar o programa para os diferentes inputs, e usada astring de execucao simples (no caso de ser submetido apenasum ficheiro) ou a string de execucao para makefile (no casode ser submetido um makefile)
Para cada input o comando e corrido uma vez
O output e capturado e comparado com o esperado
E guardada a percentagem de testes no qual o codigosubmetido passou
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Implementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
Implementacao: Apresentacao de resultados
A qualquer altura o utilizador pode consultar os resultados dasultimas submissoes (suas ou dos restantes participantes)
Pode tambem consultar os seus melhores resultados, paracada enunciado
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Index
1 Objectivos
2 Aplicacao WebImplementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
3 Scripts Auxiliares
4 Metricas
5 Frontend
6 Terminal Interface - Powered by Perl
7 Conclusao e trabalho futuro
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Scripts auxiliares
Script (em Perl) para obter o nome do executavel gerado pelomakefile (para C)
Script (em Perl) que gera estatısticas relativamente aquantidade de ficheiros submetidos para cada linguagem deprogramacao
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Script makefile.pl
Utiliza o modulo perl Makefile::Parser para fazer parse domakefile, e obter o nome do executavel gerado
No caso de nao ser definido um nome para o output, retornaa.out
TODO: Suportar mais linguagens par alem do C.
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Script count.pl
Dada uma pasta, explora recursivamente os seus directorios, eextraı varias estatisticas relativas a quantidade de numero delinhas
Numero de linhas de codigo por linguagemNumero de linhas comentadas por linguagemRacio entre linhas de codigo e numero de ficheiros para cadalinguagemPercentagem de linguagem mais usadas no projecto...
Utiliza o modulo perl GD para gerar graficos
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Index
1 Objectivos
2 Aplicacao WebImplementacao: ate a segunda faseImplementacao: linguagens de programacaoImplementacao: CompilacaoImplementacao: Execucao
3 Scripts Auxiliares
4 Metricas
5 Frontend
6 Terminal Interface - Powered by Perl
7 Conclusao e trabalho futuro
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Analise Dinamica
Log analysis extrair informacao dos logs
Testing investigar comportamento atraves de casos
Debugging bom para detectar defeitos
Instrumentation monitorizar e medir o nıvel de performance
Profiling investigacao sobre o comportamento de um programa(CPU, mem)
Benchmarking comparacao de medidas
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Analise Estatica
Syntax checking atestar a correccao da linguagem
Type checking garantir restricao dos tipos
Decompilation inferir ou descobrir codigo atraves de binario
Code metrics tirar conclusoes sobre a qualidade
Style checking verificar determinadas regras que se acredita seremboas practicas
Verification reverse engineering verificar se a implementacaocumpre a especificacao
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro
Perguntas
Metricas de qualidade de software
Line Coverage =Nr of test lines
nr of tested lines
Decision coverage =Nr of test methods
Sum of McCabe complexity
Test granularity =Nr of test lines
nr of tests
Test efficiency =Decision coverage
line coverage
Jose Pedro Silva, Pedro Faria, Ulisses Costa SOPAS - Submissao Online Para Analise de Software
ObjectivosAplicacao Web
Scripts AuxiliaresMetricasFrontend
Terminal Interface - Powered by PerlConclusao e trabalho futuro