The Software Component
Market on The Internet
Current Status and Conditions for Growth
Vicent Traas
Jos van Hillegersberg
January, 2000
Component Based Development
(CBD)


Maximização do reuso no desenvolvimento de
software
Novos sistemas a partir da combinação e
integração de componentes de software


pré-fabricados e pré-testados
Mercado de componentes




Mercado interno de componentes
Internet: mercado mais apropriado
Foco na funcionalidade específica do projeto e em
localizar e integrar componentes disponíveis
Baixo custo
Objetivos da Pesquisa

Já existe um mercado de componentes na
Internet, e se existe, qual a sua situação?

Quais as condições para o seu
crescimento?
Overview do Mercado de
Componentes na Internet (1)

Inclui todos os sites onde componentes de
software pudessem ser encontrados e/ou
comprados




Busca: Yahoo, Alta Vista, Lycos, Infoseek,
Metacrawler, Excite e Hotbot
Termos: software component, component, CBD,
componentware, ActiveX, Java-Beans, CORBA
Pesquisa realizada entre Novembro/1998 e
Março/1999
Total de 38 sites
Overview do Mercado de
Componentes na Internet (2)

Classificação do Website




Produtor (Producer) – site de uma organização que vende os
seus próprios componentes
Catálogo (Catalogue) – site de uma organização que compila
uma lista de hiperlinks para componentes – não realiza venda
Intermediário (Intermediary) – site de uma organização que
vende componentes produzidos por terceiros
Descrição dos componentes




Número total de componentes
Padrão: ActiveX, JavaBeans e CORBA
Classificação por tipo
Documentação
Taxonomia de Tipos de
Componentes

Visuais



Container – pode fornecer contexto (HTML browser)
Control – não fornece contexto (editor)
Não visuais




Command package – interage com objetos visuais
(spelling checker)
Library – coleção de funções e classes
independentes
Framework – pode ser expandido por plug-ins
Business component – implementa lógica de um
domínio específico
Classificação da Documentação
Fornecida
Descrição simples
 Detalhes técnicos
 Demos
 Relatórios de testes
 Código fonte

Resultados
Website
www.active-x.com
beans.cuesta.com
browserwatch.internet.com
www.findcomponents.com
www.iversonsoftware.com
www.javashareware.com
java.wiwi.uni-frankfurt.de
www.beyond.com
www.buydirect.com
www.componentsource.com
www.flashline.com
www.aspexsc.com
www.artisoft.com
www.baysidecomputing.com
www.brattberg.se
www.cereus7.com
crescent.progress.com
www.dameware.com
www.data-tech.com
www.dbi-tech.com
www.dharbor.com
www.dolphinsys.com
...
Mkt Std
C
C
C
C
C
C
C,I
I
I
I
I
P
P
P
P
P
P
P
P
P
P
P
A
B
A
A,B
A
B
B
B
A,B
A,B
A,B
A
A
B
A,B
B
A
A
A
A
B
A
Ctr
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
Type
Ctn Pck Lib Fwk Bss
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
Documentation
Sp Tec Dem o Tes Code
180
x
308
150
329 x
40
30
1.326 x
x
x
<10 x
60 x
1.200 x
x
x
x
101 x
x
x
<25 x
x
<10 x
x
<10 x
x
<25 x
x
x
x
<10 x
x
x
<25 x
x
x
<10 x
x
<10 x
x
x
<10 x
x
<10 x
x
<10 x
x
x
Nr.
Conclusões

Poucos fornecedores




Nenhum deles oferece componentes CORBA
A maioria dos componentes podem ser caracterizados
como controles, containeres ou pacotes


A maioria deles oferecem um número limitado de componentes
 Produção em pequena escala
 Mercado pequeno
Poucos intermediários fornecem a grande maioria de
componentes disponíveis
Componentes visuais e não visuais de baixa complexidade
podem ser usados por uma grande variedade de usuários
Na maioria dos casos apenas uma descrição limitada e
um demo do componente é oferecido
Condições para Crescimento do
Mercado (1)



Durante maio/1999 uma pesquisa por e-mail foi
enviada a especialistas no campo de CBD para
classificar as condições para crescimento do
mercado
Enviado a 103 especialistas
Apenas 35 responderam ao questionário


25% fornecedores, 44% cientistas, 31% desenv.
39% EUA, 56% Europa, 5% Ásia e Austrália
Condições para Crescimento do
Mercado (2)

Consumidores devem poder determinar o valor de um componente de
maneira fácil – 8,8





Especificação deve seguir a um método de documentação padrão – 7,6
O foco do mercado deve ser o reuso black-box – 7,4
Deve existir uma solução de uso geral para a proteção da propriedade
intelectual – 6,8
Fornecedores devem manter o foco em especialização, anúncio, marca
e imagem – 6,0



Fornecedores devem fornecer informação extensiva (demos e
documentação)
Muitos fornecedores pequenos irão aparecer, oferecendo componentes de
diferentes usos e qualidades
Listas de preços de componentes – 5,9
Máquina de busca de componentes independente – 5,6
Conclusões



É mais importante como os componentes são
oferecidos do que quem os oferece
As três primeiras condições são relativas à
documentação e informações do componente a
venda
Participantes discordam de mercado apenas
com componentes de pequeno porte (mais
baratos e de fácil entendimento) e do
estabelecimento de um padrão único
Strategies for Software
Reuse: A Principal
Component Analysis of
Reuse Practices
Marcus A. Rothenberger
Kevin J. Dooley
Uday R. Kulkarni
September, 2003
Objetivos

O sucesso no reuso de software varia de acordo
com a estratégia de reuso empregada



Deve-se entender as alternativas de estratégias de
reuso e suas implicações
Apresenta seis dimensões que descrevem as
práticas empregadas em programas de reuso
Investiga o efeito de estratégias de reuso no
sucesso de programas de reuso
Reuso de Software

Reuso sistemático de software



Reuso não planejado


Técnica empregada para aumentar a qualidade e eficiência no
desenvolvimento de software
Envolve o uso de artefatos de sistemas existentes para
construção de novos sistemas com o objetivo de aumentar a
qualidade e manutenibilidade e reduzir custos e tempo de
desenvolvimento
Desenvolvedores reconhecem oportunidades de reuso
informalmente
Reuso planejado

Construção e manutenção de repositório de software
Desenvolvimento de Software
para Reuso


Requer esforço adicional comparado com o
desenvolvimento tradicional
Componentes reusáveis precisam ser
desenvolvidos de forma genérica


Criação e população de um repositório de
software com componentes reusáveis


Permitindo o seu uso em vários contextos
Investimento considerável com retorno a longo prazo
Envolve riscos

Escolha da estratégia de reuso é crucial
Abordagem da Pesquisa


Foco no reuso de software a nível de código
“Dimensão de reuso”




Conjunto de múltiplas práticas de reuso relacionadas
que uma organização pode empregar
Permite uma visão de alto nível das várias variáveis
de reuso que podem participar da estratégia de reuso
Cada dimensão pode ser proativamente empregada
na formulação de uma estratégia de reuso
71 participantes de 67 organizações diferentes

Apenas um pequeno número de grupos de
desenvolvimento atualmente empregam reuso
Dimensões de Estratégias de
Reuso Sistemático de Software
Planning and Improvement
 Formalized Process
 Management Support
 Project Similarity
 Object Tecnologies
 Common Architecture

Planning and Improvement (1)

Planejamento




Análise de domínio
Requisitos ligados a componentes de software
reusáveis
Processo construído em torno de um conjunto central
de componentes reusáveis
Permite à organização identificar quais os requisitos
do produto e planejar quais oportunidades de reuso
podem ser executadas
Planning and Improvement (2)

Métrica





Medidas de performance do reuso
Fornece feedback a desenvolvedores e gerentes que permite
melhor entendimento de como aumentar a performance
Permite identificar problemas rapidamente
Deve levar em conta as várias tarefas que envolvem o reuso:
produção, recuperação e integração de componentes
Aperfeiçoamento do processo



Refinamento de “boas práticas” através de projetos pilotos
Documentação das lições aprendidas para melhorar o
processo de reuso
Deve ser testado em pequena escala inicialmente (alto custo)
Formalized Process

Questões






Desenvolvedores seguem um processo detalhado
Processo de certificação de componentes
Registro de ocorrências de reuso (para projeto/ componente)
Aumenta as chances de que um projeto de sucesso
possa ser repetido
Facilita o estabelecimento de boas práticas, a
padronização de práticas através de múltiplos projetos
e ajuda desenvolvedores menos experientes
Um processo de certificação pode garantir que cada
parte do repositório atende aos padrões desejados de
performance
Management Support


Disponibilidade de treinamento para reuso pode ser um
indicador de apoio da gerência
Engloba




Liderança
Tomada de decisão
Recursos organizacionais
Consiste na alocação de recursos para reuso em um
período extenso de tempo



Recursos físicos (infra-estrutura)
Humanos (pessoas e habilidades)
Organizacionais (regras, rotinas, recompensas)
Project Similarity


Aborda similaridade em requisitos, projeto e
implementação
Projetos podem ser similares por projeto ou por
acidente



Projetos podem ser similares se uma organização desenvolve
produtos para uma faixa limitada de clientes ou restringe os
tipos de projetos em que trabalha
Pode diminuir a capacidade de adaptação da empresa
Permite o desenvolvimento de um conjunto central de
componentes reusáveis muito úteis dentro de um
domínio
Object Technologies


Captura a extensão da tecnologia de objetos usada em
projetos de reuso
Inclui




Cobre todas as fases de desenvolvimento


Linguagens de programação
Técnicas de objetos distribuídos
Linguagens de modelagem
Da análise de domínio à programação
Análise e projeto OO força o desenvolvedor a pensar no
problema em termos de processos do negócio, o que
pode fornecer oportunidades para reuso
Common Architecture




Arquitetura comum através de linha de produtos
Pode ser vista, por ela mesma, como uma forma de
reuso
Pode facilitar o reuso de determinados módulos do
software
Permite a criação de plataforma de produtos


Conjunto de produtos similares que são desenvolvidos
rapidamente a partir de um ponto de em comum
Força a definição de padrões de reuso

Interfaces comuns, tamanho dos componentes, maneiras de
especificar entrada/saída, documentação
Medidas de Sucesso do Reuso

Benefícios do reuso





Impacto estratégico



Redução do esforço de desenvolvimento e custo
Time-to-market menor
Redução do esforço de manutenção
Mede em quanto os benefícios esperados pela adoção do
reuso foram materializados
Realização de novas oportunidades de negócio
Benefícios obtidos a partir do reuso por alcançar novos
mercados
Qualidade de software


Reuso reduz o número de erros no produto final
Componentes previamente usados já foram testados
Conclusões

Métodos de orientação a objetos nem sempre levam ao
reuso eficiente




Organizações podem obter sucesso no reuso mesmo sem
empregar métodos orientados a objetos
Não contradiz a noção de que o reuso se beneficia da
orientação a objetos, apenas que ela precisa mais do que isso
para obter sucesso
Qualidade de software poder ser alcançada sem ênfase
no processo de reuso
Uma organização somente irá conseguir benefício
completo do reuso se empregar um programa formal de
reuso e realizar controle de qualidade através de
planejamento formal e melhoria contínua
Download

Fabio