the software component market on the internet current status and conditions for growth vicent traas...
TRANSCRIPT
The Software Component Market on The Internet
Current Status and Conditions for Growth
Vicent TraasJos 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 PesquisaJá 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 FornecidaDescrição simplesDetalhes técnicosDemosRelatórios de testesCódigo fonte
ResultadosCtr Ctn Pck Lib Fwk Bss Sp Tec Demo Tes Code
www.active-x.com C A x x x x 180 xbeans.cuesta.com C B x x x x x x 308browserwatch.internet.com C A x x x 150www.findcomponents.com C A,B x x x x 329 xwww.iversonsoftware.com C A x x 40www.javashareware.com C B x x x 30java.wiwi.uni-frankfurt.de C,I B x x x x x 1.326 x x xwww.beyond.com I B x x <10 xwww.buydirect.com I A,B x x x x 60 xwww.componentsource.com I A,B x x x x x x 1.200 x x x xwww.flashline.com I A,B x x x x 101 x x xwww.aspexsc.com P A x x <25 x xwww.artisoft.com P A x x x <10 x xwww.baysidecomputing.com P B x x <10 x xwww.brattberg.se P A,B x x <25 x x x xwww.cereus7.com P B x x x <10 x x xcrescent.progress.com P A x x x <25 x x xwww.dameware.com P A x x x x <10 x xwww.data-tech.com P A x x x <10 x x xwww.dbi-tech.com P A x x <10 x xwww.dharbor.com P B x <10 x xwww.dolphinsys.com P A x x x x <10 x x x...
DocumentationTypeWebsite Mkt Std Nr.
Conclusões Poucos fornecedores
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
Nenhum deles oferece componentes CORBA A maioria dos componentes podem ser caracterizados
como controles, containeres ou pacotes 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 Fornecedores devem fornecer informação extensiva (demos e
documentação) 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 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. RothenbergerKevin J. Dooley
Uday R. KulkarniSeptember, 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
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
Reuso não planejado 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 Permitindo o seu uso em vários contextos
Criação e população de um repositório de software com componentes reusáveis 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 SoftwarePlanning and ImprovementFormalized ProcessManagement SupportProject SimilarityObject TecnologiesCommon 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
Linguagens de programação Técnicas de objetos distribuídos Linguagens de modelagem
Cobre todas as fases de desenvolvimento 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
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 Impacto estratégico
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