• Nenhum resultado encontrado

Tércio Oliveira de Almeida. TCC - Nexus - RAS

N/A
N/A
Protected

Academic year: 2021

Share "Tércio Oliveira de Almeida. TCC - Nexus - RAS"

Copied!
20
0
0

Texto

(1)

Tércio Oliveira de Almeida

TCC - Nexus - RAS

Porto Alegre 12 de novembro de 2009

(2)

Tércio Oliveira de Almeida

TCC - Nexus - RAS

Trabalho de Graduação

Orientador:

Prof. Dr. Marcelo Soares Pimenta

UNIVERSIDADEFEDERAL DO RIOGRANDE DOSUL

INSTITUTO DE INFORMÁTICA

CURSO DE CIÊNCIA DA COMPUTAÇÃO

Porto Alegre 12 de novembro de 2009

(3)

Sumário

Resumo

Abstract

1 Introdução p. 6

2 REUSO E REPOSITÓRIOS DE ARTEFATOS: CONCEITOS E TRABALHOS

RELACIONADOS p. 7

2.1 REPOSITORIOS DE SOFTWARE . . . p. 8 2.2 Repositórios de Software com suporte a Reuso . . . p. 8

3 Solução Proposta: Integrando RAS com Repositório de Software Nexus p. 9 3.1 Sistema de Indexação . . . p. 9 3.2 Serviço de Busca . . . p. 9 3.3 Integridade dos Artefatos . . . p. 9 3.4 Utilizando o Sistema: Passo a Passo . . . p. 10 3.4.1 SPR . . . p. 11 3.4.2 Pesquisando por Artefatos . . . p. 14 3.4.3 Recuperando Artefato . . . p. 14

4 Conclusões p. 16

5 Referências p. 17

(4)
(5)

Resumo

(6)

Abstract

(7)

6

1

Introdução

• Introdução geral sobre a monografia. Explicar o assunto pensando também nos leitores sem experiência no assunto (reuso de artefatos de software)

• Importância de reuso de artefatos de software

• Resumir a questão origem da monografia: sistematização do reuso de software usando RAS.

• OBJETIVO desse tcc. aplicação do RAS numa ferramenta de gerência de repositórios. • Dar uma perspectiva de como as questões (problema, motivação, objetivo, ...) serão

res-pondidas ao longo do trabalho. AQUI APROVEITAR PARA DESCREVER A ESTRU-TURA DO TRABALHO (NO CAP 2 ,...; NO CAP 3 ..., ETC)

(8)

7

2

REUSO E REPOSITÓRIOS DE

ARTEFATOS: CONCEITOS E

TRABALHOS RELACIONADOS

• Pimenta comment: (TERCIO, NESTE CAP 2 DEVEM SER REUNIDOS TODOS CON-CEITOS NECESSARIOS PARA ENTENDER O QUE FIZESTE, INCLUINDO AI OS CONCEITOS FUNDAMENTAIS

-REUSO, REPOSITORIO, ETC - E TBEM UM RESUMO DOS TRABALHOS RE-LACIONADOS AO TEU

• Descrição de Reuso de Artefatos de Software Situação atual das empresas.

Reuso como solução para diminuição da complexidade na produção de software e aumento da qualidade.

Características da situação atual que dificultam o reuso de software

Consequências da persistência desse problema. O que se perde mantendo-se a situa-ção atual? Quais são as consequências em termos de tempo e dinheiro?

• Sistematização do Reuso de Software

Qual a utilidade da sistematização do reuso de software? Resolve completamente esse problema? Quais são as dificuldades de sua aplicação? Porque não é aplicado glo-balmente hoje?

Qual a relação e diferença entre a solução que esse trabalho propõe para aplicação do reuso de software com o que é feito hoje? (essa questão vai ser detalhada nos dois próximos capítulos)

• Apresentar o padrão RAS (não sei se isso vai aqui...) Motivação

(9)

8

Características Estrutura

Vantagens e desvantagens de adotar o padrão da omg

2.1

REPOSITORIOS DE SOFTWARE

• Descrever o que são repositórios de software

• Descrever o papel dos repositórios de software na sistematização do Reuso • Comparar os repositórios presentes no mercado, considerando:

Licença (opensource?, preço?)

Padrão de descrição, metadados, empacotamento. Controle, busca, versionamento

Integração com ferramentas de desenvolvimento • Apresentar Nexus

Arquitetura

Sistema de plugins

Serviços de pesquisa, busca, resolução de dependências

2.2

Repositórios de Software com suporte a Reuso

• TRABALHO DO FELIPE, DO CHANG, ETC E QUALQUER TRABALHO SIMILAR AO TEU

(10)

9

3

Solução Proposta: Integrando RAS

com Repositório de Software Nexus

3.1

Sistema de Indexação

sistema atual alterações necessárias

-3.2

Serviço de Busca

3.3

Integridade dos Artefatos

A integridade dos artefatos é verificada na etapa de submissão. Essa verificação é realizada em duas etapas: A primeira na extração do artefato (no formato ZIP) após a submissão pelo cliente, e a segunda na leitura do arquivo rasset.xml contido dentro desse pacote.

A verificação do arquivo ZIP é realizada pela classe java.util.zip.ZipFile contida na JRE. Caso o arquivo esteja corrompido, uma exceção é lançada, e o tratamento é feito pelo próprio Nexus. Um detalhe importante é que não necessariamente um arquivo com extensão .jar será um arquivo de pacote Java compactado com o padrão ZIP, por exemplo. Dessa forma, devemos permitir a inserção desse artefato pelo Nexus sem interferir no processo. Assim, a carga do ar-tefato é realizada, abandonando a busca pelo arquivo rasset.xml e também a etapa de indexação dos metadados internos.

Já a consistência do descritor rasset.xml é mantida utilizando-se arquivos XSDs fornecidos pela OMG, que definem estrutura, conteúdo e semântica do descritor RAS. Da mesma forma, essa etapa também lança uma exceção, em caso de inconsistência na estrutura do XML, que é tratada pelo Nexus e registrada em log. REFERENCIAR ESSES XSDs ?

O diagrama de sequência da figura 3.1 demonstra como o motor de indexação padrão (classe DefaultIndexerEngine) realiza a chamada para o indexador RAS definido por

(11)

RasIndexerCrea-10

tor, e após receber um artefato corrompido, a exceção é repassada para o motor do Nexus.

Figura 3.1: Diagrama de Sequência para artefatos corrompidos Garantimos então as seguintes propriedades em caso de erro na submissão: • O pacote corrompido é inserido sem efeitos colaterais ao restante do sistema.

• O descritor RAS corrompido ou fora do padrão é descartado da fase de indexação, porém é mantido no repositório.

• Os erros (exceções) gerados são salvos em arquivo de log para posterior consulta. Esses erros podem também ser consultados através da interface do Nexus.

A rastreabilidade é importante em caso de erro, principalmente para que o usuário não perca tempo tentando discernir a razão do problema, mas possa isolá-lo eficientemente para uma possível correção. Após uma busca sem sucesso por um artefato que foi submetido, por exemplo, pode-se inicialmente verificar os registros de erro, através da interface, buscando a partir da data de inserção. Encontrado o registro de erro, com seus detalhes, sua data e hora, a causa raiz pode ser localizada e tratada rapidamente.

3.4

Utilizando o Sistema: Passo a Passo

Nessa subseção apresentaremos um passo a passo de como o sistema é utilizado. Para isso, iremos submeter um pacote Java simples, contendo um descritor RAS. Em seguida, fare-mos pesquisas por terfare-mos que estão contidos nesse descritor, verificando o retorno na interface. Finalmente, baixaremos o arquivo para simular o uso por um sistema, e verificaremos seu con-teúdo.

(12)

11

3.4.1

Submetendo um Pacote RAS

Existem diversas maneiras de se submeter artefatos para o Nexus. Uma forma bastante usada é através do comando deploy do Maven. Para facilitar nossa demonstração, iremos utilizar a própria interface gráfica do Nexus para submeter um artefato RAS. A figura 3.2 apresenta a tela de repositórios, na qual selecionaremos um repositório local para o envio do arquivo.

Figura 3.2: Seleção do repositório para envio

Escolhemos um repositório do tipo Maven armazenado localmente (hosted). Agora atra-vés da aba Artifact Upload iremos selecionar o artefato Junit, um conhecido framework para testes unitários, com a adição de um descritor RAS. A figura 3.3 mostra como o descritor está armazenado com relação às outras pastas do pacote, compactado com o algoritmo ZIP. Após configurar o envio conforme a figura 3.4, o passo seguinte é realizado pelo sistema. A indexação é construída a partir do descritor fornecido no pacote.

Basta configurar o pacote dessa forma, com o descritor RAS na estrutura de pastas de um arquivo compactado, e o sistema irá indexar as informações relevantes para a pesquisa. Perceba que o sistema não exige nenhuma extensão específica de pacote, sendo apenas necessário que o arquivo esteja compactado com o algoritmo ZIP, e um descritor esteja definido na sua estrutura de pastas. A descrição das operações realizadas e caminhos para indexação dentro do descritor estão especificadas na seção ??. O conteúdo do arquivo rasset.xml é uma versão simplificada do Default Profile, para simplificar o entendimento e a sequência da demonstração do sistema (Figura 3.5).

(13)

12

Figura 3.3: Estrutura do pacote com descritor RAS

(14)

13

< ? xml v e r s i o n = " 1 . 0 " e n c o d i n g = " u t f −8" ? > < a s s e t x m l n s = " h t t p : / / www. omg . com / RAS"

x m l n s : x s = " h t t p : / / www. w3 . o r g / 2 0 0 1 / XMLSchema−i n s t a n c e " name= " J U n i t " i d = " j u n i t " v e r s i o n = " 3 . 8 . 1 " s h o r t − d e s c r i p t i o n = " J U n i t i s a r e g r e s s i o n t e s t i n g f r a m e w o r k . " > < p r o f i l e name= " D e f a u l t " i d −h i s t o r y = " F1C842AD−CE85−4261−ACA7−178C457018A1 " v e r s i o n −m a j o r = " 2 " v e r s i o n −m i n o r = " 1 " / > < d e s c r i p t i o n > J U n i t i s a r e g r e s s i o n t e s t i n g f r a m e w o r k w r i t t e n by E r i c h Gamma and k e n t Beck . I t i s u s e d by t h e d e v e l o p e r who i m p l e m e n t s u n i t t e s t s i n J a v a . < / d e s c r i p t i o n > < s o l u t i o n > < a r t i f a c t name= " j u n i t . j a r " t y p e = " j a r " > < d e s c r i p t i o n > T h i s i s t h e JAR p a c k a g e f o r J U n i t 3 . 8 . 1 < / d e s c r i p t i o n > < a r t i f a c t −t y p e t y p e = " x s : s t r i n g " > J a v a P a c k a g e < / a r t i f a c t −t y p e > < / a r t i f a c t > < / s o l u t i o n > < / a s s e t >

(15)

14

3.4.2

Pesquisando por Artefatos

Existem extensões que permitem realizar pesquisas diretamente nos índices do Nexus dire-tamente dos ambientes de desenvolvimento. Para esse exemplo, porém, iremos novamente usar a interface web para realizar a pesquisa para recuperação do framework de testes junit. Na fi-gura 3.6 a pesquisa pelo termo “framework” é executada, retornando o artefato que adicionamos na seção anterior.

Figura 3.6: Pesquisa pelo termo “framework” no Nexus

O pacote junit foi retornado nesse caso, porque o termo “framework” está contido em um dos XPaths considerados, nesse exemplo, o //asset/@short-description, do descritor RAS. Mas, conforme mostraremos no capítulo seguinte, todas as propriedades do artefato no Nexus são mantidas. O que permite a sua recuperação pelos índices padrão do Nexus, mantendo a compa-tibilidade com qualquer que seja o sistema de repositórios do artefato. No próximo capítulo será demonstrada a capacidade desse sistema de se utilizar o resultado da pesquisa para recuperar o artefato de diferentes maneiras.

3.4.3

Recuperando Artefato

A recuperação do artefato para uso pode ser feita por meio da interface web, apesar de essa não ser a maneira mais comum. Geralmente, o usuário configura seu projeto no seu ambiente de desenvolvimento, incluindo os artefatos gerados e as dependências necessárias, e o gerenciador de projetos se encarrega de buscar essas dependências nos repositórios configurados. No nosso exemplo, o artefato é recuperado a partir de um repositório Maven. Portanto poderemos utilizá-lo em um descritor de projeto Maven através de suas coordenadas GroupId, ArtifactId e Version. A figura 3.7 mostra os links para baixar direto da interface do Nexus. Clicando no link ar-tifact, recuperaremos o artefato que foi adicionado na seção Submetendo um Pacote RAS. O link pom permite recuperar o descritor do projeto, o qual mantém informações de dependências e outros aspectos. Porém, para que possamos adicionar o artefato num projeto Maven como

(16)

de-15

pendência, precisaremos adicionar um trecho de código XML no arquivo pom.xml. Esse trecho é apresentado na interface de acordo com a figura 3.8, facilitando o papel do mantenedor do projeto. Portanto, copiando esse código presente na interface para o descritor de projeto, é su-ficiente para que o gerenciador recupere a dependência em questão, e posteriormente, verifique atualizações desta e de suas próprias dependências.

Figura 3.7: Identificação do Artefato e ligação para baixar

(17)

16

4

Conclusões

• Resultados: facilita a sistematização do reuso? • O que falta para uma sistematização completa?

• Quais as limitações da solução na aplicação em centros de desenvolvimento reais? • Sugestões para próximos trabalhos: Integração com IDEs, ferramentas de modelagem...

(18)

17

(19)

18

APÊNDICE A -- Teste de Apêndice

O que deve constar nos Anexos? Qualquer material que é importante para comprovar os resultados do trabalho mas que não se encaixa no corpo da monografia, seja porque é muito volumoso ou porque é muito detalhado. Anexos podem incluir por exemplo listagem de código, tabelas de dados, modelos desenvolvidos, especificações, etc.

(20)

19

APÊNDICE B -- Lista de Siglas

Dar um jeito de tirar isso daqui:

• ZIP - formato para compactação de dados. • OMG - OH MY GOD!

• RAS - Reusable Asset Specification.

• IDE - Integrated Development Environment. • JRE - Java Runtime Environment

• XSD - XML Schema Definition

Referências

Documentos relacionados

O CES é constituído por 54 itens, destinados a avaliar: (a) cinco tipos de crenças, a saber: (a1) Estatuto de Emprego - avalia até que ponto são favoráveis, as

A Lista de Fauna Ameaçada de Extinção e os Entraves para a Inclusão de Espécies – o Exemplo dos Peixes Troglóbios Brasileiros.. The List of Endangered Fauna and Impediments

O Artigo 68 do Código Florestal, que prevê que os proprietários ou possuidores de imóveis rurais que realizaram supressão de vegetação nativa, respeitando os limites impostos pela

Tais restrições, sendo convencionais, operam efeitos entre o loteador e os que vão construir no bairro, enquanto não colidentes com a legislação urbanística ordenadora da cidade e

esta espécie foi encontrada em borda de mata ciliar, savana graminosa, savana parque e área de transição mata ciliar e savana.. Observações: Esta espécie ocorre

Figura 6: Amostras de adultos de Tuta absoluta capturados na armadilha Delta com feromona colocada na cultura do tomateiro na estação experimental do INIDA em S.. Figura

▪ Quanto a solução para os conflitos entre os pais e a escola, houve um grande número de pais que não responderam, o que pode nos revelar que os pais não fizeram

Para a produção sintética de metabólitos fúngicos bioativos, alguns parâmetros podem ser analisados, como a composição do meio de cultivo, pois as características