SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Objectivos
                             Aplica¸˜o Web
                                    ca
                           Scripts Auxiliares
                                    M´tricas
                                       e
                                   Frontend
       Terminal Interface - Powered by Perl
               Conclus˜o e trabalho futuro
                        a
                                  Perguntas




SOPAS - Submiss˜o Online Para An´lise de
               a                a
               Software

       Jos´ Pedro Silva
          e                              Pedro Faria         Ulisses Costa

                              Engenharia de Linguagens
                                 Projecto integrado


                                  March 14, 2011



Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
   e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                               a                a
Objectivos
                                         Aplica¸˜o Web
                                                ca
                                       Scripts Auxiliares
                                                M´tricas
                                                   e
                                               Frontend
                   Terminal Interface - Powered by Perl
                           Conclus˜o e trabalho futuro
                                    a
                                              Perguntas

Index

  1   Objectivos

  2   Aplica¸˜o Web
            ca
        Implementa¸˜o:
                  ca          at´ ` segunda fase
                                 ea
        Implementa¸˜o:
                  ca          linguagens de programa¸˜o
                                                    ca
        Implementa¸˜o:
                  ca          Compila¸˜o
                                       ca
        Implementa¸˜o:
                  ca          Execu¸˜o
                                    ca

  3   Scripts Auxiliares

  4   M´tricas
       e

  5   Frontend

  6   Terminal Interface - Powered by Perl

  7   Conclus˜o e trabalho futuro
             a


          Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
             e                                              SOPAS - Submiss˜o Online Para An´lise de Software
                                                                           a                a
Objectivos
                                     Aplica¸˜o Web
                                            ca
                                   Scripts Auxiliares
                                            M´tricas
                                               e
                                           Frontend
               Terminal Interface - Powered by Perl
                       Conclus˜o e trabalho futuro
                                a
                                          Perguntas

At´ agora:
  e



   Concretizado at´ ao ´
                  e    ınicio da segunda fase:
       Descri¸˜o do sistema
             ca
       Modela¸˜o formal e informal do problema
             ca
       Modelo de dados
       ´
       Inicio da implementa¸˜o e respectivo tool demo
                           ca




        Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
           e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                       a                a
Objectivos
                                     Aplica¸˜o Web
                                            ca
                                   Scripts Auxiliares
                                            M´tricas
                                               e
                                           Frontend
               Terminal Interface - Powered by Perl
                       Conclus˜o e trabalho futuro
                                a
                                          Perguntas

Motiva¸˜o e Objectivos
      ca


   Objectivos para segunda fase:
       Terminar a aplica¸˜o web
                         ca
       - compilar e executar o c´digo fonte submetido
                                o
       - guardar e apresentar resultados
       Investiga¸˜o das m´tricas existentes
                ca       e
       Scripts auxiliares
       Explora¸˜o de um frontend
              ca




        Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
           e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                       a                a
Objectivos
                                         Aplica¸˜o Web
                                                ca
                                       Scripts Auxiliares   Implementa¸˜o:
                                                                      ca     at´ ` segunda fase
                                                                                ea
                                                M´tricas
                                                   e        Implementa¸˜o:
                                                                      ca     linguagens de programa¸˜o
                                                                                                   ca
                                               Frontend     Implementa¸˜o:
                                                                      ca     Compila¸˜o
                                                                                      ca
                   Terminal Interface - Powered by Perl     Implementa¸˜o:
                                                                      ca     Execu¸˜o
                                                                                   ca
                           Conclus˜o e trabalho futuro
                                    a
                                              Perguntas

Index

  1   Objectivos

  2   Aplica¸˜o Web
            ca
        Implementa¸˜o:
                  ca          at´ ` segunda fase
                                 ea
        Implementa¸˜o:
                  ca          linguagens de programa¸˜o
                                                    ca
        Implementa¸˜o:
                  ca          Compila¸˜o
                                       ca
        Implementa¸˜o:
                  ca          Execu¸˜o
                                    ca

  3   Scripts Auxiliares

  4   M´tricas
       e

  5   Frontend

  6   Terminal Interface - Powered by Perl

  7   Conclus˜o e trabalho futuro
             a


          Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
             e                                              SOPAS - Submiss˜o Online Para An´lise de Software
                                                                           a                a
Objectivos
                                         Aplica¸˜o Web
                                                ca
                                       Scripts Auxiliares   Implementa¸˜o:
                                                                      ca     at´ ` segunda fase
                                                                                ea
                                                M´tricas
                                                   e        Implementa¸˜o:
                                                                      ca     linguagens de programa¸˜o
                                                                                                   ca
                                               Frontend     Implementa¸˜o:
                                                                      ca     Compila¸˜o
                                                                                      ca
                   Terminal Interface - Powered by Perl     Implementa¸˜o:
                                                                      ca     Execu¸˜o
                                                                                   ca
                           Conclus˜o e trabalho futuro
                                    a
                                              Perguntas

Index

  1   Objectivos

  2   Aplica¸˜o Web
            ca
        Implementa¸˜o:
                  ca          at´ ` segunda fase
                                 ea
        Implementa¸˜o:
                  ca          linguagens de programa¸˜o
                                                    ca
        Implementa¸˜o:
                  ca          Compila¸˜o
                                       ca
        Implementa¸˜o:
                  ca          Execu¸˜o
                                    ca

  3   Scripts Auxiliares

  4   M´tricas
       e

  5   Frontend

  6   Terminal Interface - Powered by Perl

  7   Conclus˜o e trabalho futuro
             a


          Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
             e                                              SOPAS - Submiss˜o Online Para An´lise de Software
                                                                           a                a
Objectivos
                                     Aplica¸˜o Web
                                            ca
                                   Scripts Auxiliares   Implementa¸˜o:
                                                                  ca     at´ ` segunda fase
                                                                            ea
                                            M´tricas
                                               e        Implementa¸˜o:
                                                                  ca     linguagens de programa¸˜o
                                                                                               ca
                                           Frontend     Implementa¸˜o:
                                                                  ca     Compila¸˜o
                                                                                  ca
               Terminal Interface - Powered by Perl     Implementa¸˜o:
                                                                  ca     Execu¸˜o
                                                                               ca
                       Conclus˜o e trabalho futuro
                                a
                                          Perguntas

Implementa¸˜o: at´ ` segunda fase
          ca     ea


   J´ implementado para o ultimo checkpoint:
    a                     ´
       Cria¸˜o de contas de utilizador (grupo)
           ca
       Associa¸˜o de concorrentes a determinado grupo
              ca
       Cria¸˜o de concursos
           ca
       Cria¸˜o de enunciados (atrav´s da interface web ou
           ca                      e
       submetendo em formato xml)
       Inser¸˜o de baterias de teste para os enunciados
            ca
       Submiss˜o de programas para avalia¸˜o
              a                          ca



        Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
           e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                       a                a
Objectivos
                                         Aplica¸˜o Web
                                                ca
                                       Scripts Auxiliares   Implementa¸˜o:
                                                                      ca     at´ ` segunda fase
                                                                                ea
                                                M´tricas
                                                   e        Implementa¸˜o:
                                                                      ca     linguagens de programa¸˜o
                                                                                                   ca
                                               Frontend     Implementa¸˜o:
                                                                      ca     Compila¸˜o
                                                                                      ca
                   Terminal Interface - Powered by Perl     Implementa¸˜o:
                                                                      ca     Execu¸˜o
                                                                                   ca
                           Conclus˜o e trabalho futuro
                                    a
                                              Perguntas

Index

  1   Objectivos

  2   Aplica¸˜o Web
            ca
        Implementa¸˜o:
                  ca          at´ ` segunda fase
                                 ea
        Implementa¸˜o:
                  ca          linguagens de programa¸˜o
                                                    ca
        Implementa¸˜o:
                  ca          Compila¸˜o
                                       ca
        Implementa¸˜o:
                  ca          Execu¸˜o
                                    ca

  3   Scripts Auxiliares

  4   M´tricas
       e

  5   Frontend

  6   Terminal Interface - Powered by Perl

  7   Conclus˜o e trabalho futuro
             a


          Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
             e                                              SOPAS - Submiss˜o Online Para An´lise de Software
                                                                           a                a
Objectivos
                                     Aplica¸˜o Web
                                            ca
                                   Scripts Auxiliares   Implementa¸˜o:
                                                                  ca     at´ ` segunda fase
                                                                            ea
                                            M´tricas
                                               e        Implementa¸˜o:
                                                                  ca     linguagens de programa¸˜o
                                                                                               ca
                                           Frontend     Implementa¸˜o:
                                                                  ca     Compila¸˜o
                                                                                  ca
               Terminal Interface - Powered by Perl     Implementa¸˜o:
                                                                  ca     Execu¸˜o
                                                                               ca
                       Conclus˜o e trabalho futuro
                                a
                                          Perguntas

Implementa¸˜o: linguagens de programa¸˜o
          ca                         ca

   Configura¸˜o de linguagens de programa¸˜o:
           ca                           ca
       Estando a linguagem correctamente configurada no servidor, ´ e
       simples preparar o sistema de submiss˜o para avaliar c´digo
                                            a                o
       submetido nessa linguagem
       Para isso basta inserir o comando usado para compilar e para
       executar, que por exemplo, em C seria:
       String compila¸˜o: gcc -O2 -Wall #{file}
                      ca
       String de execu¸˜o default: ./a.out
                       ca
       String de execu¸˜o para makefile: ./#{file}
                       ca



        Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
           e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                       a                a
Objectivos
                                         Aplica¸˜o Web
                                                ca
                                       Scripts Auxiliares   Implementa¸˜o:
                                                                      ca     at´ ` segunda fase
                                                                                ea
                                                M´tricas
                                                   e        Implementa¸˜o:
                                                                      ca     linguagens de programa¸˜o
                                                                                                   ca
                                               Frontend     Implementa¸˜o:
                                                                      ca     Compila¸˜o
                                                                                      ca
                   Terminal Interface - Powered by Perl     Implementa¸˜o:
                                                                      ca     Execu¸˜o
                                                                                   ca
                           Conclus˜o e trabalho futuro
                                    a
                                              Perguntas

Index

  1   Objectivos

  2   Aplica¸˜o Web
            ca
        Implementa¸˜o:
                  ca          at´ ` segunda fase
                                 ea
        Implementa¸˜o:
                  ca          linguagens de programa¸˜o
                                                    ca
        Implementa¸˜o:
                  ca          Compila¸˜o
                                       ca
        Implementa¸˜o:
                  ca          Execu¸˜o
                                    ca

  3   Scripts Auxiliares

  4   M´tricas
       e

  5   Frontend

  6   Terminal Interface - Powered by Perl

  7   Conclus˜o e trabalho futuro
             a


          Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
             e                                              SOPAS - Submiss˜o Online Para An´lise de Software
                                                                           a                a
Objectivos
                                   Aplica¸˜o Web
                                          ca
                                 Scripts Auxiliares   Implementa¸˜o:
                                                                ca     at´ ` segunda fase
                                                                          ea
                                          M´tricas
                                             e        Implementa¸˜o:
                                                                ca     linguagens de programa¸˜o
                                                                                             ca
                                         Frontend     Implementa¸˜o:
                                                                ca     Compila¸˜o
                                                                                ca
             Terminal Interface - Powered by Perl     Implementa¸˜o:
                                                                ca     Execu¸˜o
                                                                             ca
                     Conclus˜o e trabalho futuro
                              a
                                        Perguntas

Implementa¸˜o: Compila¸˜o
          ca          ca



      Caso seja necess´rio compilar o c´digo fonte submetido, ´
                      a                o                      e
      usada a string de compila¸˜o definida aquando da
                               ca
      configura¸˜o da linguagem
               ca
      Se for submetido um ficheiro comprimido que inclua um
      makefile, ´ executado o comando make e, o nome do
                e
      execut´vel criado ´ obtido a partir de um script perl
             a          e




      Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
         e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                     a                a
Objectivos
                                         Aplica¸˜o Web
                                                ca
                                       Scripts Auxiliares   Implementa¸˜o:
                                                                      ca     at´ ` segunda fase
                                                                                ea
                                                M´tricas
                                                   e        Implementa¸˜o:
                                                                      ca     linguagens de programa¸˜o
                                                                                                   ca
                                               Frontend     Implementa¸˜o:
                                                                      ca     Compila¸˜o
                                                                                      ca
                   Terminal Interface - Powered by Perl     Implementa¸˜o:
                                                                      ca     Execu¸˜o
                                                                                   ca
                           Conclus˜o e trabalho futuro
                                    a
                                              Perguntas

Index

  1   Objectivos

  2   Aplica¸˜o Web
            ca
        Implementa¸˜o:
                  ca          at´ ` segunda fase
                                 ea
        Implementa¸˜o:
                  ca          linguagens de programa¸˜o
                                                    ca
        Implementa¸˜o:
                  ca          Compila¸˜o
                                       ca
        Implementa¸˜o:
                  ca          Execu¸˜o
                                    ca

  3   Scripts Auxiliares

  4   M´tricas
       e

  5   Frontend

  6   Terminal Interface - Powered by Perl

  7   Conclus˜o e trabalho futuro
             a


          Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
             e                                              SOPAS - Submiss˜o Online Para An´lise de Software
                                                                           a                a
Objectivos
                                   Aplica¸˜o Web
                                          ca
                                 Scripts Auxiliares   Implementa¸˜o:
                                                                ca     at´ ` segunda fase
                                                                          ea
                                          M´tricas
                                             e        Implementa¸˜o:
                                                                ca     linguagens de programa¸˜o
                                                                                             ca
                                         Frontend     Implementa¸˜o:
                                                                ca     Compila¸˜o
                                                                                ca
             Terminal Interface - Powered by Perl     Implementa¸˜o:
                                                                ca     Execu¸˜o
                                                                             ca
                     Conclus˜o e trabalho futuro
                              a
                                        Perguntas

Implementa¸˜o: Execu¸˜o
          ca        ca


      Para executar o programa para os diferentes inputs, ´ usada a
                                                          e
      string de execu¸˜o simples (no caso de ser submetido apenas
                     ca
      um ficheiro) ou a string de execu¸˜o para makefile (no caso
                                       ca
      de ser submetido um makefile)
      Para cada input o comando ´ corrido uma vez
                                e
      O output ´ capturado e comparado com o esperado
               e
      ´
      E guardada a percentagem de testes no qual o c´digo
                                                    o
      submetido passou



      Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
         e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                     a                a
Objectivos
                                    Aplica¸˜o Web
                                           ca
                                  Scripts Auxiliares   Implementa¸˜o:
                                                                 ca     at´ ` segunda fase
                                                                           ea
                                           M´tricas
                                              e        Implementa¸˜o:
                                                                 ca     linguagens de programa¸˜o
                                                                                              ca
                                          Frontend     Implementa¸˜o:
                                                                 ca     Compila¸˜o
                                                                                 ca
              Terminal Interface - Powered by Perl     Implementa¸˜o:
                                                                 ca     Execu¸˜o
                                                                              ca
                      Conclus˜o e trabalho futuro
                               a
                                         Perguntas

Implementa¸˜o: Apresenta¸˜o de resultados
          ca            ca
      A qualquer altura o utilizador pode consultar os resultados das
      ultimas submiss˜es (suas ou dos restantes participantes)
      ´              o
      Pode tamb´m consultar os seus melhores resultados, para
                 e
      cada enunciado




       Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
          e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                      a                a
Objectivos
                                         Aplica¸˜o Web
                                                ca
                                       Scripts Auxiliares
                                                M´tricas
                                                   e
                                               Frontend
                   Terminal Interface - Powered by Perl
                           Conclus˜o e trabalho futuro
                                    a
                                              Perguntas

Index

  1   Objectivos

  2   Aplica¸˜o Web
            ca
        Implementa¸˜o:
                  ca          at´ ` segunda fase
                                 ea
        Implementa¸˜o:
                  ca          linguagens de programa¸˜o
                                                    ca
        Implementa¸˜o:
                  ca          Compila¸˜o
                                       ca
        Implementa¸˜o:
                  ca          Execu¸˜o
                                    ca

  3   Scripts Auxiliares

  4   M´tricas
       e

  5   Frontend

  6   Terminal Interface - Powered by Perl

  7   Conclus˜o e trabalho futuro
             a


          Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
             e                                              SOPAS - Submiss˜o Online Para An´lise de Software
                                                                           a                a
Objectivos
                                     Aplica¸˜o Web
                                            ca
                                   Scripts Auxiliares
                                            M´tricas
                                               e
                                           Frontend
               Terminal Interface - Powered by Perl
                       Conclus˜o e trabalho futuro
                                a
                                          Perguntas

Scripts auxiliares



       Script (em Perl) para obter o nome do execut´vel gerado pelo
                                                   a
       makefile (para C)
       Script (em Perl) que gera estat´
                                      ısticas relativamente `
                                                            a
       quantidade de ficheiros submetidos para cada linguagem de
       programa¸˜o
                ca




        Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
           e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                       a                a
Objectivos
                                    Aplica¸˜o Web
                                           ca
                                  Scripts Auxiliares
                                           M´tricas
                                              e
                                          Frontend
              Terminal Interface - Powered by Perl
                      Conclus˜o e trabalho futuro
                               a
                                         Perguntas

Script makefile.pl



      Utiliza o m´dulo perl Makefile::Parser para fazer parse do
                 o
      makefile, e obter o nome do execut´vel gerado
                                        a
      No caso de n˜o ser definido um nome para o output, retorna
                  a
      a.out
      TODO: Suportar mais linguagens par al´m do C.
                                           e




       Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
          e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                      a                a
Objectivos
                                    Aplica¸˜o Web
                                           ca
                                  Scripts Auxiliares
                                           M´tricas
                                              e
                                          Frontend
              Terminal Interface - Powered by Perl
                      Conclus˜o e trabalho futuro
                               a
                                         Perguntas

Script count.pl


       Dada uma pasta, explora recursivamente os seus direct´rios, e
                                                               o
       extra´ v´rias estatisticas relativas ´ quantidade de n´mero de
            ı a                             a                u
       linhas
             N´mero de linhas de c´digo por linguagem
                u                   o
             N´mero de linhas comentadas por linguagem
                u
             R´cio entre linhas de c´digo e n´mero de ficheiros para cada
               a                    o        u
             linguagem
             Percentagem de linguagem mais usadas no projecto
             ...
       Utiliza o m´dulo perl GD para gerar gr´ficos
                  o                          a


       Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
          e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                      a                a
Objectivos
                                         Aplica¸˜o Web
                                                ca
                                       Scripts Auxiliares
                                                M´tricas
                                                   e
                                               Frontend
                   Terminal Interface - Powered by Perl
                           Conclus˜o e trabalho futuro
                                    a
                                              Perguntas

Index

  1   Objectivos

  2   Aplica¸˜o Web
            ca
        Implementa¸˜o:
                  ca          at´ ` segunda fase
                                 ea
        Implementa¸˜o:
                  ca          linguagens de programa¸˜o
                                                    ca
        Implementa¸˜o:
                  ca          Compila¸˜o
                                       ca
        Implementa¸˜o:
                  ca          Execu¸˜o
                                    ca

  3   Scripts Auxiliares

  4   M´tricas
       e

  5   Frontend

  6   Terminal Interface - Powered by Perl

  7   Conclus˜o e trabalho futuro
             a


          Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
             e                                              SOPAS - Submiss˜o Online Para An´lise de Software
                                                                           a                a
Objectivos
                                     Aplica¸˜o Web
                                            ca
                                   Scripts Auxiliares
                                            M´tricas
                                               e
                                           Frontend
               Terminal Interface - Powered by Perl
                       Conclus˜o e trabalho futuro
                                a
                                          Perguntas

An´lise Dinˆmica
  a        a


   Log analysis extrair informa¸˜o dos logs
                               ca
       Testing investigar comportamento atrav´s de casos
                                             e
    Debugging bom para detectar defeitos
   Instrumentation monitorizar e medir o n´ de performance
                                          ıvel
      Profiling investiga¸˜o sobre o comportamento de um programa
                        ca
               (CPU, mem)
   Benchmarking compara¸˜o de medidas
                       ca



        Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
           e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                       a                a
Objectivos
                                     Aplica¸˜o Web
                                            ca
                                   Scripts Auxiliares
                                            M´tricas
                                               e
                                           Frontend
               Terminal Interface - Powered by Perl
                       Conclus˜o e trabalho futuro
                                a
                                          Perguntas

An´lise Est´tica
  a        a


   Syntax checking atestar a correc¸˜o da linguagem
                                   ca
   Type checking garantir restri¸˜o dos tipos
                                ca
   Decompilation inferir ou descobrir c´digo atrav´s de bin´rio
                                       o          e        a
   Code metrics tirar conclus˜es sobre a qualidade
                             o
   Style checking verificar determinadas regras que se acredita serem
                boas pr´cticas
                        a
   Verification reverse engineering verificar se a implementa¸˜o
                                                           ca
                 cumpre a especifica¸˜o
                                    ca



        Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
           e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                       a                a
Objectivos
                                    Aplica¸˜o Web
                                           ca
                                  Scripts Auxiliares
                                           M´tricas
                                              e
                                          Frontend
              Terminal Interface - Powered by Perl
                      Conclus˜o e trabalho futuro
                               a
                                         Perguntas

M´tricas de qualidade de software
 e


                                   Nr of test lines
                        Line Coverage =
                                  nr of tested lines
                                   Nr of test methods
            Decision coverage =
                                Sum of McCabe complexity
                                         Nr of test lines
                         Test granularity =
                                             nr of tests
                                        Decision coverage
                        Test efficiency =
                                          line coverage



       Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
          e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                      a                a
Objectivos
                                        Aplica¸˜o Web
                                               ca
                                      Scripts Auxiliares
                                               M´tricas
                                                  e
                                              Frontend
                  Terminal Interface - Powered by Perl
                          Conclus˜o e trabalho futuro
                                   a
                                             Perguntas

Bug Patterns

   // foo . c file
   # include < stdio .h >

   int main () {
       char * a = " I like you ";
       char * b = " I hate you ";

         if (& a < & b ) a = *(& a + 1) ;
         else            a = *(& a - 1) ;

         printf ("% s  n " , a ) ;
   }

   [ u l i s s e s a r a u j o c o s t a @ m a c l i s s e s : c ] - $ gcc -o foo foo . c
   [ u l i s s e s a r a u j o c o s t a @ m a c l i s s e s : c ] - $ ./ foo
   I hate you


           Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
              e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                          a                a
Objectivos
                                     Aplica¸˜o Web
                                            ca
                                   Scripts Auxiliares
                                            M´tricas
                                               e
                                           Frontend
               Terminal Interface - Powered by Perl
                       Conclus˜o e trabalho futuro
                                a
                                          Perguntas

Source Lines of code (SLOC)


   Este tipo m´tricas diz respeito ` informa¸˜o que uma linha de
              e                    a        ca
   c´digo pode conter.
    o
   for ( i = 0; i < 100; i += 1) printf (" hello ") ; /* How many
       lines of code is this ? */


       1 Linha fisica de c´digo (LOC)
                         o
       2 Linhas logicas de codigo (LLOC) (o for e o printf)
       1 Linha de coment´rio
                        a




        Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
           e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                       a                a
Objectivos
                                         Aplica¸˜o Web
                                                ca
                                       Scripts Auxiliares
                                                M´tricas
                                                   e
                                               Frontend
                   Terminal Interface - Powered by Perl
                           Conclus˜o e trabalho futuro
                                    a
                                              Perguntas

Index

  1   Objectivos

  2   Aplica¸˜o Web
            ca
        Implementa¸˜o:
                  ca          at´ ` segunda fase
                                 ea
        Implementa¸˜o:
                  ca          linguagens de programa¸˜o
                                                    ca
        Implementa¸˜o:
                  ca          Compila¸˜o
                                       ca
        Implementa¸˜o:
                  ca          Execu¸˜o
                                    ca

  3   Scripts Auxiliares

  4   M´tricas
       e

  5   Frontend

  6   Terminal Interface - Powered by Perl

  7   Conclus˜o e trabalho futuro
             a


          Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
             e                                              SOPAS - Submiss˜o Online Para An´lise de Software
                                                                           a                a
Objectivos
                                        Aplica¸˜o Web
                                               ca
                                      Scripts Auxiliares
                                               M´tricas
                                                  e
                                              Frontend
                  Terminal Interface - Powered by Perl
                          Conclus˜o e trabalho futuro
                                   a
                                             Perguntas

Language.C

  Language.C ´ um front-end para Haskell que implementa a
             e
  linguagem C e muitas extens˜es do GCC.
                             o
  data CStat =     CLabel Ident CStat [ CAttr ] NodeInfo
             |     CCase CExpr CStat NodeInfo
             |     CCases CExpr CExpr CStat NodeInfo
             |     CDefault CStat NodeInfo
             |     CExpr ( Maybe CExpr ) NodeInfo
             |     CCompound [ Ident ] [ CBlockItem ] NodeInfo
             |     CIf CExpr CStat ( Maybe CStat ) NodeInfo
             |     CSwitch CExpr CStat NodeInfo
             |     CWhile CExpr CStat Bool NodeInfo
             |     CFor ( Either ( Maybe CExpr ) CDecl ) ( Maybe CExpr ) ( Maybe CExpr ) CStat
                   NodeInfo
              |    CGoto Ident NodeInfo
              |    CGotoPtr CExpr NodeInfo
              |    CCont NodeInfo
              |    CBreak     NodeInfo
              |    CReturn ( Maybe CExpr ) NodeInfo
              |    CAsm CAsmStmt NodeInfo




        Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
           e                                               SOPAS - Submiss˜o Online Para An´lise de Software
                                                                          a                a
Objectivos
                                         Aplica¸˜o Web
                                                ca
                                       Scripts Auxiliares
                                                M´tricas
                                                   e
                                               Frontend
                   Terminal Interface - Powered by Perl
                           Conclus˜o e trabalho futuro
                                    a
                                              Perguntas

Language.C - Utiliza¸˜o (simples)
                    ca

   module Main where

   import   Language . C
   import   Language . C . System . GCC
   import   Language . C . Data . Ident
   import   System . Environment

   process :: String -> IO ()
   process file = do
       stream <- parseCFile ( newGCC " gcc " ) Nothing [] file
       case stream of
           ( Left error ) -> print error
           ( Right cprog ) -> print " OK "

   main :: IO ()
   main = do
       files <- getArgs
       mapM_ process files




            Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
               e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                           a                a
Objectivos
                                         Aplica¸˜o Web
                                                ca
                                       Scripts Auxiliares
                                                M´tricas
                                                   e
                                               Frontend
                   Terminal Interface - Powered by Perl
                           Conclus˜o e trabalho futuro
                                    a
                                              Perguntas

Index

  1   Objectivos

  2   Aplica¸˜o Web
            ca
        Implementa¸˜o:
                  ca          at´ ` segunda fase
                                 ea
        Implementa¸˜o:
                  ca          linguagens de programa¸˜o
                                                    ca
        Implementa¸˜o:
                  ca          Compila¸˜o
                                       ca
        Implementa¸˜o:
                  ca          Execu¸˜o
                                    ca

  3   Scripts Auxiliares

  4   M´tricas
       e

  5   Frontend

  6   Terminal Interface - Powered by Perl

  7   Conclus˜o e trabalho futuro
             a


          Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
             e                                              SOPAS - Submiss˜o Online Para An´lise de Software
                                                                           a                a
Objectivos
                                    Aplica¸˜o Web
                                           ca
                                  Scripts Auxiliares
                                           M´tricas
                                              e
                                          Frontend
              Terminal Interface - Powered by Perl
                      Conclus˜o e trabalho futuro
                               a
                                         Perguntas

Terminal Interface




      Criado para facilitar a manuten¸˜o e o acesso ` base de dados.
                                     ca             a
      Interface utilizada apenas pelos administradores do sistema.




       Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
          e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                      a                a
Objectivos
                                     Aplica¸˜o Web
                                            ca
                                   Scripts Auxiliares
                                            M´tricas
                                               e
                                           Frontend
               Terminal Interface - Powered by Perl
                       Conclus˜o e trabalho futuro
                                a
                                          Perguntas

Terminal Interface - Perl


   Escolheu-se esta linguagem devido:
       R´pida implementa¸˜o
        a               ca
       Vasta diversifica¸˜o de m´dulos
                       ca      o
   Desses m´dulos, usa-se e pretende-se usar:
           o
       DBIx::Class
       Term::Readline
       Digest::SHA2
       XML::DT


        Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
           e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                       a                a
Objectivos
                                     Aplica¸˜o Web
                                            ca
                                   Scripts Auxiliares
                                            M´tricas
                                               e
                                           Frontend
               Terminal Interface - Powered by Perl
                       Conclus˜o e trabalho futuro
                                a
                                          Perguntas

Estado actual
   Exemplo actual da interface:




        Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
           e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                       a                a
Objectivos
                                         Aplica¸˜o Web
                                                ca
                                       Scripts Auxiliares
                                                M´tricas
                                                   e
                                               Frontend
                   Terminal Interface - Powered by Perl
                           Conclus˜o e trabalho futuro
                                    a
                                              Perguntas

Index

  1   Objectivos

  2   Aplica¸˜o Web
            ca
        Implementa¸˜o:
                  ca          at´ ` segunda fase
                                 ea
        Implementa¸˜o:
                  ca          linguagens de programa¸˜o
                                                    ca
        Implementa¸˜o:
                  ca          Compila¸˜o
                                       ca
        Implementa¸˜o:
                  ca          Execu¸˜o
                                    ca

  3   Scripts Auxiliares

  4   M´tricas
       e

  5   Frontend

  6   Terminal Interface - Powered by Perl

  7   Conclus˜o e trabalho futuro
             a


          Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
             e                                              SOPAS - Submiss˜o Online Para An´lise de Software
                                                                           a                a
Objectivos
                                    Aplica¸˜o Web
                                           ca
                                  Scripts Auxiliares
                                           M´tricas
                                              e
                                          Frontend
              Terminal Interface - Powered by Perl
                      Conclus˜o e trabalho futuro
                               a
                                         Perguntas

Conclus˜o e trabalho futuro
       a



      Implementar as v´rias m´tricas descritas no relat´rio para C
                      a      e                         o
      com o FrontEnd
      Melhorar a utiliza¸˜o pelo terminal e as suas funcionalidades
                        ca
      Tornar a interface utilizador mais intuitiva e mais agrad´vel de
                                                               a
      utilizar




       Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
          e                                            SOPAS - Submiss˜o Online Para An´lise de Software
                                                                      a                a
Objectivos
                                    Aplica¸˜o Web
                                           ca
                                  Scripts Auxiliares
                                           M´tricas
                                              e
                                          Frontend
              Terminal Interface - Powered by Perl
                      Conclus˜o e trabalho futuro
                               a
                                         Perguntas

Perguntas




                                                       ?



       Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
          e                                                SOPAS - Submiss˜o Online Para An´lise de Software
                                                                          a                a

Contenu connexe

Similaire à Static Code Analyzer - Part II

RC - SL02 - Camada de Aplicacao
RC - SL02 - Camada de AplicacaoRC - SL02 - Camada de Aplicacao
RC - SL02 - Camada de AplicacaoUFPB
 
GT-Digital Preservation - Camada de Interface
GT-Digital Preservation - Camada de InterfaceGT-Digital Preservation - Camada de Interface
GT-Digital Preservation - Camada de InterfaceRoberto Beraldo Chaiben
 
Desenvolvimento de aplicações Java™ para TV Digital
Desenvolvimento de aplicações Java™ para TV DigitalDesenvolvimento de aplicações Java™ para TV Digital
Desenvolvimento de aplicações Java™ para TV DigitalLeonardo Melo Santos
 
Paradigmas De Engenharia De Software
Paradigmas De Engenharia De SoftwareParadigmas De Engenharia De Software
Paradigmas De Engenharia De SoftwareRobson Silva Espig
 
Egenharia de Software Orientado a Aspectos
Egenharia de Software Orientado a AspectosEgenharia de Software Orientado a Aspectos
Egenharia de Software Orientado a Aspectosdyegoitallo
 
Infoschema - Company Overview
Infoschema - Company OverviewInfoschema - Company Overview
Infoschema - Company OverviewRenilton Oliveira
 
Engenharia de software apostila analise de requisitos i
Engenharia de software   apostila analise de requisitos iEngenharia de software   apostila analise de requisitos i
Engenharia de software apostila analise de requisitos irobinhoct
 
Análise e Caracterização de Tráfego P2P
Análise e Caracterização de Tráfego P2PAnálise e Caracterização de Tráfego P2P
Análise e Caracterização de Tráfego P2PThiago Curvelo
 
Currículo Karolyne Ferraz
Currículo Karolyne FerrazCurrículo Karolyne Ferraz
Currículo Karolyne FerrazSistema FIRJAN
 
Projeto e validação de um IP para o padrão JPEG e sua integração a uma plataf...
Projeto e validação de um IP para o padrão JPEG e sua integração a uma plataf...Projeto e validação de um IP para o padrão JPEG e sua integração a uma plataf...
Projeto e validação de um IP para o padrão JPEG e sua integração a uma plataf...Daniel Volpato
 
Medida de Esforço de Software com Análise de Ponto de Função
Medida de Esforço de Software com Análise de Ponto de FunçãoMedida de Esforço de Software com Análise de Ponto de Função
Medida de Esforço de Software com Análise de Ponto de FunçãoÁlvaro Farias Pinheiro
 
Garantindo o sucesso da experiência do usuário por Carlos bertozzi
Garantindo o sucesso da experiência do usuário por Carlos bertozziGarantindo o sucesso da experiência do usuário por Carlos bertozzi
Garantindo o sucesso da experiência do usuário por Carlos bertozziJoao Galdino Mello de Souza
 
Programação Orientada a Aspectos - PHPDay SERPRO Curitiba
Programação Orientada a Aspectos - PHPDay SERPRO CuritibaProgramação Orientada a Aspectos - PHPDay SERPRO Curitiba
Programação Orientada a Aspectos - PHPDay SERPRO Curitibawesleyklewerton
 
Programação Orientada a Aspectos em PHP
Programação Orientada a Aspectos em PHPProgramação Orientada a Aspectos em PHP
Programação Orientada a Aspectos em PHPPHP Day Curitiba
 
Plan de negocios sobre la distribucion
Plan de negocios sobre la distribucionPlan de negocios sobre la distribucion
Plan de negocios sobre la distribucionGuillermo Gallardo
 
Programção PHP
Programção PHPProgramção PHP
Programção PHPceap
 

Similaire à Static Code Analyzer - Part II (20)

Academia do programador
Academia do programadorAcademia do programador
Academia do programador
 
RC - SL02 - Camada de Aplicacao
RC - SL02 - Camada de AplicacaoRC - SL02 - Camada de Aplicacao
RC - SL02 - Camada de Aplicacao
 
GT-Digital Preservation - Camada de Interface
GT-Digital Preservation - Camada de InterfaceGT-Digital Preservation - Camada de Interface
GT-Digital Preservation - Camada de Interface
 
Curriculo novo 2018
Curriculo novo 2018Curriculo novo 2018
Curriculo novo 2018
 
Desenvolvimento de aplicações Java™ para TV Digital
Desenvolvimento de aplicações Java™ para TV DigitalDesenvolvimento de aplicações Java™ para TV Digital
Desenvolvimento de aplicações Java™ para TV Digital
 
Paradigmas De Engenharia De Software
Paradigmas De Engenharia De SoftwareParadigmas De Engenharia De Software
Paradigmas De Engenharia De Software
 
Egenharia de Software Orientado a Aspectos
Egenharia de Software Orientado a AspectosEgenharia de Software Orientado a Aspectos
Egenharia de Software Orientado a Aspectos
 
Infoschema - Company Overview
Infoschema - Company OverviewInfoschema - Company Overview
Infoschema - Company Overview
 
Engenharia de software apostila analise de requisitos i
Engenharia de software   apostila analise de requisitos iEngenharia de software   apostila analise de requisitos i
Engenharia de software apostila analise de requisitos i
 
Análise e Caracterização de Tráfego P2P
Análise e Caracterização de Tráfego P2PAnálise e Caracterização de Tráfego P2P
Análise e Caracterização de Tráfego P2P
 
Currículo Karolyne Ferraz
Currículo Karolyne FerrazCurrículo Karolyne Ferraz
Currículo Karolyne Ferraz
 
Projeto e validação de um IP para o padrão JPEG e sua integração a uma plataf...
Projeto e validação de um IP para o padrão JPEG e sua integração a uma plataf...Projeto e validação de um IP para o padrão JPEG e sua integração a uma plataf...
Projeto e validação de um IP para o padrão JPEG e sua integração a uma plataf...
 
Medida de Esforço de Software com Análise de Ponto de Função
Medida de Esforço de Software com Análise de Ponto de FunçãoMedida de Esforço de Software com Análise de Ponto de Função
Medida de Esforço de Software com Análise de Ponto de Função
 
Garantindo o sucesso da experiência do usuário por Carlos bertozzi
Garantindo o sucesso da experiência do usuário por Carlos bertozziGarantindo o sucesso da experiência do usuário por Carlos bertozzi
Garantindo o sucesso da experiência do usuário por Carlos bertozzi
 
Programação Orientada a Aspectos - PHPDay SERPRO Curitiba
Programação Orientada a Aspectos - PHPDay SERPRO CuritibaProgramação Orientada a Aspectos - PHPDay SERPRO Curitiba
Programação Orientada a Aspectos - PHPDay SERPRO Curitiba
 
Programação Orientada a Aspectos em PHP
Programação Orientada a Aspectos em PHPProgramação Orientada a Aspectos em PHP
Programação Orientada a Aspectos em PHP
 
Plan de negocios sobre la distribucion
Plan de negocios sobre la distribucionPlan de negocios sobre la distribucion
Plan de negocios sobre la distribucion
 
1.en.es
1.en.es1.en.es
1.en.es
 
Adas.en.es
Adas.en.esAdas.en.es
Adas.en.es
 
Programção PHP
Programção PHPProgramção PHP
Programção PHP
 

Plus de Ulisses Costa

Automatic Test Generation for Space
Automatic Test Generation for SpaceAutomatic Test Generation for Space
Automatic Test Generation for SpaceUlisses Costa
 
Automatic Test Generation for Space
Automatic Test Generation for SpaceAutomatic Test Generation for Space
Automatic Test Generation for SpaceUlisses Costa
 
Correct sorting with Frama-C
Correct sorting with Frama-CCorrect sorting with Frama-C
Correct sorting with Frama-CUlisses Costa
 
The Cryptol Epilogue: Swift and Bulletproof VHDL
The Cryptol Epilogue: Swift and Bulletproof VHDLThe Cryptol Epilogue: Swift and Bulletproof VHDL
The Cryptol Epilogue: Swift and Bulletproof VHDLUlisses Costa
 
Splint the C code static checker
Splint the C code static checkerSplint the C code static checker
Splint the C code static checkerUlisses Costa
 
Exploring the Cryptol Toolset
Exploring the Cryptol ToolsetExploring the Cryptol Toolset
Exploring the Cryptol ToolsetUlisses Costa
 
Specification of SNOW 3G in Cryptol
Specification of SNOW 3G in CryptolSpecification of SNOW 3G in Cryptol
Specification of SNOW 3G in CryptolUlisses Costa
 
Snort - capturar e dissecar o tráfego da rede
Snort - capturar e dissecar o tráfego da redeSnort - capturar e dissecar o tráfego da rede
Snort - capturar e dissecar o tráfego da redeUlisses Costa
 
Uso de Honeypots com Honeyd
Uso de Honeypots com HoneydUso de Honeypots com Honeyd
Uso de Honeypots com HoneydUlisses Costa
 
Linux Instalation Party
Linux Instalation PartyLinux Instalation Party
Linux Instalation PartyUlisses Costa
 
Calculador Pointfree
Calculador PointfreeCalculador Pointfree
Calculador PointfreeUlisses Costa
 

Plus de Ulisses Costa (15)

Automatic Test Generation for Space
Automatic Test Generation for SpaceAutomatic Test Generation for Space
Automatic Test Generation for Space
 
Automatic Test Generation for Space
Automatic Test Generation for SpaceAutomatic Test Generation for Space
Automatic Test Generation for Space
 
Cryptol experience
Cryptol experienceCryptol experience
Cryptol experience
 
Correct sorting with Frama-C
Correct sorting with Frama-CCorrect sorting with Frama-C
Correct sorting with Frama-C
 
The Cryptol Epilogue: Swift and Bulletproof VHDL
The Cryptol Epilogue: Swift and Bulletproof VHDLThe Cryptol Epilogue: Swift and Bulletproof VHDL
The Cryptol Epilogue: Swift and Bulletproof VHDL
 
Splint the C code static checker
Splint the C code static checkerSplint the C code static checker
Splint the C code static checker
 
Exploring the Cryptol Toolset
Exploring the Cryptol ToolsetExploring the Cryptol Toolset
Exploring the Cryptol Toolset
 
Specification of SNOW 3G in Cryptol
Specification of SNOW 3G in CryptolSpecification of SNOW 3G in Cryptol
Specification of SNOW 3G in Cryptol
 
Snort - capturar e dissecar o tráfego da rede
Snort - capturar e dissecar o tráfego da redeSnort - capturar e dissecar o tráfego da rede
Snort - capturar e dissecar o tráfego da rede
 
LDAP em VDM++
LDAP em VDM++LDAP em VDM++
LDAP em VDM++
 
Uso de Honeypots com Honeyd
Uso de Honeypots com HoneydUso de Honeypots com Honeyd
Uso de Honeypots com Honeyd
 
Apresentacao JML
Apresentacao JMLApresentacao JML
Apresentacao JML
 
Linux Instalation Party
Linux Instalation PartyLinux Instalation Party
Linux Instalation Party
 
Workshop LaTeX
Workshop LaTeXWorkshop LaTeX
Workshop LaTeX
 
Calculador Pointfree
Calculador PointfreeCalculador Pointfree
Calculador Pointfree
 

Dernier

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 

Dernier (8)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 

Static Code Analyzer - Part II

  • 1. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas SOPAS - Submiss˜o Online Para An´lise de a a Software Jos´ Pedro Silva e Pedro Faria Ulisses Costa Engenharia de Linguagens Projecto integrado March 14, 2011 Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 2. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Index 1 Objectivos 2 Aplica¸˜o Web ca Implementa¸˜o: ca at´ ` segunda fase ea Implementa¸˜o: ca linguagens de programa¸˜o ca Implementa¸˜o: ca Compila¸˜o ca Implementa¸˜o: ca Execu¸˜o ca 3 Scripts Auxiliares 4 M´tricas e 5 Frontend 6 Terminal Interface - Powered by Perl 7 Conclus˜o e trabalho futuro a Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 3. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas At´ agora: e Concretizado at´ ao ´ e ınicio da segunda fase: Descri¸˜o do sistema ca Modela¸˜o formal e informal do problema ca Modelo de dados ´ Inicio da implementa¸˜o e respectivo tool demo ca Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 4. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Motiva¸˜o e Objectivos ca Objectivos para segunda fase: Terminar a aplica¸˜o web ca - compilar e executar o c´digo fonte submetido o - guardar e apresentar resultados Investiga¸˜o das m´tricas existentes ca e Scripts auxiliares Explora¸˜o de um frontend ca Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 5. Objectivos Aplica¸˜o Web ca Scripts Auxiliares Implementa¸˜o: ca at´ ` segunda fase ea M´tricas e Implementa¸˜o: ca linguagens de programa¸˜o ca Frontend Implementa¸˜o: ca Compila¸˜o ca Terminal Interface - Powered by Perl Implementa¸˜o: ca Execu¸˜o ca Conclus˜o e trabalho futuro a Perguntas Index 1 Objectivos 2 Aplica¸˜o Web ca Implementa¸˜o: ca at´ ` segunda fase ea Implementa¸˜o: ca linguagens de programa¸˜o ca Implementa¸˜o: ca Compila¸˜o ca Implementa¸˜o: ca Execu¸˜o ca 3 Scripts Auxiliares 4 M´tricas e 5 Frontend 6 Terminal Interface - Powered by Perl 7 Conclus˜o e trabalho futuro a Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 6. Objectivos Aplica¸˜o Web ca Scripts Auxiliares Implementa¸˜o: ca at´ ` segunda fase ea M´tricas e Implementa¸˜o: ca linguagens de programa¸˜o ca Frontend Implementa¸˜o: ca Compila¸˜o ca Terminal Interface - Powered by Perl Implementa¸˜o: ca Execu¸˜o ca Conclus˜o e trabalho futuro a Perguntas Index 1 Objectivos 2 Aplica¸˜o Web ca Implementa¸˜o: ca at´ ` segunda fase ea Implementa¸˜o: ca linguagens de programa¸˜o ca Implementa¸˜o: ca Compila¸˜o ca Implementa¸˜o: ca Execu¸˜o ca 3 Scripts Auxiliares 4 M´tricas e 5 Frontend 6 Terminal Interface - Powered by Perl 7 Conclus˜o e trabalho futuro a Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 7. Objectivos Aplica¸˜o Web ca Scripts Auxiliares Implementa¸˜o: ca at´ ` segunda fase ea M´tricas e Implementa¸˜o: ca linguagens de programa¸˜o ca Frontend Implementa¸˜o: ca Compila¸˜o ca Terminal Interface - Powered by Perl Implementa¸˜o: ca Execu¸˜o ca Conclus˜o e trabalho futuro a Perguntas Implementa¸˜o: at´ ` segunda fase ca ea J´ implementado para o ultimo checkpoint: a ´ Cria¸˜o de contas de utilizador (grupo) ca Associa¸˜o de concorrentes a determinado grupo ca Cria¸˜o de concursos ca Cria¸˜o de enunciados (atrav´s da interface web ou ca e submetendo em formato xml) Inser¸˜o de baterias de teste para os enunciados ca Submiss˜o de programas para avalia¸˜o a ca Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 8. Objectivos Aplica¸˜o Web ca Scripts Auxiliares Implementa¸˜o: ca at´ ` segunda fase ea M´tricas e Implementa¸˜o: ca linguagens de programa¸˜o ca Frontend Implementa¸˜o: ca Compila¸˜o ca Terminal Interface - Powered by Perl Implementa¸˜o: ca Execu¸˜o ca Conclus˜o e trabalho futuro a Perguntas Index 1 Objectivos 2 Aplica¸˜o Web ca Implementa¸˜o: ca at´ ` segunda fase ea Implementa¸˜o: ca linguagens de programa¸˜o ca Implementa¸˜o: ca Compila¸˜o ca Implementa¸˜o: ca Execu¸˜o ca 3 Scripts Auxiliares 4 M´tricas e 5 Frontend 6 Terminal Interface - Powered by Perl 7 Conclus˜o e trabalho futuro a Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 9. Objectivos Aplica¸˜o Web ca Scripts Auxiliares Implementa¸˜o: ca at´ ` segunda fase ea M´tricas e Implementa¸˜o: ca linguagens de programa¸˜o ca Frontend Implementa¸˜o: ca Compila¸˜o ca Terminal Interface - Powered by Perl Implementa¸˜o: ca Execu¸˜o ca Conclus˜o e trabalho futuro a Perguntas Implementa¸˜o: linguagens de programa¸˜o ca ca Configura¸˜o de linguagens de programa¸˜o: ca ca Estando a linguagem correctamente configurada no servidor, ´ e simples preparar o sistema de submiss˜o para avaliar c´digo a o submetido nessa linguagem Para isso basta inserir o comando usado para compilar e para executar, que por exemplo, em C seria: String compila¸˜o: gcc -O2 -Wall #{file} ca String de execu¸˜o default: ./a.out ca String de execu¸˜o para makefile: ./#{file} ca Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 10. Objectivos Aplica¸˜o Web ca Scripts Auxiliares Implementa¸˜o: ca at´ ` segunda fase ea M´tricas e Implementa¸˜o: ca linguagens de programa¸˜o ca Frontend Implementa¸˜o: ca Compila¸˜o ca Terminal Interface - Powered by Perl Implementa¸˜o: ca Execu¸˜o ca Conclus˜o e trabalho futuro a Perguntas Index 1 Objectivos 2 Aplica¸˜o Web ca Implementa¸˜o: ca at´ ` segunda fase ea Implementa¸˜o: ca linguagens de programa¸˜o ca Implementa¸˜o: ca Compila¸˜o ca Implementa¸˜o: ca Execu¸˜o ca 3 Scripts Auxiliares 4 M´tricas e 5 Frontend 6 Terminal Interface - Powered by Perl 7 Conclus˜o e trabalho futuro a Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 11. Objectivos Aplica¸˜o Web ca Scripts Auxiliares Implementa¸˜o: ca at´ ` segunda fase ea M´tricas e Implementa¸˜o: ca linguagens de programa¸˜o ca Frontend Implementa¸˜o: ca Compila¸˜o ca Terminal Interface - Powered by Perl Implementa¸˜o: ca Execu¸˜o ca Conclus˜o e trabalho futuro a Perguntas Implementa¸˜o: Compila¸˜o ca ca Caso seja necess´rio compilar o c´digo fonte submetido, ´ a o e usada a string de compila¸˜o definida aquando da ca configura¸˜o da linguagem ca Se for submetido um ficheiro comprimido que inclua um makefile, ´ executado o comando make e, o nome do e execut´vel criado ´ obtido a partir de um script perl a e Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 12. Objectivos Aplica¸˜o Web ca Scripts Auxiliares Implementa¸˜o: ca at´ ` segunda fase ea M´tricas e Implementa¸˜o: ca linguagens de programa¸˜o ca Frontend Implementa¸˜o: ca Compila¸˜o ca Terminal Interface - Powered by Perl Implementa¸˜o: ca Execu¸˜o ca Conclus˜o e trabalho futuro a Perguntas Index 1 Objectivos 2 Aplica¸˜o Web ca Implementa¸˜o: ca at´ ` segunda fase ea Implementa¸˜o: ca linguagens de programa¸˜o ca Implementa¸˜o: ca Compila¸˜o ca Implementa¸˜o: ca Execu¸˜o ca 3 Scripts Auxiliares 4 M´tricas e 5 Frontend 6 Terminal Interface - Powered by Perl 7 Conclus˜o e trabalho futuro a Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 13. Objectivos Aplica¸˜o Web ca Scripts Auxiliares Implementa¸˜o: ca at´ ` segunda fase ea M´tricas e Implementa¸˜o: ca linguagens de programa¸˜o ca Frontend Implementa¸˜o: ca Compila¸˜o ca Terminal Interface - Powered by Perl Implementa¸˜o: ca Execu¸˜o ca Conclus˜o e trabalho futuro a Perguntas Implementa¸˜o: Execu¸˜o ca ca Para executar o programa para os diferentes inputs, ´ usada a e string de execu¸˜o simples (no caso de ser submetido apenas ca um ficheiro) ou a string de execu¸˜o para makefile (no caso ca de ser submetido um makefile) Para cada input o comando ´ corrido uma vez e O output ´ capturado e comparado com o esperado e ´ E guardada a percentagem de testes no qual o c´digo o submetido passou Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 14. Objectivos Aplica¸˜o Web ca Scripts Auxiliares Implementa¸˜o: ca at´ ` segunda fase ea M´tricas e Implementa¸˜o: ca linguagens de programa¸˜o ca Frontend Implementa¸˜o: ca Compila¸˜o ca Terminal Interface - Powered by Perl Implementa¸˜o: ca Execu¸˜o ca Conclus˜o e trabalho futuro a Perguntas Implementa¸˜o: Apresenta¸˜o de resultados ca ca A qualquer altura o utilizador pode consultar os resultados das ultimas submiss˜es (suas ou dos restantes participantes) ´ o Pode tamb´m consultar os seus melhores resultados, para e cada enunciado Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 15. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Index 1 Objectivos 2 Aplica¸˜o Web ca Implementa¸˜o: ca at´ ` segunda fase ea Implementa¸˜o: ca linguagens de programa¸˜o ca Implementa¸˜o: ca Compila¸˜o ca Implementa¸˜o: ca Execu¸˜o ca 3 Scripts Auxiliares 4 M´tricas e 5 Frontend 6 Terminal Interface - Powered by Perl 7 Conclus˜o e trabalho futuro a Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 16. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Scripts auxiliares Script (em Perl) para obter o nome do execut´vel gerado pelo a makefile (para C) Script (em Perl) que gera estat´ ısticas relativamente ` a quantidade de ficheiros submetidos para cada linguagem de programa¸˜o ca Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 17. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Script makefile.pl Utiliza o m´dulo perl Makefile::Parser para fazer parse do o makefile, e obter o nome do execut´vel gerado a No caso de n˜o ser definido um nome para o output, retorna a a.out TODO: Suportar mais linguagens par al´m do C. e Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 18. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Script count.pl Dada uma pasta, explora recursivamente os seus direct´rios, e o extra´ v´rias estatisticas relativas ´ quantidade de n´mero de ı a a u linhas N´mero de linhas de c´digo por linguagem u o N´mero de linhas comentadas por linguagem u R´cio entre linhas de c´digo e n´mero de ficheiros para cada a o u linguagem Percentagem de linguagem mais usadas no projecto ... Utiliza o m´dulo perl GD para gerar gr´ficos o a Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 19. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Index 1 Objectivos 2 Aplica¸˜o Web ca Implementa¸˜o: ca at´ ` segunda fase ea Implementa¸˜o: ca linguagens de programa¸˜o ca Implementa¸˜o: ca Compila¸˜o ca Implementa¸˜o: ca Execu¸˜o ca 3 Scripts Auxiliares 4 M´tricas e 5 Frontend 6 Terminal Interface - Powered by Perl 7 Conclus˜o e trabalho futuro a Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 20. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas An´lise Dinˆmica a a Log analysis extrair informa¸˜o dos logs ca Testing investigar comportamento atrav´s de casos e Debugging bom para detectar defeitos Instrumentation monitorizar e medir o n´ de performance ıvel Profiling investiga¸˜o sobre o comportamento de um programa ca (CPU, mem) Benchmarking compara¸˜o de medidas ca Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 21. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas An´lise Est´tica a a Syntax checking atestar a correc¸˜o da linguagem ca Type checking garantir restri¸˜o dos tipos ca Decompilation inferir ou descobrir c´digo atrav´s de bin´rio o e a Code metrics tirar conclus˜es sobre a qualidade o Style checking verificar determinadas regras que se acredita serem boas pr´cticas a Verification reverse engineering verificar se a implementa¸˜o ca cumpre a especifica¸˜o ca Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 22. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas M´tricas de qualidade de software e Nr of test lines Line Coverage = nr of tested lines Nr of test methods Decision coverage = Sum of McCabe complexity Nr of test lines Test granularity = nr of tests Decision coverage Test efficiency = line coverage Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 23. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Bug Patterns // foo . c file # include < stdio .h > int main () { char * a = " I like you "; char * b = " I hate you "; if (& a < & b ) a = *(& a + 1) ; else a = *(& a - 1) ; printf ("% s n " , a ) ; } [ u l i s s e s a r a u j o c o s t a @ m a c l i s s e s : c ] - $ gcc -o foo foo . c [ u l i s s e s a r a u j o c o s t a @ m a c l i s s e s : c ] - $ ./ foo I hate you Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 24. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Source Lines of code (SLOC) Este tipo m´tricas diz respeito ` informa¸˜o que uma linha de e a ca c´digo pode conter. o for ( i = 0; i < 100; i += 1) printf (" hello ") ; /* How many lines of code is this ? */ 1 Linha fisica de c´digo (LOC) o 2 Linhas logicas de codigo (LLOC) (o for e o printf) 1 Linha de coment´rio a Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 25. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Index 1 Objectivos 2 Aplica¸˜o Web ca Implementa¸˜o: ca at´ ` segunda fase ea Implementa¸˜o: ca linguagens de programa¸˜o ca Implementa¸˜o: ca Compila¸˜o ca Implementa¸˜o: ca Execu¸˜o ca 3 Scripts Auxiliares 4 M´tricas e 5 Frontend 6 Terminal Interface - Powered by Perl 7 Conclus˜o e trabalho futuro a Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 26. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Language.C Language.C ´ um front-end para Haskell que implementa a e linguagem C e muitas extens˜es do GCC. o data CStat = CLabel Ident CStat [ CAttr ] NodeInfo | CCase CExpr CStat NodeInfo | CCases CExpr CExpr CStat NodeInfo | CDefault CStat NodeInfo | CExpr ( Maybe CExpr ) NodeInfo | CCompound [ Ident ] [ CBlockItem ] NodeInfo | CIf CExpr CStat ( Maybe CStat ) NodeInfo | CSwitch CExpr CStat NodeInfo | CWhile CExpr CStat Bool NodeInfo | CFor ( Either ( Maybe CExpr ) CDecl ) ( Maybe CExpr ) ( Maybe CExpr ) CStat NodeInfo | CGoto Ident NodeInfo | CGotoPtr CExpr NodeInfo | CCont NodeInfo | CBreak NodeInfo | CReturn ( Maybe CExpr ) NodeInfo | CAsm CAsmStmt NodeInfo Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 27. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Language.C - Utiliza¸˜o (simples) ca module Main where import Language . C import Language . C . System . GCC import Language . C . Data . Ident import System . Environment process :: String -> IO () process file = do stream <- parseCFile ( newGCC " gcc " ) Nothing [] file case stream of ( Left error ) -> print error ( Right cprog ) -> print " OK " main :: IO () main = do files <- getArgs mapM_ process files Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 28. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Index 1 Objectivos 2 Aplica¸˜o Web ca Implementa¸˜o: ca at´ ` segunda fase ea Implementa¸˜o: ca linguagens de programa¸˜o ca Implementa¸˜o: ca Compila¸˜o ca Implementa¸˜o: ca Execu¸˜o ca 3 Scripts Auxiliares 4 M´tricas e 5 Frontend 6 Terminal Interface - Powered by Perl 7 Conclus˜o e trabalho futuro a Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 29. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Terminal Interface Criado para facilitar a manuten¸˜o e o acesso ` base de dados. ca a Interface utilizada apenas pelos administradores do sistema. Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 30. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Terminal Interface - Perl Escolheu-se esta linguagem devido: R´pida implementa¸˜o a ca Vasta diversifica¸˜o de m´dulos ca o Desses m´dulos, usa-se e pretende-se usar: o DBIx::Class Term::Readline Digest::SHA2 XML::DT Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 31. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Estado actual Exemplo actual da interface: Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 32. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Index 1 Objectivos 2 Aplica¸˜o Web ca Implementa¸˜o: ca at´ ` segunda fase ea Implementa¸˜o: ca linguagens de programa¸˜o ca Implementa¸˜o: ca Compila¸˜o ca Implementa¸˜o: ca Execu¸˜o ca 3 Scripts Auxiliares 4 M´tricas e 5 Frontend 6 Terminal Interface - Powered by Perl 7 Conclus˜o e trabalho futuro a Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 33. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Conclus˜o e trabalho futuro a Implementar as v´rias m´tricas descritas no relat´rio para C a e o com o FrontEnd Melhorar a utiliza¸˜o pelo terminal e as suas funcionalidades ca Tornar a interface utilizador mais intuitiva e mais agrad´vel de a utilizar Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a
  • 34. Objectivos Aplica¸˜o Web ca Scripts Auxiliares M´tricas e Frontend Terminal Interface - Powered by Perl Conclus˜o e trabalho futuro a Perguntas Perguntas ? Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SOPAS - Submiss˜o Online Para An´lise de Software a a