Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouJoão Pedro Santos Lencastre Alterado mais de 7 anos atrás
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.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.