SlideShare uma empresa Scribd logo
Reuso de SoftwareProf. Agnaldo Volpe Lovato
IntroduçãoUso em outras disciplinasEngenharia MecânicaEletrônicaObjetivo: Reuso do Software ExistenteSomente nos últimos anos sua aplicação tornou-se mais ativaReposta às demandas:Menores custosManutenção de SoftwareEntregas mais rápidasAumento da qualidadeDireções opostas
IntroduçãoVisão EmpresarialOs itens de reuso passam a fazer parte de um ativo valiosoPromovem reuso para aumentar seu retorno sobre investimentos de software
BenefíciosConfiança aumentadaRisco de processo reduzidoUso eficiente de especialistasConformidade com padrõesDesenvolvimento acelerado
ProblemasCustos de manutenção aumentadosCódigo do componente indisponívelFalta de apoio de ferramentaMuitas ferramentas CASE não apóiam o reusoSíndrome do não-inventado-aquiPreferência em reescrever o componenteCriação e manutenção de uma biblioteca de componentesImaturidade na organização de uma biblioteca de componentesProcura, compreensão e adaptação de componentes reusáveis
PanoramaVárias técnicas foram desenvolvidas nos últimos 20 anosReuso possível em diferentes níveisFunções simples até aplicações completasPadrões facilitam o reusoDesign patternsDesenvolvimento de Software Orientado a AspectosLinhas de produtos de aplicaçãoFramewors de aplicaçãoGeradores de programaEmpacotamento de sistemas legadosIntegração de COTSDesenvolvimento baseado em componentesSistemas orientados a serviçosAplicações verticais configuráveisBibliotecas de Programas
PanoramaQual a técnicas mais apropriada?RequisitosTecnologiaAtivos reusáveisConhecimento da equipe
Considerações no planejamento do reusoCronograma de desenvolvimento do softwareQuanto mais curto for o prazo, a tendência em reusar sistemas prontos em vez de componentes individuais aumentaCiclo de vida previsto do softwareCiclo de vida longoSe concentrar na facilidade de manutençãoAlém das possibilidades de reuso, deve-se também pensar nas implicações a longo prazoAdaptação do sistema aos novos requisitos – mudanças nos componentesSe você não tem acesso ao código-fonte, evite o uso de componentes e sistemas de fornecedores externosConhecimento, habilidades e experiência da equipe de desenvolvimentoTecnologias de reuso são bastante complexasTreinamento
Considerações no planejamento do reusoImportância do software e seus requisitos não funcionaisSoftwares com requisitos de desempenhoUso de geradores de programas pode ser ineficazNão acesso ao código fonte pode trazer problemasDomínio da aplicaçãoAlguns domínios de aplicação trazem produtos genéricos que podem ser reutilizadosAlguns permitem a exportação e importação de dadosPlataforma sobre a qual o sistema será executadoBuscar componentes compatíveis
Considerações no planejamento do reusoA gama de técnicas é grande – há possibilidade de reuso de softwareEmpregar reuso é frequentemente uma decisão mais gerencial do que técnicaGerentesPodem não desejar comprometer seus requisitos com o reusoPodem decidir que o desenvolvimento de componentes ajudará a criar uma base de ativos de softwarePodem não compreender os riscos associados ao reuso da mesma forma que compreendem os riscos de desenvolvimento originalPreferem riscos conhecidos a desconhecidos
Desenvolvimento baseado em ComponentesCriados com o objetivo de conduzir ao reusoSurgiu da frustração de que o desenvolvimento orientado a objetos não tinha conduzido a um extensivo reusoClasses e objetos são muito detalhadas e específicasComponentes são mais abstratos que as classes de objetos e podem ser considerados provedores de serviçosOs componentes devem ser bem documentados para ajudar o projetista a compreendê-los e adaptá-los a uma nova aplicação
Desenvolvimento baseado em ComponentesPontos essenciais na engenharia baseada em componentes:Componentes independentesDeve haver uma clara separação entre a interface do componente e sua implementaçãoPadrões de componentesPermitem o uso em mais de uma linguagem de programaçãoMiddlewarePermitir que componentes independentes e distribuídos trabalhem juntosProcesso de desenvolvimento
Reuso Baseado em GeradoresConhecimento reusável é capturado em um sistema gerador de programasPode ser programado por especialistasA descrição da aplicação especifica, de maneira abstrata, quais componentes reusáveis serão empregadosAplicações de mesmo domínio têm arquiteturas comunsPodemos ter:Geradores de parser para processamento de linguagemGeradores de código em ferramentas CASEPodem gerar códigos ineficientesPodem trazer riscos, pois tem um custo inicial alto na definição e implementação de conceitos do domínio
Reuso Baseado em GeradoresGerador de ProgramaPrograma GeradoDescrição da AplicaçãoConhecimento de domínio da aplicaçãoBanco de Dados
Reuso Baseado em GeradoresSoftware Orientado a AspectosResolve o problema da separação de assuntos - princípio básico do projetoCada unidade ou componentes deve realizar uma, e somente uma funçãoExemplosComponente dedicado à busca de informaçõesComponente dedicado à impressão de documentosComponente dedicado à conexão com o banco de dadosContudo, estes componentes acabam de alguma forma se cruzandoOrientação a Aspectos busca realizar a integração separando e organizando o código de acordo com a sua importância para a aplicação
Frameworks de AplicaçõesÉ um projeto de subsistema composto por um conjunto de classes abstratas e concretas e as interfaces entre elas.3 classes de Frameworks:Frameworks de infra-estrutura de sistemasFrameworks de integração de middlewareFrameworks de aplicações empresariaisÉ uma estrutura genérica que pode ser ampliada para criar um subsistema ou aplicação mais específicaAmpliar o Framework pode envolver a adição de classes concretas que herdam operações de classes abstratas no FrameworkO maior problema está na sua complexidade e tempo para aprender a usá-lo
Reuso do Sistema de AplicaçõesEnvolve o reuso de sistemas de aplicações inteirasPode-se alcançar o objetivo:Pela configuração de um único sistemaPela integração de um ou mais sistemas para criar uma nova aplicaçãoÉ frequentemente a técnica mais eficiente de reusoEnvolve o reuso de grandes ativos que podem ser rapidamente configurados para criar um novo sistema
Reuso de Produto COTSUm produto comercial (COTS) é um sistema de software que pode ser usado sem alterações pelo compradorExemplo:Sistemas Gerenciadores de Banco de DadosEscolhas que precisam ser feitas quando usamos COTSQuais produtos COTS oferecem a funcionalidade mais apropriada?Como os dados serão trocados?Quais recursos de um produto serão realmente usados?
Reuso de Produto COTSClienteNavegador WebSistema de e-mailServidorSistema de e-commerceSistema de pedidos e faturasAdaptadorSistema de e-mailAdaptador
Reuso de Produto COTSProblemas de integração de sistemas COTS:Falta de controle sobre a funcionalidade e o desempenhoProblemas com a interoperabilidade de sistemas COTSNenhum controle sobre a evolução do sistemaSuporte dos fornecedores de COTS
Linhas de Produtos de SoftwareÉ um conjunto de aplicações com uma arquitetura comum específica de aplicaçãoCada aplicação específica é especializada de alguma maneiraO núcleo comum é reusado cada vez em que uma nova aplicação é necessáriaO novo desenvolvimento pode envolver a configuração de componentes específicos, a implementação de componentes adicionais e a adaptação de alguns componentes
Linhas de Produtos de SoftwareTipos de especialização em uma LPS:Especialização da plataformaSomente componentes que fazem interface com o hardware e o sistema operacional são modificadosEspecialização de ambienteExemplo: componentes do sistema são alterados para refletir a funcionalidade do equipamento de comunicação usadoEspecialização funcionalRequisitos diferentes. Adição ou modificação de componentesEspecialização de processoAdaptação do sistema para lidar com processo de negócios específicos
Linhas de Produtos de SoftwareLinhas de produtos de software podem ser configuradas em dois pontos no processo de desenvolvimento:Configuração em tempo de implantaçãoERP (Enterprise ResourcePlanning) ouSIGE (Sistemas Integrados de Gestão Empresarial)Configuração em tempo de projetoLevantar os requisitos dos stakeholdersEscolher um membro da família mais adequadoRenegociar requisitosAdaptar o sistema existenteEntregar novo membro de família
Considerações FinaisNão temos ferramentas apropriadasMuitas organizações ainda não estão preparadasNão entendem que o esforço inicial pode ser revertido em benefícios para as próprias empresasGrandes organizações como HP e Motorola já adotam o reusoEmpresas tem medo de perder seu staff momentaneamente para o reusoEstudos indicam que empresas que possuem iniciativas de reuso de ativos de software podem aumentar sua produtividade, qualidade e agilidade em, pelo menos, 5 vezes
Considerações FinaisO planejamento é fundamental para evitar re-trabalho na reutilização de ativos de softwarePode requerer uma reestruturação na área de TI da empresaRequer mudança de culturaÉ preciso de um plano de comunicação bem estruturadoMotivar as equipes de projeto a gerar componentes de uma maneira que eles possam ser facilmente encontrados e reutilizadosCapacitar as equipes envolvidas

Mais conteúdo relacionado

Mais procurados (20)

PPTX
Teste de Software - Introdução
Joeldson Costa Damasceno
 
PDF
Teste de software
COTIC-PROEG (UFPA)
 
PDF
Gestão por Processo
Rildo (@rildosan) Santos
 
PPTX
Introdução à Gerência de configuração de Software
Lucas Amaral
 
PPT
Engenharia de Software Baseada em Componentes
elliando dias
 
PPT
Analise de Requisitos
elliando dias
 
PDF
Aula 1 Analise e Projeto
Sergio Silva
 
PDF
Elaboração de Projetos Inovadores
Portal Inovação UFMS
 
PDF
Aula 6 - Qualidade de Software
Leinylson Fontinele
 
PDF
Analise de Requisitos Software
Rildo (@rildosan) Santos
 
PDF
Qualidade de Software
Tiago Antônio da Silva
 
PDF
Qualidade de software
Alvaro Oliveira
 
PDF
Mapeamento e Modelagem de Processos de Negócios com BPMN
Jean Israel B. Feijó
 
PDF
Gerência de Requisitos
Mauricio Volkweis Astiazara
 
PDF
Banco de Dados - Conceitos
ssuser69006f
 
PDF
System Software Modification Proposal PowerPoint Presentation Slides
SlideTeam
 
PDF
SI - Processos, Threads, Virtualização e Migração de Código
Frederico Madeira
 
PDF
Arquitetura Cliente-Servidor - Modelos
Israel Messias
 
PDF
Padrões-04 - Padrões Arquiteturais - Broker
Eduardo Nicola F. Zagari
 
PDF
Aula - Introdução a Engenharia de Software
Cloves da Rocha
 
Teste de Software - Introdução
Joeldson Costa Damasceno
 
Teste de software
COTIC-PROEG (UFPA)
 
Gestão por Processo
Rildo (@rildosan) Santos
 
Introdução à Gerência de configuração de Software
Lucas Amaral
 
Engenharia de Software Baseada em Componentes
elliando dias
 
Analise de Requisitos
elliando dias
 
Aula 1 Analise e Projeto
Sergio Silva
 
Elaboração de Projetos Inovadores
Portal Inovação UFMS
 
Aula 6 - Qualidade de Software
Leinylson Fontinele
 
Analise de Requisitos Software
Rildo (@rildosan) Santos
 
Qualidade de Software
Tiago Antônio da Silva
 
Qualidade de software
Alvaro Oliveira
 
Mapeamento e Modelagem de Processos de Negócios com BPMN
Jean Israel B. Feijó
 
Gerência de Requisitos
Mauricio Volkweis Astiazara
 
Banco de Dados - Conceitos
ssuser69006f
 
System Software Modification Proposal PowerPoint Presentation Slides
SlideTeam
 
SI - Processos, Threads, Virtualização e Migração de Código
Frederico Madeira
 
Arquitetura Cliente-Servidor - Modelos
Israel Messias
 
Padrões-04 - Padrões Arquiteturais - Broker
Eduardo Nicola F. Zagari
 
Aula - Introdução a Engenharia de Software
Cloves da Rocha
 

Destaque (20)

PDF
Reúso
Diogenes Freitas
 
PPTX
Software Embutido
Jaime Teixeira
 
PDF
Os 5 Níveis de Reuso
Dr. Spock
 
PDF
Reuso de Software - Síntese do Modelo de Features
Thiago Pereira
 
PDF
Frameworks da web - Uma ferramenta de reutilização de software
Thomas Kanzig
 
PDF
O (papel do) Arquiteto de Software
Peter Jandl Junior
 
PDF
Feature-Driven Development - Visão Geral
Ruan Carvalho
 
PPTX
Reuso v16 0
matostony
 
PPT
Mitos do Desenvolvimento de Software
guest2f8cba
 
PPTX
Portabilidade de uma aplicação
Tiago Pinhão
 
PPTX
FDD (Feature Driven Development)
urumisama
 
PPTX
Aula processo de reuso de software
Tatiana Tavares
 
PPTX
Business Process and Software Architecture Model Co-evolution Patterns
Pooyan Jamshidi
 
PDF
Maven Versioning Strategy (VR)
Marcus Carvalho
 
PPTX
Composition of cots
Saransh Garg
 
PDF
Apresentação dissertação
Dorgival Netto
 
PDF
Feature driven development
Khanh Nguyen
 
PDF
Feature driven development
Hendrik Ebbers
 
Software Embutido
Jaime Teixeira
 
Os 5 Níveis de Reuso
Dr. Spock
 
Reuso de Software - Síntese do Modelo de Features
Thiago Pereira
 
Frameworks da web - Uma ferramenta de reutilização de software
Thomas Kanzig
 
O (papel do) Arquiteto de Software
Peter Jandl Junior
 
Feature-Driven Development - Visão Geral
Ruan Carvalho
 
Reuso v16 0
matostony
 
Mitos do Desenvolvimento de Software
guest2f8cba
 
Portabilidade de uma aplicação
Tiago Pinhão
 
FDD (Feature Driven Development)
urumisama
 
Aula processo de reuso de software
Tatiana Tavares
 
Business Process and Software Architecture Model Co-evolution Patterns
Pooyan Jamshidi
 
Maven Versioning Strategy (VR)
Marcus Carvalho
 
Composition of cots
Saransh Garg
 
Apresentação dissertação
Dorgival Netto
 
Feature driven development
Khanh Nguyen
 
Feature driven development
Hendrik Ebbers
 
Anúncio

Semelhante a Reuso de software (20)

PPTX
Engenharia de Software Reuso Engenharia de Software Reuso Engenharia de Softw...
Paulalsilveira Silveira
 
ODP
Reuso desw
Cristian Stroparo
 
PPT
Engenharia de software reuso claudia maria lima
lovato6142
 
PDF
Dru - Desenvolvimento para Reuso
Juliana Cindra
 
PDF
Aula01 aula alua aula aulaaa- 19 02.pdf
DenivalSouza1
 
PPT
Aula1 introducao engsw
Computação Depressão
 
PPTX
aula projeto e des sistemas 22 03 2021.pptx
MarcondesTiburcio
 
PDF
Modelos e Padrões de Engenharia de Software
ProfLuisPires
 
PDF
Linha de Produto de Software: Diferentes produtos para diferentes clientes
Priscylla Silva
 
PPTX
engenharia de softwareAbordagem Sistemática e Metodológica.pptx
liverriber
 
PDF
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Renato Leal
 
PPT
Engenharia de Software introdução
miroslayer
 
PPT
Analise e desenvolvimento
Gabriel Moura
 
PDF
Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering
baitolakaike
 
PDF
152191 11993
Junior Abs
 
ODP
Aula Teste Fatec Engenharia de Software III
Dalton Martins
 
PPT
Tees Final
Marcus Oliveira
 
PPTX
aula 1 engenharia de software com tópicos da disciplina.pptx
GustavoBarrosLins1
 
PDF
Palestra Zend Framework na Campus Party 2011
Flávio Lisboa
 
PPS
Arquitetura de Software
eros.viggiano
 
Engenharia de Software Reuso Engenharia de Software Reuso Engenharia de Softw...
Paulalsilveira Silveira
 
Reuso desw
Cristian Stroparo
 
Engenharia de software reuso claudia maria lima
lovato6142
 
Dru - Desenvolvimento para Reuso
Juliana Cindra
 
Aula01 aula alua aula aulaaa- 19 02.pdf
DenivalSouza1
 
Aula1 introducao engsw
Computação Depressão
 
aula projeto e des sistemas 22 03 2021.pptx
MarcondesTiburcio
 
Modelos e Padrões de Engenharia de Software
ProfLuisPires
 
Linha de Produto de Software: Diferentes produtos para diferentes clientes
Priscylla Silva
 
engenharia de softwareAbordagem Sistemática e Metodológica.pptx
liverriber
 
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Renato Leal
 
Engenharia de Software introdução
miroslayer
 
Analise e desenvolvimento
Gabriel Moura
 
Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering
baitolakaike
 
152191 11993
Junior Abs
 
Aula Teste Fatec Engenharia de Software III
Dalton Martins
 
Tees Final
Marcus Oliveira
 
aula 1 engenharia de software com tópicos da disciplina.pptx
GustavoBarrosLins1
 
Palestra Zend Framework na Campus Party 2011
Flávio Lisboa
 
Arquitetura de Software
eros.viggiano
 
Anúncio

Reuso de software

  • 1. Reuso de SoftwareProf. Agnaldo Volpe Lovato
  • 2. IntroduçãoUso em outras disciplinasEngenharia MecânicaEletrônicaObjetivo: Reuso do Software ExistenteSomente nos últimos anos sua aplicação tornou-se mais ativaReposta às demandas:Menores custosManutenção de SoftwareEntregas mais rápidasAumento da qualidadeDireções opostas
  • 3. IntroduçãoVisão EmpresarialOs itens de reuso passam a fazer parte de um ativo valiosoPromovem reuso para aumentar seu retorno sobre investimentos de software
  • 4. BenefíciosConfiança aumentadaRisco de processo reduzidoUso eficiente de especialistasConformidade com padrõesDesenvolvimento acelerado
  • 5. ProblemasCustos de manutenção aumentadosCódigo do componente indisponívelFalta de apoio de ferramentaMuitas ferramentas CASE não apóiam o reusoSíndrome do não-inventado-aquiPreferência em reescrever o componenteCriação e manutenção de uma biblioteca de componentesImaturidade na organização de uma biblioteca de componentesProcura, compreensão e adaptação de componentes reusáveis
  • 6. PanoramaVárias técnicas foram desenvolvidas nos últimos 20 anosReuso possível em diferentes níveisFunções simples até aplicações completasPadrões facilitam o reusoDesign patternsDesenvolvimento de Software Orientado a AspectosLinhas de produtos de aplicaçãoFramewors de aplicaçãoGeradores de programaEmpacotamento de sistemas legadosIntegração de COTSDesenvolvimento baseado em componentesSistemas orientados a serviçosAplicações verticais configuráveisBibliotecas de Programas
  • 7. PanoramaQual a técnicas mais apropriada?RequisitosTecnologiaAtivos reusáveisConhecimento da equipe
  • 8. Considerações no planejamento do reusoCronograma de desenvolvimento do softwareQuanto mais curto for o prazo, a tendência em reusar sistemas prontos em vez de componentes individuais aumentaCiclo de vida previsto do softwareCiclo de vida longoSe concentrar na facilidade de manutençãoAlém das possibilidades de reuso, deve-se também pensar nas implicações a longo prazoAdaptação do sistema aos novos requisitos – mudanças nos componentesSe você não tem acesso ao código-fonte, evite o uso de componentes e sistemas de fornecedores externosConhecimento, habilidades e experiência da equipe de desenvolvimentoTecnologias de reuso são bastante complexasTreinamento
  • 9. Considerações no planejamento do reusoImportância do software e seus requisitos não funcionaisSoftwares com requisitos de desempenhoUso de geradores de programas pode ser ineficazNão acesso ao código fonte pode trazer problemasDomínio da aplicaçãoAlguns domínios de aplicação trazem produtos genéricos que podem ser reutilizadosAlguns permitem a exportação e importação de dadosPlataforma sobre a qual o sistema será executadoBuscar componentes compatíveis
  • 10. Considerações no planejamento do reusoA gama de técnicas é grande – há possibilidade de reuso de softwareEmpregar reuso é frequentemente uma decisão mais gerencial do que técnicaGerentesPodem não desejar comprometer seus requisitos com o reusoPodem decidir que o desenvolvimento de componentes ajudará a criar uma base de ativos de softwarePodem não compreender os riscos associados ao reuso da mesma forma que compreendem os riscos de desenvolvimento originalPreferem riscos conhecidos a desconhecidos
  • 11. Desenvolvimento baseado em ComponentesCriados com o objetivo de conduzir ao reusoSurgiu da frustração de que o desenvolvimento orientado a objetos não tinha conduzido a um extensivo reusoClasses e objetos são muito detalhadas e específicasComponentes são mais abstratos que as classes de objetos e podem ser considerados provedores de serviçosOs componentes devem ser bem documentados para ajudar o projetista a compreendê-los e adaptá-los a uma nova aplicação
  • 12. Desenvolvimento baseado em ComponentesPontos essenciais na engenharia baseada em componentes:Componentes independentesDeve haver uma clara separação entre a interface do componente e sua implementaçãoPadrões de componentesPermitem o uso em mais de uma linguagem de programaçãoMiddlewarePermitir que componentes independentes e distribuídos trabalhem juntosProcesso de desenvolvimento
  • 13. Reuso Baseado em GeradoresConhecimento reusável é capturado em um sistema gerador de programasPode ser programado por especialistasA descrição da aplicação especifica, de maneira abstrata, quais componentes reusáveis serão empregadosAplicações de mesmo domínio têm arquiteturas comunsPodemos ter:Geradores de parser para processamento de linguagemGeradores de código em ferramentas CASEPodem gerar códigos ineficientesPodem trazer riscos, pois tem um custo inicial alto na definição e implementação de conceitos do domínio
  • 14. Reuso Baseado em GeradoresGerador de ProgramaPrograma GeradoDescrição da AplicaçãoConhecimento de domínio da aplicaçãoBanco de Dados
  • 15. Reuso Baseado em GeradoresSoftware Orientado a AspectosResolve o problema da separação de assuntos - princípio básico do projetoCada unidade ou componentes deve realizar uma, e somente uma funçãoExemplosComponente dedicado à busca de informaçõesComponente dedicado à impressão de documentosComponente dedicado à conexão com o banco de dadosContudo, estes componentes acabam de alguma forma se cruzandoOrientação a Aspectos busca realizar a integração separando e organizando o código de acordo com a sua importância para a aplicação
  • 16. Frameworks de AplicaçõesÉ um projeto de subsistema composto por um conjunto de classes abstratas e concretas e as interfaces entre elas.3 classes de Frameworks:Frameworks de infra-estrutura de sistemasFrameworks de integração de middlewareFrameworks de aplicações empresariaisÉ uma estrutura genérica que pode ser ampliada para criar um subsistema ou aplicação mais específicaAmpliar o Framework pode envolver a adição de classes concretas que herdam operações de classes abstratas no FrameworkO maior problema está na sua complexidade e tempo para aprender a usá-lo
  • 17. Reuso do Sistema de AplicaçõesEnvolve o reuso de sistemas de aplicações inteirasPode-se alcançar o objetivo:Pela configuração de um único sistemaPela integração de um ou mais sistemas para criar uma nova aplicaçãoÉ frequentemente a técnica mais eficiente de reusoEnvolve o reuso de grandes ativos que podem ser rapidamente configurados para criar um novo sistema
  • 18. Reuso de Produto COTSUm produto comercial (COTS) é um sistema de software que pode ser usado sem alterações pelo compradorExemplo:Sistemas Gerenciadores de Banco de DadosEscolhas que precisam ser feitas quando usamos COTSQuais produtos COTS oferecem a funcionalidade mais apropriada?Como os dados serão trocados?Quais recursos de um produto serão realmente usados?
  • 19. Reuso de Produto COTSClienteNavegador WebSistema de e-mailServidorSistema de e-commerceSistema de pedidos e faturasAdaptadorSistema de e-mailAdaptador
  • 20. Reuso de Produto COTSProblemas de integração de sistemas COTS:Falta de controle sobre a funcionalidade e o desempenhoProblemas com a interoperabilidade de sistemas COTSNenhum controle sobre a evolução do sistemaSuporte dos fornecedores de COTS
  • 21. Linhas de Produtos de SoftwareÉ um conjunto de aplicações com uma arquitetura comum específica de aplicaçãoCada aplicação específica é especializada de alguma maneiraO núcleo comum é reusado cada vez em que uma nova aplicação é necessáriaO novo desenvolvimento pode envolver a configuração de componentes específicos, a implementação de componentes adicionais e a adaptação de alguns componentes
  • 22. Linhas de Produtos de SoftwareTipos de especialização em uma LPS:Especialização da plataformaSomente componentes que fazem interface com o hardware e o sistema operacional são modificadosEspecialização de ambienteExemplo: componentes do sistema são alterados para refletir a funcionalidade do equipamento de comunicação usadoEspecialização funcionalRequisitos diferentes. Adição ou modificação de componentesEspecialização de processoAdaptação do sistema para lidar com processo de negócios específicos
  • 23. Linhas de Produtos de SoftwareLinhas de produtos de software podem ser configuradas em dois pontos no processo de desenvolvimento:Configuração em tempo de implantaçãoERP (Enterprise ResourcePlanning) ouSIGE (Sistemas Integrados de Gestão Empresarial)Configuração em tempo de projetoLevantar os requisitos dos stakeholdersEscolher um membro da família mais adequadoRenegociar requisitosAdaptar o sistema existenteEntregar novo membro de família
  • 24. Considerações FinaisNão temos ferramentas apropriadasMuitas organizações ainda não estão preparadasNão entendem que o esforço inicial pode ser revertido em benefícios para as próprias empresasGrandes organizações como HP e Motorola já adotam o reusoEmpresas tem medo de perder seu staff momentaneamente para o reusoEstudos indicam que empresas que possuem iniciativas de reuso de ativos de software podem aumentar sua produtividade, qualidade e agilidade em, pelo menos, 5 vezes
  • 25. Considerações FinaisO planejamento é fundamental para evitar re-trabalho na reutilização de ativos de softwarePode requerer uma reestruturação na área de TI da empresaRequer mudança de culturaÉ preciso de um plano de comunicação bem estruturadoMotivar as equipes de projeto a gerar componentes de uma maneira que eles possam ser facilmente encontrados e reutilizadosCapacitar as equipes envolvidas