---->Prancheta de trabalho virtual    atualizado em 19/9/2008

Componentes como negocio

Questões
A tendência ao uso de componentes ocorre realmente no mercado mundial e brasileiro?
Seria o mercado de componentes uma janela de oportunidade para o Brasil, especialmente para pequenas e médias empresas?
Quais são as barreiras e motivações para introdução de uma estratégia nacional baseada na ESBC (Engenharia de Software Baseada em Componentes)?

Coclusões:
Constatação que o reuso de software e a intercambialidade são as razões principais do desenvolvimento da ESBC, mas que, por outro lado, há incertezas significativas quanto à ESBC vir a ser a principal tecnologia na trajetória de reuso.

Novas tecnologias e metodologias, como plataformas orientadas a serviços, Web Services e outras, ganham espaço como forças motrizes para aumento da produtividade, aproveitamento do legado etc. Não há forças, a não ser as próprias do mercado, que evitem o progresso de uma trajetória se ela estiver direcionada para ganhos de produtividade. Reuso e intercambiabilidade apontam para esta direção.

Dentro do mercado de componentes, os modelos de negócios indicados como mais promissores são aqueles da própria indústria de software e serviços, particularmente o de integrador, elo fundamental da cadeia de valor da indústria.

Sôbre o estudo:
O objetivo geral do estudo, realizado pela SOFTEX em parceria com o Departamento de Política Científica e
Tecnológica da Unicamp e com apoio do Ministério de Ciência e Tecnologia, foi avaliar as contribuições que a
ESBC pode trazer para Indústria Brasileira de Software e Serviços em termos de sua qualificação técnica e de sua
inserção econômica no mercado global de software e serviços relacionados.

Pespectivas sôbre o tema:
a) as possibilidades de impacto dessa tecnologia na organização e na competitividade da indústria de software e serviços; e
b) o posicionamento das políticas de fomento para reuso.

Conceitos relativos a componentes:
“Um componente (em geral) é um pacote coerente de artefatos de software que pode ser independentemente desenvolvido e distribuído como uma unidade, e que pode ser composto, sem alterações, com outros componentes para construir algo maior”.

características básicas de componentes:
• componentes são intercambiáveis;
• componentes são reutilizáveis;
• alguns são de uso mais geral e outros têm uso mais específico; e
• componentes interagem com outros componentes.

Tecnologia de componentes de software:
refere-se a todas as tecnologias relacionadas ao desenvolvimento
e uso de componentes de software, ou seja, todas as ferramentas que auxiliam no projeto, construção, combinação, configuração e customização final dos componentes ou aplicações construídas a partir de componentes, bem como o ambiente para a execução dos componentes (framework).

Atividades ligadas a componentes:
1.desenvolvimento e produção dos componentes e
2.seu uso para desenvolvimento e produção de programas.

Classificação de componentes de software:
Componentes genéricos: são aqueles de uso comum em muitos sistemas, tais como os componentes de interface com os usuários (GUI);
Componentes de serviços: são componentes que fornecem serviços especializados, mas que não são específicos do ponto de vista de domínio de aplicação, como componentes para tratamento de erros em comunicação de dados, criptografia, segurança, geração de gráficos, etc.;
Componentes de domínio: são componentes específicos para domínios definidos, que implementam regras (de simples a complexas) de negócios, como por exemplo, regras do setor financeiro ou de construção civil.a)

Passos para o desenvolvido através da integração de diversos componentes existentes:a)Análise dos requisitos do cliente;
b) Especificação do sistema a ser desenvolvido;
c) Aprovação da especificação pelo cliente;
d) Busca e seleção dos componentes que serão utilizados;
e) Desenvolvimento das partes que não foram atendidas por componentes já existentes;
f) Integração;
g) Testes de integração; e
h) Implantação do sistema no cliente.

Mercado de componentes de software:
• Sob encomenda: desenvolve-se completamente o software, utilizando as ferramentas e bibliotecas oferecidas pela linguagem de programação adotada;
• Pacote: compra-se um pacote de software pronto, configurável para atender a uma parcela razoável dos requisitos do usuário.

Perfil do mercado e padrões de concorrência
Os principais agentes dessa estrutura produtiva são:
• desenvolvedores de componentes de software: desenvolvedores de software focados na criação
de peças de software caracterizáveis como componentes;
• integradores: desenvolvedores de software que usam componentes em seus desenvolvimentos (os
componentes podem ser criados pelos próprios integradores ou adquiridos no mercado, do grupo acima);
• clientes/usuários de softwares baseados em componentes: que usam softwares para realizar suas
atividades de negócio. Os interesses dos usuários de softwares podem influenciar fortemente esse mercado,
na medida em que a flexibilidade dos sistemas permitir maior integração, estabilidade, segurança
e qualidade;
• intermediários (brokers): reúnem a oferta de componentes e apresentam aos potenciais clientes
(neste caso, os integradores citados acima) para venda, por exemplo, por e-commerce;
• avaliadores/certificadores de qualidade: que atestam as funcionalidades e avaliam a qualidade de
componentes de terceiros para que os clientes (integradores) tenham informações adequadas para escolha;
• fornecedores de ferramentas de desenvolvimento: para desenvolvimento de componentes

Caracterização do mercado segunda a SEI-CMU (Bass et al, 2001)
1. Mercado de componentes individuais: desenvolvimento e comercialização de componentes individuais,
por unidade, na forma de mercado de varejo. Exemplos: componentes de interface gráfica e
componentes de serviços de média granularidade.
2. Mercado de linhas de produtos: desenvolvimento e comercialização de linhas (famílias) de componentes na forma de mercado de varejo. Estas famílias constituem linhas completas de componentes dedicadas a um mercado vertical (domínio), como comunicação ou setor financeiro (por exemplo, a suíte de componentes de negócios voltada para aplicações financeiras).
3. Mercado de infra-estrutura: compreendendo o conjunto de padrões, plataformas e ferramentas de apoio ao desenvolvimento baseado em componentes. Este item pode ser dividido em:
a) Padrões de infra-estrutura: envolvem organismos e empresas interessadas em promover e definir
os padrões que formarão a infra-estrutura do desenvolvimento baseado em componentes. Exemplos:
OMG (Corba), Microsoft (COM, .NET) e Sun (EJB).
b) Plataformas e servidores de aplicação: a disponibilidade de plataformas e servidores de aplicações (que implementam os padrões de infra-estrutura) são fundamentais em todos os ambientes em que se deseja utilizar software baseado em componentes.
c) Mercado de ferramentas para componentes: envolvendo ferramentas para apoio ao desenvolvimento baseado em componentes e ferramentas de gerenciamento de componentes.
4. Mercado de integração/consultoria: grandes conhecedores dos componentes, das plataformas e ferramentas disponíveis, estes desenvolvedores podem construir aplicações de forma eficiente e rápida para seus clientes, tornando este domínio sua vantagem competitiva. Também é o caso de fornecedores que oferecem uma linha de componentes e têm seu modelo de negócio baseado no uso desta linha juntamente com seu know-how para a construção de soluções.
5. Mercado de intermediação (brokerage): dedicados a oferecer uma área de compra-venda para componentes de software desenvolvidos por terceiros, criando uma marca consolidada e facilidades para busca e aquisição de componentes.
6. Mercado de certificação: que oferece aos consumidores de componentes garantias que os mesmos atendem determinados padrões, efetivamente oferecem determinados serviços e/ou apresentam determinados atributos de qualidade.
Adicionalmente, dada a realidade brasileira, pode-se acrescentar o seguinte modelo de negócio como promissor dentro do setor no país:7
7. Treinamento/capacitação: A adoção da tecnologia de componentes pelas empresas exige profissionais capacitados e estes recursos humanos não existem no Brasil, criando oportunidades para empresas que forneçam cursos profissionalizantes na área, tanto para empresas quanto para pessoas físicas.

Cadeia de valor

Barreiras e riscos para a geração de componentes
• A Engenharia de Software Baseada em Componentes ainda não é de conhecimento (ou não está dentre as práticas adotadas) da grande maioria das empresas desenvolvedoras.
• Falta de padrões estáveis para o desenvolvimento de componentes e de sistemas a partir de componentes.
• Há dificuldades para encontrar fornecedores e compradores de componentes (falta escala em ambas as pontas).
• Há dificuldades para encontrar (ou operacionalizar) modelos de comercialização mais adequados do que a venda de licenças.
• Alguns modelos de negócio citados são muito sofisticados (como o de certificação) para um mercado ainda incipiente.

Trajetórias possíveis no longo prazo
• produção oligopolizada, global e coordenada, resultado da busca por produtividade e de ganhos de escala (assumindo que a padronização dos componentes será crescente e haverá queda de preços nos primórdios deste modelo de negócios); e
• produção atomizada, global e não coordenada, resultado da ação de desenvolvedores individuais, empresas de pequeno e médio portes ou de comunidades de prática que colocam os componentes em repositórios públicos ou privados.

Problemas em aberto
• Descrição de componentes: como descrever um componente (funcionalidades e restrições) para que possa ser facilmente encontrado e utilizado? Por simples que pareça, ainda é algo que não está plenamente estabelecido. Há necessidade de padronizações neste sentido, tanto para leitura/compreensão humana quanto na definição de interfaces entre componentes. Esta é a tendência da padronização, cujo grau, velocidade e direção não são bem conhecidos.
• Componentes confiáveis: como o processo de desenvolvimento do componente está fora do escopo de influência do usuário do componente, a confiabilidade do componente é fonte de incertezas.
• Seleção de componentes e gerência de requisitos: como os componentes serão adquiridos externamente, a seleção deste componente deve ser feita de forma cuidadosa. Provavelmente, os componentes não atenderão a todos os requisitos necessários. Além disso, mesmo que o componente atenda perfeitamente aos requisitos, ele pode não funcionar adequadamente quando combinado com outros componentes.
• Previsibilidade da composição: mesmo conhecendo todas as características de um componente, não há garantia quanto ao resultado da combinação do mesmo com outros componentes no desenvolvimento de um sistema. O aumento desta previsibilidade é uma tendência futura, mas ainda uma questão em aberto para pesquisa.
• Certificação de componentes: certificação não garante a confiabilidade, mas é uma importante forma de se classificar componentes e como tornar esta certificação mais eficaz é um problema a ser tratado.
• Responsabilidade por falhas: a natureza do software faz com que seja difícil separar a fonte de uma determinada falha. Ainda há necessidade de criação de técnicas sólidas para identificar falhas geradas por partes do sistema (componentes) ou causadas pela integração.
• Política de atualizações: quando um componente fica hospedado em um servidor e é utilizado por diversos clientes, o upgrade do componente envolve algumas decisões, tais como, se duas versões diferentes poderão coexistir, ou se o cliente é obrigado a utilizar sempre a última versão e se isto será feito no momento do próximo uso.
• Riscos de mudança: dificuldade de analisar o impacto relativo à substituição de componentes.
• Modelos de negócio: a comercialização de um componente pode se dar de diversas formas. Valor fixo com ou sem limitação de uso, cobrança por utilização (como consumo de luz e água) e diversas outras têm surgido, trazendo, cada uma delas, uma série de complexidades técnicas para operacionalização.
Com a possibilidade de substituição de componentes com o sistema em produção, isto se torna ainda mais difícil de equacionar.
• Suporte a longo prazo: software criado com componentes pode ficar em uso por um longo período de tempo, mesmo quando sua tecnologia já esteja obsoleta. Desenvolvedores podem “descontinuar” o suporte a determinados componentes em favor de componentes mais atuais (e, talvez, incompatíveis com os componentes descontinuados). Depositar o código fonte em repositórios seguros pode ser uma solução para este problema.
• Padrões dominantes: o surgimento de um padrão dominante geraria uma maior certeza em relação a investimentos e poderia fazer com que a tecnologia se sedimentasse. É preciso dar tempo para que os candidatos concorram e evoluam para que um deles se transforme em um padrão dominante.
• Suporte de ferramentas: a existência de ferramentas é essencial para o sucesso da ESBC (ferramentas de seleção de componentes, de avaliação, repositórios, testes etc.).
• Propriedade intelectual: a combinação de componentes regidos por diferentes instrumentos de direitos de propriedade (registro de software, patentes, software livre e de código aberto etc.) dificulta enormemente a observação desses direitos por parte do desenvolvedor da solução e por parte do cliente.

Conclusões gerais sobre fatores de influência para a tomada de decisão, temos:
que os componentes são vistos como um caminho para ganhos de produtividade e para ampliação de oportunidades de negócios. O principal gargalo ainda é a incerteza sobre a maturidade da tecnologia em termos de estandardização para interoperabilidade. Além dessa incerteza crítica, um gargalo importante a ser considerado é o da ausência de mão-de-obra qualificada no país.
Um gargalo adicional sugerido pelos grupos refere-se ao regime de propriedade intelectual, pois a gestão dos direitos de propriedade é extremamente complexa e o quadro regulatório é incerto. Do lado de quem produz há a dificuldade de rastreabilidade do componente. Já do lado de quem o usa, há complicações quanto à responsabilidade jurídica, contaminação e pagamento de licenças, etc.

Modelo de negócio
Broker
Certificação
Família de componentes
Ferramentas
Integrador
Padrão infra-estrutura
Plataforma
Venda de componente

Critérios de avaliação
Complexidade tecnológica
Disponibilidade conhecimento
Exigência de capital (atual e futuro)
Nível de capacitação (Brasil e mundo)
Oportunidades de negócios em âmbito mundial (atual e futuro)
Oportunidades de negócios em âmbito nacional (atual e futuro)
Prioridade como política pública
Volume investimento (Brasil e mundo)

Dominios:
$ Finanças
GC1* Gestão de conhecimento
AE Automação de escritório
GIS Sistemas de Informação Geográfica (GIS)
AG1* Agronegócios
GM3* Entretenimento/jogos
AI Provisão de informação (agentes inteligentes)
GOV3* Governo eletrônico
BIL1* Billing
GR Gestão de recursos
BK Booking (reservas)
ON1* Suporte à operação de negócios
CAD Engenharia (CAD/CAM)
OS Sistema operacional
CASE Software de desenvolvimento
PA1* Geração de processos de automação
CC Informação ao cliente
PG Processamento gráfico
Com Comunicação
PT Processamento de transações
CP Controle de processo
SD Suporte à decisão
CV1* Comercial venda
SEG4* Segurança
D/L Distribuição/Logística
SIM Simulação
EAD2* Ensino à distância
SWD Software pessoal/coméstico
EN1* Energia
SWE Software embarcado
FT1* Gerência da força de trabalho
TL3* Telecom


De forma resumida, tem-se que os domínios mais importantes hoje e no futuro, são (por ordem decrescente de prioridade):
1. Finanças;
2. Gestão de recursos;
3. Simulação;
4. Embarcado;
5. GIS;
6. Suporte à decisão;
7. Controle de processos;
8. Distitribuição e logística;
9. Comunicação;
10. Proc de transações;
11. Informação ao cliente; e
12. Provisão de informação.

Dimensões e incertezas

Cenário Vento em Popa:
ESBC é a trajetória principal de reuso e Brasil acompanha

Cenário Calmaria:
ESBC não avança significativamente

Cenário A Ver Navios:
ESBC avança, torna-se a trajetória dominante e Brasil fica de fora

Considerações a partir do exercício de cenários

• evolução dos modelos alternativos e complementares de reuso, como SOA;
• evolução do uso de componentes por integradores;
• crescimento dos brokers;
• evolução do ingresso de grandes empresas desenvolvedoras de software no comércio de componentes;
• evolução do número, do tamanho e dos acessos aos repositórios;
• componentização começar a fazer parte das discussões de propriedade intelectual em software e da
discussão dos padrões de interoperabilidade;
• evolução do ensino de componentização nos currículos de cursos de ciência e engenharia da computação;
• evolução do número de publicações sobre componentes na base Web of Science;
• evolução da certificação para componentes

Forças, fraquezas, oportunidades e ameaças (SWOT)
Pontos fortes
• Política nacional de software livre – especialmente porque alimenta a oferta de componentes livres;
• Competência instalada em ESBC aplicada aos domínios de finanças e gestão de recursos, tidas no Brasil como de média alta intensidade de uso;
• Mercado interno de software de porte significativo, cerca de US$ 10 bi, e com poder de alavancagem da cultura do reuso;
• Boa base acadêmica, dentre as maiores dos países em desenvolvimento;
• Política industrial (PITCE) voltada para software (e que inclui componentes).


Pontos fracos
• Falta de cultura de reuso – não houve preocupação na criação desta cultura com perdas de economias
de escala e escopo na indústria de software e serviços. Atualmente, os esforços neste sentido ainda são incipientes;
• Falta de recursos humanos capacitados em número suficiente para crescimento do reuso, decorrência, em parte, da própria falta de cultura;
• Limitação de recursos financeiros para investimento produtivo, principalmente investimento em tecnologia (desenvolvimento e uso);
• Relativo atraso em intensidade de uso de componentes na maioria dos domínios de elevada oportunidade em negócios;
• Baixa inserção do Brasil no mercado internacional de software e baixa probabilidade de exportação de componentes brasileiros no curto e médio prazo;
• Ausência da participação do Brasil em fóruns de definição de padrões de mercado;
• Ausência de identidade/imagem do Brasil no exterior quanto à produção de software.

Oportunidades
• Percebem-se vantagens técnicas para desenvolvimento de software baseado em componentes, tais como qualidade, manutenibilidade e confiabilidade;
• O reuso apresenta possibilidades de ganhos de produtividade, redução de prazo de entrega e de diversificação de produtos e soluções;
• A componentização, se bem conduzida e associada a outros instrumentos (incentivos, etc.), pode representar oportunidade de participação das empresas brasileiras no mercado internacional de software. A participação poderá se dar via produção de componentes especializados para integradores e brokers que já tenham acesso a este mercado;
• Oportunidades relacionadas à expansão do modelo de negócios “Integrador”;
• O uso de componentes pelas grandes e médias empresas traria uma maior diversificação dos produtos e soluções ofertados, permitindo acesso a um maior numero de mercados.
Ameaças
• Perda de competitividade global pelo não aproveitamento das economias envolvidas no reuso;
• A tendência de curto prazo é de que não se comprem componentes brasileiros, pois carecem de confiança e repercutem a ausência de imagem do país;
• A não aderência a padrões ligados a tecnologia de componentes impede a entrada nos mercados mundiais com risco de perdas no próprio mercado interno;
• Existe a ameaça de aumento das importações de software (até de outros PEDs como China e Índia). Se a ESBC deslanchar, corre-se o risco de o Brasil ter que importar componentes;
• Regime de propriedade intelectual é um inibidor da expansão da ESBC. Há um impasse legal e institucional não resolvido;
• Falta de certificação específica para componentes dificulta a entrada no mercado internacional.

Considerações finais e recomendações

Chamadas públicas, encomendas (public procurement), aportes de capital, programas de estímulo devem motivar a emergência de uma cultura em três pilares fundamentais:
• Tecnologias e estratégias voltadas à obtenção de ganhos de produtividade no desenvolvimento de programas e soluções (componentização, web services e SOA);
• Tecnologias e estratégias voltadas à ampliação da capacidade de aproveitamento de ativos instalados (sunk costs) (SOA, componentização, web services);
• Tecnologias e estratégias voltadas à ampliação da capacidade de diversificação de produtos e serviços (componentização, web services e SOA).

Quantos aos repositórios de componentes:
• Repositórios públicos podem ter sucesso desde que com alimentação contínua e atualizada e com assistência adequada aos serviços que oferece.
• Esses repositórios podem conter tanto componentes livres como proprietários e podem oferecer serviços gratuitos e cobrados, dependendo da complexidade.
• As fontes de financiamento da continuidade e crescimento destes repositórios devem ser definidas ex ante.

 

clicar aqui para o artigo completo