Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e...

24
Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores Renata Correa Pimentel 1 , Andréia Damasio de Leles 1 , Luciana A. M. Zaina 2 1 Faculdade de Engenharia de Sorocaba (FACENS) 2 Universidade Federal de São Carlos Campus Sorocaba (UFSCar)

Transcript of Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e...

Page 1: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

Compilador Web: uma Experiência Interdisciplinar

entre as Disciplinas de Engenharia de Software e

Compiladores

Renata Correa Pimentel1, Andréia Damasio de Leles1,

Luciana A. M. Zaina2

1Faculdade de Engenharia de Sorocaba (FACENS)2Universidade Federal de São Carlos – Campus Sorocaba (UFSCar)

Page 2: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

AGENDA

Motivação

Planejamento

Experiência Prática

Benefícios e Dificuldades na Execução

Análise da Experiência

Considerações Finais

Page 3: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

MOTIVAÇÃO: Interdisciplinaridade

[Diretrizes Curriculares SBC 2005]: a importância do aluno vivenciar o

relacionamento entre diversos conhecimentos que compõe a sua formação.

• Visão Integradora.

• Permite que o aluno trabalhe não somente com especificidades

das disciplinas.

• Fator motivador ao aluno: trabalho em um único tema.

• Evita redundâncias de conteúdo.

• Sobrecarga ao aluno: evita a realização de diversos projetos no mesmo

período letivo.

Page 4: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

MOTIVAÇÃO: Aspectos Internos

• Reclamações dos alunos: Realizar projetos complexos em ummesmo período letivo: Engenharia de Software e Compiladores.

• Alunos: dificuldades para construção de um compilador.

• Partiu-se da premissa que utilizar as práticas de Engenharia deSoftware, poderia minimizar a complexidade dodesenvolvimento do compilador e obter melhores resultadoscom o projeto.

Page 5: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

O Projeto Interdisciplinar

• Projeto Interdisciplinar entre as disciplinas de Engenharia deSoftware e Compiladores.

• Foi proposto um projeto onde os alunos deveriam desenvolveruma ferramenta, utilizando as disciplinas de Engenharia deSoftware, que permitisse o desenvolvimento de códigos em umadada linguagem e que implementasse as técnicas decompiladores.

Page 6: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

PLANEJAMENTO DA EXPERIÊNCIA

• Trabalhos correlatos.

• Reuniões para definições de objetivos e metas do projetointegrado.

Page 7: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

PLANEJAMENTO DA EXPERIÊNCIA

Compiladores (Metas)

• Os alunos deveriam desenvolver uma ferramenta quepermitisse aos usuários codificar um programa em uma dadalinguagem.

• A ferramenta deveria executar todas as etapas referentes àcompilação de código (análise léxica, sintática, semântica) egeração de código.

• Rodar em ambiente Desktop.

Page 8: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

PLANEJAMENTO DA EXPERIÊNCIA

Engenharia de Software (Metas)

• Capacitar o aluno nas práticas de Engenharia de Software do

Requisito ao Produto.

• A Ferramenta poderia ter características de sistemas Web.

• Abranger conceitos de Arquitetura e Padrões de Projeto.

• Abranger as diretrizes de Gerenciamento de Projetos.

• Ciclo de vida de desenvolvimento: vivência de situações reais

(comum no mercado de trabalho).

Page 9: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

PLANEJAMENTO DA EXPERIÊNCIA

Visão Interdisciplinar

Proposta Criativa e Desafiadora

Compilador WEB Desktop

Engenharia de Software

+

Compiladores

Arquitetura de Computadores

+

Algoritmos

Page 10: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

PLANEJAMENTO DA EXPERIÊNCIA

Vislumbrou-se dois cenários de utilização para o compilador Web:

• (1) apoio a aprendizagem eletrônica;

• (2) apoio ao desenvolvimento de software com programadoresdistribuídos em diferentes máquinas e/ou locais geográficos distintos.

Em ambos os cenários, possibilitar a programação aos pares econtrole de versões, foram definidas como característicasinteressantes a serem desenvolvidas no projeto.

Conceito de Produto:

Page 11: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

PLANEJAMENTO DA EXPERIÊNCIA

• Definição de requisitos funcionais e não funcionais que deveriam ser implementados por todas as equipes.

• Cada equipe também deveria definir alguns requisitos que seriam o diferencial do seu produto final.

• Cada equipe foi direcionada a criar uma linguagem original e nativa, de fácil entendimento, mais próxima possível da linguagem natural e pseudocódigo.

• A docente da disciplina de Compiladores faria o papel do cliente determinando características e necessidades do produto final.

Page 12: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

PLANEJAMENTO DA EXPERIÊNCIA

• As equipes deveriam adotar o ciclo de desenvolvimento de software SCRUM e a disciplina proposta pelo XP.

• Fundamentos da engenharia de requisitos deveriam ser aplicados.

• Modelos da Unified Modeling Language (UML®) aplicados.

• Aplicar as diretrizes do Project Management Institute (PMI®) nas fases do ciclo de vida do projeto.

• A linguagem de programação que os alunos deveriam usar seria Java.

Page 13: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

PLANEJAMENTO DA EXPERIÊNCIA

• As disciplinas planejaram critérios de avaliação independentes nateoria e totalmente vinculados na prática.

• O vínculo entre as disciplinas que influenciariam as notas dos alunoscorrespondiam 30% (nota de laboratório).

• Se a equipe não realizasse a entrega, perderia nota nas duasdisciplinas.

Entregas de Engenharia de Software em cada Sprint:1. Documentação.2. Modelos.3. Liberação de uma parte do

compilador.

Entregas Compiladores:

Análise Léxica SintáticaSemânticaProcedimentos para geração de código.

Page 14: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

EXPERIÊNCIA PRÁTICA

Projeto teve início em fevereiro de 2011.

Fevereiro e Março: As disciplinas introduziram os conteúdos essenciais para execução do projeto interdisciplinar.

O projeto teve início em 4 de abril e término em 18 de novembro (7 meses).

Aulas práticas: os alunos foram divididos em equipes.

Cada equipe com 3 integrantes: Gerente de Projetos, Engenheiro de Software e Programador.

Page 15: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

EXPERIÊNCIA PRÁTICA: As fases (WBS)

Composição da nota bimestral das duas disciplinas.

Page 16: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

EXPERIÊNCIA PRÁTICA: Teste de Aceitação

Convite aos alunos do 1º ano de Engenharia da Computação para testar os compiladores realizados.

Para cada aluno-usuário foi disponibilizado o manual do usuário.

Dois laboratórios de informática com rede wireless foram utilizados para testar a programação pareada e a armazenagem do código em base de dados.

O código gerado pela ferramenta foi executado no computador-didático.

Page 17: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

EXPERIÊNCIA PRÁTICA: Teste de Aceitação

Cada aluno-usuário recebeu um questionário de avaliação e validação, tendo que responder as seguintes questões, assinalando:

1. Muito fraco 2. Fraco 3. Regular 4. Bom 5. Ótimo.

Também havia uma seção para reportar problemas encontrados na utilização da ferramenta.

Page 18: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

EXPERIÊNCIA PRÁTICA: Teste de Aceitação

Retroalimentação para as equipes: Comentários dos usuários.

Maiores Médias (Equipes 4, 6, 8, 12 e 13): problemas com programação aos pares e retroalimentação de erros.

Menores Médias (Equipes 5 e 7): apresentaram diversos problema, sendo alguns deles problemas básicos como a execução de cálculos aritméticos.

Page 19: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

EXPERIÊNCIA PRÁTICA: Teste de Aceitação

• Observa-se que as maiores dificuldades encontradas referem-se ao “controle de versões” e a “programação em pares” (questão 5 e 6).

• Foco maior no desenvolvimento de requisitos básicos.

Page 20: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

BENEFÍCIOS e DIFICULDADES NA EXECUÇÃO

Compatibilizar o ensino-aprendizagem das duas disciplinas com a realização do projeto.

Resistência e descrença durante a apresentação da proposta.

Os alunos perceberam que os conteúdos apresentados nas aulas teóricas das duas disciplinas eram fundamentais para a execução prática do projeto e, consequentemente, conseguiriam um bom desempenho nas duas disciplinas.

Motivação e dedicação nas aulas práticas.

Assiduidade nas aulas teóricas.

Em Engenharia de Software: Execução dos Sprints conforme planejado na WBS.

Page 21: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

ANÁLISE DA EXPERIÊNCIA

A experiência foi bastante positiva.

Grande interação entre as docentes: compatibilizar conteúdos, definir marcos e resolver conflitos.

A interação docente e discente foi intensa.

Engenharia de Software:

• Requisitos• Arquitetura de Software• Monitoramento e Controle de Projetos: Métricas de Análise de Valor

Agregado.• Usabilidade

Page 22: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

CONSIDERAÇÕES FINAIS

Lições Aprendidas

A experiência mostrou que a interdisciplinaridade permite aos docentes envolvidos não só a troca de vivências, mas também a geração de planejamentos mais criativos e desafiadores.

Essa interação pode agregar valor à qualidade de ensino, como também para pesquisa e desenvolvimento motivacional dos discentes.

O projeto também motivou alguns alunos seguirem na linha de pesquisa sobre Compilador Web, mostrando interesse em desenvolver o TCC neste tema.

Uma avaliação mais profunda das exigências de conhecimento para a realização de certos requisitos.

Page 23: Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores

CONSIDERAÇÕES FINAIS

Um resultado fundamental da experiência foi que todas as equipesconseguiram desenvolver o compilador, destacando seusresultados intermediários tanto na modalidade desktop quantoWeb.