Introdução a Engenharia de
SoftwareCJR – Empresa Júnior de Computação
UML 24
“Família de notações gráficas, apoiada por um metamodelo
único, que ajuda na descrição e no projeto de sistemas de
software, particularmente aqueles construídos utilizando o
estilo orientado a objetos”.
Martin Fowler
Diagrama de classes
1 Classe
Classe
Atributos
Métodos
Nome da Classe
Nome : tipo = valor_inicial
Nome (lista de parâmetros) : tipo do retorno
1 Visibilidade
- Private
~ Default
# Protected
+ Public
1 Classe (exemplo)
Empresario_Junior
+ id: int+ Nome: string+ Tempo_empresa: int- Cargo: string = “trainee”
+ elegivel() : bool+ atualiza_cargo(cargo: string) : void
“verifica se tem tempo de empresa para ser elegível”
“atualiza o cargo com o valor recebido”
1 Associações
Associação
X
Agregação
X
Composição
1 Associações
Associação
Aluno
- Matricula: int- Nome: string
Turma
- Nome: int- Semestre: int
1 Associações
Agregação
Perfil
- Nome: string
Usuário
- Nome: int- Login: string- Senha: string- Perfil: Perfil
Uma classe faz parte de outra classe mas não de forma exclusiva
1 Associações
ComposiçãoUma classe faz parte de outra classe de forma exclusiva
DetalheUsuario
- Enedereco: string- Telefone: string
Usuário
- Nome: int- Login: string- Senha: string- Perfil: Perfil
1 Associações
Agregação
X
Composição
Você ainda vai confundir um dia...
http://imasters.com.br/artigo/18901/uml/uml-composicao-x-agregacao/
1 Auto-Relacionamento
Pasta
- Nome: int
1 Herança
Pessoa
id: intNome: string
Empresario_Jr
cargo: string
Cliente
Telefone: string
0..1 Zero or one
1 One only
0..* Zero or more
* Zero or more
1..* One or more
3 Three only
0..5 Zero to Five
5..15 Five to Fifteen
1 Multiplicidade
http://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/
Bibliografia do Curso (Sites)
IBM: http://www.ibm.com/developerworks/rational/library/769.html
Outros tópicos a estudar:• Classes e métodos abstratos• Interface• Dependência• Outros
http://www.slideshare.net/rodrigocasca/uml-criando-diagramas-eficientes
Renato Leal
CJREmpresa Júnior de Computação da UnB