Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
1. UM ESTUDO SOBRE GERENCIAMENTO DE
VARIABLIDADE EM LINHAS DE PROCESSO DE
SOFTWARE
Trabalho de Conclusão de Curso - TCC 2012
Acadêmico: Maicon Giovane Pazin
Orientador: Prof. Dr. Edson A. Oliveira Junior
2. Tópicos
• Introdução
• Linha de Produto de Software
• Linha de Processo de Software
• Objetivos do Trabalho
• Etapas do Trabalho
• Revisão Sistemática
• Proposta de Abordagem
• Conclusões Parciais
3. Motivação
• Demanda crescente pela definição e melhoria contínua
de processos para promover o desenvolvimento
produtivo de software de qualidade.
• Demanda pela rápida e efetiva customização de
processos de software atuais para endereçar a
variedade de projetos, tecnologias, cultura e escala
existentes.
4. Motivação
• Evolução da área de processos de software:
o Modelos de maturidade: CMMi, MPS.BR, PMBok
o Frameworks de processos: EPF, RUP
o Metodologias e práticas agéis: UP, Scrum, XP
• Existência de inúmeras informações, técnicas e
mecanismos que auxiliam na definição e avaliação de
processos de software.
5. Linha de Produto de
Software
• Conjunto de sistemas de softwares em um domínio que
compartilham funcionalidades comuns e variáveis.
• Reúso sistemático de artefatos em nível de código e de
projeto: features, arquitetura, componentes, etc.
• Vantagens: Produtividade, Custos, Tempo, Risco e
Qualidade do Produto.
6. Linha de Produto de
Software
• Atividades Essenciais:
1. Desenvolvimento do Núcleo de Artefatos
(Engenharia de Domínio): Análise do domínio, projeto
do domínio, implementação do domínio.
2. Desenvolvimento do Produto (Engenharia de
Aplicação): Analise dos requisitos, configuração do
produto, customização e desenvolvimento do projeto.
3. Gerenciamento de Linha de Produto: Garantia do
processo e evolução da linha de produto.
7. Linha de Produto de
Software
• Variabilidade: Uma feature que varia de um produto
para outro.
• Pontos de Variação: Um ponto/lugar onde uma
variabilidade ocorre em um artefato da linha de produto
de software.
• Variantes: As diferentes possibilidades que existem
para satisfazer um dado ponto de variação.
8. Linha de Processo de
Software (LPS)
• Definição: Uma família de processos de software com
um conjunto gerenciado de características que
satisfazem necessidades específicas de uma
organização e que são desenvolvidos a partir de um
conjunto de processos básicos comuns (Armbrust et al,
2009).
9. Linha de Processo de
Software (LPS)
• Preocupação: criar um conjunto de processos
genéricos, capturar as similaridades e controlar as
variabilidades sobre um domínio.
• Vantagens: Aumentar a previsibilidade, diminuir prazo e
custo, minimizar riscos (abordagem de reuso).
10. Linha de Processo de
Software (LPS)
Variabilidade em LPS
• Elementos de Processos: Atividades, tarefas, artefatos
e papéis
• Variabilidade: Elemento de processo que varia entre
diferentes domínios/projetos.
• Pontos de Variação: Ponto/local onde elementos de
processo podem ser instanciados em diferentes formas.
• Variantes: Elementos de processo permitidos para
serem inseridos em um ponto de variação.
11. Linha de Processo de
Software (LPS)
Notações e Ferramentas para Gerência
Variabilidade em LPS
•Software Process Engineering Metamodel (SPEM) 2.0
•EPF Composer
•UML
•Feature Models
•Orthogonal Variability Modeling (OVM)
12. Objetivos
• Realizar uma revisão sistemática sobre gerenciamento
de variabilidade em LPS.
• Identificar e analisar as abordagens recuperadas mais
relevantes.
• Propor/Estender uma abordagem para gerenciamento
de variabilidade em LPS apoiada pela UML e
linguagens relacionadas.
• Apresentar um exemplo de aplicação da abordagem
proposta.
• Analisar os resultados obtidos.
13. Etapas
• Estudo dos conceitos (OK)
• Revisão sistemática (OK)
• Análise dos resultados obtidos (OK)
• Proposta/extensão de uma abordagem para gerenciar
variabilidade em LPS (Em andamento)
• Aplicação e análise da abordagem proposta/extendida
14. Revisão Sistemática
• Kitchenham (2004)
• Objetivo da pesquisa:
1. Identificar e analisar estudos sobre linha de processo de software (LPS),
gerenciamento de variabilidade em LPS, modelagem de artefatos e
derivação automática de processos a partir de uma LPS.
2. Apresentar uma análise crítica sobre os estudos recuperados e identificar
as abordagens que poderão ser utilizadas para propor uma nova
abordagem para gerenciamento de variabilidade em LPS.
15. Revisão Sistemática
• Parâmetros de busca:
Fontes: bases de dados eletrônicas indexadas (IEEE, ACM, ScienceDirect,
Scopus e Compendex), máquinas de busca eletrônica (Scirus (Elsevier) e
Google Scholar) e consultas a especialistas.
Idioma dos trabalhos: inglês.
Tipos de documentos: artigos de conferência, anais de congresso, artigos de
periódicos, capítulos de teses e dissertação e relatórios técnicos.
Ano de publicação: estudos que foram publicados a partir do ano de 2005.
16. Revisão Sistemática
• Palavras-Chave: "software", "process line" e "variability"
• String de Busca:
"software "
AND
("process line" OR "process lines" OR "process-line" OR "process-family" OR
"process family" OR "family of process" OR "process families" OR "families
of process")
AND
("variability" OR "variant" OR "variation" OR "variation point" OR "commonality")
17. Revisão Sistemática
• Processo de seleção preliminar:
1. Consulta nas bases de dados indexadas e máquinas de busca.
2. Leitura dos títulos e resumos dos resultados obtidos.
3. Aplicação dos critérios de inclusão e exclusão pré-estabelecidos.
• Processo de seleção final:
1. Leitura na íntegra dos trabalhos pré-selecionados.
2. Elaboração de um resumo destacando a abordagem apresentada e os
conceitos envolvidos nos trabalhos.
20. Revisão Sistemática
Trabalhos considerados relevantes:
Id. Título Autor(es) Ano
1 Business Process Lines to deal with the Variability Rolland et al 2010
2 Deriving Project-Specific Processes from Process Line Architecture with Commonality and Washizaki 2006
Variability
3 Variability Mechanism Centric Process Family Architectures Schnieders 2006
4 Modeling and Implementing Variability in State Machine Based Process Family Schnieders 2006
Architectures for Automotive Systems
5 A Component Abstraction for Business Processes Barat et al. 2011
6 Building Software Process Line Architectures from Bottom Up Washizaki 2006
7 Representing Process Variation with a Process Family Simidchieva 2007
et al.
8 Modeling Variability in Software Process Lines Simmonds 2011
9 Variability Mechanisms in E-Business Process Families Schnieders e 2006
Puhlmann
10 Variability Modeling and Product Derivation in E-Business Process Families Schnieders e 2007
Puhlmann
11 Supporting the Definition of Software Processes at Consulting Organizations via Software Barreto et al. 2010
Process Lines
12 A Model-Driven Approach to Managing and Customizing Software Process Variabilities Aleixo et al. 2010
13 Automating the Variability Management, Customization and Deployment of Software Aleixo et al. 2010
Processes: A Model-Driven Approach
21. Revisão Sistemática
• Extração de informações dos trabalhos relevantes:
Autor(es), título do documento, fonte, ano da
publicação, volume, quantidade de páginas, resumo,
palavras-chave e propriedades ou características
abordadas nos trabalhos.
22. Abordagem
• Passos concluídos:
1. Análise das abordagens para gerenciamento de
variabilidade em LPS baseadas na notação UML.
2. Análise da abordagem SMarty para gerenciamento de
variabilidade em linha de produto.
23. Abordagem
• SMarty para Gerenciamento de Variabilidade
24. Abordagem
• Próximos passos:
1. Modelagem dos Core Workflows do Processo Unificado
(UP) utilizando as ferramentas EPF Composer e
Enterprise Architect baseadas na linguagem de
modelagem SPEM versão 2.0. (Em andamento)
2. Proposta/extensão de uma abordagem baseada na
notação UML.
3. Exemplo de aplicação da abordagem proposta.
4. Analise da abordagem proposta.
26. Conclusões Parciais
• A adoção de técnicas e conceitos da engenharia de
linhas de produto para processos de software parece
gerar bons resultados.
• Foi possível constatar que ainda não existem muitas
abordagens na literatura que tratam especificamente do
assunto.
• Existe uma carência de métodos e ferramentas
apropriadas para a gerencia da LPS e derivação
automática de processos customizados.
27. UM ESTUDO SOBRE GERENCIAMENTO DE
VARIABLIDADE EM LINHAS DE PROCESSO DE
SOFTWARE
Maicon Giovane Pazin - maiconpazin@gmail.com
Colaboração: Prof. Dr. Uirá Kulesza
Prof. Fellipe Aleixo
Perguntas?