A interdisciplinaridade tem sido um tema amplamente discutido no ensino da Computação. Este artigo apresenta uma experiência interdisciplinar entre as disciplinas de Engenharia de Software e Compiladores realizada em um curso de Engenharia da Computação. O projeto integrado envolvia a construção de um compilador web cujo foco
principal era ensinar programação básica. A análise dos ambientes desenvolvidos pelos alunos foi realizada por um grupo de alunos que estudavam a disciplina básica de programação.
Interaction With Mobile Devices by Elderly People: The Brazilian Scenario
Compilador Web: uma Experiência Interdisciplinar entre as Disciplinas de Engenharia de Software e Compiladores
1. 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)
3. 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.
4. MOTIVAÇÃO: Aspectos Internos
• Reclamações dos alunos: Realizar projetos complexos em um
mesmo 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 de
Software, poderia minimizar a complexidade do
desenvolvimento do compilador e obter melhores resultados
com o projeto.
5. O Projeto Interdisciplinar
• Projeto Interdisciplinar entre as disciplinas de Engenharia de
Software e Compiladores.
• Foi proposto um projeto onde os alunos deveriam desenvolver
uma ferramenta, utilizando as disciplinas de Engenharia de
Software, que permitisse o desenvolvimento de códigos em uma
dada linguagem e que implementasse as técnicas de
compiladores.
6. PLANEJAMENTO DA EXPERIÊNCIA
• Trabalhos correlatos.
• Reuniões para definições de objetivos e metas do projeto
integrado.
7. PLANEJAMENTO DA EXPERIÊNCIA
Compiladores (Metas)
• Os alunos deveriam desenvolver uma ferramenta que
permitisse aos usuários codificar um programa em uma dada
linguagem.
• A ferramenta deveria executar todas as etapas referentes à
compilação de código (análise léxica, sintática, semântica) e
geração de código.
• Rodar em ambiente Desktop.
8. 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).
9. PLANEJAMENTO DA EXPERIÊNCIA
Visão Interdisciplinar
Proposta Criativa e
Desafiadora
Compilador WEB
Desktop
Engenharia
de Software
+
Compiladores
Arquitetura de
Computadores
+
Algoritmos
10. 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 programadores
distribuídos em diferentes máquinas e/ou locais geográficos distintos.
Em ambos os cenários, possibilitar a programação aos pares e
controle de versões, foram definidas como características
interessantes a serem desenvolvidas no projeto.
Conceito de Produto:
11. 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.
12. 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.
13. PLANEJAMENTO DA EXPERIÊNCIA
• As disciplinas planejaram critérios de avaliação independentes na
teoria e totalmente vinculados na prática.
• O vínculo entre as disciplinas que influenciariam as notas dos alunos
correspondiam 30% (nota de laboratório).
• Se a equipe não realizasse a entrega, perderia nota nas duas
disciplinas.
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ática
Semântica
Procedimentos para geração de
código.
14. 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.
16. 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.
17. 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.
18. 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.
19. 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.
20. 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.
21. 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
22. 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.
23. CONSIDERAÇÕES FINAIS
Um resultado fundamental da experiência foi que todas as equipes
conseguiram desenvolver o compilador, destacando seus
resultados intermediários tanto na modalidade desktop quanto
Web.