A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Modelagem em Grafos de Repositórios de Pacotes de Software Antonio Terceiro

Apresentações semelhantes


Apresentação em tema: "Modelagem em Grafos de Repositórios de Pacotes de Software Antonio Terceiro"— Transcrição da apresentação:

1 Modelagem em Grafos de Repositórios de Pacotes de Software Antonio Terceiro terceiro@dcc.ufba.br

2 Roteiro ● Repositórios de Pacotes de Software ● Modelagem de Repositórios como Grafos ● Aplicações: – Controle de Qualidade de Repositórios – Otimização e completude na Instalação ● Conclusões

3 Repositórios de Pacotes de Software ● Software preparado para instalação e remoção trivial ● Relacionamentos entre os pacotes: – Dependência – Conflito

4 Motivação ● Distribuição de Software ● Facilidade ao usuário ● Gerenciamento de dependências – evitar “DLL hell”

5 Exemplos de Repositórios de Pacotes de Software ● Debian: + de 18 mil pacotes ● Fedora ● Gentoo ● FreeBSD Ports: + de 17 mil pacotes ● Fink

6 Modelagem de Repositórios como Grafos ● cada pacote é representado por um nó ● a relação de dependência é representada por uma aresta dirigida com rótulo “Depends” de p para q se o pacote p depende do pacote q. ● a relação de conflito é representada por duas arestas dirigidas em sentidos contrários de p para q com o rótulo “Conflicts”.

7 Graficamente libc6 busyboxbusybox-static initramfs-tools udev

8 Definições ● d(p): P 2 P representa o conjunto de dependências de um pacote p ∈ P ● um pacote p é instalável se d(p) = {} ou ∀ p' ∈ d(p) p' é instável. ● Instalação: um subgrafo I de um repositório R tal que todos os pacotes em I são instaláveis.

9 Aplicações: ● Controle de Qualidade de Repositórios ● Otimização e completude na Instalação

10 Controle de Qualidade de Repositórios ● Mancinelli et al [MBdC+ 06] ● Ponto de vista: administrador do repositório ● Problema: determinar se um pacote p é instalável. ● Abordagem usada: codificar o grafo do repositório como um problema SAT

11 Problema SAT ● Problema de Satisfatibilidade Booleana. ● Dada uma fórmula booleana, determinar se existe uma atribuição de valores verdade a suas variáveis que tornam a fórmula como um todo verdadeira. ● exemplo: – ¬p ∨ q: p = F, q = F ● SAT é um problema NP-completo

12 2-SAT ● caso especial do SAT ● fórmulas têm a forma: – (x 11 ∨ x 12 ) ∧ (x 21 ∨ x 22 ) ∧... ∧ (x n1 ∨ x n2 ) ● possui solução polinomial

13 Codificação como problema SAT x rs p q ¬p ∨ r ¬r ∨ x ¬p ∨ q ¬q ∨ x ¬r ∨ ¬s

14 Otimização e completude da Instalação: OPIUM ● Tucker et al [TSJL07] ● Ponto de Vista: usuário ● Problemas: – Instalação – Instalação Mínima (ou Ótima) – Remoção

15 Instalação ● Para instalar um pacote p: determinar se existe um conjunto de pacotes que contém p e que ao adicionados ao sistema o deixam num estado válido. ● Codificação como problema SAT, de forma análoga ao exemplo anterior. ● Vantagem: completude

16 Instalação Mínima (ou Ótima) ● Determinar qual das possíveis instalações otimiza uma função objetivo fornecida pelo usuário – tamanho do download – popularidade dos pacotes ● Codificação como problema pseudo-booleano ou de programação linear inteira (equivalentes).

17 Remoção ● Dado um pacote p que conflita com um pacote atualmente instalado no sistema, qual o conjunto ótimo de pacotes a serem removidos para que p possa ser instalado? ● resolvedor “SAT” incrementado: determina pacotes que impedem a remoção e usa a função objetivo dada para determinar o conjunto ótimo a ser removido

18 Conclusões ● modelagem de repositórios como grafos é natural e benéfica ● criação de ferramentas que auxiliam – administradores de repositório a manter/melhorar qualidade do repositório – usuários a otimizar o uso do repositório ● Problemas não abordados na disciplina: problemas de decisão (SAT) e programação linear inteira.

19 Referências (principais) ● [MBdC+ 06] – Fabio Mancinelli, Jaap Boender, Roberto di Cosmo, Jerome Vouillon, Berke Durak, Xavier Leroy, and Ralf Treinen. Managing the complexity of large free and open source package-based software distributions. In ASE ’06: Proceedings of the 21st IEEE International Conference on Automated Software Engineering (ASE’06), pages 199–208, Washington, DC, USA, 2006. IEEE Computer Society. ● [TSJL07] – Chris Tucker, David Shu ff elton, Ranjit Jhala, and Sorin Lerner. Opium: Optimal package install/uninstall manager. In ICSE ’07: Proceedings of the 29 th International Conference on Software Engineering, pages 178–188, Washington DC, USA, 2007. IEEE Computer Society.


Carregar ppt "Modelagem em Grafos de Repositórios de Pacotes de Software Antonio Terceiro"

Apresentações semelhantes


Anúncios Google