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

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