Se perguntarmos a qualquer profissional ligado ao desenvolvimento de software sobre o futuro desta indústria, o mais provável é obtermos um leque muito variado de respostas. No entanto, existe uma tendência que parece ser bastante comum: o desenvolvimento de software continua a aumentar de complexidade. Consequentemente, os especialistas em desenvolvimento têm que trabalhar com níveis cada vez mais elevados de abstracção para poderem lidar com essa complexidade.
A modelação de software é e continuará a ser um caminho chave para se trabalhar a esses níveis mais elevados de abstracção.
Para além da modelação visual
A UML tem sido associada tradicionalmente a meios gráficos de representar artefactos de software. Apesar disto continua a ser verdade, existe um importância crescente da modelação "abaixo da superfície". A meta-modelação é a disciplina de criar "modelos de modelos". A aplicação mais evidente e prática de meta-modelação pode ser vista na UML Versão 2, que estabelece as bases para a forma como as ferramentas automatizadas partilham dados e interoperam umas com as outras.
Isto aplica-se, não apenas às ferramentas de modelação, mas também às ferramentas de gestão de requisitos, de compilação, de teste, de gestão de configurações, e de outros aspectos do ciclo de desenvolvimento de software. Todas estas áreas podem tornar-se melhor integradas como resultado de um meta-modelo subjacente, como o que é fornecido pela UML 2 e os seus standards de modelação associados.
Unificação da modelação de software, de dados e de negócio
Apesar de nos concentrarmos principalmente no valor da modelação de software, a modelação de dados e de negócio tem sido praticada há mais tempo de alguma forma. O problema tem a ver com o facto destes tipos de modelação terem envolvido tradicionalmente mundos inteiramente diferentes de linguagens de modelação e de culturas em termos de prática. Agora, a promessa de unificar estes três mundos é evidente - não necessariamente com uma única linguagem de modelação ou ferramenta, mas através da combinação de múltiplos standards da indústria abertos que estão a convergir.
Modelação ao longo do ciclo de vida
À medida que os standards continuam a evoluir, a modelação irá tornar-se aplicável a leque de actividades ainda maior ao longo do ciclo de vida do desenvolvimento de software. As aplicações da modelação já estão a orientar os testes e outros aspectos da garantia da qualidade no início do ciclo do desenvolvimento. E à medida que a modelação de negócio se for tornando mais standardizada e integrada com os dados e com o software, deverá emergir uma disciplina de integração de negócio orientada aos modelos.
Linguagens de modelação específicas do domínio
A UML e outras linguagens de modelação permitem que os especialistas em desenvolvimento se concentrem em níveis de abstracção acima dos detalhes de implementação. Na realidade, a modelação inclui um espectro alargado de níveis. Levado ao nível mais elevado de abstracção, um modelo de negócio ou de domínio coloca o enfoque, não no software, mas na natureza do problema que está a ser considerado. Neste caso, o modelo deve utilizar termos e ícones familiares para as pessoas e sistemas dessa área particular de negócio ou de aplicação.
A indústria está a evoluir para linguagens específicas do domínio - linguagens de modelação com propósitos específicos, dedicadas à sua respectiva área de utilização. Por outro lado, é frequente que as linguagens de modelação com propósitos gerais - a UML em particular - sejam alargadas de formas standard para responderem a necessidades de modelação específicas de um domínio, através de inovações como os perfis. Ambas as abordagens são consistentes com o valor da modelação em geral: fornecer abstracções para problemas e soluções específicos de uma forma mais produtiva e eficaz.
O negócio do desenvolvimento de software
Muitos especialistas já chamaram ao desenvolvimento de software um "desporto de equipa". Uma expressão análoga e mais actualizada, diria que é um "desporto internacional de equipa". Com a tecnologia actual, o desenvolvimento de software não tem fronteiras geográficas. E o negócio do desenvolvimento de software deverá continuar a ser distribuído e global. Neste contexto, a modelação e outras formas mais elevadas de abstracção serão cruciais para ajudar os especialistas a lidar com a complexidade associada.
Arquitectura orientada ao modelo: o próximo passo
A MDA (Model-Driven Architecture) é uma iniciativa promovida pelo Object Management Group. Apesar de ainda estar na sua fase inicial de adopção, a MDA pode ser considerada como o próximo passo lógico na evolução da modelação e das tecnologias de desenvolvimento orientadas aos modelos.
A MDA baseia-se na UML e noutros standards relacionados, e coloca o enfoque na definição de modelos a vários níveis de abstracção, bem como nas transformações definidas entre esses diferentes níveis. O suporte de ferramentas automatizadas é crucial para a evolução e para a aplicação bem sucedida da MDA.
Baseado no artigo "The value of modeling", da autoria de Gary Cernosek (market manager no IBM Software Group) e Eric Naiburg (product manager, IBM).
Produzido em 2006