33
Processo de Reuso de Software

Aula processo de reuso de software

Embed Size (px)

Citation preview

Processo de Reuso de Software

Processo de Software

• QUE etapas/atividades devem ser executadas?• COMO as atividades são executadas?• QUANDO as atividades são executadas?• QUEM é responsável pelas atividades?• O QUE é gerado pela atividade?

Um exemplo

Concepção e Especificação

Análise e Projeto

Implementação e Testes Entrega

Engenheiro de Requisitos Projetista

Engenheiro de Software

Testador

EspecificaçãoRequisitos

Modelos Código Produto

Processo de Software

• Vantagens:– Processo bem definido pode ser observado e

mensurado– Processo pode ser utilizado para aproximar a adoção

de melhores práticas ao cotidiano da organização– Processo permite disseminação das práticas que

funcionam– A ênfase no processo de software torna a atividade

de desenvolvimento mais uma engenharia do que “criação”

Processo de Reuso de Software

• Processo de software que visa REUSO• Baseado em duas abordagens essenciais:–Desenvolvimento PARA reuso–Desenvolvimento COM reuso

• Auxilia a internalização do pensamento baseado em reuso

Construindo ou Reutilizando

• Aspecto Cultural– Cultura do Desenvolvedor– Ambiente de Trabalho– Guias e Ferramentas

Construir...

Reutilizar...

Desenvolvimento PARA e COM reuso

• Desenvolvimento COM reuso é uma abordagem que tenta maximizar o reuso de componentes de software existentes.– Métricas, custos, reengenharia

• Desenvolvimento PARA reuso é planejar atividades para a construção de componentes (modelo de domínio).– Processo, atividades, ferramentas

Processo de Reuso de Software

• Processo simplificado para reuso de software– Quais são as principais etapas envolvidas ?– Quem são as pessoas envolvidas ?– Quais são os artefatos produzidos ?– Qual a diferença de um processo que visa

software convencional para um processo que visa reuso de software ?

Processo de Reuso de Software

Usuário

Necessidades do usuário

Engenharia de

Domínio

Ativos

Engenharia de Aplicação

Distribuição

Processo de Reuso de Software

Usuário

Necessidades

do usuário

Engenharia de

Domínio

Ativos

Engenharia de Aplicação

Distribuição

Processo de Reuso de Software

Usuário

Necessidades do usuário

Engenharia de

Domínio

Ativos

Engenharia de Aplicação

Distribuição

Processo de Reuso de Software

Usuário

Necessidades do usuário

Engenharia de

Domínio

Ativos

Engenharia de Aplicação

Distribuição

Processo de Reuso de Software

Usuário

Necessidades do usuário

Engenharia de

Domínio

Ativos

Engenharia de

Aplicação

Distribuição

Processo de Reuso de Software

Usuário

Necessidades do usuário

Engenharia de

Domínio

Ativos

Engenharia de Aplicação

Distribuição

Processo de Reuso de Software

Usuário

Necessidades do usuário

Engenharia de

Domínio

Ativos

Engenharia de Aplicação

Distribuição

Processo de Reuso de Software

Usuário

Necessidades do usuário

Engenharia de

Domínio

Ativos

Engenharia de

Aplicação

Distribuição

Processo de Reuso de Software

Processos Convencionais

• Necessidades do Usuário

• Features do produto• Modelos (Esp, Projeto,

Imp)• Implementação da

solução

Processo de Reuso

• Necessidades do Usuário

• Features do produto• Features da

família do produto• Seleção/Desenv.

Componentes• Implementação da

solução

Processo de Reuso de Software

• Engenharia de Domínio e Engenharia de Aplicação são processos:– complementares– interativos e – paralelos.

• Focos:– Engenharia de Domínio: família de sistemas– Engenharia de Aplicação: sistema único

Engenharia de Domínio

• Visão geral

?Análise da Viabilidade

Análise do Domínio

Projeto do Domínio

Implementaçãodo

Domínio

Analista do Negócio Engenheiro do Domínio Engenheiro de Software

Engenharia de Domínio

• Visão geral

?Análise da Viabilidade

Análise do Domínio

Projeto do Domínio

Implementaçãodo

Domínio

Analista do Negócio Engenheiro do Domínio Engenheiro de Software

Engenharia de Domínio

• Análise do Domínio

Entradas

• Conhecimento• Técnicas de

Modelagem de Informação

Análise do Domínio

• Fronteiras• Pontos em

comum e diferenças

• Entendimento• Representação

Saídas

• Modelo de Domínio

Engenharia de Domínio

• Visão geral

?Análise da Viabilidade

Análise do Domínio

Projeto do Domínio

Implementaçãodo

Domínio

Analista do Negócio Engenheiro do Domínio Engenheiro de Software

Engenharia de Domínio

• Projeto do Domínio

Entradas

• Modelo de Domínio

Projeto do Domínio

• Projetos Genéricos

• Estilos Arquiteturais

• Estratégias de Particionamento

• Especificações de Projeto

Saídas

• Modelo de Projeto

• Arquitetura

Engenharia de Domínio

• Visão geral

?Análise da Viabilidade

Análise do Domínio

Projeto do Domínio

Implementaçãodo

Domínio

Analista do Negócio Engenheiro do Domínio Engenheiro de Software

Engenharia de Domínio

• Implementação do Domínio

Entradas

• Ferramentas de compilação

• Padrões de Código

• Modelo de Projeto

Implementação do Domínio

• Identificar componentes reutilizáveis

• Desenvolver biblioteca de componentes

Saídas

• Linguagens específicas do domínio

• Geradores de aplicação

• Componentes reutilizáveis (ativos)

Processo de Reuso de Software

Usuário

Necessidades do usuário

Engenharia de

Domínio

Ativos

Engenharia de

Aplicação

Distribuição

Engenharia de Domínio e Engenharia de Aplicação

Engenharia de Domínio

?Análise da Viabilidade

Análise do Domínio

Projeto do Domínio

ImplementaçãoDo Domínio

Engenharia de Aplicação

Engenharia de Requisitos

Análise e Projeto

Integração eTestes

Engenharia de Aplicação

• O foco da engenharia de aplicação é um único sistema.• Atividades:– Modelo de domínio para identificar os requisitos dos

clientes;– Modelo de projeto para especificar uma configuração de

produto– Estratégia de particionamento e estilo arquitetural para

guiar o desenvolvimento customizado– Geradores de aplicação e componentes de software para

produzir o código da aplicação.

Modelos de Processos de Reuso de Software

• Abordadem Draco (1980)• STARS CFRP (1993)• Catálogo para Processos e Métodos para

Engenharia de Família de Sistemas

Modelos de Processo para Reuso de Software

• Abordagem Draco (1980)

Definição

LinguagensExecutáveis

TecnologiasDe Software

Área da Aplicação

Analista doDomínio executável

Analista doDomínio de modelos

Analista doDomínio da aplicação

Ensapsulamento

Projetista doDomínio

Máquina deDraco

Modelos de Processo para Reuso de Software

• STARS CFRP (1993) Framework conceitual para processo de reuso

Mercado

AtivosExternos

SistemasExistentes

Ferramentas

Contexto daOrgnização

Gerenciamento de Reuso

Planejamento

x

Aprendizado

Engenharia de reuso

CRIAR

GERENCIAR

UTILIZAR

Sistemas deSoftware

Ativos

Modelos de Processo para Reuso de Software

• Processo de Criação (CRIAR)

AtivosExternos

SistemasExistentes

ConhecimentoDo Domínio

Feedback

CRIAR

Modelagem e AnáliseDo Domínio

Modelos deDomínio

Ativos de DomínioEspecífico

Desenvolvimento daArquitetura de Software

Desenvolvimento de Geradores de Aplicação

Desenvolvimento de Componentes

Evolução de Ativos

Modelos para Reuso

• Requisitos– Desenvolvimento PARA reuso

• Análise do Domínio• Projeto do Domínio• Implementação do Domínio

– Desenvolvimento COM reuso• Métricas• Custos• Reengenharia• Adaptação• Ambientes de Reuso de Software