General Software Reuse Maturity Models Renata Teles Moreira [email protected] Disciplina: MDA Prof. Jacques Robin Roteiro Abordagens Capacidade X Maturidade Reuse Maturity Model Kolton and Hudson Llorens Reuse Capability Model Considerações Finais Referências Onde os Modelos de Maturidade e Capacidade Abordam Reuso CMMI O CMMI faz referências a COTS SAM – Supplier Agreement Management SG2- SP 2.1 - Review COTS Products ISM – Integrated Supplier Management SP 1.1 Analyze Potential Sources of Products TS – Technical solution SG 1 Select Product-Component Solutions SP 1.1 Develop Alternative Solutions and Selection Criteria; SG 2 - Develop the Design SP 2.1- Design the Product or Product Component SP 2.4 - Perform Make, Buy, or Reuse Analyses Onde os Modelos de Maturidade e Capacidade Abordam Reuso CMMI (continuação) RD – Requirements Development SG2 Develop product requirements SP 2.1Establish product and product-component requirements SP 2.2-1 Allocate Product-component requirements Não há, por exemplo abordagem especial para Gerência de Configuração ou a referência a uma Política de Reuso O SEI(Software Engineering Institute) trata a questão de reuso em Product Line Onde os Modelos de Maturidade e Capacidade Abordam Reuso MPS.BR Processo: Solução Técnica - STE STE 5. Uma análise em relação aos componentes do produto deve ser conduzida para verificar se é necessária sua construção, compra ou reuso; Onde os Modelos de Maturidade e Capacidade Abordam Reuso ISO 15504 Define um grupo de processos de Reuso, com os seguintes processos: REU. 1 Asset Management REU. 2 Reuse Program Management REU. 3 Domain Engineering Além desses processos, as seguintes práticas se referem à decisão make or buy ENG.3.BP5: Evaluate alternative system architectures ENG.5.BP1: Describe software architecture Os processos de reuso abordam três aspectos fundamentais: o gerenciamento do repositório; o programa de reuso (incluindo a política de reuso); a engenharia de domínio (que corresponde ao processo de produzir componentes para o reuso). Onde os Modelos de Maturidade e Capacidade Abordam Reuso OOSPICE O OOSPICE define um Modelo de Referência de Processo para CBD; É um modelo completo, compatível com a ISO/IEC 15504. Onde os Modelos de Maturidade e Capacidade Abordam Reuso Capacidade X Maturidade Capacidade de processo é a inerente habilidade do processo de produzir resultados planejados. Nível de maturidade é um conjunto predefinido de áreas de processo em determinado nível de capacidade. Kolton and Hudson Reuse Maturity Model Estrutura do Modelo Consiste em um framework de maturidade com cinco níveis: Initial Chaotic Monitored Coordinated Planned Ingrained Foram enumeradas dez dimensões ou aspectos de reuso Para cada dimensão, um atributo ou situação característica foi especificada para cada nível de maturidade Kolton and Hudson RMM Initial/Chaotic Monitored Coordinated Planned Ingrained Reuse discouraged Reuse encouraged Reuse incentivized Re-enforced rewarded Planning for reuse None Grassroots activity Targets of opportunity Business imperative Part of strategic plan Breadth of reuse Individual Work group Department Division Enterprise wide Dedicated group Corporate group with division liaisons Motivation/ Culture Responsible for making reuse happen Individual initiative Shared initiative Dedicated individual Reuse indoctrinated Reuse is the way we do business Kolton and Hudson RMM Initial/Chaotic Process by which reuse is leveraged Reuse assets Classificatio n activity Reuse process chaotic; unclear how reuse comes in. Monitored Reuse questions raised at design reviews (after the fact) Coordinated Design emphasis placed on off the shelf parts Planned Ingrained Focus on developing families of products All software products are genericized for future reuse Salvage yard (no apparent structure to collection) Catalog identifies language and platform specific parts Catalog organized along aplication specific lines Catalog includes generic data processing functions Planned activity to acquire or develop missing pieces in catalog Informal, individualize d Multiple independent schemes for classifying parts Single scheme catalog published periodically Some domain analyses done to determine categories Formal, complete, consistent timely classification Kolton and Hudson RMM Initial/Chaotic Technology support Metrics Legal, contractual, accounting considerations Personal tools, if any Monitored Many tools, but not specialized para reuse Coordinated Planned Ingrained Classification aids and synthesis aids Eletronic library separate from development environment Automated support integrated with development environment Analyses done to identify expected payoffs from developing reusable parts All system utilities, software tools and accounting mechanisms instrumented to track reuse Royalty scheme for all suppliers and customers Software treated as key capital asset No metrics on reuse level, payoff, or costs Number of lines of code used in cost models Manual tracking of reuse occurrences of catalog parts Inhibitor to getting started Internal accounting scheme for sharing costs and allocating benefits Data rights and compensatio n issues resolved with customer Algumas Questões para avaliar a disposição de uma organização para Reuso Um programa de incentivo está sendo estabelecido? Métricas de reuso tem sido estabelecidas? Coletadas? Custos de não reuso tem sido identificados? Existe um grupo ou individuo indicado a ser responsável por fazer reuso acontecer? Existe um catálogo de componentes reusáveis? Produtos do ciclo de vida são todos coletados? Uma revisão central de todos os projetos está sendo executada para avaliar potencial de reuso? A atividade de reuso está ligada ao plano de negócio estratégico da organização? Existem programas de treinamento para reuso? Reuse Maturity Model (Llorens et all) Estrutura do Modelo A estrutura desse modelo é baseada em três fatores de reuso: Estrutura de Repositório; Arquitetura para Desenvolvimento de Software; Gerenciamento Administrativo. Cada fator de reuso é determinado por um grupo de atividades de reuso. Cada atividade representa uma unidade mensurável para determinar o nível de reuso da organização. Estrutura de Repositório Arquitetura de Desenvolvimento de Software Gerenciamento Administrativo Infra-estrutura para Reuso Métricas para Calcular o Nível de Maturidade de Reuso O nível de maturidade de reuso da organização segue os níveis propostos por Kolton e Hudson e uma letra é designada para cada nível. A- Initial/Chaotic B- Monitored C- Coordinated D- Planned E- Ingrained Métricas para Calcular o Nível de Maturidade de Reuso Nível de Maturidade = Mr = √r2 + s2 + g2 Onde: r = coeficiente alocado para o repositório; s = coeficiente alocado para área de software; g = coeficiente alocado para área de gerenciamento. Métricas para Calcular o Nível de Maturidade de Reuso Cada um dos coeficientes pode ter um valor no intervalo de [1.9] rmax = smax = gmax = 9 rmin = smin = gmin = 0 Níveis equivalentes para intervalos considerados: Intervalo Nível [0,3[ A – Initial/Chaotic [3,6[ B - Monitored [6,9[ C - Coordinated [9,12[ D - Planned >=12 E - Ingrained Reuse Capability Model Reuse Capability Model Desenvolvido pelo Software Productivity Consortium para apoiar a institucionalização de reuso; É usado pela organização para avaliar sua própria capacidade de reuso e auxiliar no desenvolvimento de um plano para melhorar sua capacidade; É aplicado junto com o processo de adoção de reuso. Processo para Adoção de Reuso Componentes do RCM O RCM possui dois componentes: Um modelo de avaliação Um modelo de implementação Capacidade de Reuso A gama de resultados esperados em: competência, eficiência e, eficácia de reuso que podem ser alcançados pelos processos de uma organização. Capacidade de Reuso Modelo de Avaliação É um mecanismo para ser usado por uma organização para: obter um entendimento da sua capacidade de reuso atual e, identificar oportunidades potenciais para melhorar esta capacidade. Consiste de um conjunto de fatores críticos que correspondem a questões mais criticas para melhorar a capacidade de reuso. Fatores Críticos de Sucesso Fatores Críticos de Sucesso Cada um dos fatores críticos de sucesso são definidos em termos de uma ou mais metas. As metas identificam os resultados a serem alcançados para satisfazer um fator de sucesso. O modelo de avaliação define 59 metas distribuídas entre os fatores críticos de sucesso. Fator Crítico: Identificar Necessidades Metas 1. necessidades atuais de desenvolvimento para soluções são identificadas. 2. necessidades futuras de desenvolvimento para soluções são identificadas. 3. necessidades atuais dos clientes para soluções são identificadas. 4. necessidades futuras dos clientes para soluções são identificadas. 5. necessidades identificadas são usadas como base para adquirir ou desenvolver ativos reusáveis para satisfazer necessidades especificadas. RCM na Prática Deve ser usado por uma pessoa ou grupo interno da organização que tenha visão dos fatores críticos da organização Comitê dentro do SEPG A avaliação deve ser executada revisando cada meta e fazendo um julgamento se a meta é satisfeita ou não Para metas não satisfeitas deve ser indicado o que poderia ser feito para satisfazer essa meta. A saída da avaliação deve ser: uma lista de pontos fortes da capacidade do reuso e; uma lista de oportunidades de melhoria da capacidade de reuso correspondentes às metas parcialmente satisfeitas ou não satisfeitas. Modelo de Implementação Ajuda a reduzir a complexidade priorizando as metas associadas aos fatores críticos de sucesso e separando as metas em estágios. Os estágios não representam escala de maturidade. O modelo possui quatro estágios: Opportunistic Integrated Leveraged Anticipating Considerações Finais Os modelos de maturidade e capacidade encontrados não são pesquisas recentes; Foram baseados no CMM (foi lançado em 1989); Os modelos não são conhecidos; Referências J. Llorens, A. Amescua and V. Martinez. “The Reuse Process and its Maturity Level in an Organization: RMM”, Madrid, 1997. P. Koltun and Anita Hudson. “A reuse maturity model”. In Proceedings of the Fourth Annual Workshop on Software Reuse, November 1991. W. Frakes and C. Terry. “Software Reuse: Metrics and Models”. ACM Computing Surveys, Vol. 28, No. 2, June 1996. T. Davis. “The Reuse Capability Model: A Basis for Improving an Organization’s Reuse Capability”. IEEE, 1993. T.Davis. “Adopting a policy of reuse”. IEEE Speltkum, June,1994. Dúvidas..