68
Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas de Informação Disciplina: Reutilização de Software Material extraído dos cursos de Qualidade de Software e Reutilização de Software dos profs. Rodrigo Santos, Leonardo Murta, Cláudia Werner e Ana Regina Rocha

Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Embed Size (px)

Citation preview

Page 1: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Reutilização de Software no MPS.BRGerência de Reutilização

Desenvolvimento para Reutilização

Pós-graduação em Análise, Projeto e Gerência de Sistemas de Informação

Disciplina: Reutilização de Software

Material extraído dos cursos de Qualidade de Software e Reutilização de Software dos profs. Rodrigo Santos, Leonardo Murta, Cláudia Werner e Ana Regina Rocha

Page 2: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Introdução à Reutilização

Rodrigo SantosReutilização de Software no MPS.BR2

A Reutilização é inerente ao processo de solução de problemas utilizado pelos seres humanos

Na medida em que soluções são encontradas, estas são utilizadas em problemas similares

Nossa capacidade de abstração garante a adaptação necessária ao novo contexto

O problema, portanto, não é a falta de reutilização na Engenharia de Software, mas a falta de uma sistemática ampla e formal para realizá-la

Page 3: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Definição de Reutilização

Rodrigo SantosReutilização de Software no MPS.BR3

Reutilização de Software é o processo de incorporar em um novo produto: código especificações de

requisitos e projeto planos de teste qualquer produto gerado

durante desenvolvimentos anteriores

conhecimento em geral

O mercado internacional de componentes de software 2000-2005 (SOFTEX, 2007)

Page 4: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Benefícios da Reutilização

Rodrigo SantosReutilização de Software no MPS.BR4

Melhores índices de produtividadeProdutos de melhor qualidade, mais confiáveis, consistentes e padronizadosRedução dos custos e tempo envolvidos no desenvolvimento de softwareMaior flexibilidade na estrutura do software produzido, facilitando sua manutenção e evolução

Page 5: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Dificuldades da Reutilização

Rodrigo SantosReutilização de Software no MPS.BR5

Identificação, recuperação e modificação de artefatos reutilizáveisCompreensão dos artefatos recuperadosQualidade de artefatos reutilizáveisComposição de aplicações a partir de componentesBarreiras psicológicas, legais e econômicasNecessidade da criação de incentivos à reutilização

Page 6: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Gerência de Reutilização

Rodrigo SantosReutilização de Software no MPS.BR6

Gerência de Reutilização

Etapas

1. Planejamento de Reutilização

2. Criação de Artefatos

3. Gerência de Artefatos

4. Utilização de Artefatos

Page 7: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Gerência de Reutilização

Rodrigo SantosReutilização de Software no MPS.BR7

Planejamento

Criação

Gerência

Utilização

Objetivos, Estratégias, Processos, Recursos

Artefatos

Artefatos,Descrições

Lições

Lições

Requisitos,Lições, Processos,Artefatos

Requisitos

Page 8: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Gerência de Reutilização

Rodrigo SantosReutilização de Software no MPS.BR8

Planejamento

Criação

Gerência

Utilização

Objetivos, Estratégias, Processos, Recursos

Artefatos

Artefatos,Descrições

Lições

Lições

Requisitos,Lições, Processos,Artefatos

Requisitos

Page 9: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Planejamento da Reutilização

Rodrigo SantosReutilização de Software no MPS.BR9

Objetivo: definir uma Estratégia de Reutilização e um Plano para Implementação dentro da empresa

Atividades:1. Estabelecer a estratégia para criação, gerência e

utilização de artefatos reutilizáveis2. Integração da reutilização ao processo de

desenvolvimento3. Controle e evolução do processo

Page 10: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Gerência de Reutilização

Rodrigo SantosReutilização de Software no MPS.BR10

Planejamento

Criação

Gerência

Utilização

Objetivos, Estratégias, Processos, Recursos

Artefatos

Artefatos,Descrições

Lições

Lições

Requisitos,Lições, Processos,Artefatos

Requisitos

Page 11: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Criação de Artefatos

Rodrigo SantosReutilização de Software no MPS.BR11

Objetivo: produzir software e produtos associados para a reutilização (Desenvolvimento para Reutilização)

Atividades:1. Análise e modelagem do domínio

I. Engenharia de DomínioII. Linha de Produtos

2. Desenvolvimento de uma infraestrutura de reutilização

3. Evolução do processo

Page 12: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Engenharia de Domínio

Rodrigo SantosReutilização de Software no MPS.BR12

Domínio Uma coleção de problemas reais Uma coleção de aplicações que compartilham

características comuns Definições para Engenharia de Domínio (ED)

É o processo de identificar e organizar o conhecimento sobre uma classe de problemas, o domínio do problema, para suportar sua descrição e solução

Uma abordagem baseada em reutilização para definição do escopo, especificação da estrutura, e construção de recursos para uma classe de sistemas, subsistemas ou aplicações

Page 13: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Engenharia de Domínio

Rodrigo SantosReutilização de Software no MPS.BR13

Diagrama de Contexto para a Análise de Domínio (PRIETO-DÍAZ & ARANGO, 1991)

Realizar aAnálise

deDomínio

Fontes deConhecimentodo Domínio

consultas a

entrevistas

sistemas existentes

literatura técnica

requisitos atuaise futuros

Modelosde

Domínio

Métodosde

Análise deDomínio

Procedimentosde

Gerência

Engenheirode

Domínio

Especialistasno

DomínioAnalista

deDomínio

taxonomias

padrões(p.e., padrões de interface)

modelos funcionais(p.e., arquiteturas genéricas)

linguagens de domínio

especialistas

Page 14: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Engenharia de Domínio

Rodrigo SantosReutilização de Software no MPS.BR14

Objetivos Originar meta-sistemas, ou seja, sistemas que são

reutilizados na construção de aplicações específicas

Descobrir e definir modelos de domínio e arquiteturas comuns às famílias de aplicações para suportar uma reutilização pré-planejada

Tornar explícito e formalizar as teorias específicas ao domínio que permitem aos projetistas e especialistas do domínio a raciocinar sobre problemas e sistemas no domínio da aplicação

Page 15: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Engenharia de Domínio

Rodrigo SantosReutilização de Software no MPS.BR15

Etapas1. Análise de Domínio

O conhecimento existente sobre o domínio é estudado e formalizado através de um modelo de domínio

2. Projeto de Domínio Arquiteturas de software são construídas para atender

aos requisitos identificados no modelo de domínio

3. Implementação do Domínio Artefatos reutilizáveis são implementados para compor

as arquiteturas da aplicação

Page 16: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Engenharia de DomínioOdyssey-FEX (FERNANDES, 2009)

Rodrigo SantosReutilização de Software no MPS.BR16

Page 17: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Engenharia de DomínioOdyssey-FEX (FERNANDES, 2009)

Rodrigo SantosReutilização de Software no MPS.BR17

Acessar:reuse.cos.ufrj.br/files/publicacoes/mestrado/Mes_PaulaCibele.pdf

ereuse.cos.ufrj.br/odyssey

Page 18: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Engenharia de DomínioOdyssey-FEX (FERNANDES, 2009)

Rodrigo SantosReutilização de Software no MPS.BR18

Page 19: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Engenharia de DomínioOdyssey-FEX (FERNANDES, 2009)

Rodrigo SantosReutilização de Software no MPS.BR19

Page 20: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Engenharia de DomínioOdyssey-FEX (FERNANDES, 2009)

Rodrigo SantosReutilização de Software no MPS.BR20

Page 21: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Engenharia de DomínioAmbiente Odyssey (FERNANDES, 2009)

Rodrigo SantosReutilização de Software no MPS.BR21

Page 22: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Engenharia de DomínioAmbiente Odyssey (FERNANDES, 2009)

Rodrigo SantosReutilização de Software no MPS.BR22

Page 23: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Engenharia de DomínioAmbiente Odyssey (FERNANDES, 2009)

Rodrigo SantosReutilização de Software no MPS.BR23

Page 24: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Linha de Produtos

Rodrigo SantosReutilização de Software no MPS.BR24

Definição É um conjunto de sistemas de software que

compartilham um conjunto de características comuns e controladas, que satisfazem necessidades de um segmento de mercado em particular, e são desenvolvidos a partir de artefatos (core assets), de forma predefinida

É uma vertente da Engenharia de Domínio, cujo foco foi transferido para o âmbito empresarial!!!

Fonte: abiofiorini.com.br

Page 25: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Linha de Produtos

Rodrigo SantosReutilização de Software no MPS.BR25

Etapas1. Desenvolvimento do

Núcleo de Artefatos2. Desenvolvimento do

Produto3. Gerenciamento da

Linha de Produtos Peça-chave

Arquitetura

Fonte: meiobit.com

Page 26: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Linha de Produtos

Rodrigo SantosReutilização de Software no MPS.BR26

Desenvolvimento do Núcleo de Artefatos Escopo da linha de

produtos Artefatos do núcleo Plano de produção

Fonte: devmedia.com.br

Page 27: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Linha de Produtos

Rodrigo SantosReutilização de Software no MPS.BR27

Desenvolvimento do Produto Análise do domínio

da aplicação Instanciação da

arquitetura do produto

Povoamento da arquitetura

Fonte: viniciusquaiato.com

Page 28: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Linha de Produtos

Rodrigo SantosReutilização de Software no MPS.BR28

Gerenciamento da Linha de Produtos Supervisão Coordenação Documentação

Fonte: aldac.com.br

Page 29: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Gerência de Reutilização

Rodrigo SantosReutilização de Software no MPS.BR29

Planejamento

Criação

Gerência

Utilização

Objetivos, Estratégias, Processos, Recursos

Artefatos

Artefatos,Descrições

Lições

Lições

Requisitos,Lições, Processos,Artefatos

Requisitos

Page 30: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Gerência de Artefatos

Rodrigo SantosReutilização de Software no MPS.BR30

Objetivo: coletar, avaliar, descrever e organizar artefatos reutilizáveis para garantir sua disponibilização aos processos de criação e utilização

Atividades:1. Aquisição, aceitação, classificação, catalogação,

certificação e descontinuidade de artefatos reutilizáveis

2. Coleta de métricas e administração do repositório

3. Manutenção e evolução de artefatos

Page 31: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Gerência de Reutilização

Rodrigo SantosReutilização de Software no MPS.BR31

Planejamento

Criação

Gerência

Utilização

Objetivos, Estratégias, Processos, Recursos

Artefatos

Artefatos,Descrições

Lições

Lições

Requisitos,Lições, Processos,Artefatos

Requisitos

Page 32: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Utilização de Artefatos (SANTOS, 2010)

Rodrigo SantosReutilização de Software no MPS.BR32

Objetivo: compor sistemas a partir de artefatos reutilizáveis (Desenvolvimento com Reutilização)

Atividades: Identificação,

compreensão, avaliação, seleção, adaptação e integração de artefatos

Feedback ao Planejamento, Criação e Gerência de Artefatos

Acessar:reuse.cos.ufrj.br/files/publicacoes/mestrado/Mes_RodrigoSantos.pdf

ereuse.cos.ufrj.br/brecho

Page 33: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSGerência de Reutilização (GRU)

Rodrigo SantosReutilização de Software no MPS.BR33

O propósito do processo Gerência de Reutilização é gerenciaro ciclo de vida dos ativos reutilizáveis

GRU1 - Uma estratégia de gerenciamento de ativos é documentada, contemplando a definição de ativo reutilizável, além dos critérios para aceitação, certificação, classificação, descontinuidade e avaliação de ativos reutilizáveis

GRU2 - Um mecanismo de armazenamento e recuperação de ativos reutilizáveis é implantado

GRU3 - Os dados de utilização dos ativos reutilizáveis são registrados

GRU4 - Os ativos reutilizáveis são periodicamente mantidos, segundo oscritérios definidos, e suas modificações são controladas ao longo do seu ciclo de vida

GRU5 - Os usuários de ativos reutilizáveis são notificados sobre problemas detectados, modificações realizadas, novas versões disponibilizadas e descontinuidade de ativos

Page 34: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSGerência de Reutilização (GRU)

Rodrigo SantosReutilização de Software no MPS.BR34

GRU 1 – Uma estratégia de gerenciamento de ativos é documentada, contemplando a definição de ativo reutilizável, além dos critérios para aceitação, certificação, classificação, descontinuidade e avaliação de ativos reutilizáveis Definir o que são ativos reutilizáveis para a organização

Isso interfere em: Como o repositório é organizado Quais são procedimentos de busca e seleção de ativos Como é a arquitetura da biblioteca Qual é a infraestrutura para a utilização dos ativos

Planejamento relativo à implantação e execução do processo: Custos, Marcos, Recursos, Treinamento, Papéis (produtor,

consumidor e gerente da biblioteca) e Definição de Critérios

Page 35: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSGerência de Reutilização (GRU)

Rodrigo SantosReutilização de Software no MPS.BR35

GRU 1 – Uma estratégia de gerenciamento de ativos é documentada, contemplando a definição de ativo reutilizável, além dos critérios para aceitação, certificação, classificação, descontinuidade e avaliação de ativos reutilizáveis Critérios de Aceitação

Estabelecem os atributos que credenciam a existência de um ativo na biblioteca

Mantém a coerência da biblioteca Ex.: fazer parte de um domínio de interesse da

organização

Page 36: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSGerência de Reutilização (GRU)

Rodrigo SantosReutilização de Software no MPS.BR36

GRU 1 – Uma estratégia de gerenciamento de ativos é documentada, contemplando a definição de ativo reutilizável, além dos critérios para aceitação, certificação, classificação, descontinuidade e avaliação de ativos reutilizáveis Critérios de Certificação

Complementam os critérios de aceitação para avaliar integralmente um ativo

Quando um critério de aceitação é aplicado, é observado apenas se o ativo reutilizável possui um conjunto de características desejáveis

Visam atestar que uma determinada liberação de ativo reutilizável oferece realmente os serviços que propõe

Inclusão de uma versão concreta do ativo na biblioteca Ex.: aprovação nos testes antes da inclusão na biblioteca

Page 37: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSGerência de Reutilização (GRU)

Rodrigo SantosReutilização de Software no MPS.BR37

GRU 1 – Uma estratégia de gerenciamento de ativos é documentada, contemplando a definição de ativo reutilizável, além dos critérios para aceitação, certificação, classificação, descontinuidade e avaliação de ativos reutilizáveis Critérios de Classificação

Visam organizar os ativos na biblioteca, facilitando a sua busca e seleção

Ex.: classificação quanto ao tipo (código, modelo, processo etc.) ou quanto ao domínio (agropecuária, telecomunicações etc.) do ativo

Page 38: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSGerência de Reutilização (GRU)

Rodrigo SantosReutilização de Software no MPS.BR38

GRU 1 – Uma estratégia de gerenciamento de ativos é documentada, contemplando a definição de ativo reutilizável, além dos critérios para aceitação, certificação, classificação, descontinuidade e avaliação de ativos reutilizáveis Critérios de Descontinuidade

Estabelecem quando os ativos devem ser removidos da biblioteca

Devem ser objetivos, visando sua automação Ex.: descontinuar um ativo caso ele não seja utilizado

durante um período previamente estabelecido

Page 39: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSGerência de Reutilização (GRU)

Rodrigo SantosReutilização de Software no MPS.BR39

GRU 1 – Uma estratégia de gerenciamento de ativos é documentada, contemplando a definição de ativo reutilizável, além dos critérios para aceitação, certificação, classificação, descontinuidade e avaliação de ativos reutilizáveis Critérios de Avaliação

Estabelecem os atributos que definem o grau de qualidade de um ativo

Podem ser utilizados: Na certificação, pelo gerente da biblioteca Após a utilização, pelos consumidores

Ex.: grau de satisfação do uso de uma determinada versão de um ativo

Page 40: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSGerência de Reutilização (GRU)

Rodrigo SantosReutilização de Software no MPS.BR40

GRU 2 – Um mecanismo de armazenamento e recuperação de ativos reutilizáveis é implantado

Facilitar a localização dos ativos na biblioteca aos membros de projetos Deve ser compatível com a necessidade da organização

Prover o processo GRU Agregar a necessidade de categorização de um determinado usuário

Definir e disponibilizar o mecanismo de armazenamento Local onde as versões dos ativos são armazenadas para posterior

reutilização Ex.: biblioteca centralizada, diretório em rede etc.

Definir e disponibilizar o mecanismo de recuperação Formas com que os ativos são localizados pelos membros dos projetos Ex.: busca por palavras-chaves, busca por categorias, navegação via

hiperlinks etc.

Page 41: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSGerência de Reutilização (GRU)

Rodrigo SantosReutilização de Software no MPS.BR41

GRU 3 – Os dados de utilização dos ativos reutilizáveis são registrados Registro dos dados de utilização de ativos

reutilizáveis Armazenar a informação de quais consumidores

utilizam quais ativos de quais produtores Elo de ligação → Identificar tendências

Utilidade (GRU5) Identificar o produtor de um ativo em posse de um consumidor, para

solicitação de modificação Notificar o consumidor sobre a existência de novas versões do ativo Fornecer indicadores para o gerente da biblioteca sobre

descontinuidade do ativo Ex.: sempre que um consumidor obter uma determinada versão de

um ativo, registrar essa informação em um mapa de reutilização

Page 42: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSGerência de Reutilização (GRU)

Rodrigo SantosReutilização de Software no MPS.BR42

GRU 4 – Os ativos reutilizáveis são periodicamente mantidos, segundo os critérios definidos, e suas modificações são controladas ao longo do seu ciclo de vida Ativos devem estar sob GCO e GQA

Aplicar os procedimentos de gerência de configuração sempre que for necessário modificar algum ativo da biblioteca

Repositório de gerência de configuração Versões de desenvolvimento

Biblioteca de reutilização Liberações do repositório de gerência de configuração Aplicação dos critérios estabelecidos para certificação de ativos Aplicação do processo de Verificação Versões de produção

Page 43: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSGerência de Reutilização (GRU)

Rodrigo SantosReutilização de Software no MPS.BR43

GRU 5 – Os usuários de ativos reutilizáveis são notificados sobre problemas detectados, modificações realizadas, novas versões disponibilizadas e descontinuidade de ativos Utilização das informações coletadas pelo GRU3 Informar aos consumidores sobre alterações em um

ativo Novas versões

Corretivas (substituição requerida) Evolutivas (substituição opcional)

Ativos relacionados Descontinuidade

Ex.: relatórios periódicos, por evento, RSS etc.

Page 44: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

44

O propósito do processo Desenvolvimento para Reutilização é identificar oportunidades dereutilização sistemática na organização e, se possível, desenvolver um programa de reutilização para desenvolver ativos a partir de engenharia de domínio de aplicação.

DRU1 - Domínios de aplicação em que serãoinvestigadas oportunidades de reutilização ounos quais se pretende praticar reutilização sãoidentificados, detectando os respectivospotenciais de reutilizaçãoDRU2 - A capacidade de reutilização sistemática da organização é avaliada e ações corretivas são tomadas, caso necessário

DRU4 - O programa de reutilização éimplantado, monitorado e avaliado

DRU5 - Propostas de reutilização são avaliadas de forma a garantir que o resultado da reutilização seja apropriado para a aplicação alvo

DRU6 - Formas de representação para modelos de domínio e arquiteturas de domínio são selecionadas

DRU3 - Um programa de reutilização,envolvendo propósitos, escopo, metas eobjetivos, é planejado com a finalidade deatender às necessidades de reutilização dedomínios

DRU7 - Um modelo de domínio que capturecaracterísticas, capacidades, conceitos e funções comuns, variantes, opcionais e obrigatórios, é desenvolvido e seus limites e relações com outros domínios são estabelecidos e mantidos

DRU8 - Uma arquitetura de domínio descrevendo uma família de aplicações para o domínio é desenvolvida e mantida por todo seu ciclo de vida

DRU9 – Ativos do domínio são especificados; adquiridos ou desenvolvidos, e mantidos por todo seu ciclo de vida

Rodrigo SantosReutilização de Software no MPS.BR

Page 45: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR45

DRU 1 – Domínios de aplicação em que serão investigadas oportunidades de reutilização de ativos ou nos quais se pretende praticar reutilização são identificados, detectando os respectivos potenciais de reutilização Verificar se os ganhos proporcionados pela implantação

são maiores que os custos Identificar domínios de atuação da organização

Projetos passados Projetos futuros

Identificar os potenciais de reutilização de cada domínio Estabilidade do domínio Ativos de domínio preexistentes na organização Ativos de domínio passíveis de construção ou aquisição

Page 46: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR46

DRU 1 – Domínios de aplicação em que serão investigadas oportunidades de reutilização de ativos ou nos quais se pretende praticar reutilização são identificados, detectando os respectivos potenciais de reutilização A inexistência de domínios com potencial de

reutilização pode justificar a não adoção de um programa de reutilização Necessário utilização de mecanismos formais de tomada

de decisão (GDE)

Page 47: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR47

DRU 2 – A capacidade de reutilização sistemática da organização é avaliada e ações corretivas são tomadas, caso necessário Avaliar a capacidade da organização para executar o

processo de forma sistemática Recursos humanos capacitados Recursos financeiros para investimento de longo prazo Infraestrutura apropriada Aspectos culturais trabalhados dentro da organização

A inexistência de capacidade de reutilização pode justificar o adiamento da implantação do programa de reutilização

Tomar ações corretivas para gerar capacidade Gerenciar os riscos (GRI) relacionados à implantação do DRU Não justifica a não adoção de um programa de reutilização

Page 48: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR48

Page 49: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR49

DRU 3 – Um programa de reutilização, envolvendo propósitos, escopo, metas e objetivos, é planejado com a finalidade de atender às necessidades de reutilização de domínios Aplicável quando a organização tem oportunidade e

capacidade de reutilização Definir um programa de reutilização

Propósito Metas Recursos necessários e disponíveis Estágios intermediários a serem atingidos Atividades a serem executadas, cronograma e responsáveis Indicadores de monitoramento do programa Escopo em que o programa será conduzido (e.g., de dimensões:

unidades organizacionais, domínios, tipos de ativos etc.)

Page 50: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR50

DRU 4 – O programa de reutilização é implantado, monitorado e avaliado Implantar o programa de reutilização de acordo com

o planejado Monitorar a execução do programa de acordo com

os indicadores previamente planejados Comparar o planejado com o realizado, e reportar e

acompanhar as não conformidades detectadas Avaliar periodicamente o programa de reutilização,

tomando as ações corretivas necessárias para a melhoria da execução do processo (AMP)

Page 51: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR51

DRU 5 – Propostas de reutilização são avaliadas de forma a garantir que o resultado da reutilização seja apropriado para a aplicação alvo Demandas de reutilização

Submetidas ao gerente de reutilização na forma de propostas de reutilização

Permitem a análise da adequação de um ativo de domínio para um problema específico

Motivam a construção ou aquisição de ativos de domínio

Analisar as propostas Esforço de adaptação de ativo existente, esforço de construção do

ativo ou custo de aquisição do ativo Avaliar a proposta quanto às expectativas da organização Momento propício para alimentar o GRU 3

Manter a rastreabilidade entre o ativo original e o ativo adaptado para um consumidor específico

Page 52: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR52

DRU 6 – Formas de representação para modelos de domínio e arquiteturas de domínio são selecionadas Notações capazes de representar domínios e famílias de

aplicações em diferentes níveis de abstração Definir uma notação para representar modelos de

domínio Fronteira entre domínios Características obrigatórias Características opcionais Características variantes Dependência e exclusão mútua de características

Definir uma notação para representar arquiteturas de domínio Concretizar as características definidas no modelo de domínio

Page 53: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR53

DRU 7 – Um modelo de domínio que capture características, capacidades, conceitos e funções comuns, variantes, opcionais e obrigatórios é desenvolvido e seus limites e relações com outros domínios são estabelecidos e mantidos Determinar a fronteira dos domínios com potencial de

reutilização e domínios correlatos Contexto do programa de reutilização

Domínios a serem incluídos no programa no futuro

Desenvolver modelos de domínio para cada domínio no escopo do programa de reutilização

Usar notação definida no DRU6 Considerar modelos de domínio como ativos reutilizáveis (controlar com

GRU) Controlar a evolução dos modelos de domínio (GCO)

Page 54: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR54

DRU 8 – Uma arquitetura de domínio descrevendo uma família de aplicações para o domínio é desenvolvida e mantida por todo o seu ciclo de vida Arquitetura de domínio

Famílias de aplicações para um dado domínio Identifica os ativos de domínio e os seus relacionamentos

Desenvolver arquiteturas de domínio para cada domínio no escopo do programa de reutilização Usar notação definida no DRU6 Considerar as arquiteturas de domínio como ativos

reutilizáveis (controlar com GRU) Controlar a evolução das arquiteturas de domínio (GCO)

Priorizar os ativos de domínio identificados

Page 55: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR55

DRU 9 – Ativos do domínio são especificados; adquiridos ou desenvolvidos, e mantidos por todo seu ciclo de vida Especificar todos os ativos de domínio identificados na

arquitetura de domínio seguindo a priorização previamente definida Detalhamento das funcionalidades do ativo de domínio

Analisar (custo versus benefício) e avaliar a aquisição ou desenvolvimento do ativo Comprar o ativo (AQU) Desenvolver o ativo (fazendo refatoração de ativos existentes em

projetos anteriores) Não investir em um ativo em particular

Incorporar os ativos na biblioteca de ativos reutilizáveis (GRU)

Page 56: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR56

Algumas mudanças Novos papéis

Gerente de Ativos Administrador do Programa de Reutilização Comitê de Reutilização (opcional) Engenheiro de Domínio

Novas ferramentas Biblioteca de Ativos Diagramador de Modelos de Domínio

Page 57: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR57

Gerente de Ativos Atribuições

Estabelecer uma estratégia para gerenciamento de ativos reutilizáveis da organização, indicando ferramental adequado

Estabelecer e manter critérios para aceite, classificação, certificação, descontinuidade e avaliação

Implementar um mecanismo de armazenamento e recuperação

Manter a base de ativos reutilizáveis, incluindo informações sobre o seu uso

Notificar consumidores de ativos reutilizáveis quanto a problemas detectados, modificações efetuadas, inclusão de novas versões e descontinuidade

Page 58: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR58

Gerente de Ativos Para a realização de suas atividades, deverá ainda:

Realizar a gerência de configuração de ativos reutilizáveis de acordo com o processo GCO

Documentar e resolver os problemas e não conformidades da base de ativos reutilizáveis de acordo com o processo GDE (Gerência de Decisões) (caso necessário)

Realizar revisões de ativos reutilizáveis de acordo com o processo VER (Verificação)

Page 59: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR59

Administrador do Programa Atribuições

Identificar oportunidades para a prática de reutilização Avaliar a capacidade de reutilização da organização e

implementar ações corretivas (caso necessário) Decidir sobre a implantação de um Programa de

Reutilização na organização Planejar, estabelecer, gerenciar, monitorar e avaliar o

Programa de Reutilização da organização Promover a prática de reutilização na organização Prover a infraestrutura de reutilização necessária Prover suporte aos projetos para a prática de reutilização

Page 60: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR60

Administrador do Programa Para a realização de suas atividades deverá ainda:

Realizar revisões do Programa de Reutilização de acordo com o processo VER

Documentar e resolver os problemas e não conformidades do Programa de Reutilização de acordo com o processo GDE (caso necessário)

Utilizar o processo AMP para melhorar continuamente a infraestrutura de reutilização

Page 61: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR61

Comitê de Reutilização Atribuições

Identificar as oportunidades para a prática de reutilização Avaliar a capacidade da organização e propor ações

corretivas (caso necessário) Decidir sobre a implantação de um Programa de

Reutilização na organização Avaliar o Programa de Reutilização da organização

Page 62: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR62

Engenheiro de Domínio Atribuições

Identificar a fronteira entre os domínios tratados pelo Programa de Reutilização e domínio correlatos

Selecionar formas de representação de modelos e arquiteturas do domínio

Criar os modelos e arquiteturas de domínio de acordo com as formas de representação selecionadas

Especificar ativos de domínio Analisar a aquisição ou desenvolvimento de um ativo de

domínio

Page 63: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR63

Engenheiro de Domínio Para a realização de suas atividades, deverá ainda:

Desenvolver ativos de domínio de acordo com o processo PCP (Projeto e Construção do Produto)

Realizar a gerência de configuração de ativos do domínio de acordo com o processo GCO

Documentar e resolver os problemas e não conformidades dos ativos do domínio de acordo com o processo GDE (caso necessário)

Realizar revisões de ativos do domínio de acordo com o processo VER

Page 64: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR64

Biblioteca de Ativos

Page 65: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

MR MPSDesenvolvimento para Reutilização (DRU)

Rodrigo SantosReutilização de Software no MPS.BR65

Diagramador de Modelos de Domínio

Page 66: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Considerações Finais

Rodrigo SantosReutilização de Software no MPS.BR66

A reutilização é um conceito natural no processo de desenvolvimento de software, mas é preciso cuidar de determinados aspectos para que ela seja efetiva

Já temos experiência e propostas de solução para aspectos técnicos e não técnicos

Ao adotá-la, estaremos nos aproximando cada vez mais de uma real “Engenharia de Software”

Com o surgimento de normas sobre as boas práticas e processos envolvidos, finalmente, temos a chance de torná-la uma realidade nas empresas

Page 67: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Referências

Rodrigo SantosReutilização de Software no MPS.BR67

Software Reusability; (ed.) W.Schäfer, R.Prieto-Diaz and M.Matsumoto, Ellis Horwood, 1994

STARS Framework for Reuse Processes; 4th Annual Workshop on Software Reuse, Syracuse, NY, 1991

Domain Analysis and Software System Modeling; (ed.) R.Prieto-Diaz and G.Arango, IEEE Computer Society Press Tutorial, 1991

Software Engineering with Reusable Components; J. Sametinger, Springer, 1997

Page 68: Reutilização de Software no MPS.BR Gerência de Reutilização Desenvolvimento para Reutilização Pós-graduação em Análise, Projeto e Gerência de Sistemas

Reutilização de Software no MPS.BRGerência de Reutilização

Desenvolvimento para Reutilização

<<e-mail prof.>>

Instituto <<nome>>Pós-graduação em <<nome>>

Período <<num>>

Disciplina: <<nome>>Aula <<num>>

Material extraído dos cursos de Qualidade de Software e Reutilização de Software dos profs. Rodrigo Santos, Leonardo Murta, Cláudia Werner e Ana Regina Rocha