SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Motiva¸˜o e Tecnologias
                          ca
                           Contextualiza¸˜o
                                        ca
                                 Modela¸˜o
                                        ca
                                 Perguntas




SAAP - Software para An´lise e Avalia¸˜o de
                       a             ca
               Programas

       Jos´ Pedro Silva
          e                             Pedro Faria          Ulisses Costa

                              Engenharia de Linguagens
                                 Projecto integrado


                               December 12, 2010




Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
   e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                      a             ca
Motiva¸˜o e Tecnologias
                                    ca
                                     Contextualiza¸˜o
                                                  ca
                                           Modela¸˜o
                                                  ca
                                           Perguntas

Index



  1   Motiva¸˜o e Tecnologias
            ca



  2   Contextualiza¸˜o
                   ca



  3   Modela¸˜o
            ca
       Modela¸˜o de dados
               ca
             XML
             XSD




          Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
             e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                                a             ca
Motiva¸˜o e Tecnologias
                                  ca
                                   Contextualiza¸˜o
                                                ca
                                         Modela¸˜o
                                                ca
                                         Perguntas

Motiva¸˜o e Objectivos
      ca



   Aprofundar e demonstrar conhecimentos em:
       Desenhar arquitectura de um sistema de informa¸˜o
                                                     ca
       Desenvolvimento web
       Linguagens de Scripting
       Bases de dados
       Processamentos de texto




        Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
           e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                              a             ca
Motiva¸˜o e Tecnologias
                                  ca
                                   Contextualiza¸˜o
                                                ca
                                         Modela¸˜o
                                                ca
                                         Perguntas

Tecnologia




   Principais ferramentas a usar:
       RoR - interface web
       Perl - scripting
       DB2 - motor de base de dados
       Haskell




        Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
           e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                              a             ca
Motiva¸˜o e Tecnologias
                                    ca
                                     Contextualiza¸˜o
                                                  ca
                                           Modela¸˜o
                                                  ca
                                           Perguntas

Index



  1   Motiva¸˜o e Tecnologias
            ca



  2   Contextualiza¸˜o
                   ca



  3   Modela¸˜o
            ca
       Modela¸˜o de dados
               ca
             XML
             XSD




          Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
             e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                                a             ca
Motiva¸˜o e Tecnologias
                                  ca
                                   Contextualiza¸˜o
                                                ca
                                         Modela¸˜o
                                                ca
                                         Perguntas

Descri¸˜o do Sistema
      ca



   Descri¸˜o do sistema e funcionalidades:
         ca
       Disponivel atrav´s de uma interface web
                       e
       Cria¸˜o de concursos e enunciados
           ca
       Permite a submiss˜o de programas
                        a
       Avalia os programas submetidos
       Gera m´tricas para programas existentes no sistema
             e




        Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
           e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                              a             ca
Motiva¸˜o e Tecnologias
                                 ca
                                  Contextualiza¸˜o
                                               ca
                                        Modela¸˜o
                                               ca
                                        Perguntas

Utilizadores do sistema - Docente




      Pode criar, editar e eliminar concursos e enunciados
      Pedir ao sistema para gerar m´tricas
                                   e
      Consultar todo o tipo de resultados




       Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
          e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                             a             ca
Motiva¸˜o e Tecnologias
                                 ca
                                  Contextualiza¸˜o
                                               ca
                                        Modela¸˜o
                                               ca
                                        Perguntas

Utilizadores do sistema




       Admin Entidade com mais poder no sistema, pode criar
             contas para docentes
        Grupo Pode submeter ficheiros que ser˜o avaliados pelo
                                            a
              sistema




       Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
          e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                             a             ca
Motiva¸˜o e Tecnologias
                                    ca
                                     Contextualiza¸˜o
                                                  ca
                                                         Modela¸˜o de dados
                                                               ca
                                           Modela¸˜o
                                                  ca
                                           Perguntas

Index



  1   Motiva¸˜o e Tecnologias
            ca



  2   Contextualiza¸˜o
                   ca



  3   Modela¸˜o
            ca
       Modela¸˜o de dados
               ca
             XML
             XSD




          Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
             e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                                a             ca
Motiva¸˜o e Tecnologias
                                 ca
                                  Contextualiza¸˜o
                                               ca
                                                      Modela¸˜o de dados
                                                            ca
                                        Modela¸˜o
                                               ca
                                        Perguntas

Modela¸˜o informal da arquitectura
      ca




       Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
          e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                             a             ca
Motiva¸˜o e Tecnologias
                                 ca
                                  Contextualiza¸˜o
                                               ca
                                                      Modela¸˜o de dados
                                                            ca
                                        Modela¸˜o
                                               ca
                                        Perguntas

Modela¸˜o formal
      ca



    {existsInDatabase(u)}
    login :: u ∼ Username × Hash → SessionID → Error + SessionID
    {}




     {existeSession(s) ∧ isProf (s) ∧ (notEmpty ◦ getExercice) c}
     createContest :: s ∼ SessionID → c ∼ Contest → 1
     {(notEmpty ◦ getDict) c}



       Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
          e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                             a             ca
Motiva¸˜o e Tecnologias
                                 ca
                                  Contextualiza¸˜o
                                               ca
                                                      Modela¸˜o de dados
                                                            ca
                                        Modela¸˜o
                                               ca
                                        Perguntas

Modela¸˜o formal
      ca


   data Dict a b = (a × b)∗
   data Exercicio = Exercicio Enunciado (Dict Input Output)
   data Contest = Contest Nome Tipo Exercicio ∗


    {existeSession(s) ∧ isProf (s) ∧ (not ◦ exist)(Exercicio e d)}
    createExercice :: s ∼ SessionID → e ∼ Enunciado → d ∼ (Dict a b) →
    {exerciceCreated(Exercicioed)}




       Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
          e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                             a             ca
Motiva¸˜o e Tecnologias
                                 ca
                                  Contextualiza¸˜o
                                               ca
                                                      Modela¸˜o de dados
                                                            ca
                                        Modela¸˜o
                                               ca
                                        Perguntas

Modela¸˜o formal
      ca



    {existSession(s) ∧ contestNotFull(c)}
    registerOnContest :: s ∼ SessionID → c ∼ Contest → Credenciais
    {}




    {existeSession(s) ∧ isProf (s) ∧ contestIsClosed(c)}
    consultarLogsContest :: s ∼ SessionID → c ∼ Contest → LogsContest
    {}



       Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
          e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                             a             ca
Motiva¸˜o e Tecnologias
                                 ca
                                  Contextualiza¸˜o
                                               ca
                                                      Modela¸˜o de dados
                                                            ca
                                        Modela¸˜o
                                               ca
                                        Perguntas

Modela¸˜o formal
      ca


      {}
      geraReport :: e ∼ Exercicio → res ∼ Resolucao → Report
      {}



       geraReportBugCompile :: Exercicio → Error → Report
     geraReportBugCompare :: Exercicio → Errado → Report
       geraReportNoBug :: Exercicio → Resolucao → Report


       execute :: Program → Exercicio → ResolucaoProposta


       Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
          e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                             a             ca
Motiva¸˜o e Tecnologias
                                    ca
                                     Contextualiza¸˜o
                                                  ca
                                                         Modela¸˜o de dados
                                                               ca
                                           Modela¸˜o
                                                  ca
                                           Perguntas

Modela¸˜o formal
      ca


   geraReport :: Exercicio -> Resolucao -> Report
   geraReport exer res = do
       case compile res of
       ( Left error ) -> g e r a R e p o r t B u g C o m p i l e error res
       ( Right p ) ->
            let resProps = execute p exer
            in case ( compare exer resProps ) of
                 ( Left certo ) -> ge ra R ep or t No Bu g e res
                 ( Right errado ) -> g e r a R e p o r t B u g C o m p a r e errado
                      res

   geraReport exer res =
       compile res > >=  p -> compare exer ( execute p exer )
           > >=  c -> g e ra Re po r tN oB ug exer res




          Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
             e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                                a             ca
Motiva¸˜o e Tecnologias
                                    ca
                                     Contextualiza¸˜o
                                                  ca
                                                         Modela¸˜o de dados
                                                               ca
                                           Modela¸˜o
                                                  ca
                                           Perguntas

Index



  1   Motiva¸˜o e Tecnologias
            ca



  2   Contextualiza¸˜o
                   ca



  3   Modela¸˜o
            ca
       Modela¸˜o de dados
               ca
             XML
             XSD




          Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
             e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                                a             ca
Motiva¸˜o e Tecnologias
                                 ca
                                  Contextualiza¸˜o
                                               ca
                                                      Modela¸˜o de dados
                                                            ca
                                        Modela¸˜o
                                               ca
                                        Perguntas

Modelo de dados - Concurso, tentativa e enunciado




       Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
          e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                             a             ca
Motiva¸˜o e Tecnologias
                                ca
                                 Contextualiza¸˜o
                                              ca
                                                     Modela¸˜o de dados
                                                           ca
                                       Modela¸˜o
                                              ca
                                       Perguntas

Modelo de dados - Grupo e Doecente/Admin




      Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
         e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                            a             ca
Motiva¸˜o e Tecnologias
                                     ca
                                      Contextualiza¸˜o
                                                   ca
                                                            Modela¸˜o de dados
                                                                  ca
                                            Modela¸˜o
                                                   ca
                                            Perguntas

Modelo de dados - XML - Enunciado



  <?xm l v e r s i o n=” 1 . 0 ” e n c o d i n g=”UTF−8” ?>
  <E n u n c i a d o x m l n s : x s i=” h t t p : //www . w3 . o r g /2001/XMLSchema−i n s t a n c e ”
        x s i : n o N a m e s p a c e S c h e m a L o c a t i o n=” e n u n c i a d o . x s d ”>
       <i d C o n c u r s o> 1 </ i d C o n c u r s o>
       <Peso>20</ Peso>
       <T i t u l o> E x e r c i c i o 1 </ T i t u l o>
       <D e s c r i c a o> Some o s numeros que l h e s a o p a s s a d o s como argumento , e a p r e s e n t e
                     o r e s u l t a d o . </ D e s c r i c a o>
       <Exemplo>I n p u t : 1 1 1 1 1                           O u t p u t : 5</ Exemplo>
       <D o c e n t e> PRH </ D o c e n t e>
       <F u n c A v a l>D i f f</ F u n c A v a l>
       <L i n g u a g e n s>
                <Linguagem>C Linguagem></
       </ L i n g u a g e n s>




           Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
              e                                             SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                                   a             ca
Motiva¸˜o e Tecnologias
                                        ca
                                         Contextualiza¸˜o
                                                      ca
                                                                   Modela¸˜o de dados
                                                                         ca
                                               Modela¸˜o
                                                      ca
                                               Perguntas

Modelo de dados - XML - Enunciado - Part2


       <D i c t>
                <T e s t e>
                       <Nome   >L i s t a v a z i a</Nome  >
                       <I n p u t> I n p u t>
                                  </
                       <Output>0</ Output>
                </ T e s t e>
                <T e s t e>
                       <Nome   >L i s t a c / 1 e l e m</Nome     >
                       <I n p u t>1</ I n p u t>
                       <Output>1</ Output>
                </ T e s t e>
                <T e s t e>
                       <Nome   >L i s t a c / v a r i o s e l e m</Nome>
                       <I n p u t> 2 3 4 5 </ I n p u t>
                       <Output>14</ Output>
                </ T e s t e>
       </ D i c t>
  </ E n u n c i a d o>




             Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
                e                                                  SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                                          a             ca
Motiva¸˜o e Tecnologias
                                          ca
                                           Contextualiza¸˜o
                                                        ca
                                                                     Modela¸˜o de dados
                                                                           ca
                                                 Modela¸˜o
                                                        ca
                                                 Perguntas

Modelo de dados - XML - Tentativa



  <?xm l v e r s i o n=” 1 . 0 ” e n c o d i n g=”UTF−8” ?>
  <E n u n c i a d o x m l n s : x s i=” h t t p : //www . w3 . o r g /2001/XMLSchema−i n s t a n c e ”
        x s i : n o N a m e s p a c e S c h e m a L o c a t i o n=” t e n t a t i v a . x s d ”>
       <i d C o n c u r s o>1</ i d C o n c u r s o>
       <i d E n u n c i a d o>1</ i d E n u n c i a d o>
       <i d G r u p o>36</ i d G r u p o>

        <d a t a>2010−12−08 d a t a>
                                 </
        <h o r a>16 : 3 3 : 0 0</ h o r a>

        <c o m p i l o u>1</ c o m p i l o u>




             Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
                e                                                    SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                                            a             ca
Motiva¸˜o e Tecnologias
                                     ca
                                      Contextualiza¸˜o
                                                   ca
                                                                 Modela¸˜o de dados
                                                                       ca
                                            Modela¸˜o
                                                   ca
                                            Perguntas

Modelo de dados - XML - Tentativa - Part2


     <D i c t>
           <T e s t e>
                 <Nome       >L i s t a v a z i a</Nome      >
                 <I n p u t> I n p u t>
                               </
                 <Output>0</ Output>
           </ T e s t e>
           <T e s t e>
                 <Nome       >L i s t a c / 1 e l e m</Nome        >
                 <I n p u t>1</ I n p u t>
                 <Output>1</ Output>
           </ T e s t e>
           <T e s t e>
                 <Nome       >L i s t a c / v a r i o s e l e m</Nome>
                 <I n p u t> 2 3 4 5 </ I n p u t>
                 <Output>14</ Output>
           </ T e s t e>
     </ D i c t>
     <p a t h M e t r i c a s>s a s a s</ p a t h M e t r i c a s>




         Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
            e                                                    SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                                        a             ca
Motiva¸˜o e Tecnologias
                                           ca
                                            Contextualiza¸˜o
                                                         ca
                                                               Modela¸˜o de dados
                                                                     ca
                                                  Modela¸˜o
                                                         ca
                                                  Perguntas

Modelo de dados - XML - Tentativa - Part3



        <c o d i g o F o n t e>
              <nome>p r o g . c</nome>
              <c o d i g o>
                      <! [CDATA[
                      #i n c l u d e <s t d i o . h>

                          . . . restante codigo . . .

                       ] ]>
              </ c o d i g o>
        </ c o d i g o F o n t e>

  </ E n u n c i a d o>




              Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
                 e                                             SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                                      a             ca
Motiva¸˜o e Tecnologias
                                             ca
                                              Contextualiza¸˜o
                                                           ca
                                                                         Modela¸˜o de dados
                                                                               ca
                                                    Modela¸˜o
                                                           ca
                                                    Perguntas

Modelo de dados - excerto do XSD do Enunciado




   Exemplo de elemento com restri¸˜es:
                                 co
  <e d : e l e m e n t name=” Peso ” d e f a u l t=” 25 ”>
    <e d : s i m p l e T y p e>
        < e d : r e s t r i c t i o n b a s e=” e d : i n t e g e r ”>
             <e d : m i n I n c l u s i v e v a l u e=” 0 ” />
             <e d : m a x I n c l u s i v e v a l u e=” 100 ” />
        </ e d : r e s t r i c t i o n>
    </ e d : s i m p l e T y p e>
  </ e d : e l e m e n t>




              Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
                 e                                                       SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                                                a             ca
Motiva¸˜o e Tecnologias
                                      ca
                                       Contextualiza¸˜o
                                                    ca
                                                               Modela¸˜o de dados
                                                                     ca
                                             Modela¸˜o
                                                    ca
                                             Perguntas

Modelo de dados - excerto do XSD do Enunciado



   Exemplo de elemento com restri¸˜es:
                                 co
  <e d : e l e m e n t name=” Linguagem ” maxOccurs=” unbounded ”>
        <e d : s i m p l e T y p e>
        < e d : r e s t r i c t i o n b a s e=” e d : s t r i n g ”>
                 <e d : e n u m e r a t i o n v a l u e=”C” />
                 <e d : e n u m e r a t i o n v a l u e=” J a v a ” />
                 <e d : e n u m e r a t i o n v a l u e=” H a s k e l l ” />
        </ e d : r e s t r i c t i o n>
        </ e d : s i m p l e T y p e>
  </ e d : e l e m e n t>




            Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
               e                                               SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                                      a             ca
Motiva¸˜o e Tecnologias
                                ca
                                 Contextualiza¸˜o
                                              ca
                                                     Modela¸˜o de dados
                                                           ca
                                       Modela¸˜o
                                              ca
                                       Perguntas

Modelo de dados - Diagrama correspondete ao XSD do
Enunciado




      Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
         e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                            a             ca
Motiva¸˜o e Tecnologias
                                           ca
                                            Contextualiza¸˜o
                                                         ca
                                                                         Modela¸˜o de dados
                                                                               ca
                                                  Modela¸˜o
                                                         ca
                                                  Perguntas

Modelo de dados - excerto do XSD da Tentativa


   Exemplo de elemento que pode ocorrer mais do que uma vez:
  <t t : e l e m e n t name=” D i c t ”>
         <t t : c o m p l e x T y p e>
         <t t : s e q u e n c e>
                 <t t : e l e m e n t name=” T e s t e ” maxOccurs=” unbounded ”>
                 <t t : c o m p l e x T y p e>
                        <t t : s e q u e n c e>
                        <t t : e l e m e n t name=”Nome” t y p e=” t t : s t r i n g ” />
                        <t t : e l e m e n t name=” I n p u t ” t y p e=” t t : s t r i n g ” />
                        <t t : e l e m e n t name=” Output ” t y p e=” t t : s t r i n g ” />
                        </ t t : s e q u e n c e>
                 </ t t : c o m p l e x T y p e>
                 </ t t : e l e m e n t>
         </ t t : s e q u e n c e>
         </ t t : c o m p l e x T y p e>
  </ t t : e l e m e n t>




             Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
                e                                                        SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                                                a             ca
Motiva¸˜o e Tecnologias
                                ca
                                 Contextualiza¸˜o
                                              ca
                                                     Modela¸˜o de dados
                                                           ca
                                       Modela¸˜o
                                              ca
                                       Perguntas

Modelo de dados - Diagrama correspondete ao XSD da
Tentativa




      Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
         e                                           SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                            a             ca
Motiva¸˜o e Tecnologias
                                 ca
                                  Contextualiza¸˜o
                                               ca
                                        Modela¸˜o
                                               ca
                                        Perguntas

Perguntas




                                                      ?




       Jos´ Pedro Silva, Pedro Faria, Ulisses Costa
          e                                               SAAP - Software para An´lise e Avalia¸˜o de Programas
                                                                                 a             ca

Contenu connexe

Similaire à Static Code Analyzer - Part I

Tecnologias para Definição do Processo Organizacional segundo o MPS.BR
Tecnologias para Definição do Processo Organizacional segundo o MPS.BRTecnologias para Definição do Processo Organizacional segundo o MPS.BR
Tecnologias para Definição do Processo Organizacional segundo o MPS.BR
Leandro Coutinho
 
Plano Diretor de Sistemas de Informação
Plano Diretor de Sistemas de InformaçãoPlano Diretor de Sistemas de Informação
Plano Diretor de Sistemas de Informação
guest8ae332
 
Planejamento Gerenciamento Introducao
Planejamento Gerenciamento IntroducaoPlanejamento Gerenciamento Introducao
Planejamento Gerenciamento Introducao
guest51dd98
 

Similaire à Static Code Analyzer - Part I (20)

Etec Informatica
Etec InformaticaEtec Informatica
Etec Informatica
 
20141128-Carlos-Eduardo-Capparelli
20141128-Carlos-Eduardo-Capparelli20141128-Carlos-Eduardo-Capparelli
20141128-Carlos-Eduardo-Capparelli
 
Tecnologias para Definição do Processo Organizacional segundo o MPS.BR
Tecnologias para Definição do Processo Organizacional segundo o MPS.BRTecnologias para Definição do Processo Organizacional segundo o MPS.BR
Tecnologias para Definição do Processo Organizacional segundo o MPS.BR
 
cms_files_81187_1648754282Material_Doutorado_Profissional_em_Engenharia_de_So...
cms_files_81187_1648754282Material_Doutorado_Profissional_em_Engenharia_de_So...cms_files_81187_1648754282Material_Doutorado_Profissional_em_Engenharia_de_So...
cms_files_81187_1648754282Material_Doutorado_Profissional_em_Engenharia_de_So...
 
Plano de ações para gestão de TI abordagem inicial
Plano de ações para gestão de TI   abordagem inicialPlano de ações para gestão de TI   abordagem inicial
Plano de ações para gestão de TI abordagem inicial
 
Infoschema - Company Overview
Infoschema - Company OverviewInfoschema - Company Overview
Infoschema - Company Overview
 
Soa Next Steps/Passos de Adoção SOA
Soa Next Steps/Passos de Adoção SOASoa Next Steps/Passos de Adoção SOA
Soa Next Steps/Passos de Adoção SOA
 
Artigo do curso de analise e desenvolvimento de sistemas
Artigo do curso de analise e desenvolvimento de sistemasArtigo do curso de analise e desenvolvimento de sistemas
Artigo do curso de analise e desenvolvimento de sistemas
 
Seminários V - Ads -UNOPAR ARAGUAINA,TO - POLO II
Seminários V - Ads -UNOPAR ARAGUAINA,TO - POLO IISeminários V - Ads -UNOPAR ARAGUAINA,TO - POLO II
Seminários V - Ads -UNOPAR ARAGUAINA,TO - POLO II
 
Plano Diretor de Sistemas de Informação
Plano Diretor de Sistemas de InformaçãoPlano Diretor de Sistemas de Informação
Plano Diretor de Sistemas de Informação
 
Carlos Eduardo Capparelli
Carlos Eduardo CapparelliCarlos Eduardo Capparelli
Carlos Eduardo Capparelli
 
Alterao ementa tii
Alterao ementa tiiAlterao ementa tii
Alterao ementa tii
 
Academia do programador
Academia do programadorAcademia do programador
Academia do programador
 
Planejamento Gerenciamento Introducao
Planejamento Gerenciamento IntroducaoPlanejamento Gerenciamento Introducao
Planejamento Gerenciamento Introducao
 
Carreiras de TI
Carreiras de TICarreiras de TI
Carreiras de TI
 
SACV - Gestão de Candidaturas
SACV - Gestão de CandidaturasSACV - Gestão de Candidaturas
SACV - Gestão de Candidaturas
 
KM Inovação - Mauro Conceição
KM Inovação - Mauro ConceiçãoKM Inovação - Mauro Conceição
KM Inovação - Mauro Conceição
 
00 apresentacao
00   apresentacao00   apresentacao
00 apresentacao
 
Apresentação da Disciplina Gerência de Projetos - DCOMP - UFS
Apresentação da Disciplina Gerência de Projetos - DCOMP - UFSApresentação da Disciplina Gerência de Projetos - DCOMP - UFS
Apresentação da Disciplina Gerência de Projetos - DCOMP - UFS
 
APOSTILA IBGE 2017 ANÁLISE DE SISTEMAS DESENVOLVIMENTO DE APLICAÇÕES - 2 VOLU...
APOSTILA IBGE 2017 ANÁLISE DE SISTEMAS DESENVOLVIMENTO DE APLICAÇÕES - 2 VOLU...APOSTILA IBGE 2017 ANÁLISE DE SISTEMAS DESENVOLVIMENTO DE APLICAÇÕES - 2 VOLU...
APOSTILA IBGE 2017 ANÁLISE DE SISTEMAS DESENVOLVIMENTO DE APLICAÇÕES - 2 VOLU...
 

Plus de Ulisses Costa

Automatic Test Generation for Space
Automatic Test Generation for SpaceAutomatic Test Generation for Space
Automatic Test Generation for Space
Ulisses Costa
 
GD::Graph - Graph Plotting Module
GD::Graph - Graph Plotting ModuleGD::Graph - Graph Plotting Module
GD::Graph - Graph Plotting Module
Ulisses Costa
 
Specification of SNOW 3G in Cryptol
Specification of SNOW 3G in CryptolSpecification of SNOW 3G in Cryptol
Specification of SNOW 3G in Cryptol
Ulisses 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 rede
Ulisses Costa
 

Plus de Ulisses Costa (16)

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
 
GD::Graph - Graph Plotting Module
GD::Graph - Graph Plotting ModuleGD::Graph - Graph Plotting Module
GD::Graph - Graph Plotting Module
 
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
 

Static Code Analyzer - Part I

  • 1. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca Perguntas SAAP - Software para An´lise e Avalia¸˜o de a ca Programas Jos´ Pedro Silva e Pedro Faria Ulisses Costa Engenharia de Linguagens Projecto integrado December 12, 2010 Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 2. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca Perguntas Index 1 Motiva¸˜o e Tecnologias ca 2 Contextualiza¸˜o ca 3 Modela¸˜o ca Modela¸˜o de dados ca XML XSD Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 3. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca Perguntas Motiva¸˜o e Objectivos ca Aprofundar e demonstrar conhecimentos em: Desenhar arquitectura de um sistema de informa¸˜o ca Desenvolvimento web Linguagens de Scripting Bases de dados Processamentos de texto Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 4. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca Perguntas Tecnologia Principais ferramentas a usar: RoR - interface web Perl - scripting DB2 - motor de base de dados Haskell Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 5. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca Perguntas Index 1 Motiva¸˜o e Tecnologias ca 2 Contextualiza¸˜o ca 3 Modela¸˜o ca Modela¸˜o de dados ca XML XSD Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 6. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca Perguntas Descri¸˜o do Sistema ca Descri¸˜o do sistema e funcionalidades: ca Disponivel atrav´s de uma interface web e Cria¸˜o de concursos e enunciados ca Permite a submiss˜o de programas a Avalia os programas submetidos Gera m´tricas para programas existentes no sistema e Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 7. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca Perguntas Utilizadores do sistema - Docente Pode criar, editar e eliminar concursos e enunciados Pedir ao sistema para gerar m´tricas e Consultar todo o tipo de resultados Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 8. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca Perguntas Utilizadores do sistema Admin Entidade com mais poder no sistema, pode criar contas para docentes Grupo Pode submeter ficheiros que ser˜o avaliados pelo a sistema Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 9. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Index 1 Motiva¸˜o e Tecnologias ca 2 Contextualiza¸˜o ca 3 Modela¸˜o ca Modela¸˜o de dados ca XML XSD Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 10. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modela¸˜o informal da arquitectura ca Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 11. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modela¸˜o formal ca {existsInDatabase(u)} login :: u ∼ Username × Hash → SessionID → Error + SessionID {} {existeSession(s) ∧ isProf (s) ∧ (notEmpty ◦ getExercice) c} createContest :: s ∼ SessionID → c ∼ Contest → 1 {(notEmpty ◦ getDict) c} Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 12. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modela¸˜o formal ca data Dict a b = (a × b)∗ data Exercicio = Exercicio Enunciado (Dict Input Output) data Contest = Contest Nome Tipo Exercicio ∗ {existeSession(s) ∧ isProf (s) ∧ (not ◦ exist)(Exercicio e d)} createExercice :: s ∼ SessionID → e ∼ Enunciado → d ∼ (Dict a b) → {exerciceCreated(Exercicioed)} Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 13. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modela¸˜o formal ca {existSession(s) ∧ contestNotFull(c)} registerOnContest :: s ∼ SessionID → c ∼ Contest → Credenciais {} {existeSession(s) ∧ isProf (s) ∧ contestIsClosed(c)} consultarLogsContest :: s ∼ SessionID → c ∼ Contest → LogsContest {} Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 14. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modela¸˜o formal ca {} geraReport :: e ∼ Exercicio → res ∼ Resolucao → Report {} geraReportBugCompile :: Exercicio → Error → Report geraReportBugCompare :: Exercicio → Errado → Report geraReportNoBug :: Exercicio → Resolucao → Report execute :: Program → Exercicio → ResolucaoProposta Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 15. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modela¸˜o formal ca geraReport :: Exercicio -> Resolucao -> Report geraReport exer res = do case compile res of ( Left error ) -> g e r a R e p o r t B u g C o m p i l e error res ( Right p ) -> let resProps = execute p exer in case ( compare exer resProps ) of ( Left certo ) -> ge ra R ep or t No Bu g e res ( Right errado ) -> g e r a R e p o r t B u g C o m p a r e errado res geraReport exer res = compile res > >= p -> compare exer ( execute p exer ) > >= c -> g e ra Re po r tN oB ug exer res Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 16. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Index 1 Motiva¸˜o e Tecnologias ca 2 Contextualiza¸˜o ca 3 Modela¸˜o ca Modela¸˜o de dados ca XML XSD Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 17. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modelo de dados - Concurso, tentativa e enunciado Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 18. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modelo de dados - Grupo e Doecente/Admin Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 19. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modelo de dados - XML - Enunciado <?xm l v e r s i o n=” 1 . 0 ” e n c o d i n g=”UTF−8” ?> <E n u n c i a d o x m l n s : x s i=” h t t p : //www . w3 . o r g /2001/XMLSchema−i n s t a n c e ” x s i : n o N a m e s p a c e S c h e m a L o c a t i o n=” e n u n c i a d o . x s d ”> <i d C o n c u r s o> 1 </ i d C o n c u r s o> <Peso>20</ Peso> <T i t u l o> E x e r c i c i o 1 </ T i t u l o> <D e s c r i c a o> Some o s numeros que l h e s a o p a s s a d o s como argumento , e a p r e s e n t e o r e s u l t a d o . </ D e s c r i c a o> <Exemplo>I n p u t : 1 1 1 1 1 O u t p u t : 5</ Exemplo> <D o c e n t e> PRH </ D o c e n t e> <F u n c A v a l>D i f f</ F u n c A v a l> <L i n g u a g e n s> <Linguagem>C Linguagem></ </ L i n g u a g e n s> Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 20. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modelo de dados - XML - Enunciado - Part2 <D i c t> <T e s t e> <Nome >L i s t a v a z i a</Nome > <I n p u t> I n p u t> </ <Output>0</ Output> </ T e s t e> <T e s t e> <Nome >L i s t a c / 1 e l e m</Nome > <I n p u t>1</ I n p u t> <Output>1</ Output> </ T e s t e> <T e s t e> <Nome >L i s t a c / v a r i o s e l e m</Nome> <I n p u t> 2 3 4 5 </ I n p u t> <Output>14</ Output> </ T e s t e> </ D i c t> </ E n u n c i a d o> Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 21. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modelo de dados - XML - Tentativa <?xm l v e r s i o n=” 1 . 0 ” e n c o d i n g=”UTF−8” ?> <E n u n c i a d o x m l n s : x s i=” h t t p : //www . w3 . o r g /2001/XMLSchema−i n s t a n c e ” x s i : n o N a m e s p a c e S c h e m a L o c a t i o n=” t e n t a t i v a . x s d ”> <i d C o n c u r s o>1</ i d C o n c u r s o> <i d E n u n c i a d o>1</ i d E n u n c i a d o> <i d G r u p o>36</ i d G r u p o> <d a t a>2010−12−08 d a t a> </ <h o r a>16 : 3 3 : 0 0</ h o r a> <c o m p i l o u>1</ c o m p i l o u> Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 22. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modelo de dados - XML - Tentativa - Part2 <D i c t> <T e s t e> <Nome >L i s t a v a z i a</Nome > <I n p u t> I n p u t> </ <Output>0</ Output> </ T e s t e> <T e s t e> <Nome >L i s t a c / 1 e l e m</Nome > <I n p u t>1</ I n p u t> <Output>1</ Output> </ T e s t e> <T e s t e> <Nome >L i s t a c / v a r i o s e l e m</Nome> <I n p u t> 2 3 4 5 </ I n p u t> <Output>14</ Output> </ T e s t e> </ D i c t> <p a t h M e t r i c a s>s a s a s</ p a t h M e t r i c a s> Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 23. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modelo de dados - XML - Tentativa - Part3 <c o d i g o F o n t e> <nome>p r o g . c</nome> <c o d i g o> <! [CDATA[ #i n c l u d e <s t d i o . h> . . . restante codigo . . . ] ]> </ c o d i g o> </ c o d i g o F o n t e> </ E n u n c i a d o> Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 24. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modelo de dados - excerto do XSD do Enunciado Exemplo de elemento com restri¸˜es: co <e d : e l e m e n t name=” Peso ” d e f a u l t=” 25 ”> <e d : s i m p l e T y p e> < e d : r e s t r i c t i o n b a s e=” e d : i n t e g e r ”> <e d : m i n I n c l u s i v e v a l u e=” 0 ” /> <e d : m a x I n c l u s i v e v a l u e=” 100 ” /> </ e d : r e s t r i c t i o n> </ e d : s i m p l e T y p e> </ e d : e l e m e n t> Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 25. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modelo de dados - excerto do XSD do Enunciado Exemplo de elemento com restri¸˜es: co <e d : e l e m e n t name=” Linguagem ” maxOccurs=” unbounded ”> <e d : s i m p l e T y p e> < e d : r e s t r i c t i o n b a s e=” e d : s t r i n g ”> <e d : e n u m e r a t i o n v a l u e=”C” /> <e d : e n u m e r a t i o n v a l u e=” J a v a ” /> <e d : e n u m e r a t i o n v a l u e=” H a s k e l l ” /> </ e d : r e s t r i c t i o n> </ e d : s i m p l e T y p e> </ e d : e l e m e n t> Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 26. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modelo de dados - Diagrama correspondete ao XSD do Enunciado Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 27. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modelo de dados - excerto do XSD da Tentativa Exemplo de elemento que pode ocorrer mais do que uma vez: <t t : e l e m e n t name=” D i c t ”> <t t : c o m p l e x T y p e> <t t : s e q u e n c e> <t t : e l e m e n t name=” T e s t e ” maxOccurs=” unbounded ”> <t t : c o m p l e x T y p e> <t t : s e q u e n c e> <t t : e l e m e n t name=”Nome” t y p e=” t t : s t r i n g ” /> <t t : e l e m e n t name=” I n p u t ” t y p e=” t t : s t r i n g ” /> <t t : e l e m e n t name=” Output ” t y p e=” t t : s t r i n g ” /> </ t t : s e q u e n c e> </ t t : c o m p l e x T y p e> </ t t : e l e m e n t> </ t t : s e q u e n c e> </ t t : c o m p l e x T y p e> </ t t : e l e m e n t> Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 28. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca Perguntas Modelo de dados - Diagrama correspondete ao XSD da Tentativa Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  • 29. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca Perguntas Perguntas ? Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca