aula processo de reuso de software
TRANSCRIPT
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