Introdução: UML
UML
A UML é um meio formal para representar um projeto. Não é um processo de software, é apenas uma maneira de documentar o projeto formalmente. Os vários estilos de diagramas da UML oferecem diferentes pontos de vista do design.
A Unified Modeling Language, ou UML, como é popularmente conhecido é a linguagem que pode ser usada para modelar sistemas e torná-los legíveis. Isto significa basicamente que UML oferece a capacidade de capturar as características de um sistema utilizando notações. UML oferece uma grande variedade de notações para sistemas orientados a objetos, fácil de entender e documentar. Estas notações são chamadas de diagramas da UML.
Por usar a UML como linguagem de modelagem?
Pela padronização. Diferentes linguagens foram usados para modelar sistemas orientado a objeto. Destacam-se as metodologias de Rumbaugh, Booch e Jacobson. O problema era que, apesar de cada metodologia ter suas vantagens, eles eram incompletas. Por isso, se você tivesse que trabalhar em diferentes projetos que usavam qualquer destas metodologias, você tinha que conhecer bem cada uma dessas metodologias. A UML unifica todas estas metodologias em uma única norma, uma linguagem que pode ser facilmente aplicada de forma generalizada para todos os sistemas orientados a objetos. Mas, ao contrário das diferentes metodologias que tendiam mais para a concepção e projeto detalhado de sistemas, a UML abrange toda a fase de requisitos, análise e projeto e implementação. A vantagem da UML está no fato de que qualquer um dos diagramas da UML pode ser utilizado para modelagem e documentação de um projeto. Por exemplo, se você precisa modelar requisitos para um determinado sistema, você pode usar os diagramas de casos de uso sem ter que necessariamente usar outros diagramas da UML.
A UML não tem nenhuma dependência com relação a quaisquer tecnologias ou linguagens. Isto significa que você pode usar UML para modelar aplicações e sistemas baseados em qualquer uma das atuais tecnologias orientada a objetos, como por exemplo, J2EE e NET. Todos os esforços foram feitos para manter a UML como linguagem de modelagem clara e concisa, sem estar amarrado a qualquer tecnologia.
Diagramas UML
De acordo com a UML cada diagrama pode capturar diferentes elementos de um sistema. A UML possui um conjunto de diagramas que pode ser usado para modelar um sistema em diferentes pontos do tempo no ciclo de vida do software.
Alguns diagramas em destaque:
Diagrama de Caso de Uso(Use case): O diagrama de caso uso é usado para identificar os elementos primários e processos que constituem o sistema. Os elementos principais são denominados como "atores" e os processos são chamados de "casos de uso." O diagrama de caso de uso mostra que os atores interagem com cada caso de uso.
Diagrama de classes: O diagrama de classes é usado para refinar o diagrama de caso de uso e definir um projeto detalhado do sistema. O diagrama de classes classifica os atores definidos no diagrama de caso de uso em um conjunto de classes inter-relacionadas. A relação ou associação entre as classes podem ser "é-um" ou "tem-um" relacionamento. Cada classe no diagrama de classes pode ser capaz de fornecer funcionalidades. Estas funcionalidades oferecidas pela classe são designadas por "métodos" da classe. Além disso, cada classe pode ter "atributos" que identificam a classe.
Diagrama de objeto: O diagrama de objeto é um tipo especial de diagrama de classe. Um objeto é uma instância de uma classe. Isto significa basicamente que um objeto representa o estado de uma classe em um determinado ponto do tempo, enquanto o sistema está funcionando. O diagrama de objeto captura o estado de diferentes classes no sistema e suas relações ou associações em um determinado ponto do tempo.
Diagrama de Estado: um diagrama de estado, como o nome sugere, representa os diferentes estados que os objetos no sistema sofrem durante o seu ciclo de vida. Objetos nos estados de alteração do sistema em resposta a eventos. Além disso, um diagrama de estado também capta a transição de estado do objeto a partir de um estado inicial para um estado final, em resposta a acontecimentos que afetam o sistema.
Diagrama de atividades: O diagrama de atividades serve para documentar os processos que ocorrem no sistema. Semelhante a um diagrama de estado, um diagrama de atividades também é composto de atividades, ações, transições, estados inicial e final.
Diagrama de sequência: Um diagrama de sequência representa a interação entre os diferentes objetos no sistema. O aspecto importante de um diagrama de sequência é que ele é ordenado no tempo. Isto significa que a sequência exata das interações entre os objetos é representado passo a passo. Diferentes objetos no diagrama de sequência interagem uns com os outros, através de "mensagens".
Diagrama de colaboração: U diagrama de colaboração são interações entre diferentes objetos. As interações são listadas como interações numeradas que ajudam a rastrear a sequência das interações. O diagrama de colaboração ajuda a identificar todas as possíveis interações que cada objeto tem com outros objetos.
Diagrama de componente: O diagrama de componentes representa as partes de alto nível que compõem o sistema. Este diagrama mostra, em alto nível, o que os componentes fazem no sistema e como eles estão interligados.
Diagrama de implantação: O diagrama de implantação captura a configuração dos elementos em tempo de execução da aplicação. Este diagrama é muito importante quando um sistema está pronto para ser implantado.