Archive for março \31\+00:00 2006

Alguns dados sobre o uso de UML

março 31, 2006

Recentemente afirmei eu uma reunião do Departamento de Informática da PUC-Rio que o uso de técnicas de modelagem de orientação a objetos era aquém do que  normalmente se imagina.  No caso, estava me referindo a UML. Sem dúvida a UML é um padrão emergente para uso na especificação de software e certamente contribuiu muito para que o conceito de modelagem fosse mais difundido na indústria.   

Meu objetivo aqui não é discutir as qualidades e defeitos da UML, mas o de embasar o comentário a que me referi acima.  Na verdade, essa nota foi escrita como uma maneira de organizar meu conhecimento sobre o assunto e também foi à maneira de responder a uma questão formulada pelo Edmundo Torreão sobre a minha afirmação de que a UML é pouco utilizada. 

Afirmações como a que fiz acima não são facilmente quantificáveis.  Essas afirmações são ancoradas  em  uma vivência na área,  na leitura de centenas de informes, artigos científicos, relatos particulares em empresas, participação em comitês, contato informal com profissionais da indústria e em serviços de consultoria.  No entanto, fica aquela dúvida.  E os dados?  Existem dados sobre o uso da UML na indústria que justifiquem a afirmação? 

Um dos primeiros ponteiros sobre o uso de modelagem orientada a objetos ou dificuldades com o seu uso é um painel que ocorreu em 1993 na Conferência Internacional de Reuso.  Faço um resumo sobre isso em um artigo de 1999.  

Em 2002 em função dos resultados positivos alcançados com a estratégia de “extreme programming”  mudamos a maneira de ensinar princípios de engenharia de software na PUC-Rio: 

 “Até 2001 o trabalho prático era baseado no paradigma da orientação a objetos, e as linguagens UML e Java eram utilizadas para desenho da arquitetura e implementação, respectivamente. Os grupos para o trabalho prático eram compostos, em média, por 3 alunos. Excelentes trabalhos foram desenvolvidos neste tempo e estão disponíveis em [PES].

A partir de 2002 passamos a adotar o processo Extreme Programming para guiar o desenvolvimento. Desde então, a infra-estrutura de implementação passou a ser voltada para WEB baseada nas linguagens PHP, HTML e XML e banco de dados MySQL ou PostgreSQL. Desta forma os alunos se prenderam menos à aprendizagem de linguagens de modelagem e programação e se dedicaram mais à aprendizagem e vivência de conceitos como cooperação, reuso, gerência de configuração, dentre outros e suas dificuldades.” (Ensino de Engenharia de Software: Relato de Experiência).”  

Por que dessa mudança?  Para refletir que o ensino dos princípios da  engenharia de software não deveria estar preso a uma estratégia de modelagem.  Para refletir não só a força do movimento de “extreme programming”, mas como também o sucesso da estratégia de produção de código aberto.  

Essas mudanças ocorrem também porque estávamos percebendo que uma série de outras estratégias de modelagem, independente de UML, passavam a ser mais e mais presentes na literatura, como, por exemplo, modelos orientados a metas e modelos orientados a situações (cenários).

Ok, mas o que isso tem a ver com o uso da UML?  Isso de certa maneira era um reflexo de algo que vinha percebendo, mas que não tinha dados. Como diz Peter Freeman: “Ideas are cheap, data is dear”, fui atrás dos dados que justificassem essa percepção.

Uma busca por dados usando as máquinas de busca, o que é uma pesquisa limitada, forneceram uma visão próxima da que tinha construído e observado acima.  Vejamos o que achei:

1) Estimativa geral de 15% de uso da UML. (Computerworld: Carol Sliwa)

“Although the UML/MDA approach is gaining increasingly wider adoption by application architects, UML usage includes no more than 15% of developers, according to several analysts’ estimates. Critics say its complexity can be daunting, and the cultural change for IT shops accustomed to pounding out code can be difficult to negotiate.”

2|) Uma pesquisa na Escócia em 2005  chega a índices em volta de 30% de uso. 

3) Uma pesquisa de Março de 2005 pela Computerworld indica índices por volta de 30% de uso.

“Almost half, 48%, selected “No” when asked if their company was using Unified Modeling Language (UML), and 33% reported that UML is in use at their organization. Thirteen percent said that there plans for future use.”

4) Uma pesquisa feita por uma empresa no mercado de produtos eletrônicos mostra que desenvolvedores, nesse contexto, raramente usam UML. Reporta-se uma  faixa de 3%.

5) Uma pesquisa entre programadores Visual Basic, apesar de não referir diretamente a UML, indica que suporte para “technical documentation” não é considerada importante. (2600 respondentes).

6) Dados da Áustria de 2000 sobre uso de UML em pequenas empresas, cerca de 30% usam UML. (Software Development in
Austria: Results of an Empirical Study among Small and Very Small Enterprises by  Christian Hofer)

7) Outro dado de 2002 que menciona a faixa de 30% (SDTimes Modeling Usage Low; Developers Confused About UML 2.0, MDA By Alan Zeichick)

“The survey, conducted by BZ Research in late June, was completed by 226 individuals. BZ Research is a sister organization of SD Times. According to the results, 34 percent of developers presently use UML-based modeling for applications development; of that group, 2 percent said they use UML to model all applications, and 32 percent said that UML is used only for modeling some applications.”

 

8) Booch, um dos responsáveis pela criação da Rational e Selic, participante do grupo criador da UML2.0 admitem em entrevista a Computerworld que o uso de UML não ultrapassa 10%! (Sidebar: Waiting for UML 2.0 News Story by Carol Sliwa)

  ” Many say UML adoption has been slow, in the range of 10%. Why do you think it has been slow?”
Selic: “One of the most significant factors is that there is a tremendous investment in existing technologies, both corporate and personal, and jumping to UML does require some incremental costs and investments on top of the existing one.  …. So the adoption has to increase, and we are certainly seeing other large vendors that are realizing that model-driven development is something that has to happen.”
Booch: “Ten percent is not necessarily a bad thing, if we consider the worldwide developer market according to IDC is approximately 13 million or so IT professionals. Ten percent’s a nice healthy number. That’s a great penetration in the sense that we’re dealing here with the community of people that worry about abstraction and design, and if we limit ourselves to just that community, I would dare say that the UML has a tremendous penetration. If you look at the community at large, perhaps it is 10%, 20% we’ve seen in some other cases. …  … Ergo, modeling becomes fundamental, and the UML is indeed the open standard of choice for modeling.”

Isso foi o que coletei não exaustivamente.   O protocolo de pesquisa que usei foi padrão, em cima das palavras chave, tais como: “!uml, survey, industry, acceptance, usage”.  Algumas dos resultados foram derividos de pesquisa mais oportunistica, de acordo a resposta das máquinas de busca.

Se você tiver ponteiros para mais dados, por favor, enviei que coloco junto a esses aqui.  


…………

Leia sobre Sistemas de Informação.

Veja a página do autor.