Introdução
Nos últimos anos tem se observado uma crescente movimentação no mercado em torno do modelo de desenvolvimento denominado Fábrica de Software. Esse modelo tem uma grande característica que é o uso de técnicas utilizadas na engenharia industrial de produção em série, para a criação de um ambiente produtivo de desenvolvimento de software com qualidade e baixo custo.
Esse modelo de desenvolvimento não é novo, surgiu na década de 60, mas só agora começa a ser intensivamente utilizado pelas empresas de desenvolvimento de software.
Os avanços da engenharia de software nos últimos anos e as mudanças ocorridas nos processos de desenvolvimento de sistemas, como o software livre e o surgimento de padrões abertos para desenvolvimento corporativo, fizeram surgir um novo modelo de fábrica de software no mercado. As novas facilidades tornaram possíveis que empresas de médio e até de pequeno porte, pudessem montar suas fábricas de software para prestar serviços de desenvolvimento de sistemas à crescente terceirização do mercado, resultando numa proliferação deste novo modelo de fábrica pelo mundo.
Evolução
Empresas em todo mundo estão percebendo que o desenvolvimento de software é uma atividade bastante especializada para ser absorvida e custeada internamente. Desta forma é crescente o número de terceirização na área de informática, especialmente na área de desenvolvimento de software.
Juntamente com esta crescente demanda por terceirização, cresce também o nível de exigência do mercado em termos de qualidade e custo do software. Como resultado, empresas estão investindo em ferramentas de automação, enquanto trabalhos de pesquisas em novos paradigmas de implementação, como orientação a aspectos, estão obtendo resultados significativos.
Algumas destas pesquisas já possuem resultados práticos, como o AspectJ, uma extensão da linguagem Java para o paradigma orientado a aspectos desenvolvida pelos Institutos de Pesquisa da Xerox. Com a evolução e amadurecimento da orientação a aspectos, será possível desenvolver software de forma mais consistente, abordando de uma única vez importantes aspectos não-funcionais do sistema, que poderão ser reutilizados em várias demandas da fábrica, eliminando desta forma o retrabalho e a replicação de código.
Segundo Jack Greenfield, importante arquiteto de software da Microsoft, “os métodos e práticas de desenvolvimento de software terão que mudar radicalmente… A solução deve envolver a modificação dos nossos métodos e práticas. Devemos encontrar formas de tornar os desenvolvedores muito mais produtivos”.
A Microsoft está desenvolvendo uma nova arquitetura de desenvolvimento de sistemas denominada “Software Facotories” (Fábricas de Software).
Segunda a própria Microsoft será uma arquitetura revolucionária, que elevará bastante os níveis de reutilização de software, através de conceitos como o de linhas de produção de software, onde componentes poderão ser montados, configurados e empacotados, resultando num produto final completo. O desenvolvedor se preocupará apenas em customizar os aspectos altamente especializados e específicos do projeto.
Um outro tópico que será um diferencial no futuro são os significativos avanços das ferramentas case nos últimos anos, que permitirá a visualização e controle de todas as fases de desenvolvimento do sistema em uma única ferramenta. Atualmente o nível de integração entre todos os artefatos das várias fases do projeto é alto, mas não permite uma automação e rastreabilidade de todos os pontos do sistema. Porém num futuro próximo, com a evolução dos processos de software e das tecnologias de construção de ferramentas case, se espera abranger todo o sistema, desde a geração do código à partir dos artefatos de análise e projeto até a automação na realização dos testes.
Com a constante evolução da engenharia de software e das tecnologias envolvidas no desenvolvimento de sistemas, as fábricas de software poderão vir a ser uma realidade cada vez mais presente no mercado e se tornando cada vez mais efetivas dentro de seu objetivo de produzir software de qualidade em pouco tempo e com baixo custo. Como resultado, espera-se em todo mercado mundial um crescimento ainda maior na adoção do modelo de fábricas de software para o desenvolvimento de sistemas.
Conclusão
Como pode-se observar a engenharia de software está sempre evoluindo. Novos paradigmas, linguagens, ambientes surgem a cada dia, buscando aumentar a produtividade e qualidade no desenvolvimento de software. Sistemas que levavam dois anos para serem codificados hoje em dia podem ser feitos em meses.
O profissional ligado a área de desenvolvimento de software deve ficar atento a esses novos paradigmas, pois se não o fizer, correrá o risco de tornar-se obsoleto.