Antes de falarmos sobre o que é UML, é importante conhecer um pouco sobre modelagem de sistemas e sua importância no contexto da Engenharia de Software.
Modelagem de Sistemas
Modelagem é a concepção de software antes da codificação. É uma fase essencial de grandes projetos de software e, também, muito útil para projetos de menor porte. Pode-se dizer que modelos são declarações de interesse sobre um sistema, abstraindo os detalhes sobre um certo ponto de vista e para um determinado propósito. Fazendo uma analogia simples, é possível dizer que os modelos de software desempenham um papel similar ao que mapas e plantas baixas desempenham na construção civil, por exemplo.
Por meio da modelagem de sistemas, os responsáveis por um projeto de desenvolvimento de software podem assegurar-se que as funcionalidades do negócio estão completas e corretas. Asseguram-se também que as necessidades do usuário final são atendidas e que o design do programa suporta os requisitos e demais características antes da implementação. Essa validação é muito importante, pois pesquisas mostram que projetos de software têm uma grande probabilidade de falha. Portanto, a possibilidade de visualizar seu projeto e verificá-lo contra os requisitos antes da etapa de codificação permite encontrar falhas que podem ser corrigidas com antecipação, evitando desperdício de tempo e custo.
Imagine que você foi contratado para ser o responsável pelo desenvolvimento ou pelo projeto de um software de grande porte para manutenção do sistema devido a mudanças no plano de negócio da organização. O que aconteceria caso não houvesse uma documentação mínima com os modelos do sistema? Com certeza, você e sua equipe desperdiçariam inúmeras horas "cavando" código a dentro para entender o funcionamento do sistema, interações externas com outros sistemas, relacionamentos entre objetos, banco de dados e etc.
Padrão UML
UML é a sigla para Unified Modeling Language. No bom e velho português, uma Linguagem de Modelagem Unificada. É um conjunto de ferramentas que ajuda a especificar, visualizar e documentar modelos de software, incluindo sua estrutura e design, de forma padronizada e que atenda a todos requisitos.
Mantida pela Object Management Group® (OMG®), um consórcio de padrões de tecnologia internacional sem fins lucrativos, UML é composto por 15 diagramas que auxiliam nos projetos de softwares. O modelo UML possui um acordo sobre semântica e sintaxe. Este acordo é a razão a qual podemos considerá-lo uma Linguagem. É muito importante não confundi-la com uma metodologia ou processo. UML é uma Linguagem!
Conforme sua referência normativa, seu objetivo é fornecer aos arquitetos de sistemas, engenheiros e desenvolvedores de softwares, ferramentas para análise, projeto e implementação de sistemas baseados em software, bem como a modelagem de processos comerciais e similares. Entre suas metas, destaca-se conseguir o avanço do estado da indústria, por meio de ferramentas de modelagem visual de objetos.
Uma grande vantagem do UML é que não depende de uma ou mais metodologia para ser empregado. Isto é, independente da metodologia escolhida por você ou pela organização (RUP, Scrum, etc.), você poderá utilizar a linguagem para alcançar seus resultados. É possível modelar em UML praticamente qualquer tipo de aplicativo e sistemas, com qualquer combinação de hardware, sistema operacional, linguagem de programação e rede.
Conforme podemos ver na figura abaixo, os 15 diagramas UML são divididos em duas grandes categorias: Estruturais e Comportamentais. Discutiremos em outros artigos um pouco sobre alguns diagramas, como o Casos de Uso, por exemplo, para entendermos melhor a prática da linguagem.
Atualmente, o UML é o padrão mais adotado no desenvolvimento de software no mundo.
Referências:
- Object Management Group. Disponível em: http://www.omg.org/gettingstarted/gettingstartedindex.htm
- What is UML? Disponível em: http://www.uml.org/what-is-uml.htm
- Documents Associated With Unified Modeling Language™ (UML®). Disponível em: http://www.omg.org/spec/UML/2.5/PDF