Uma Linha de Produto de Software para Módulos de Aprendizagem Interativa

Documentos relacionados
Desenvolvimento de uma Linha de Produto de Software para Módulos de Aprendizagem Interativa

Uma Linha de Produto de Software para Módulos de Aprendizagem Interativa

itarefa: componente Moodle para incorporar Módulos de Aprendizagem Interativa em cursos WEB

ivprog e itarefa: aprimorando o ensino de algoritmos e programação para iniciantes

Desenvolvimento de Ferramentas no igeom: Utilizando a Geometria Dinâmica no Ensino

Uma Linha de Produto de Software para Módulos de Aprendizagem Interativa. Danilo Leite Dalmon

Seiji Isotani CURRICULUM VITAE

Uma Linha de Produto de Software para Módulos de Aprendizagem Interativa

Desafios e novas perspectivas de aplicação de sistemas de Geometria Interativa: novas funcionalidades do igeom

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Engenharia de Software

Uma Ferramenta para Distribuição de Conteúdo Educacional Interativo em Dispositivos Móveis

Projeto Integrador. <Projeto Integrador> Documento Visão. Versão <1.0>

Engenharia Reversa e Reengenharia. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

Processos de software

Unidade II MODELAGEM DE PROCESSOS. Profa. Gislaine Stachissini

Curso online de Aplicações. Híbridas. Plano de Estudo

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

Engenharia de Software. Processos. Desenvolvimento de Software Tradicionais 2014/2. Prof. Luís Fernando Garcia

Engenharia de Software

Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU)

SAW - Novas Funcionalidades e Ferramentas

Engenharia de Software. Herbert Rausch Fernandes

Engenharia de Software II

ENGENHARIA DE SOFTWARE

SOFTWARE EDUCACIONAL PARA ELABORAÇÃO DE PROVAS E EXERCÍCIOS

Um Middleware de Inteligência Artificial para Jogos Digitais 105

ENGENHARIA DE SOFTWARE. Aula 17 Reuso de software

Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade,

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

Processos de Software

Informática I. Aula Aula 21-29/11/06 1

Problemas e Práticas Recomendadas no Desenvolvimento de Software

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner

TCC - LagarLottery. Desenvolvimento de um software para jogadores de loterias. Aluno: Euclides Pinheiro de Melo

MAC 5701 Tópicos em Ciência da Computação. Plano de Estudos

Padrões de Testes Automatizados. Exame de Defesa de Mestrado Paulo Cheque Bernardo Orientador: Fabio Kon DCC IME/USP 4 de julho de 2011

Cadeira: Engenharia de Software

Engenharia de Requisitos

RUP RATIONAL UNIFIED PROCESS

Curso online de Fundamentos em Android. Plano de Estudo

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

Processos de Software

Fábricas de Software. Processos de Software. Fábricas de Software. Fábricas de Software 17/08/2010. Jorge Dias

Capítulo 2 - Processos de Software

Ciência da Computação ENGENHARIA DE SOFTWARE. Capítulo 1 Introdução

Prof. Fábio Lúcio Meira

Guilherme Fernando Gielow

WIE 2002 Folha de Rosto (inclua como primeira página do seu arquivo) Título do artigo: Um Sistema Inteligente Multiagente para Educação à Distância

Bibliotecas e Componentes para Interatividade de Jogos em Flash

Aplicação do Desenvolvimento Baseado em Domínio (DDD) na Criação de uma Ferramenta para Geração Automática de E- Commerce B2B E B2C

Por que é importante?

Prof. Ms. Ronaldo Martins da Costa

Processo. Processo unificado. Principais Características do UP. Principais Características do UP RUP. Unified Process (Processo Unificado)

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks

integração de Requisitos Orientados ao Negócio iron: Apresentação de Método e Ferramenta

INF014 Análise e Projeto de Sistemas Processos Unificado -RUP

Incrementando a Interatividade em Cursos Web via Moodle: examinando o sistema itarefa com o igeom

Técnicas de Reutilização. Reutilização em Programação Orientada a Objetos. Considere três classes... Reuso de Classes.

Introdução INTRODUÇÃO AO SWEBOK. Origens do corpo de conhecimentos da Engenharia de Software: Introdução a Computação e Engenharia de Software

Aula 17 Introdução ao jquery

6.1. Teste Baseado em Gramática e Outras Abordagens de Teste

Técnicas para Reutilização de Software

Aula 2: Planejamento da RS

Engenharia de Software

Ferramentas CASE. CASE fornece ao engenheiro de software a habilidade de automatizar atividades manuais e de aperfeiçoar o conhecimento de engenharia.

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Unidade VII Ferramentas de PDS. Luiz Leão

Sobre o Desenvolvimento de Software Educacional: proposta de uma Linha de Produto de Software para Módulos de Aprendizagem Interativa

MANGUE Métricas e Ferramentas para Avaliação Automática da Qualidade de Código-Fonte Paulo R. M. Meirelles IME-USP

Frameworks. Viviane Torres da Silva

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Prof. Fabiano Papaiz IFRN

PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Processos de Software

Manutenção de Software

Capítulo 20 - Manutenção de Software. Os Fatores de Qualidade de Software focalizam três aspectos importantes do Software Produto: (ISO 9126)

Princípios da Engenharia de Software aula 03

Visual Aid for Computer Graphics Lectures - VAGaL

Agenda da Aula. Reuso de Software. Tipos de Reuso. Potenciais Problemas. Vantagens de Reuso. Introdução a Reuso de Software

Manutenção Leitura: Sommerville; Pressman

2 Fluxos no Ciclo de Vida do Processo Unificado. O Processo Unificado consiste da repetição de uma série de ciclos durante a vida de um sistema.

CAMILO LOPES DE MEDEIROS NETO. SIMONE P. CRUZ (Orientador Geral) ADONAI ESTRELA MEDRADO (Orientador Específico)

SSC Engenharia de Software. Prof. Paulo C. Masiero

Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil

Definição e Melhoria de Processo na Produção de Software Web

Sistema de Avaliação do Docente pelo Discente e Auto-Avaliação do Docente (SIAV)

ENGENHARIA DE SOFTWARE

Guia do Processo de Teste Metodologia Celepar

- Engenharia Reversa - Evolução de Sofware. Desenvolvimento como. Requisitos o que. Sistema porque. Profa. Dra. Sandra Fabbri. operacional.

Engenharia de Software I Processos de desenvolvimento de SW. profa. Denise Neves

ivprog Uma Ferramenta de Programação Visual para o Ensino de Algoritmos

Visão Geral do RUP (Rational Unified Process)

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

CAPÍTULO 1 CONCEITOS BÁSICOS SOBRE ANÁLISE DE SISTEMAS Ciclo de vida de um software

Introdução ao RUP. Livar Correia de O. C. Cunha Effektiv Solutions

Apresentação. Treinamento OTRS Help Desk

Transcrição:

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