Introdução à UML

Computação II - Ciência da Computação


Prof.: Danilo S. Carvalho

Nessa aula, começaremos a tratar de um assunto que não envolve a criação de código, mas que é muito importante na condução de qualquer projeto de software: a modelagem conceitual de sistemas.


Ao final da aula, teremos uma noção do que é a modelagem conceitual de sistemas e do papel da UML na criação de tais modelos.

A modelagem conceitual é uma forma de construir uma descrição do sistema a ser desenvolvido, em qualquer nível de detalhe desejado.


Ela permite orientar atividades de desenvolvimento e ajuda na verificação dos requisitos de um sistema durante sua construção e na manutenção e expansão destes durante toda a vida de um projeto de software.

Assim como a documentação do nosso código através do Javadoc permite ao programador entender como usar o código sem ter a necessidade de consultar os fontes, ...


um modelo permite aos programadores e outras partes envolvidas em um projeto entender como um sistema foi ou deve ser construído, sem sequer conhecer a linguagem de programação que foi ou será utilizada

Conforme cresce o número de classes no nosso programa, fica fácil se perder em como os conceitos estão estruturados...

Portanto é interessante possuirmos um "mapa" do sistema, onde podemos encontrar rapidamente os conceitos e como se relacionam.

O objetivo desse tópico é introduzir alguns aspectos da modelagem de sistemas devido a proximidade do assunto ao projeto de sistemas orientado a objeto.


O conteúdo desse tópico é estudado em detalhes na disciplina "Modelagem de Sistemas de Informação" (eletiva).

Aos que quiserem se aprofundar mais no assunto, recomendo o livro "Conceptual Modeling of Information Systems" (Antoni Olivé, 2007).

Os dois aspectos da modelagem conceitual que abordaremos parcialmente aqui são:

  • Modelagem estrutural
    • Trata dos tipos de entidade, tipos de relacionamentos e das regras que regem a estrutura conceitual de um sistema. No nosso caso, de um sistema orientado a objetos.
  • Modelagem comportamental
    • Trata das ações, eventos, suas restriçoes e efeitos. No nosso caso, da comunicação entre objetos e da condução dos seus respectivos estados durante a execução do programa.

Como ferramenta de trabalho, usaremos a Unified Modeling Language (UML).

A UML é uma linguagem gráfica para modelagem conceitual de sistemas. Ou seja, a informação é comunicada através de diagramas, em elementos gráficos padronizados.

Foi criada em meados dos anos 1990, por Grady Booch, Ivar Jacobson e James Rumbaugh, na Rational Software, empresa que foi posteriormente comprada pela IBM.

Em 1997, a UML foi adotada como padrão para modelagem pelo Object Management Group (OMG) e em 2005 foi aprovada como padrão internacional pela ISO.

Veremos aqui dois tipos de diagrama UML:

1. Diagrama de classes (estrutural): representa a hierarquia de classes e interfaces do sistema e seus relacionamentos.

2. Diagrama de sequência (comportamental): representa as interações dos objetos em uma linha do tempo.

A partir de agora vamos estudar a confecção de diagramas UML de classe e sequência, para ajudar no projeto dos nossos sistemas e na interpretação daquilo que construimos.

Consultem esse documento para uma visão completa sobre o diagrama de classes e esse outro documento para o diagrama de sequência.

Nas próximas aulas falaremos deles em mais detalhes e iremos exercitá-los.

Sugiro a instalação do UMLet para desenhar os diagramas.

O UMLet também possui uma versão integrada ao Eclipse (plugin).

Até a próxima aula!