Modelagem de Sistemas - Aula 04
Modelagem de Sistemas - Aula 04
Modelagem de Sistemas - Aula 04
DIAGRAMA DE CLASSES
-1-
Olá!
Bom dia!
Um dos diagramas de maior relevância dentro do contexto da orientação a objeto é o modelo de classes, que visa
apresentar as classes do sistema, com suas estruturas (atributos e métodos) e os relacionamentos entre as
classes.
A técnica adotada nesta aula pressupõe a existência do diagrama de casos de uso e as descrições textuais de cada
O modelo de classes vai sendo refinado e acrescido de outras classes, até chegar ao nível em que conterá as
classes a serem implementadas na linguagem de programação, dando forma ao sistema que fora elaborado,
Objetivos
•Aplicar como se deriva o diagrama de classes a partir do diagrama e especificações de casos de uso.
O diagrama de classes é considerado por muitos o principal diagrama da UML, sendo também o mais
amplamente usado por aqueles que usam a UML na modelagem de seus sistemas orientados a objetos.
Existem vários níveis de diagramas de classes, que são usados no nível de domínio — conceitual — e de
projeto.
Nesta aula, vamos inicialmente abordar o diagrama de classes a partir da observação do mundo real para
um determinado contexto. Vamos construir o diagrama em nível de domínio, ou ainda, o chamado modelo
conceitual de classes.
Para começarmos , atente-se para a seguinte informação, referente ao diagrama conceitual de classes:
Não se devem representar estruturas de projeto (interfaces, chaves, arquivos, campos etc.). O foco da análise
é o negócio.
-2-
Esse modelo usa os elementos mais básicos do diagrama de classes, pois a finalidade é representar os
objetos tal qual existem no mundo real, sem inserir aspectos de projeto ou de implementação no modelo.
Assim, o diagrama de classes descreve, de forma gráfica, os tipos de objetos que interagem para realizar as
funcionalidades previstas em um sistema, bem como os vários tipos de relacionamentos estáticos entre
eles. O diagrama de classes mostra, ainda, as propriedades e operações de uma classe e as restrições
O diagrama de classes evolui à medida que o projeto avança. Observe esse processo através do esquema a
seguir:
Fase de projeto
Nessa fase, o mesmo diagrama de classes pode ser refinado com a inserção de:
• Multiplicidades e papéis;
• Relacionamento entre as classes;
• Novos métodos (como, por exemplo, get, set e formatações);
• Novos atributos;
• Parâmetros nas chamadas dos métodos;
• Visibilidade dos atributos e métodos;
• Novas classes, chamadas de classes de projeto (como representação de persistência).
Fase de implementação
Durante a implementação (codificação na linguagem), novas classes podem surgir, como classes que
Inicialmente, em sua primeira versão, na fase de análise, o diagrama apresenta as classes do negócio (também
-3-
Esse é um diagrama compatível com as funcionalidades dos casos de uso, ou seja, mostra a modelagem em
Num segundo momento, ainda na fase de análise, novas classes podem ser inseridas no diagrama de classes,
Classe de fronteira (boundary) ou interface: responsável pela interação com os atores. Exemplo: para
representar um formulário, para representar a interface com outro equipamento (um acionador de cancelas de
Classes de controle: responsável pela coordenação da interação entre os objetos, na realização de um caso
Na verdade, embora com diferentes nomenclaturas, o diagrama de classes é um só, que vai crescendo e sendo
alterado a cada fase do ciclo de desenvolvimento. Algumas equipes de projeto podem optar por guardar as
versões finais de cada diagrama, mas a última versão guarda todas as alterações feitas.
A classe
Uma classe é uma abstração da realidade, na qual representamos algo do mundo real. Se, por exemplo, em
Na UML, uma classe é representada por um compartimento contendo três partes, conforme ilustra a figura
a seguir:
-4-
Exemplo
A figura, abaixo, ilustra um exemplo de classe de nome “cliente”, contendo os atributos Nome e Matrícula e os
-5-
Classe x Objeto
Na imagem, a seguir, você pode visualizar o exemplo de um objeto específico pertencente à classe cliente. O
Fique ligado
Ao modelarmos um sistema, estamos em busca de classes, e não de objetos. Poderíamos
pensar que o nome da técnica deveria chamar-se “orientação a classes”, e não “orientação a
objetos”.
A figura abaixo ilustra um diagrama conceitual de classes, contendo apenas classes de negócio (entidades)
que são modeladas, bem como apresenta comentários dos principais elementos do diagrama de classes.
-6-
Fonte: Figura extraída do livro UML Essencial: um breve guia para a linguagem-padrão de modelagem de
objetos, de Martin Fowler, 3a edição.
Por meio do exemplo de diagrama, podemos observar que um diagrama de classes possui os seguintes
elementos básicos:
7. Notas e comentários.
Cada classe possui os seus atributos e operações específicos. Veja como esses elementos se relacionam:
Atributo
-7-
Ele descreve uma propriedade estrutural da classe, um dado relevante que desejamos armazenar daquela
classe. Segundo a UML, forma mínima de representar um atributo é: visibilidade Nome: tipo.
Operações
A operacão de uma classe é representada por um método, que é um procedimento ou função da classe.
Segundo a UML, a forma mínima de representar um método é: visibilidade Nome (Lista de parâmetros) : tipo.
O relacionamento de associação é o mais simples e comum relacionamento entre classes. Ocorre entre uma,
duas ou mais classes distintas, não correlatas e independentes. Ao final do relacionamento, as classes
Associação binária: É a associação mais comum, também chamada de associação entre duas classe.
Autoassociação: Também chamada de associação unária, corresponde à associação que ocorre com a mesma
Associação exclusiva: É uma restrição em duas ou mais associações. Ela indica que objetos de uma
determinada classe podem participar de no máximo uma das associações, em determinado momento.
Ela é representada por uma linha tracejada, entre as associações, com a especificação {ou}, denotando que o
A multiplicidade é um conceito extremamente relevante nos relacionamentos. De uma forma bem simples, ela
Diz respeito a quais classes podem ver (visualizar) o quê de outra classe. A ideia é que cada classe tenha
O que for público pode ser visualizado e usado por qualquer outra classe.
A UML aborda o tema sem entrar nessa confusão e deixa a cargo da equipe de desenvolvimento esses aspectos
de compatibilidade. Basicamente, a UML permite que se rotule todo atributo e método de uma classe com um
indicador de visibilidade.
Atenção
-8-
Em todos os exemplos vistos até aqui, usamos as visibilidades públicas (sinal de mais +) para os métodos e
visibilidade privada (sinal de menos -) para os atributos. A UML fornece quatro possibilidades de visibilidade, a
saber:
Preparamos algumas diretrizes relevantes sobre visibilidade que você deve estar atento. Veja:
1 O encapsulamento, um dos princípios básicos da orientação a objetos, diz que os atributos de uma classe
não devem ser usados por outras classes, e sim apenas por métodos da própria classe. A conclusão é que os
2 Uma classe deve prestar serviço às demais, através de seus métodos. Assim sendo, pelo menos um dos
métodos da classe deve ter visibilidade pública, para que as demais classes possam usá-lo;
3 Num relacionamento de generalização/ especialização, todos os atributos e métodos que desejar que
sejam herdados pela classe especializada (subclasse) devem ter visibilidade protegida na classe geral
(superclasse).
Os relacionamentos representam os mais relevantes elementos de um diagrama de classes. Por isso, agora
Classe se associação: É uma classe que surge do relacionamento de associação entre outras duas classes.
Agregação ou composição: Esses dois relacionamentos são do tipo “todo-parte”, ou seja, existe uma classe que
Dependência: A dependência entre duas classes existe se: mudanças na definição de uma classe puder
-9-
Podemos definir, para um relacionamento, um nome e um papel. A imagem a seguir mostra um exemplo de
Faz pedido: O papel no relacionamento é um nome dado ao papel que cada classe representa no
Faz: Pode ser dado um nome ao relacionamento, no caso faz, e com o sentido da leitura (seta indicando como
Fique ligado
Cada classe pode ter o nome de seu papel descrito no relacionamento, conforme ilustra a
figura anterior. Seu uso é opcional e, caso seja necessário, pode-se especificar o papel de
apenas uma das classes no relacionamento. Veja:
• Faz é o nome do relacionamento, com a seta apontado para pedido, indicando
que a leitura é na direção cliente faz pedido;
• Possui é o nome do relacionamento entre pedido e itens pedido, com a seta
apontada para itens pedido, indicando que a leitura é na direção pedido possui
itens pedidos;
• Faz pedido é o papel que o cliente tem no relacionamento entre cliente e
pedido;
• Cada item do pedido é o papel que itens pedido tem no relacionamento entre
- 10 -
• Cada item do pedido é o papel que itens pedido tem no relacionamento entre
pedido e itens pedido.
Podemos citar como exemplo, uma associação que é dita navegável da classe C1 para a classe C2 se, a partir de
um objeto de C1, consegue-se obter diretamente os objetos relacionados da classe C2. Assim, denota-se, no
No diagrama de classes representado pela figura a seguir, está sendo representada a navegabilidade da
associação entre as classes cliente e endereços. O símbolo é a seta colada na classe endereços.
Notas são comentários nos diagramas. Elas podem ser isoladas ou vinculadas, por linha tracejada, a um dos
A figura a seguir, ilustra as duas possibilidades: notas associadas a um elemento, no caso à classe endereços
- 11 -
Saiba mais
Para saber mais sobre os tópicos estudados nesta aula, pesquise na internet sites, vídeos e
artigos relacionados ao conteúdo visto. Se ainda tiver alguma dúvida, fale com seu professor
online, utilizando os recursos disponíveis no ambiente de aprendizagem.
CONCLUSÃO
Nesta aula, você:
• Reconheceu os elementos básicos e avançados da UML para a criação do diagrama de classes;
• Avaliou, através de uma atividade, os diagramas de casos de uso e de classes.
- 12 -
Referências
BOOCH, G.; JACOBSON, I.; RUMBAUGH, J. UML — Guia do Usuário. 2. ed. Rio de Janeiro: Elsevier, 2005. cap. 1 e 2.
FOWLER, Martin. UML essencial — um breve guia para a linguagem padrão. 3. ed. Porto Alegre: Artmed, 2005.
cap. 1
LARMAN, Craig. Utilizando UML e padrões? uma introdução à análise e ao projeto orientados a objetos e ao
- 13 -