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.