um estudo sobre gerenciamento de variabilidade em linhas de processo de software

Post on 04-Jul-2015

455 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Seminários do LES - 06.09.2012 Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software

TRANSCRIPT

UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADE EM LINHAS DE PROCESSO DE SOFTWARE

Trabalho de Conclusão de Curso - TCC 2012

Acadêmico: Maicon Giovane PazinOrientador: Prof. Dr. Edson A. Oliveira Junior

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

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.

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.

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.

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.

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.

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).

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).

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.

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)

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.

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

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.

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.

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")

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.

Revisão Sistemática

• Trabalhos recuperados:

Revisão Sistemática

Números obtidos:

•36 Trabalhos recuperados

•17 Trabalhos selecionados para a leitura na íntegra

•13 Trabalhos considerados relevantes

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 Variability

Washizaki 2006

3 Variability Mechanism Centric Process Family Architectures Schnieders 2006

4 Modeling and Implementing Variability in State Machine Based Process Family Architectures for Automotive Systems

Schnieders 2006

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 et al.

2007

8 Modeling Variability in Software Process Lines Simmonds 2011

9 Variability Mechanisms in E-Business Process Families Schnieders e Puhlmann

2006

10 Variability Modeling and Product Derivation in E-Business Process Families Schnieders e Puhlmann

2007

11 Supporting the Definition of Software Processes at Consulting Organizations via Software Process Lines

Barreto et al. 2010

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 Processes: A Model-Driven Approach

Aleixo et al. 2010

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.

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.

Abordagem• SMarty para Gerenciamento de Variabilidade

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.

Abordagem• Modelagem do

Processo Unificado

em SPEM 2.0

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.

UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADE EM LINHAS DE PROCESSO DE SOFTWARE

Maicon Giovane Pazin - maiconpazin@gmail.comColaboração: Prof. Dr. Uirá Kulesza

Prof. Fellipe Aleixo

Perguntas?

top related