O documento descreve um sistema chamado SAAP para análise e avaliação de programas. O sistema permite a criação de concursos e enunciados, submissão de programas, avaliação dos programas submetidos e geração de métricas. Ele será desenvolvido usando Ruby on Rails, Perl, DB2 e Haskell.
Infoschema is company that is committed to provide high quality software and professional services related to information technology (IT). Its name is an acronym formed by the words information and schema. Its official web site is at http://www.infoschema.com. One may also get updated on the latest news from Infoschema by following it on twitter.
SOA e reúso te ativos de software na prática. Essa apresentação aborda aspectos estratégicos, educativos e técnicos sobre SOA (Service Oriented Architecture), reúso de ativos de software, arquitetura e componentização.
O SACV responde às necessidades das Organizações que na sua atividade têm um fluxo constante de candidaturas, permitindo:
- Registo de Candidaturas;
- Avaliações;
- Pesquisa;
- Simulação de Custos.
The European Space Agency (ESA) uses an engine to perform tests in the Ground Segment infrastructure, specially the Operational Simulator. This engine uses many different tools to ensure the development of regression testing infrastructure and these tests perform black-box testing to the C++ simulator implementation. VST (VisionSpace Technologies) is one of the companies that provides these services to ESA and they need a tool to infer automatically tests from the existing C++ code, instead of writing manually scripts to perform tests. With this motivation in mind, this paper explores automatic testing approaches and tools in order to propose a system that satisfies VST needs.
Infoschema is company that is committed to provide high quality software and professional services related to information technology (IT). Its name is an acronym formed by the words information and schema. Its official web site is at http://www.infoschema.com. One may also get updated on the latest news from Infoschema by following it on twitter.
SOA e reúso te ativos de software na prática. Essa apresentação aborda aspectos estratégicos, educativos e técnicos sobre SOA (Service Oriented Architecture), reúso de ativos de software, arquitetura e componentização.
O SACV responde às necessidades das Organizações que na sua atividade têm um fluxo constante de candidaturas, permitindo:
- Registo de Candidaturas;
- Avaliações;
- Pesquisa;
- Simulação de Custos.
The European Space Agency (ESA) uses an engine to perform tests in the Ground Segment infrastructure, specially the Operational Simulator. This engine uses many different tools to ensure the development of regression testing infrastructure and these tests perform black-box testing to the C++ simulator implementation. VST (VisionSpace Technologies) is one of the companies that provides these services to ESA and they need a tool to infer automatically tests from the existing C++ code, instead of writing manually scripts to perform tests. With this motivation in mind, this paper explores automatic testing approaches and tools in order to propose a system that satisfies VST needs.
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