COMPOSE: Component Oriented Service Engineering www.compose.ufpb.br Apresentação dos Feras! Talles Brito Viana Mestrando em Informática – PPGI/UFPB Universidade Federal da Paraíba - UFPB 9 de Outubro de 2008 O que são componentes? Composição permite que “coisas” pré-fabricadas sejam reusadas ao “re-arranjar” tais “coisas” para que sejam criadas novas unidades de composição (componentes!)[Szyperski]. Idealmente, componentes são unidades executáveis, independentes de produção, aquisição e distribuição. Analogias comuns!... Componentes de software foram inicialmente pensados de forma análoga aos componentes de hardware em geral (Circuitos Integrados – CI). Já se falou/pensou na idéia de “Software CI” - “Software Bus” Logo, seria possível seguir tal analogia, e assim fazer software “ componentizado”. Vantagens do uso de componentes! Produzir software do zero é custoso. O uso repetido é a idéia central do “reuso”! Após diversas reutilizações, o custo de se fazer um componente (para reuso) torna-se menor do que construir soluções do zero. Software “sob medida” pode ser demorado de ser produzido em um mundo de mudanças rápidas – outro já fez o que você devia ter feito ! Diferentes componentes de diferentes qualidades (em termos de desempenho, eficiência e outros fatores) podem ter diferentes preços – competitividade! Mas, existem problemas !!!!!!!! ????: Um monte coisas no mundo são orientadas à componentes (principalmente nas outras engenharias), exceto software! [em 2002, mas hoje creio que ainda não...] “Componentização” é uma bem estabelecida disciplina em outras engenharias, mas até [2002 ano do Szyperski, mesmo assim, já estamos em 2008] ainda não é bem-sucedida no “mundo do software”. Descrições devem ser cuidadosamente generalizadas para promover reuso em um suficiente número de diferentes contextos. Interoperabilidade: como ser independente de distribuição? Padrões são difíceis de alcançar, pois empresas são competidoras. Mas, existem problemas !!!!!!!! ????: Necessitamos de uma re-organização dos processos. Como reusar componentes de forma sistemática? Onde armazenar componentes? Como encontrar componentes armazenados de forma fácil? Abordagens de componentes têm mais usuários quando é oferecida uma suficiente, grande e variada quantidade de componentes – isto é necessário! Linguagens/métodos/processos orientados à componentes devem permitir que os engenheiros de software resolvam os problemas que encontrarem no seu “dia-a-dia”. Como resolver tais problemas? A resposta é: PESQUISA! O COMPOSE é um grupo de pesquisa e desenvolvimento criado em Março de 2005 pelo Professor Doutor Glêdson Elias. O grupo trabalha na área de Engenharia de Software. O grupo é um dos pioneiros no estado da Paraíba a trabalhar com tecnologia de componentes, investigando os benefícios do reuso de software, tais como diminuição de custo de desenvolvimento e aumento na qualidade do software. Nossos Tópicos de Interesse Desenvolvimento Baseado em Componentes Reuso de Software Busca e recuperação de componentes Sistemas de Repositórios de Componentes Processos de Desenvolvimento Arquiteturas Orientadas a Serviços Desenvolvimento Distribuído de Software Middleware Middleware para Dispositivos Móveis Linhas de Produtos ... Alguns trabalhos e o que estamos fazendo... OLIVEIRA, João Paulo F.; BRITO, Talles;JÚNIOR, Sebastião Rabelo;ELIAS, G. Um Serviço de Repositório Compartilhado e Distribuído para Suporte ao Desenvolvimento Baseado em Componentes.SBES 2007 - Simpósio Brasileiro de Engenharia de Software. João Pessoa - PB, 2007. OLIVEIRA, João Paulo F.; BRITO, Talles;OLIVEIRA, Adriana E.; JÚNIOR, Sebastião Rabelo;ELIAS, G. X-CORE: Um Serviço de Repositório Compartilhado e Distribuído de Componentes de Software. Salão de Ferramentas - SBES 2007 - Simpósio Brasileiro de Engenharia de Software. João Pessoa - PB, 2007. ... Trabalho Premiado no SBES! Pesquisando atualmente: Recuperação de componentes: Middleware para dispositivos móveis + Linhas de produto: Talles Brito, Thiago Ribeiro e Hugo Nóbrega Thais Burity e Yuri Morais Desenvolvimento distribuído de software (DDS): Yuri Negócio Mas que ferramentas/tecnologias utilizamos? O que aprender no COMPOSE? No dia-a-dia, aprendemos a usar diversas tecnologias (inclusive de componentes!!, claro) e ferramentas... (algumas consideradas da moda, outras nem tanto..) Mas não é exatamente isso... Os alunos do COMPOSE não são somente programadores/engenheiros, temos que: Pesquisar (Ler muito!). Criar (Pensar muito!). Implementar suas idéias (Programar muito!) Escrever (Fácil? Isso dá um trabalho!). Divulgar (Apresentar, falar em público!). Mestrado (PPGI-UFPB!) (Defender a tese!). Tecnologia é só pra usar... o objetivo é formar alunos pesquisadores! Pré-requisitos: Como entrar no COMPOSE? Pré-requisitos: Saber programar! (tem que saber!) Ser criativo. Ser proativo. Gostar de estudar. Boa capacidade para resolver problemas. Como entrar no COMPOSE? www.compose.ufpb.br E-mail: [email protected] Dúvidas, converse conosco (bata na porta). Mande um currículo (quando aparecer alguma oportunidade avisamos)! Obrigado pela atenção!