DESENVOLVIMENTO DE IDE PARA PLATAFORMA OMAP. Larissa Lucena Vasconcelos¹, Raul Fernandes Herbster², Joseana Macêdo Fechine³



Documentos relacionados
Projeto de Sistemas I

ESbox: uma Ferramenta para o Desenvolvimento de Aplicações para Linux Embarcado

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

A Disciplina Gerência de Projetos

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

Processo de Desenvolvimento de Software. Engenharia de Software.

5. Métodos ágeis de desenvolvimento de software

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas.

Gerenciamento de projetos.

OBJETIVO Criação e execução de um projeto Android dentro da IDE IntelliJ.

Itinerários de Ônibus Relatório Final

Feature-Driven Development

Programação Orientada a Testes Rodrigo Rebouças de Almeida

Planejando o aplicativo

Agregador de feeds RSS para dispositivos móveis

O Processo de Desenvolvimento de Software

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Desenvolvimento de um aplicativo básico usando o Google Android

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

ENGENHARIA DE SOFTWARE I

MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC GOVERNO FEDERAL SOFTWARE PÚBLICO

Universidade Paulista

ERP Enterprise Resource Planning

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

MANUAL DE INSTALAÇÃO CONFIGURAÇÃO IDE ECLIPSE

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Melhoria no Desenvolvimento Ágil com Implantação de Processo de Integração Contínua Multiplataforma para Java e.net. Hudson

PROFESSOR: CRISTIANO MARIOTTI

Modelo Cascata ou Clássico

ISO/IEC 12207: Gerência de Configuração

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

TESTES AUTOMATIZADOS COM JUNITE MOCKITO

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Programação para Dispositivos Móveis

Engenharia de Software Sistemas Distribuídos

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

APOO Análise e Projeto Orientado a Objetos. Requisitos

sendo bastante acessível e compreendido pelos usuários que o utilizarem.

Channel. Visão Geral e Navegação. Tutorial. Atualizado com a versão 3.9

Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit

Engenharia de Requisitos

Programação de Computadores II TCC Turma A-1

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Prof. Me. Marcos Echevarria

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp

Desenvolvimento Web TCC Turma A-1

Introdução à Plataforma Eclipse. Leandro Daflon

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

02/10/2012. Padronização de interfaces. Referências

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

PROPOSTA DE UM SISTEMA PARA GERÊNCIA INFORMATIZADA PARA O PROGRAMA PRÉ-VESTIBULAR SOLIDÁRIO

1. Apresentação Objetivos

Programação Palm OS. Roteiro da Apresentação. Motivação

Dispositivos móveis e o mercado Android Open Handset Alliance Informações sobre Android Arquitetura

Análise e Projeto Orientados a Objetos Aula IV Requisitos. Prof.: Bruno E. G. Gomes IFRN

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

Versão Liberada. Gerpos Sistemas Ltda. Av. Jones dos Santos Neves, nº 160/174

Um Driver NDIS Para Interceptação de Datagramas IP

Sistema Datachk. Plano de Projeto. Versão <1.0> Z u s a m m e n a r b e i t I d e i a s C o l a b o r a t i v a s

Organização e Arquitetura de Computadores I. de Computadores

Considerações no Projeto de Sistemas Cliente/Servidor

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

APLICATIVO MOBILE CATÁLOGO DE PÁSSAROS - PLATAFORMA ANDROID/MYSQL/WEBSERVICE

Termo de Abertura Sistema de Vendas de Pizzas Online (PizzaWeb) - Versão 1.0

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

3 Revisão de Software

Unidade I Conceitos BásicosB. Conceitos BásicosB

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

RAZÕES PARA ADQUIRIR O TECLAN IPACK UNIFIED

Fundamentos de Teste de Software

Processos de Desenvolvimento de Software

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Projeto Você pede, eu registro.

ENGENHARIA DE SOFTWARE

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Ciência da Computação. alyssonfm@lcc.ufcg.edu.br

Gerenciamento da Integração (PMBoK 5ª ed.)

ENG1000 Introdução à Engenharia

Introdução ao Android

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

Gerenciamento de Projetos Modulo III Grupo de Processos

Desenvolvimento de um software de gerenciamento de projetos para utilização na Web

Desenvolvimento Ágil de Software

Chega de Unity3D! Alternativas de Software Livre para desenvolvimento de jogos. Vinícius Kiwi Daros Wilson Kazuo Mizutani

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

Transcrição:

DESENVOLVIMENTO DE IDE PARA PLATAFORMA OMAP Larissa Lucena Vasconcelos¹, Raul Fernandes Herbster², Joseana Macêdo Fechine³ 1 Aluna do Curso de Ciência da Computação, integrante do PET-Computação, Depto. de Sistemas e Computação DSC/UFCG, Campina Grande, PB, e-mail: larissa@dsc.ufcg.edu.br 2 Aluno do Curso de Ciência da Computação, Depto. de Sistemas e Computação DSC/UFCG, Campina Grande, PB, e-mail: raul@dsc.ufcg.edu.br 3 Professora do Depto. de Sistemas e Computação DSC/UFCG, Tutora do PET-Computação, Campina Grande, PB, e-mail: joseana@dsc.ufcg.edu.br RESUMO Desenvolver software trabalhando com uma única interface torna o trabalho mais rápido e menos árduo. Portanto, verificou-se a necessidade do desenvolvimento de um Integrated Development Environment (IDE) para a plataforma OMAP, integrando as ferramentas existentes em um único ambiente, e assim, facilitando a tarefa do desenvolvedor de aplicações para a referida plataforma. ABSTRACT Developing software using just one interface makes work become faster and less arduous. Therefore, the necessity of developing an Integrated Development Environment (IDE) for the OMAP platform was verified, generating the integration of some tools in a single environment and facilitating the OMAP platform developer s task. (Palavras-chave: IDE, OMAP, Eclipse) 1. INTRODUÇÃO Desenvolver software trabalhando com uma única interface torna o trabalho mais rápido e menos árduo. Entretanto, para plataformas recentemente lançadas, é rara a existência de ferramentas que dêem suporte ao desenvolvimento voltado para aquelas. O processo de desenvolvimento acaba se tornando mais lento, devido ao uso de ferramentas isoladas, cada uma auxiliando no desempenho de uma dada tarefa, o que obriga o desenvolvedor a mudar constantemente de ambiente e tendo ainda que integrar as tarefas manualmente, dificultando em um nível elevado o seu trabalho. Portanto, verificou-se a necessidade do desenvolvimento de um Integrated Development Environment (IDE) para a plataforma OMAP [OMAP], integrando as ferramentas existentes em um único ambiente, e assim, facilitando a tarefa do desenvolvedor de aplicações para a referida plataforma. O objetivo deste projeto foi, resumidamente, integrar Eclipse e Scratchbox através de um plug-in 1, utilizando o framework 2 CDT/Eclipse [ECLIPSE]. Este projeto fez parte das atividades de pesquisa da autora, seguindo o tripé do Programa PET. 1 Software anexado a um aplicativo ou IDE que acrescenta funcionalidades a este. 2 Estrutura de suporte que pode incluir linguagens de script e bibliotecas de código e que serve de apoio para desenvolvimento de outro projeto.

1.1. Conceitos Básicos Esta subseção se dedica a descrever alguns conceitos que são de fundamental importância para o entendimento das demais seções. 1.1.1. Integrated Development Environment (IDE) O ato de programar não é unicamente escrever código fonte. Também é preciso documentar o código, escrever testes, fazer o projeto do software, entre outras tarefas que se revezam durante o período de programação. Quando um programador tem que mudar de ambiente a cada tarefa que ele vai desempenhar, perde-se muito tempo, já que ele deve se adaptar a cada nova interface e ainda gerenciar a integração das mesmas. Este fato torna difícil a aceitação de uma nova tecnologia, pois além do tempo de aprendizagem da nova tecnologia por parte do programador, este ainda tem que aprender a trabalhar em novos ambientes. IDE é uma ferramenta que integra várias outras em um ambiente único, facilitando o trabalho do programador. E sendo este ambiente de boa qualidade, o trabalho ficará cada vez mais produtivo. Eclipse é uma IDE amplamente utilizada atualmente. É escrita em Java e bastante flexível, podendo ser utilizada no desenvolvimento de aplicações para Java, C++, Phyton. Além de possibilitar a integração de ferramentas para, por exemplo, fazer testes de unidade 3 do código. 1.1.2. Cross-Compilation Compilar uma aplicação no processador que vai executá-la pode ser um processo muito dispendioso em termos de tempo. No intuito de minimizar este problema, surgiu recentemente a idéia de compilar o software num processador mais rápido do que o processador que vai executálo, porém o processador que compila não o executa nativamente, já que o código foi compilado para uma arquitetura diferente. Esta é a chamada cross-compilation [CROSS-COMPLILATION]. O Scratchbox [SCRATCHBOX] é um cross-compiler toolkit que auxilia no desenvolvimento de software embutido (embarcado) para o sistema operacional Linux. O Scratchbox,, como outros cross-compilers, além de fazer a cross-compilation, ainda provê um ambiente que emula a plataforma alvo (que vai executar a aplicação) com todas as características desta, sendo esse tipo de ferramenta muito útil para o desenvolvimento de aplicações embutidas. 1.1.3. OMAP A plataforma OMAP é destinada a aplicações embutidas, por exemplo: PDA s (Personal Digital Assistant) e celulares. Processadores desenvolvidos sob esta plataforma comportam aplicações de alto desempenho e baixo consumo de energia, por isso são apropriados para sistemas embutidos. E também suportam tecnologias como Bluetooth, Infravermelho e LAN wireless, através de extensões de hardware [HERBSTER, 2005], ou seja, um hardware adicional que implementa determinada tecnologia. A seção 2 descreverá, em linhas gerais, o processo de desenvolvimento utilizado durante este projeto. A seção posterior relatará os resultados deste trabalho. A seção 4 discorrrerá sobre conclusões e discussões sobre o projeto e a seção subseqüente versará sobre as referências utilizadas como base para a elaboração do presente artigo. 3 São métodos que testam se pequenos módulos do código estão funcionando de acordo com o esperado.

2. METODOLOGIA Nesta seção será descrito brevemente o processo de desenvolvimento de software utilizado no trabalho. O processo foi baseado em XP1 [SAUVÉ], pelas diversas características condizentes com o mesmo, tendo, porém, uma equipe dedicada a testes. 2.1 Equipe A equipe foi dividida, desempenhando alguns papéis, descritos a seguir. - Cliente o Descrever a funcionalidade desejada e se disponibilizar para tirar dúvidas e aprimorar as User Stories (funcionalidades) em qualquer momento; o Descrever os requisitos não funcionais do software e os testes de aceitação; o Definir o plano de release de software; o Escolher User Stories para cada iteração. - Desenvolvedor o Ajudar a obter User Stories e requisitos não funcionais junto ao Cliente; o Durante a fase de planejamento de releases, elaborar um projeto arquitetural; o Durante o planejamento de releases, estimar, aproximadamente, o tempo de desenvolvimento de User Stories; o Durante o planejamento de iteração: Dividir as User Stories em Tarefas Estimar, com precisão, o tempo de desenvolvimento de Tarefas Escolher Tarefas para desenvolver; o Elaborar o esquema lógico dos dados, se necessário. o Escrever o código das tarefas, incluindo os testes de unidade; o Integrar as tarefas realizadas ao restante do código do projeto; o Executar Test Review a pedido do gerente do projeto. - Gerente o Conduzir as atividades de planejamento; o Alocar reviewers de testes; o Avaliar riscos e lidar com aqueles descobertos; o Manter o progresso do projeto. 2.2 Atividades As atividades realizadas se dividiram em cinco partes apresentadas a seguir. 1. Planejamento: abrange a escrita de User Stories (funcionalidades), levantamento de requisitos não funcionais, planejamento de releases e de iteração; 2. Projeto: se divide em projeto arquitetural e refatoramento constante; 3. Testes: inclui a elaboração de testes de aceitação 4 e de unidade, assegurando que o software se comporta de maneira desejada a cada situação testada; 4. Integração: quando se utiliza o controle de versão, garantindo que o software com o qual o programador vai trabalhar está em sua versão mais atualizada. Assegura-se isto fazendo check-out (adquirir a versão mais atualizada do projeto para desenvolver uma tarefa) antes de iniciar o desenvolvimento e fazendo check-in (atualizar o projeto, acoplando a tarefa que acabou de ser desenvolvida) ao finalizar o desenvolvimento; 4 Testes que definem que tarefa cada módulo do software deve desempenhar quando estiver concluído.

5. Acompanhamento: atividade que assegura a manutenção do progresso do projeto, sendo desempenhada pelo gerente. 3. RESULTADOS O resultado deste trabalho consistiu no desenvolvimento de um plug-in OMAP SDK 1.0, utilizado na plataforma Linux (de preferência uma distribuição Debian), tendo sido desenvolvida para Eclipse 3.1, CDT 3.0 e Scratchbox 0.9.8. As funcionalidades da versão 0.5 são: Criação de um novo projeto OMAP SDK; Geração automática do arquivo Makefile com duas targets (processadores alvo) já definidas; Wizard para criação de targets do ambiente Scratchbox; Wizard para configuração do protocolo SBRSH; Seleção da target ativa no ambiente Scratchbox; Execução da aplicação no Scratchbox; Depuração da aplicação utilizando o GDB ou o GDBServer; Este plug-in utiliza a plataforma CDT que possui quatro principais plug-ins, sendo cada um destinado a uma tarefa diferente: depuração (C/C++ Debug) que serve para encontrar certos erros de lógica no código; launch [ECLIPSE] que é formado por um conjunto de configurações as quais possibilitam a particularização do modo de execução de um programa; build, [ECLIPSE] sendo este um processo que deriva resources (projetos, arquivos e diretórios) de outros resources e/ou atualiza resources já existentes; e core que representa o editor do código, busca de palavras no mesmo, etc. Na Figura 1 é apresentada a arquitetura deste plug-in (circulada), bem como a sua integração com o Eclipse.

4. CONSIDERAÇÕES FINAIS Figura 1 Arquitetura do Plug-in OMAP SDK [HERBSTER, 2005]. Ao perceber a dificuldade para se trabalhar com uma nova plataforma, principalmente a necessidade de conhecimento sobre todas as ferramentas de apoio ao desenvolvimento para a referida plataforma, decidiu-se desenvolver um SDK para OMAP. O processo de desenvolvimento foi baseado no já existente XP1, sendo a equipe dividida entre gerente, cliente, desenvolvedor e as atividades definidas como planejamento, projeto, testes, integração e acompanhamento. O resultado do projeto foi o plug-in OMAP SDK utilizada em Linux e desenvolvido para Eclipse 3.1, CDT 3.0 e Scratchbox 0.9.8. Alguns problemas foram observados durante o processo de desenvolvimento deste projeto como falta de documentação de ferramentas que foram utilizadas, fase de adaptação com as mesmas e falta de familiarização com os padrões que um código de plug-in do Eclipse deve seguir. Um possível trabalho futuro seria o desenvolvimento de um plug-in para testes de unidade para C como o CUnit [CUNIT], a exemplo do que já existe para Java, o JUnit [JUNIT]. 5. REFERÊNCIAS BIBLIOGRÁFICAS 1. [CROSS-COMPILATION, 2005] http://www.scratchbox.org/documentation/general/tutorials/ explained.html. Último acesso em 08 de novembro de 2005. 2. [CUNIT, 2005] http://cuint.sourceforge.net/. Último acesso em 08 de novembro de 2005.

3. [ECLIPSE, 2005] http://www.eclipse.org/. Último acesso em 08 de novembro de 2005. 4. [HERBSTER, 2005] Herbster, Raul Fernandes. Gerência e Desenvolvimento de uma IDE para a plataforma OMAP. Campina Grande - PB.2005. 5. [JUNIT, 2005] http://www.junit.org/. Último acesso em 08 de novembro de 2005. 6. [OMAP, 2005]. http://focus.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateid=6123 &navigationid=11988&path=templatedata/cm/general/data/wtbovrvw/omap. Último acesso em 08 de novembro de 2005. 7. [SAUVÉ, 2005] Sauvé, Jacques Philippe, http://jacques.dsc.ufcg.edu.br/projetos/ common/xp1/xp1.html. Último acesso em 08 de novembro de 2005. 8. [SCRATCHBOX, 2005] http://www.scratchbox.org/. Último acesso em 08 de novembro de 2005.