Upload
luciana-zaina
View
53
Download
1
Embed Size (px)
Citation preview
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)
AGENDA
Motivação
Planejamento
Experiência Prática
Benefícios e Dificuldades na Execução
Análise da Experiência
Considerações Finais
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.
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.
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.
PLANEJAMENTO DA EXPERIÊNCIA
• Trabalhos correlatos.
• Reuniões para definições de objetivos e metas do projetointegrado.
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.
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).
PLANEJAMENTO DA EXPERIÊNCIA
Visão Interdisciplinar
Proposta Criativa e Desafiadora
Compilador WEB Desktop
Engenharia de Software
+
Compiladores
Arquitetura de Computadores
+
Algoritmos
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:
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.
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.
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.
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.
EXPERIÊNCIA PRÁTICA: As fases (WBS)
Composição da nota bimestral das duas disciplinas.
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.
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.
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.
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.
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.
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
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.
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.
FINALIZAÇÃO
Obrigada!
Andréia Leles