A UML é uma linguagem gráfica e textual usada no desenvolvimento orientado a objetos (OO) para visualização, especificação, construção e documentação de informações referentes a um software. Neste artigo apresentaremos os fundamentos da UML, atentando para seus diagramas e alguns de seus principais elementos.
Em que situação o tema útil:
Basicamente, a UML permite que desenvolvedores visualizem os produtos de seus trabalhos em diagramas padronizados. Junto com uma notação gráfica, a UML também especifica significados, isto é, semântica. É uma notação independente de processos, embora o RUP (Rational Unified Process) tenha sido especificamente desenvolvido utilizando a UML.
Resumo DevMan
A qualidade em sistemas de software passa pela qualidade das especificações e modelagem destes sistemas. Neste sentido, a UML apresenta uma série de diagramas para a construção de sistemas baseados no paradigma da orientação a objetos. Neste contexto, este artigo apresenta de uma forma geral a UML, discutindo seus diagramas e algumas ferramentas de apoio ao seu uso em projetos de software.
Autores: Ayala Leal, Ana Bárbara Macêdo e Rodrigo Oliveira Spínola
Considera-se uma boa prática de engenharia de software a utilização de metodologias consolidadas para representação de conceitos. O uso da linguagem UML (Unified Modeling Language – linguagem de modelagem unificada) é um exemplo de boa prática de engenharia de software.
A UML formalizou um conjunto de conceitos composto por elementos (classes, interfaces e componentes), relacionamentos (associação, generalização e dependências) e tipos de diagramas, que permitiu a unificação na representação de modelos orientados a objetos de sistemas computacionais.
Essas notações tornaram-se dominante em empresas que empregam idéias de engenharia de software no desenvolvimento de sistemas e aplicações orientados a objetos.
Neste contexto, neste artigo apresentaremos os fundamentos da UML, atentando para seus diagramas e alguns de seus principais elementos.
UML
A UML é uma linguagem gráfica e textual usada no desenvolvimento orientado a objetos (OO) para visualização, especificação, construção e documentação de informações referentes a um software.
Essa linguagem foi criada em 1996, como o resultado da integração dos métodos orientados a objetos propostos por Booch (1994), Rumbaugh (1991) e Jacobson (1993), padronizando as notações utilizadas. Na versão 1.1, foi aprovada como linguagem padrão para a modelagem orientada a objetos pela OMG (Object Management Group) em 1997.
A definição da UML encontra-se na "Especificação de Modelagem Unificada da OMG", no site da OMG, com o objetivo de descrever qualquer tipo de sistema, em termos de diagramas orientados a objetos. A versão 2.0 da UML foi adotada pela OMG em 2004, possuindo 13 diferentes tipos de diagramas, mais elementos e maior formalismo. A versão corrente é 2.4 (beta), de março de 2011.
A linguagem de modelagem UML é independe da linguagem de programação que o sistema será desenvolvido. Porém, a depender da semântica da linguagem de programação a ser utilizada na codificação do software, certas características da UML devem ser evitadas na modelagem desse software, pois podem não estar implementadas pela linguagem de programação.
O vocabulário (sintaxe) e regras (semântica) utilizados na UML são pré-estabelecidos e focam a representação conceitual e física do sistema a ser desenvolvido. Esse vocabulário incorpora, entre outros, três conceitos: objetos, relacionamentos e diagramas. A fim de suprir possíveis especificidades de cada projeto de sistema analisado, a UML possibilita também extensões da sintaxe e da semântica.
Objetos e Classes
Os objetos são as entidades mais importantes de um sistema desenvolvido considerando o paradigma orientado a objetos. Eles representam entidades discretas, com fronteiras bem-definidas e identidade própria, que contém estado e comportamento, e se relacionam com outros objetos. O estado do objeto é representado por seus atributos, seu comportamento é representado pelas operações, e o relacionamento é representado pelas chamadas de operações.
Objetos com similaridades nos seus atributos, operações e relacionamentos podem ser agrupados na mesma classe de objetos. A UML permite uma representação gráfica de classes de objetos como a apresentada na Figura 1.
Figura 1. Notação de uma classe em UML
Alternativamente, as classes podem ser representadas:
- Suprimindo-se os atributos, as operações ou a visibilidade;
- Representando a visibilidade dos atributos e operações por ícones;
- Indicando a multiplicidade do atributo, seu valor padrão e assinatura;
- Sublinhando-se o atributo ou a operação para indicar que são estáticos (aplicam-se à classe como todo, e não ao objeto).
Os objetos também podem ser representados na UML de forma semelhante, com a ressalva de indicar a classe à qual pertence junto ao nome do objeto (<nome do objeto>:<nome da classe>). Porém a representação gráfica do objeto não é muito adotada, ao contrário da classe.
Objetos e classes podem aparecer nos diagramas de classe. Se o diagrama só contiver objetos, são chamados de diagramas de objetos.
A UML resolve a interação entre os objetos, a análise dessas interações, a identificação e a validação das classes através dos diversos diagramas e tipos de relação descrevendo, assim, o comportamento das classes de objetos.
Relacionamentos
Os relacionamentos representam conexões semânticas (ou seja, com algum significado) entre os elementos do modelo. Dentre os relacionamentos básicos encontrados na UML podemos citar os de associação, generalização, dependência e os de extensão (ver Figura 2).
O relacionamento de associação indica uma ligação entre duas ou mais entidades e quantas vezes ela ocorre (multiplicidade). A associação pode ser nomeada para facilitar o entendimento. A associação que representa um vínculo mais forte entre os “objetos-todo” e os “objetos-parte”, procurando demonstrar que os objetos-parte pertencem exclusivamente a um único objeto-todo com o qual se relacionam, chama-se composição.
...