MAPS: Um Modelo de Adaptação de Processos de Software Ciro Carneiro Coelho Orientador Prof. Hermano Perrelli de Moura Roteiro • Introdução – Motivação – Objetivos • MAPS – – – – Visão Geral Modelo de Caracterização de Projetos PConfig Base de Processos CIn - UFPE Ciro Carneiro Coelho 2 Roteiro • Estudo de Caso – – – – – Considerações Gerais Abordagem Utilizada Adaptação para o Projeto A Adaptação para o Projeto B Análise dos Resultados • Conclusões – Principais Contribuições – Dificuldades Encontradas – Trabalhos Futuros CIn - UFPE Ciro Carneiro Coelho 3 Introdução Introdução Motivação Motivação • As exigências do mercado de software são cada vez maiores • As empresas de software são obrigadas a buscar formas de melhorar o desenvolvimento de software • A demanda por um desenvolvimento mais estruturado levou ao surgimento de inúmeros processos de desenvolvimento de software CIn - UFPE Ciro Carneiro Coelho 5 Introdução Motivação Motivação Um processo de desenvolvimento de software é “um conjunto de atividades, métodos, práticas e transformações que as pessoas empregam para desenvolver e manter software e produtos associados” (MCT/SEPIN) CIn - UFPE Ciro Carneiro Coelho 6 Introdução Motivação Motivação • Um número cada vez maior de organizações tem adotado um processo padrão de desenvolvimento de software – – – – Facilita treinamento Permite melhoria do processo Melhora a comunicação entre os membros da equipe Torna o desenvolvimento mais previsível • Não existe um processo único que se adeqüe a todas as situações CIn - UFPE Ciro Carneiro Coelho 7 Introdução Motivação Motivação Probabilidade de Sucesso • A utilização de um processo inadequado pode causar o fracasso de um projeto P I1 I2 I3 Peso do Processo CIn - UFPE Ciro Carneiro Coelho 8 Introdução Motivação Motivação • O processo padrão de uma organização deve ser adaptado para cada projeto • A adaptação de processos não é uma tarefa trivial – Exige esforço e conhecimento – Os resultados da adaptação são incertos • Um método sistemático de adaptação de processos pode diminuir o esforço de adaptação, e diminuir a incerteza quanto ao processo adaptado CIn - UFPE Ciro Carneiro Coelho 9 Introdução Objetivos Objetivos • Estabelecer um modelo de adaptação do processo padrão de uma organização para projetos específicos • Fornecer mecanismos para diminuir o esforço necessário para realizar a adaptação de processos • Permitir a melhoria contínua dos processos utilizados pela organização • Estar em conformidade com o nível 3 do CMM, que define uma estrutura para a utilização e adaptação dos processos da organização CIn - UFPE Ciro Carneiro Coelho 10 MAPS MAPS Visão Geral Visão Geral • Modelo de Adaptação de Processos de Software • É um modelo que auxilia a adaptação de um processo padrão para projetos específicos e promove o reuso e melhoria de processos de software • É baseado nas características dos projetos e nos artefatos do processo padrão • É compatível com o nível 3 do CMM • Atualmente, contempla apenas a disciplina Planejamento e Gerenciamento CIn - UFPE Ciro Carneiro Coelho 12 Planejamento Inicial do Projeto 1. fornece Identificação das Características Características do Projeto 2. permite Comparação de Projetos Modelo de Caracterização de Projetos Comparação de Projetos e Reuso de Processos Base de Processos 3. Processos gera 4. Processo Preliminar é entrada para 5. modifica Complementação do Processo alimenta alimenta Reuso de modifica PConfig Utilização do Processo Processo Padrão 6. gera Avaliação do Processo Avaliação Final do Processo Processo Adaptado melhora é aplicado a fornece Projeto fornece Avaliação Parcial do Processo 7. Alimentação da Base de Processos Planejamento Inicial do Projeto 1. fornece Identificação das Características Características do Projeto 2. permite Comparação de Projetos Modelo de Caracterização de Projetos Comparação de Projetos e Reuso de Processos Base de Processos 3. Processos gera 4. Processo Preliminar é entrada para 5. modifica Complementação do Processo alimenta alimenta Reuso de modifica PConfig Utilização do Processo Processo Padrão 6. gera Avaliação do Processo Avaliação Final do Processo Processo Adaptado melhora é aplicado a fornece Projeto fornece Avaliação Parcial do Processo 7. Alimentação da Base de Processos Planejamento Inicial do Projeto 1. fornece Identificação das Características Características do Projeto 2. permite Comparação de Projetos Modelo de Caracterização de Projetos Comparação de Projetos e Reuso de Processos Base de Processos 3. Processos gera 4. Processo Preliminar é entrada para 5. modifica Complementação do Processo alimenta alimenta Reuso de modifica PConfig Utilização do Processo Processo Padrão 6. gera Avaliação do Processo Avaliação Final do Processo Processo Adaptado melhora é aplicado a fornece Projeto fornece Avaliação Parcial do Processo 7. Alimentação da Base de Processos Planejamento Inicial do Projeto 1. fornece Identificação das Características Características do Projeto 2. permite Comparação de Projetos Modelo de Caracterização de Projetos Comparação de Projetos e Reuso de Processos Base de Processos 3. Processos gera 4. Processo Preliminar é entrada para 5. modifica Complementação do Processo alimenta alimenta Reuso de modifica PConfig Utilização do Processo Processo Padrão 6. gera Avaliação do Processo Avaliação Final do Processo Processo Adaptado melhora é aplicado a fornece Projeto fornece Avaliação Parcial do Processo 7. Alimentação da Base de Processos Planejamento Inicial do Projeto 1. fornece Identificação das Características Características do Projeto 2. permite Comparação de Projetos Modelo de Caracterização de Projetos Comparação de Projetos e Reuso de Processos Base de Processos 3. Processos gera 4. Processo Preliminar é entrada para 5. modifica Complementação do Processo alimenta alimenta Reuso de modifica PConfig Utilização do Processo Processo Padrão 6. gera Avaliação do Processo Avaliação Final do Processo Processo Adaptado melhora é aplicado a fornece Projeto fornece Avaliação Parcial do Processo 7. Alimentação da Base de Processos Planejamento Inicial do Projeto 1. fornece Identificação das Características Características do Projeto 2. permite Comparação de Projetos Modelo de Caracterização de Projetos Comparação de Projetos e Reuso de Processos Base de Processos 3. Processos gera 4. Processo Preliminar é entrada para 5. modifica Complementação do Processo alimenta alimenta Reuso de modifica PConfig Utilização do Processo Processo Padrão 6. gera Avaliação do Processo Avaliação Final do Processo Processo Adaptado melhora é aplicado a fornece Projeto fornece Avaliação Parcial do Processo 7. Alimentação da Base de Processos Planejamento Inicial do Projeto 1. fornece Identificação das Características Características do Projeto 2. permite Comparação de Projetos Modelo de Caracterização de Projetos Comparação de Projetos e Reuso de Processos Base de Processos 3. Processos gera 4. Processo Preliminar é entrada para 5. modifica Complementação do Processo alimenta alimenta Reuso de modifica PConfig Utilização do Processo Processo Padrão 6. gera Avaliação do Processo Avaliação Final do Processo Processo Adaptado melhora é aplicado a fornece Projeto fornece Avaliação Parcial do Processo 7. Alimentação da Base de Processos Planejamento Inicial do Projeto 1. fornece Identificação das Características Características do Projeto 2. permite Comparação de Projetos Modelo de Caracterização de Projetos Comparação de Projetos e Reuso de Processos Base de Processos 3. Processos gera 4. Processo Preliminar é entrada para 5. modifica Complementação do Processo alimenta alimenta Reuso de modifica PConfig Utilização do Processo Processo Padrão 6. gera Avaliação do Processo Avaliação Final do Processo Processo Adaptado melhora é aplicado a fornece Projeto fornece Avaliação Parcial do Processo 7. Alimentação da Base de Processos Planejamento Inicial do Projeto fornece Características do Projeto permite Modelo de Caracterização de Projetos Comparação de Projetos e Reuso de Processos Base de Processos gera Processo Preliminar alimenta alimenta modifica é entrada para modifica PConfig Processo Padrão gera Avaliação Final do Processo Processo Adaptado melhora é aplicado a fornece Projeto fornece Avaliação Parcial do Processo MAPS Modelo de Caracterização de Projetos Modelo de Caracterização de Projetos • Realiza uma comparação de projetos de software, permitindo identificar projetos semelhantes e facilitando, assim, o reuso de processos • A comparação é feita entre as disciplinas do processo, e não em relação ao processo completo – Menor complexidade no desenvolvimento e utilização do modelo – Maior facilidade para encontrar projetos semelhantes CIn - UFPE Ciro Carneiro Coelho 22 MAPS Modelo de Caracterização de Projetos Características Selecionadas Características Selecionadas • Para a disciplina Planejamento e Gerenciamento, a comparação entre projetos é feita a partir das seguintes características: – – – – – Tamanho da Equipe Distribuição Geográfica da Equipe Experiência da Equipe no Processo Criticidade do Software Custo do Projeto CIn - UFPE Ciro Carneiro Coelho 23 MAPS Modelo de Caracterização de Projetos Caracterização dos Projetos Caracterização dos Projetos Nível 1 Nível 2 Nível 3 Nível 4 Nível 5 Muito pequena (1-6 pessoas) Pequena (7-20 pessoas) Média (21-50 pessoas) Grande (51-100 pessoas) Muito grande (+100 pessoas) Distribuição Geográfica da Equipe Mesma sala Mesmo prédio, salas diferentes Mesma cidade, mesma empresa, prédios diferentes Mesma cidade, empresas diferentes Cidades diferentes Experiência da Equipe Nenhum projeto 1 projeto 2 a 3 projetos 4 a 5 projetos +5 projetos Tamanho da Equipe Prejuízos baixos, Prejuízos baixos, Prejuízos Criticidade Perda de conforto perdas facilmente moderados, perdas perdas do Software recuperáveis recuperáveis irrecuperáveis Custo do Projeto Até R$ 50.000,00 CIn - UFPE Entre R$50.000,00 e R$150.000,00 Entre R$150.000,00 e R$1.000.000,00 Ciro Carneiro Coelho Entre R$1.000.000,00 e R$3.000.000,00 Risco de vida Mais de R$3.000.000,00 24 MAPS Modelo de Caracterização de Projetos Comparação de Projetos Comparação de Projetos O grau de semelhança SD entre dois projetos P e P’, em relação a uma disciplina D, é dado por: m SD 1 | n i 1 i ni ' | m onde: m é o número total de características que impactam D ni e ni’ são os níveis de classificação dessas características em P e P’, respectivamente | ni - ni’| representa a diferença de níveis para cada característica de P e P’ CIn - UFPE Ciro Carneiro Coelho 25 MAPS Modelo de Caracterização de Projetos Comparação de Projetos Comparação de Projetos • Caso 1: SD = 1 – projetos totalmente semelhantes em relação a D • Caso 2: 0,5 SD < 1 – projetos muito semelhantes em relação a D • Caso 3: 0 SD < 0,5 – projetos pouco semelhantes em relação a D • Caso 4: SD < 0 – projetos não semelhantes em relação a D CIn - UFPE Ciro Carneiro Coelho 26 MAPS Modelo de Caracterização de Projetos Estratégia de Reuso de Processos Estratégia de Reuso de Processos • Caso 1: reuso direto das partes do processo relativas à disciplina em questão • Caso 2: reuso das partes do processo relativas à disciplina em questão com adaptações • Caso 3: a definição do novo processo deve ser feita a partir da comparação entre o processo já utilizado, que está sendo reusado, e o processo padrão da organização • Caso 4: a definição do novo processo deve ser feita a partir do processo padrão da organização CIn - UFPE Ciro Carneiro Coelho 27 Planejamento Inicial do Projeto fornece Características do Projeto permite Modelo de Caracterização de Projetos Comparação de Projetos e Reuso de Processos Base de Processos gera Processo Preliminar alimenta alimenta modifica é entrada para modifica PConfig Processo Padrão gera Avaliação Final do Processo Processo Adaptado melhora é aplicado a fornece Projeto fornece Avaliação Parcial do Processo MAPS PConfig PConfig • PConfig é um processo de configuração de processos de software para projetos específicos. Baseia-se na escolha dos artefatos do processo padrão que farão parte do processo adaptado de acordo com as características do projeto • PConfig é dependente do processo padrão que a organização utiliza. A versão atual do MAPS utiliza o Rational Unified Process (RUP) como processo padrão CIn - UFPE Ciro Carneiro Coelho 29 MAPS PConfig Processo PConfig Processo PConfig • Passo 1: Identificar os artefatos do processo padrão que são adaptáveis • Passo 2: Para cada característica, fazer uma matriz com os níveis de classificação da característica e os artefatos da disciplina impactada, identificando, para cada nível, os artefatos que serão produzidos, não serão produzidos ou serão produzidos com restrições, ou ainda os artefatos que são indiferentes à característica CIn - UFPE Ciro Carneiro Coelho 30 MAPS PConfig Processo PConfig Processo PConfig Tamanho da Equipe Artefatos 1-6 pessoas 7-20 pessoas 21-50 pessoas 51-100 pessoas +100 pessoas Artefato 1 N N R S S Artefato 2 S S S S S Artefato 3 I I I I I Artefato 4 N N N N S CIn - UFPE Ciro Carneiro Coelho 31 MAPS PConfig Processo PConfig Processo PConfig • Passo 3: Para cada característica, selecionar a coluna da matriz correspondente à característica do projeto 7-20 pessoas CIn - UFPE Artefato 1 N Artefato 2 S Artefato 3 I Artefato 4 N Ciro Carneiro Coelho 32 MAPS PConfig Processo PConfig Processo PConfig • Passo 4: Para cada disciplina, fazer uma sobreposição das colunas selecionadas de cada característica que impacta a disciplina para decidir que artefatos devem ser produzidos • Passo 5: Completar a lista de artefatos. Caso algum artefato seja indiferente a todas as características, decidir se ele será ou não produzido CIn - UFPE Ciro Carneiro Coelho 33 MAPS PConfig Processo PConfig Processo PConfig • Passo 6: Realizar adaptação do processo. De posse da lista de artefatos que serão produzidos, identificar as atividades necessárias para a produção desses artefatos e os papéis responsáveis pelas atividades • Passo 7: Análise do Engenheiro de Processos CIn - UFPE Ciro Carneiro Coelho 34 Planejamento Inicial do Projeto fornece Características do Projeto permite Modelo de Caracterização de Projetos Comparação de Projetos e Reuso de Processos Base de Processos gera Processo Preliminar alimenta alimenta modifica é entrada para modifica PConfig Processo Padrão gera Avaliação Final do Processo Processo Adaptado melhora é aplicado a fornece Projeto fornece Avaliação Parcial do Processo MAPS Base de Processos Base de Processos • Armazena o conhecimento adquirido sobre a utilização de processos em projetos passados – Informações sobre os projetos passados e suas características – O processo de software utilizado em cada projeto • • • • Artefatos Selecionados Artefatos Não Selecionados Artefatos Incluídos Artefatos Excluídos – Uma avaliação de cada processo utilizado, artefato por artefato CIn - UFPE Ciro Carneiro Coelho 36 Estudo de Caso Estudo de Caso Considerações Gerais Considerações Gerais • O RUP foi adaptado, utilizando o MAPS, para dois projetos, Projeto A e Projeto B • Os projetos não utilizaram realmente os processos gerados pelo MAPS, foi feito apenas um estudo comparativo • A organização onde o estudo de caso foi realizado utiliza um processo padrão fortemente baseado no RUP • A adaptação através do MAPS foi avaliada com e sem reuso de processos CIn - UFPE Ciro Carneiro Coelho 38 Estudo de Caso Abordagem Utilizada Abordagem Utilizada • • • • Passo 1: Escolha dos projetos Passo 2: Caracterização dos projetos Passo 3: Adaptação do processo para o Projeto A Passo 4: Avaliação e compatibilização dos processos do Projeto A • Passo 5: Adaptação do processo para o Projeto B • Passo 6: Avaliação e compatibilização dos processos do Projeto B • Passo 7: Análise dos resultados obtidos CIn - UFPE Ciro Carneiro Coelho 39 Estudo de Caso Adaptação para o Projeto A Adaptação para o Projeto A • Adaptação com base apenas no PConfig • O Processo MAPS e o Processo Real foram diferentes em relação a 5 artefatos • Em relação à avaliação do gerente do projeto, o Processo MAPS foi mais adequado em 3 casos e o Processo Real foi mais adequado em 2 casos CIn - UFPE Ciro Carneiro Coelho 40 Estudo de Caso Adaptação para o Projeto B Adaptação para o Projeto B • Adaptação utilizando reuso de processos 5 Característica Projeto A Projeto B S PG 1 | n i i 1 ni ' | 1 0,2 0,8 Tamanho da Equipe Nível 3 Nível 2 5 Distribuição Geográfica da Equipe Nível 2 Nível 2 Caso 2: 0,5 SPG < 1 Experiência da Equipe Nível 1 Nível 1 Criticidade do Software Nível 3 Nível 3 Tamanho do Projeto Nível 4 Nível 4 CIn - UFPE reuso das partes do processo relativas à disciplina em questão com adaptações Ciro Carneiro Coelho 41 Estudo de Caso Adaptação para o Projeto B Adaptação para o Projeto B • A diferença entre o Processo MAPS e o Processo Real resumiu-se a 3 artefatos • Em relação à avaliação do gerente do projeto, o Processo MAPS foi mais adequado em 2 casos. Para 1 artefato, não foi possível determinar qual dos processos foi o mais adequado • O reuso de processos trouxe melhoria para 4 artefatos, em relação à adaptação feita sem utilizar reuso CIn - UFPE Ciro Carneiro Coelho 42 Estudo de Caso Adaptação para o Projeto B Adaptação para o Projeto B • O esforço de adaptação utilizando reuso foi mínimo • Uma lição aprendida no Projeto A diminuiu o esforço necessário para a produção de um artefato no Projeto B CIn - UFPE Ciro Carneiro Coelho 43 Estudo de Caso Análise dos Resultados Análise dos Resultados • O PConfig está relativamente bem ajustado, mas é preciso adaptá-lo às condições específicas da organização desenvolvedora • O reuso de processos possui um grande potencial, tanto do ponto de vista da diminuição do esforço de adaptação quanto do ponto de vista da melhoria dos processos adaptados • Existe a necessidade de uma ferramenta que automatize a comparação de projetos e facilite a escolha do processo a ser reusado CIn - UFPE Ciro Carneiro Coelho 44 Conclusões Conclusões Principais Contribuições Principais Contribuições • Um modelo (MAPS) para adaptação de processos de software a partir de um processo padrão. O MAPS contempla, ainda, a avaliação, melhoria e reuso dos processos adaptados. O MAPS tem, como objetivo final, o estabelecimento de uma “família” de processos adaptados, todos derivados do processo padrão, em que cada membro da “família” é um processo adaptado, testado e aprovado para uma circunstância específica • Um Modelo de Caracterização de Projetos que permite comparar projetos de software a partir de suas características CIn - UFPE Ciro Carneiro Coelho 46 Conclusões Principais Contribuições Principais Contribuições • Uma análise das principais características dos projetos de desenvolvimento de software que influenciam o planejamento e o gerenciamento desses projetos • O relacionamento entre os artefatos da disciplina Planejamento e Gerenciamento do RUP e as características que influenciam a disciplina, identificando, caso a caso, a necessidade de produzir, ou não, cada artefato CIn - UFPE Ciro Carneiro Coelho 47 Conclusões Trabalhos Relacionados Trabalhos Relacionados • Barros – Estratégia para armazenar e reusar o conhecimento sobre gerenciamento de projetos utilizando cenários – Não trata da adaptação de processos – Não se limita a representar os processos utilizados • Borges e Falbo – ProKnowHow, ferramenta para apoiar a adaptação de processos, a coleta e disseminação do conhecimento adquirido e a melhoria do processo padrão – O reuso está focado em melhores práticas (técnicas, idéias, utilização de ferramentas) e não em disciplinas do processo CIn - UFPE Ciro Carneiro Coelho 48 Conclusões Trabalhos Relacionados Trabalhos Relacionados • Budlong e Szulewski – Método de adaptação baseado em “blocos de construção” – Não existe mecanismo para reuso de processos – Não é feita correspondência entre os “blocos de construção” e as características dos projetos • Cameron – Descrição dos artefatos dos processo e das circunstâncias sob as quais cada artefato deve ser produzido – É feita apenas uma descrição do método de adaptação, sem detalhes sobre que condições ou características devem ser considerados – Não existe mecanismo para reuso de processos CIn - UFPE Ciro Carneiro Coelho 49 Conclusões Trabalhos Relacionados Trabalhos Relacionados • Henninger – BORE, ferramenta para capturar as mudanças feitas no processo padrão e as circunstâncias em que essas mudanças foram feitas, utilizando essas informações para auxiliar a adaptação de processos – Não existe uma definição de que características impactam o processo – Não é detalhada uma forma de recuperar as informações do BORE para realizar a adaptação em projetos semelhantes CIn - UFPE Ciro Carneiro Coelho 50 Conclusões Trabalhos Relacionados Trabalhos Relacionados • Machado – Ferramenta (DEF-PRO) e modelo para definição e adaptação de processos de software com base na norma ISO 12207 – O ponto de partida para a adaptação é a norma, e não um processo padrão. São descritos alguns critérios de adaptação, mas, como não existe um processo padrão, não existe uma correspondências entre esses critérios e os artefatos do processo – Não existe mecanismo para reuso de processos CIn - UFPE Ciro Carneiro Coelho 51 Conclusões Dificuldades Encontradas Dificuldades Encontradas • Complexidade do Processo de Software – O grande número de características que impactam o processo de software – A complexidade das disciplinas do processo – A falta de conhecimentos específicos sobre cada disciplina • Estudo de Caso – Tempo – Disponibilidade de projetos CIn - UFPE Ciro Carneiro Coelho 52 Conclusões Trabalhos Futuros Trabalhos Futuros • Detalhamento de outras disciplinas do processo • Desenvolvimento do PConfig para outros processos • Automação da comparação de projetos • Avaliação do MAPS • Integração com outros trabalhos CIn - UFPE Ciro Carneiro Coelho 53 MAPS: Um Modelo de Adaptação de Processos de Software Ciro Carneiro Coelho Orientador Prof. Hermano Perrelli de Moura