Linha de Processos

Transcrição

Linha de Processos
Grupo Prisma
Adaptação de Processos
para Reuso:
Process Tailoring
Raquel Mainardi Pillat
Grupo Prisma - http://prisma.cos.ufrj.br/
Universidade Federal do Rio de Janeiro - UFRJ
Abril,
2013.
June,
2012.
Agenda

Motivação

Definição de Conceitos

Tailoring e Modelos de Qualidade

Revisão da Literatura

Operações e Estratégias de Tailoring

Suporte em Linguagens/Notações
 Processos de software (Linhas de Processo, SPEM)
 Processos de Negócio (BPMN)

Requisitos para uma Notação Completa
2
Motivação

A qualidade de produtos de software está fortemente
relacionada à qualidade dos processos de desenvolvimento
adotados para construí-los. (FUGGETTA, 2000)

Um processo de software pode ser definido como um
conjunto coerente de políticas, estruturas organizacionais,
tecnologias, procedimentos e artefatos necessários para
conceber, desenvolver, implantar e manter um produto de
software. (FUGGETTA, 2000)
3
Motivação

A diversidade de organizações e projetos, suas
características e objetivos torna a tarefa de definição de
processos de software não trivial.

O termo Reutilização de Processos de Software
(Software Process Reuse) define uma ampla área de
estudo e utilização prática relacionada aos diferentes
aspectos envolvidos com a reutilização do
conhecimento adquirido na condução de projetos de
software anteriores (REIS, 2002).
4
Tailoring de Processos

É o ato de ajustar a descrição de um processo geral para
derivar um novo processo aplicável para um ambiente
alternativo (e menos geral) (Ginsberg, 1995)

Adaptar um processo padrão para as necessidades de
uma organização ou projeto.

Sinônimos
 Tailoring, adaptation, variability, customization, process
instantiation.

Conceitos relacionados
 Linha de processos, co-evolução e reuso de processsos.
5
Tipos de Tailoring

Nível de organização
 Adaptar um processo padrão “off-the-shelf”
 Ex.: Adaptar o UP para uma organização X que desenvolve
sistemas embutidos ou para outra Y que desenvolve sistemas
web.

Nível de projeto
 Adaptar um processo da organização para um projeto em
particular;
 Ex.: Organização X tem duas linhas de projetos, uma para
desenvolvimento de sistemas de detecção de colisão de
aeronaves e outra para detecção de colisão de automóveis. A
primeira linha requer um número maior de atividades do que
a segunda, mesmo que elas utilizem o mesmo processo
organizacional.
(Pedreira et al., 2007)
6
Tipos de Tailoring

Trabalhos relatados até 2007
Total = 28 trabalhos
(Pedreira et al., 2007) – A Systematic Review of Software Process Tailoring
7
Passos para o Tailoring

Passo 1 – Selecionar em uma base de processos
aquele que atende melhor as necessidades de um
projeto.

Passo 2 – Consultar regras e guias para adaptação
do processo (quando houver).

Passo 3 – Modificar o processo padrão para um
processo de projeto utilizando as regras e guias.

Passo 4 – Manter a consistência entre o processo
derivado e o processo base.
8
Tailoring e Modelos de Qualidade

Defined Process
 É um processo gerenciado e adaptado a partir de um
conjunto de processos-padrão da organização, de acordo
com guias de adaptação, para atender a um projeto em
particular. (ISO/IEC, 2004a)

Processos Padrão
 Um conjunto de definições de processos básicos que
guiam todos os processos na organização. Essas
definições cobrem os elementos de processo
fundamentais (e seus inter-relacionamentos) que devem
ser incorporados dentro dos processos definidos,
implementados nos projetos da organização. (ISO/IEC, 2004a)
9
Tailoring no CMMI
Tailoring Guidelines
Generic Goals and Practices – Nível 3: Definido
10
Tailoring no MPS.BR
Resultados Esperados – Nível E: Parcialmente Definido
11
Por que Aplicar Tailoring?

Atividade importante para definir processos que
atendam as necessidades específicas de cada
projeto de software, seguindo os padrões
estabelecidos pela organização.

Mantém rastros das adaptações realizadas.

Facilita o gerenciamento da evolução de modelos
e propagação de mudanças.

Permite melhorar os procesos da organização
através da análise do conjunto de adaptações
realizadas.
12
Consistência entre Modelos
Processo Derivado
Processo Base

Operações de tailoring devem manter a consistência
entre o processo derivado e o processo base
Pb1’
Pb1
evolução
do modelo
propagação
da mudança
propagação
da mudança
Pd2
Pd1
...
...
pode-se ter N níveis de derivação
13
Consistência entre Modelo e Instâncias

Adaptação de um modelo de processo deve ser
gerenciada em suas instâncias executando
Modelo do
Processo
 Problema tratado pela área de pesquisa “Gerenciamento de Mudança”
Modelo_P1’
Modelo_P1
evolução
do modelo
propagação
da mudança
Instâncias do
Processo
propagação
da mudança
Instância_1
Instância_2
...
14
Revisão da Literatura

Número de publicações por ano
Total = 32 trabalhos
Nível de organização = 7 trabalhos
Nível de projeto = 4 projetos
Revisão da Literatura

Número de publicações por ano e tipo
Sem aplicação para processos reais
Com aplicação para processos reais
Discute experiências anteriores em processos reais
Revisão da Literatura

Elementos de processo que variam
De 31 estudos, 24 tratam variações também em relacionamentos (fluxos).
Revisão da Literatura

Elementos centrais do tailoring:
Estes estudos consideram elementos
de trabalho e artefatos como os mais
importantes do processo.
Operações de Tailoring

Operações Diretas em elementos de processo
mudança interna em um elemento
Operações de Tailoring

Operações Indiretas – Alteram grupos de elementos
Operações de Tailoring

Operações de variabilidade – Linha de Processos

Definidas por meio de pontos de variação e variantes
pode ou não ser
ocupado por uma
variante
deve ser sempre
ocupado por uma
variante
pode ser ocupado
por várias variantes
Estratégias de Tailoring

Escolhas Operacionais
Estratégias de Tailoring

Assistência por meio de:
Ferramentas de suporte
 Armazenamento de conhecimento
 Regras de tailoring


Definição de vários passos de tailoring

Definição de vários níveis de abstração, do
mais variável ao processo concreto.

Uso de padrões de processo contendo o
conhecimento sobre tailoring.

Uso de brainstorming para adaptar um processo.
Estratégias de Tailoring

Testar o processo de tailoring e verificar sua
aderência com o modelo de processo de
referência.

Usar um ponto-de-vista para cada elemento do
processo a fim de observar os resultados do
trabalho; simulação do processo.

Executar o tailoring de forma bottom-up primeiro
e depois top-down para melhor encontrar os
requisitos do processo.
Suporte de Tailoring em…

Processos de Software

Linha de Processos / Modelo de Features
Pontos de variação e variantes

SPEM (Software & Systems Process Engineering Meta-Model)
Construtos de variabilidade dos pacotes Method Plugin and Variability

Processos de Negócio

BPMN (Business Process Model and Notation)
Proposta de extensão (BPMNt)
Linha de Processos
Conjunto de processos de software que compartilham
características comuns e variáveis, que podem ser
reutilizadas e combinadas entre si, segundo determinadas
regras, para compor e adaptar processos de software.

Modela um (sub)domínio de processos em particular, com
suas similaridades e variações.

Geralmente, representada por um Modelo de Features,
que impõe regras para definição de processos específicos.
Linha de Processos
e Modelo de Features...
Análise do Domínio de Processos de
Software
Análise de Aplicação de Processos de
Software
Modelo de Características do Domínio
Modelo de Características de Processo
Específico
Linha de Processos

Objetivos
Aumentar a produtividade da atividade de adaptação
de processos, diminuindo o esforço necessário para
realizá-la.
 Aumentar a qualidade e adequação dos processos
gerados (reutilização do conhecimento de
especialistas e de dados sobre utilização).
 Representar variabilidades e semelhanças entre
processos para potencializar a reutilização.
 Diminuir os riscos de uma definição/adaptação
inadequada do processo.

Linha de Processos

Limitações
Requer grande esforço para a construção do modelo
de domínio.
 Adaptação de processos específicos é restrita às
operações de inserção e remoção de elementos
previamente definidos.
 Não trata fluxos de controle entre elementos, mas
apenas quais componentes que serão reutilizados.

Linha de Processos

Abordagens / Ferramentas

OdysseyProcess-FEX

eSPEM
(Alégria et al., 2011)

vSPEM
(Martínez et al., 2008)
(Grupo de Reuso, UFRJ)
OdysseyProcess-FEX
ponto de variação
variantes
Ambiente OdysseyProcess-FEX
eSPEM (Alégria et al., 2011)
Modelo de Processo Organizacional
Requirements Development
(Alégria et al., 2011) - An MDE Approach to Software Process Tailoring
eSPEM (Alégria et al., 2011)
Diagrama de Atividades - SPEM
Requirements Development
(Alégria et al., 2011) - An MDE Approach to Software Process Tailoring
vSPEM (Martínez et al., 2008)
Extensão de Elementos SPEM
Elemento
Base
Ponto de
Variação
Variante
Relacionamento de
ocupação de variante
(Martínez et al., 2008) – Towards a SPEM v2.0 extension to define process lines variability mechanisms
vSPEM (Martínez et al., 2008)
Linha de processo de software
(Martínez et al., 2008) – Towards a SPEM v2.0 extension to define process lines variability mechanisms
Suporte de Tailoring em…

Processos de Software

Linha de Processos / Modelo de Features
Pontos de variação e variantes

SPEM (Software & Systems Process Engineering Meta-Model)
Construtos de variabilidade dos pacotes Method Plugin and Variability

Processos de Negócio

BPMN (Business Process Model and Notation)
Proposta de extensão (BPMNt)
SPEM
Padrão OMG
 Meta-modelo e notação
 Principal tecnologia para representar processos
de software
 Limitação: não suporta a execução de processos,
simulação.

Principais elementos da notação:
Processos em SPEM


Elementos de processo são parte de uma estrutura
breakdown
Uma Atividade pode representar uma tarefa, subprocesso
ou um processo inteiro, com seus elementos aninhados.
(SPEM Process Structure package meta-classes)
39
Tailoring em SPEM

Relacionamentos entre elementos de processo

Extension indica que uma Atividade (e seus
elementos associados) estende/reusa uma outra
atividade e, com isto, habilita os relacionamentos
de tailoring.

Três operações de tailoring:

Adição  localContribution

Substituição  localReplacement

Exclusão  suppression
40
Tailoring em SPEM

Relacionamentos de Tailoring no meta-modelo
41
Tailoring em SPEM

Adaptação de Processo:
42
SPEM – Ferramentas
Fornecem recursos para escrever (autoria), padronizar,
gerenciar e publicar descrições de processo.

Eclipse Process Framework (EPF)

Rational Method Composer


Modelos de atividades podem ser exportados
para execução no Rational Team Concert
Osellus IRIS
SPEM – Ferramentas

Eclipse Process Framework (EPF)

Method Content Authoring
44
SPEM – Ferramentas

Eclipse Process Framework (EPF)

Method Content Authoring
Task estendida:
45
SPEM – Ferramentas

Eclipse Process Framework (EPF)

Method Content Authoring
46
SPEM – Ferramentas

Eclipse Process Framework (EPF)

Method Content Authoring
47
Suporte de Tailoring em…

Processos de Software

Linha de Processos / Modelo de Features
Pontos de variação e variantes

SPEM (Software & Systems Process Engineering Meta-Model)
Construtos de variabilidade dos pacotes Method Plugin and Variability

Processos de Negócio

BPMN (Business Process Model and Notation)
Proposta de extensão (BPMNt)
BPMN
Padrão OMG para processos de negócio
 Meta-modelo e notação
 Principal tecnologia para representar processos
de negócio
 Foco na execução de processos

BPMN
Elementos:
Processos em BPMN
Suporte para a
especificação de
estruturas hierárquias
de processo similar
ao SPEM
51
BPMNt (BPMN + tailoring)
(Pillat et al., 2012)

Extensão conservativa baseada no mecanismo de
tailoring de SPEM

Permite remover, adicionar e substituir elementos
de processo

Representada pela classe TailoredBaseElement
e seus atributos

Os novos atributos podem ser usados por
qualquer subclasse de BaseElement
(Pillat et al. 2012) – Introducing Software Process Tailoring to BPMN: BPMNt.
52
BPMNt (BPMN + tailoring)
53
BPMNt – Exemplo

Processo de Entrega OpenUP
54
BPMNt –Exemplo

Tailoring do processo
<<replacement>>
<<suppression>>
<<contribution>>
55
BPMNt –Exemplo

Tailoring BPMNt do Delivery Process OpenUP
56
BPMNt –Exemplo

Processo Adaptado
Tailoring x Processos Negócio

Tailoring é relevante para processos de negócio?
(Branco et al., 2012) - An Empirical Study on Consistency Management of Business and IT Process Models
Requisitos para uma Notação Completa

Elementos de processo variáveis:
(Martínez-Ruiz et al., 2012)

Atividades/tarefas

Artefatos

Recursos

Fluxo de controle

Fluxo de produto
Requisitos para uma Notação Completa

Operações de tailoring:
(Martínez-Ruiz et al., 2012)

Inclusão
Opcional

Exclusão

Modificação
Obrigatório

Substituição
Alternativo
Requisitos para uma Notação Completa

Mecanismos para restrição/consistência:
(Martínez-Ruiz et al., 2012)

Regras

Dependências

Variação em conjuntos de elementos

Variação secundária (decorrente de uma principal)

Propagação de variações
Referências
(Donaires, 2006) Donaires, O. A. Critical Heuristic Approach to the
Establishment of a Software Development Process. Systemic Practice
and Action Research, v. 19, n. 5 (Out.), pp. 415-428, 2006.
 (Ginsberg, 1995) Ginsberg, M., Quinn, L. (1995): Process tailoring and the
software Capability Maturity Model. Technical report, Software
Engineering Institute (SEI).
 (Branco, 2012) Moises Castelo Branco, Yingfei Xiong, Krzysztof
Czarnecki, Jochen Kuster, Hagen Volzer. An Empirical Study on
Consistency Management of Business and IT Process Models. In
Software and Systems Modeling, 2012.
 (Pedreira, 2007) Oscar Pedreira, Mario Piattini, Miguel R. Luaces and
Nieves R. Brisaboa. A Systematic Review of Software Process Tailoring.
In ACM SIGSOFT Software Engineering Notes 2007.

Referências
(Alegría et al 2011) - Julio A. Hurtado Alegría, María Cecilia Bastarrica,
Alcides Quispe, Sergio F. Ochoa. An MDE Approach to Software Process
Tailoring. ICSSP 2011.
 (Pillat et al. 2012) - Raquel M. Pillat, Toacy C. Oliveira, Fabio L. Fonseca.
Introducing Software Process Tailoring to BPMN: BPMNt. ICSSP 2012.
 (Martínez-Ruiz, 2012) Tomás Martínez-Ruiz , Jürgen Münch, Félix García,
Mario Piattini. Requirements and constructors for tailoring software
processes: a systematic literature review. In Software Quality Journal,
2012.
 (Martínez-Ruiz, 2008) Martínez-Ruiz, T., García, F., & Piattini, M. (2008).
Towards a SPEM v2.0 extension to define process lines variability
mechanisms. In R. Lee (Ed.), SERA (Vol. SCI 150, pp. 115–130). Praga:
Springer.
