Motiva¸˜o e Tecnologias                          ca                           Contextualiza¸˜o                            ...
Motiva¸˜o e Tecnologias                                    ca                                     Contextualiza¸˜o        ...
Motiva¸˜o e Tecnologias                                  ca                                   Contextualiza¸˜o            ...
Motiva¸˜o e Tecnologias                                  ca                                   Contextualiza¸˜o            ...
Motiva¸˜o e Tecnologias                                    ca                                     Contextualiza¸˜o        ...
Motiva¸˜o e Tecnologias                                  ca                                   Contextualiza¸˜o            ...
Motiva¸˜o e Tecnologias                                 ca                                  Contextualiza¸˜o              ...
Motiva¸˜o e Tecnologias                                 ca                                  Contextualiza¸˜o              ...
Motiva¸˜o e Tecnologias                                    ca                                     Contextualiza¸˜o        ...
Motiva¸˜o e Tecnologias                                 ca                                  Contextualiza¸˜o              ...
Motiva¸˜o e Tecnologias                                 ca                                  Contextualiza¸˜o              ...
Motiva¸˜o e Tecnologias                                 ca                                  Contextualiza¸˜o              ...
Motiva¸˜o e Tecnologias                                 ca                                  Contextualiza¸˜o              ...
Motiva¸˜o e Tecnologias                                 ca                                  Contextualiza¸˜o              ...
Motiva¸˜o e Tecnologias                                    ca                                     Contextualiza¸˜o        ...
Motiva¸˜o e Tecnologias                                    ca                                     Contextualiza¸˜o        ...
Motiva¸˜o e Tecnologias                                 ca                                  Contextualiza¸˜o              ...
Motiva¸˜o e Tecnologias                                ca                                 Contextualiza¸˜o                ...
Motiva¸˜o e Tecnologias                                     ca                                      Contextualiza¸˜o      ...
Motiva¸˜o e Tecnologias                                        ca                                         Contextualiza¸˜o...
Motiva¸˜o e Tecnologias                                          ca                                           Contextualiz...
Motiva¸˜o e Tecnologias                                     ca                                      Contextualiza¸˜o      ...
Motiva¸˜o e Tecnologias                                           ca                                            Contextual...
Motiva¸˜o e Tecnologias                                             ca                                              Contex...
Motiva¸˜o e Tecnologias                                      ca                                       Contextualiza¸˜o    ...
Motiva¸˜o e Tecnologias                                ca                                 Contextualiza¸˜o                ...
Motiva¸˜o e Tecnologias                                           ca                                            Contextual...
Motiva¸˜o e Tecnologias                                ca                                 Contextualiza¸˜o                ...
Motiva¸˜o e Tecnologias                                 ca                                  Contextualiza¸˜o              ...
Upcoming SlideShare
Loading in …5
×

Static Code Analyzer - Part I

490
-1

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
490
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Static Code Analyzer - Part I

  1. 1. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca PerguntasSAAP - 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, 2010Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  2. 2. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca PerguntasIndex 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. 3. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca PerguntasMotiva¸˜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. 4. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca PerguntasTecnologia 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. 5. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca PerguntasIndex 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. 6. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca PerguntasDescri¸˜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. 7. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca PerguntasUtilizadores 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. 8. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca PerguntasUtilizadores 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. 9. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasIndex 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. 10. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModela¸˜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. 11. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModela¸˜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. 12. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModela¸˜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. 13. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModela¸˜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. 14. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModela¸˜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. 15. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModela¸˜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. 16. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasIndex 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. 17. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModelo 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. 18. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModelo 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. 19. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModelo 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. 20. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModelo 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. 21. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModelo 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. 22. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModelo 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. 23. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModelo 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. 24. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModelo 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. 25. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModelo 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. 26. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModelo de dados - Diagrama correspondete ao XSD doEnunciado Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  27. 27. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModelo 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. 28. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o de dados ca Modela¸˜o ca PerguntasModelo de dados - Diagrama correspondete ao XSD daTentativa Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  29. 29. Motiva¸˜o e Tecnologias ca Contextualiza¸˜o ca Modela¸˜o ca PerguntasPerguntas ? Jos´ Pedro Silva, Pedro Faria, Ulisses Costa e SAAP - Software para An´lise e Avalia¸˜o de Programas a ca
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×