Uma Linha de Produto de Software para Módulos de Aprendizagem Interativa Danilo Leite Dalmon Orientador: Prof. Dr. Leônidas de O. Brandão Defesa de Mestrado Instituto de Matemática e Estatística - Universidade de São Paulo
Sumário 1 ima 2 Aplicativos Educacionais 3 Uma LPS para ima 4 itangran 5 ivprog2 6 Considerações finais
Módulos de Aprendizagem Interativa (ima)
Por volta do ano 2000 Aplicativos educacionais Comerciais Apenas versão desktop Proposta Gratuitos/Livres Funcionam em navegadores Web (applets)
Por volta do ano 2000 Aplicativos educacionais Comerciais Apenas versão desktop Proposta Gratuitos/Livres Funcionam em navegadores Web (applets)
igeom
icg, ihanoi e igraf
SAW
icomb e ivprog
itarefa
Problemas de desenvolvimento Problemas de desenvolvimento Sistemas aumentam e ficam complexos com o tempo. Dificuldade de compreender o código para novos programadores (troca frequente) Muito tempo e esforço para adicionar funcionalidades ou remover defeitos Programadores com experiência no projeto também têm dificuldades Ausência de documentação ou sistematização do desenvolvimento
Objetivos Objetivo geral Aprimorar o desenvolvimento de ima Objetivos específicos Reunir e documentar informações Elaborar método sistemático de desenvolvimento Fornecer recursos (código, arquitetura,...) Desenvolver e refatorar ima
Desenvolvimento de aplicativos educacionais
Ocorrência do problema em outros grupos Entrevistas 6 programadores entrevistados Grupos de pesquisa de várias regiões do Brasil A partir de publicações em SBIE recentes Todos relataram problemas similares
Contexto de desenvolvimento em outros grupos Questionário Número de programadores Experiência de Programação Método de desenvolvimento
Relato do desenvolvimento na comunidade Leitura de Artigos do SBIE 126 dos 268 artigos completos entre 2009 e 2011 Tecnologia Arquitetura Proj. Instr. Implementação 60,3% 42,1% 27,8% 5,6%
Trabalhos relacionados - literatura Desenvolvimento Projeto Instrucional Implementação Tipos de Interatividade Funcionalidades genéricas Atividades interativas Técnica de Engenharia de Software Apenas reúso de código Reúso de código, arquitetura e processo
Trabalhos relacionados - literatura Desenvolvimento Projeto Instrucional Implementação Tipos de Interatividade Funcionalidades genéricas Atividades interativas Técnica de Engenharia de Software Apenas reúso de código Reúso de código, arquitetura e processo
Trabalhos relacionados - literatura Desenvolvimento Projeto Instrucional Implementação Tipos de Interatividade Funcionalidades genéricas Atividades interativas Técnica de Engenharia de Software Apenas reúso de código Reúso de código, arquitetura e processo
Trabalhos relacionados - literatura Anos de artigos publicados com aplicação de Eng. de Soft. no desenvolvimento de aplicativos educacionais. Funcionalidades genéricas Reúso de código 2001, 2003, 2003, 2005, 2006, 2006 e 2007 (7) Reúso de código, 2007, 2007, 2010 e arquitetura e processo 2011 (4) Atividades interativas 1986, 1998, 2002, 2004 e 2005 (5) 2008 e 2011 (2)
Abordagem Abordagem desse trabalho Técnica de Engenharia de Software Reúso de código, arquitetura e processo Específica para família de aplicativos Linha de Produto de Software
Abordagem Abordagem desse trabalho Técnica de Engenharia de Software Reúso de código, arquitetura e processo Específica para família de aplicativos Linha de Produto de Software
Linha de Produto de Software Estrutura Engenharia de domínio Engenharia de Aplicação Evolução da LPS
Uma LPS para ima
Método Método de criação da LPS Análise de Domínio Modelo de Sistema Projeto e implementação
LPS - Análise de Domínio Etapas Requisitos Funcionalidades Características
LPS - Análise de Domínio - Requisitos ima existentes Funcionar em navegadores Web (applet) Comunicação com SGC Autoria de atividades para professores Atividades interativas Avaliação automática
LPS - Análise de Domínio - Requisitos Sobre qualidade de código Comportamento estável Fácil manutenção Ser código livre
LPS - Análise de Domínio - Características
LPS - Modelo de Sistema Objetivos do modelo Modelar as características Generalizar as características dependentes de domínio Tornar compatíveis Definir o funcionamento interno
LPS - Modelo de Sistema - Componentes
LPS - Projeto e Implementação Projeto e Implementação Arcabouço de Aplicação Projeto de software Implementação iterativa
LPS - Projeto e Implementação - Arcabouço de Aplicação Propriedades aplicativo semi-acabado inversão de controle desenvolvedor-usuário instancia pontos flexíveis
LPS - Projeto e Implementação - Projeto de Software
LPS - Projeto e Implementação - Implementação Iterativa Iterações 1 protótipo da interface com o usuário 2 projeto de software complexo 3 simplificação e implementação de grande parte das funcionalidades 4 simplificação e implementação do restante 5 refinamento
LPS - Projeto e Implementação - Arquitetura de Componentes
LPS - Utilização Componente Modelo de Domínio Classes Objeto de Domínio e Ação de Domínio Classe Modelo de Domínio Componente Interface com o Usuário de Domínio Classe Interface de Atividade Classe Interface de Autoria
LPS - Utilização Componente Modelo de Domínio Classes Objeto de Domínio e Ação de Domínio Classe Modelo de Domínio Componente Interface com o Usuário de Domínio Classe Interface de Atividade Classe Interface de Autoria
LPS - Evolução Qualidade do código Análise com métricas para código orientado a objetos Modularidade e arquitetura de plug-ins Funcionalidades sobre atividades Funcionalidades sobre operações de domínio
LPS - Evolução Qualidade do código Análise com métricas para código orientado a objetos Modularidade e arquitetura de plug-ins Funcionalidades sobre atividades Funcionalidades sobre operações de domínio
LPS - Avaliação Método Prova de conceito Estudo de caso
Novo ima - itangran
Prova de Conceito Propriedades Objetivo de apresentar um exemplo do que é proposto Mostra a possibilidade de utilização do trabalho desenvolvido para atingir os objetivos gerais
Domínio - Tangran
Novo ima - itangran
Considerações Propriedades Arcabouço considerado um obstáculo considerando o projeto em isolamento Contribui para a inclusão de funcionalidades e para a organização do código
Refatoração do ima - ivprog
Estudo de Caso Propriedades Investiga profundamente um fenômeno ou acontecimento (caso) Pode incluir métodos qualitativos e quantitativos para a coleta de dados Usa triangulação dos dados na análise e elaboração das conclusões
Estudo de Caso Caso ivprog foi criado em um projeto de mestrado que terminou em 2009 Outro programador começou a trabalhar sobre ele em 2011 (situação inicial) Intervenção - passar a usar a LPS no desenvolvimento Início de 2012 começou a desenvolver outra versão do ivprog (situação posterior)
Estudo de Caso Etapas Coleta de Dados (entrevistas e métricas) 1 versão anterior do ivprog 2 desenvolvimento anterior ao uso da LPS 3 desenvolvimento com o uso da LPS 4 versão nova do ivprog Análise dos dados
ivprog - Versão anterior
Desenvolvimento anterior ao uso da LPS Problemas de manutenção Qualidade de código Comentários Código duplicado Ausência de documentação Resultados em 4 meses Compreensão parcial do código Correção de defeito
Desenvolvimento anterior ao uso da LPS Problemas de manutenção Qualidade de código Comentários Código duplicado Ausência de documentação Resultados em 4 meses Compreensão parcial do código Correção de defeito
Desenvolvimento com o uso da LPS Etapas de desenvolvimento Núcleo Interface com o usuário Integração com o arcabouço Resultados em 4 meses Versão funcional Arcabouço definiu as etapas, a arquitetura e ajudou a organizar o código
Desenvolvimento com o uso da LPS Etapas de desenvolvimento Núcleo Interface com o usuário Integração com o arcabouço Resultados em 4 meses Versão funcional Arcabouço definiu as etapas, a arquitetura e ajudou a organizar o código
ivprog - Nova versão
Discussões Resumo dos dados Método utilizado foi o sugerido pela LPS Código fonte tem qualidade equivalente à do arcabouço Arcabouço contribuiu para a qualidade do código e o andamento do desenvolvimento Contribuições para o desenvolvimento Inclusão de funcionalidades Organização do código Satisfação do programador
Discussões Resumo dos dados Método utilizado foi o sugerido pela LPS Código fonte tem qualidade equivalente à do arcabouço Arcabouço contribuiu para a qualidade do código e o andamento do desenvolvimento Contribuições para o desenvolvimento Inclusão de funcionalidades Organização do código Satisfação do programador
Considerações finais
Objetivos e Resultados Aprimorar o desenvolvimento de ima Reduz tempo e esforço do desenvolvedor Contribui para manter a qualidade do código Facilita o andamento e aumenta a satisfação do programador
Contribuições Aprimorar o desenvolvimento de ima Centralização do conhecimento dos aplicativos da família ima Fornecimento de arcabouço para o desenvolvimento de aplicativos Elaboração de um método sistemático de desenvolvimento Novo ima, nova versão de um ima existente
Sugestões para Trabalhos Futuros Aprimorar a LPS Aumentar qualidade do código Facilitar a utilização Expandir a LPS Novos ima Novas funcionalidades
Sugestões para Trabalhos Futuros Questões de Pesquisa Existem outras contribuições da LPS para o processo de desenvolvimento? Quais as particularidades do uso de método sistemático para aplicativos educacionais? Quais as contribuições educacionais da família de aplicativos ima?
Artigos Publicados Danilo L. Dalmon, Anarosa A. F. Brandão, Seiji Isotani e Leônidas O. Brandão (2012) A Domain Engineering for Interactive Learning Modules. JRPIT Special Collection on Software Engineering for elearning. (aceito) Danilo L. Dalmon, Anarosa A. F. Brandão, Seiji Isotani, Leônidas O. Brandão e Guilherme Gomes (2012) Work in progress - a generic model for interactivity-intense intelligent tutor authoring tools. 42nd FIE (aceito) Danilo L. Dalmon, Anarosa Alves Franco Brandão e Leônidas O. Brandão (2012) Uso de métodos e técnicas para desenvolvimento de software educacional em universidades brasileiras. I DesafIE (aceito) Danilo L. Dalmon, S. Isotani, A. A. F. Brandão e L. O. Brandão (2011) Work in progress - a framework for building interactive learning modules. 41st FIE
Artigos Publicados Danilo L. Dalmon, Seiji Isotani, Anarosa A. F. Brandão e Leônidas O. Brandão (2011) Work in progress - enhancing interactive geometry systems with intelligent tutoring features. 41st FIE Danilo L. Dalmon, M. J. G. S. Tanbellini, A. Eisenmann, M. Nascimento, P. A. Rodrigues, S. Isotani, A. A. F. Brandão e L. O. Brandão (2011) Interactive learning modules in engineering education and as a motivational tool for middle and high school students. 40th IGIP Danilo L. Dalmon, Seiji Isotani e Leônidas O. Brandão (2010) Sistemas de geometria interativa e tutores inteligentes: desafios e perspectivas de uma abordagem conjunta. XXI SBIE Danilo L. Dalmon, Seiji Isotani e Leônidas O. Brandão (2010) Melhorando a geometria interativa com o uso de tutores rastreadores de padrões: igeom e CTAT. XVI WIE (prêmio de melhor artigo resumido)
Agradecimentos Agradecimentos: Obrigado à FAPESP pela bolsa, processo 2010/06805-2.
Agradecimentos Obrigado pela atenção! Questões?
LPS - Modelo de Sistema - Componente Estrutural Papel do componente estrutural Definir a arquitetura principal do aplicativo Estabelecer a comunicação entre os outros componentes Fornecer as funcionalidades independentes de domínio (características Comunicação e Configuração)
LPS - Modelo de Sistema - Componente Atividade
LPS - Modelo de Sistema - Componente Domínio
LPS - Modelo de Sistema - Componente Extensões Funcionalidades sobre atividades avaliação automática exportação para imagens criação de Objetos de Aprendizagem Funcionalidades sobre operações de domínio desfazer/refazer script tutoria inteligente
LPS - Modelo de Sistema - Componente Extensões Funcionalidades sobre atividades avaliação automática exportação para imagens criação de Objetos de Aprendizagem Funcionalidades sobre operações de domínio desfazer/refazer script tutoria inteligente