Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
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?