A UML(Unified Modelling Language) é a linguagem para modelagem de dados orientado a objetos, para a especificação, construção, visualização e documentação de um software em desenvolvimento. Se formou na junção de 3 mentes responsáveis por métodos de modelagem orientada a objeto: Grady Booch, James Rumbaugh e Ivar Jacobson. A linguagem UML foi adotada em 1997 pela OMG (Object Management Group), que define e ratifica padrões na área de Orientação a Objetos.
O desejo da criação da UML, começou em outubro de 1994, com Booch e Rumbaugh na Rational Software Corporation, que foi adquirida pela IBM em 20 de fevereiro de 2003. Em outubro de 1995, unificaram os métodos Booch e OMT, tendo o seu primeiro esboço da versão 0.8 do Unified Process (Processo Unificado). Um pouco mais tarde com a associando de Jacobson, em junho de 1996, a versão 0.9 da UML, foi lançada com a incorporação do método OOSE.
- Booch – Grady Booch - Booch definiu a noção de que um sistema é analisado a partir de um número de visões, onde cada visão é descrita por um número de modelos e diagramas. O Método de Booch trazia uma simbologia complexa de ser desenhada a mão, continha também o processo pelo qual sistemas são analisados por macro e micro visões.
- OMT(Object Modelling Technique) – James Rumbaugh - A técnica de Modelagem de Objetos é especialmente voltado para o teste dos modelos, baseado nas especificações da análise de requisitos do sistema. O modelo total do sistema baseado no método OMT é composto pela junção dos modelos de objetos, funcional e use-cases.
- OOSE(Object-Oriented Software Engineering) – Ivar Jacobson - O método é a visão de Jacobson de um método orientado a objetos. Baseado na utilização de use-cases, que definem os requisitos iniciais do sistema, vistos por um ator externo.
Conceito da orientação a objetos
Para utilizar a UML, é necessário conhecer o conceito da orientação a objetos e entender sobre: objetos, classes, abstração, encapsulamento, herança, comunicação com mensagens, métodos de organização e polimorfismo.
- Objetos - É um substantivo que pode ser abstrato ou real, sobre o qual armazenamos dados e operações que manipulam os dados, como uma pessoa, um carro e etc.
- Classes - É uma coleção de objetos que podem ser descritos com os mesmos atributos e as mesmas operações
- Abstração - Focaliza a visão externa de um objeto, separando - a em comportamento, descrito pela interface dos métodos da classe e implementação, composta pelas variáveis de instancia e corpo dos métodos.
- Encapsulamento - Esconde dos usuários de um objeto, os detalhes da implementação interna. Os usuários compreendem quais operações podem ser solicitadas de um objeto, mas não conhecem os detalhes de como a operação é executada.
- Herança - É o mecanismo de compartilhamento automático de métodos e dados entre classes, subclasses.
- Polimorfismo - Permite que o programa trate uniformemente objetos que pertencem a classe diferentes, isto é, o programa envia a mesma mensagem a objetos de diferentes classe resultando um comportamento diferente. Existem alguns tipos de Polimorfismo: paramétrico, de inclusão, por
overloading
e por coerção.- Paramétrico - quando uma função funciona uniformemente sobre uma gama de tipos.
- De inclusão - através do mecanismo de herança de objeto pode pertencer a um número infinito de classes, aplicação do princípio de substituição.
- Por overloading - mesmo nome de variável utilizado para denotar diferentes funções. É o contexto que decide que função utilizar.
- Por coerção - operação semântica é utilizada para converter argumento para tipo necessário.
Diagramas
Apenas vou listar os tipos de diagramas, que aos poucos irei criando um artigo para cada diagrama. :)
Diagramas de Estrutura (estático)
- Diagrama de Classe
- Diagrama de Objeto
- Diagrama de Pacotes
- Diagrama de Componentes
- Diagrama de Implantação
- Diagrama de Estrutura Composta
- Diagrama de Perfis
Diagramas de Comportamento(dinâmico)
- Diagrama de Caso de Uso
- Diagrama de Atividade
- Diagrama de Máquina de Estados
- Diagramas de Interação
- Diagrama de Sequência
- Diagrama de Comunicação
- Diagrama de Tempo
- Diagrama de Interação Geral
Versões da UML
A versão atual é a UML 2.5.
- 1.1 - OMG (Object Management Group – 1997)
- 1.3 - Março de 2000
- 1.4 - Setembro de 2001
- 1.5 - Março de 2003
- 2.0 - Julho de 2005
- 2.1.1 - Agosto de 2007
- 2.1.2 - Novembro de 2007
- 2.2 - Fevereiro de 2009
- 2.3 - Maio de 2010
- 2.4 - Março de 2011
- 2.4.1 - Agosto de 2011
- 2.5 - Junho de 2015
Conclusão
Essa foi uma rápida introdução a UML. Terá uma série de artigos, explicando sobre cada diagrama e mais atualizações sobre o assunto.