UML (Unified Modeling Language) Linguagem Unificada de Modelagem Prof: Ivan Fontainha Aula 6 Site: http://sites.google.com/site/ivanfont ainha/ http://ivan.fontainha.googlepages.com email: [email protected]
Apr 21, 2015
UML (Unified Modeling Language)Linguagem Unificada de Modelagem
Prof: Ivan Fontainha Aula 6
Site: http://sites.google.com/site/ivanfontainha/ http://ivan.fontainha.googlepages.com email: [email protected]
Bibliografia
BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML: guia do usuário. 2.ed. rev. e atual. Rio de Janeiro: Elsevier, Campus, 2006.
MELO, Ana Cristina. Desenvolvendo aplicações com UML 2.2: do conceitual à implementação. 3.ed. Rio de Janeiro: Brasport, 2010.
LARMAN, Craig. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre: Bookman, 2007.
UML – Modelo de Elementos Classes:
É uma descrição de um tipo de objeto Usamos classes para classificar os objetos
que identificamos no mundo real Uma classe pode ser a descrição de um
objeto em qualquer tipo de sistema
UML – Modelo de Elementos Existem algumas questões que podem nos
ajudar a identificar as classes: Existem informações que devem ser
armazenadas ou analisadas?
Se existir alguma informação que tenha de ser guardada, transformada ou analisada de alguma forma, então é uma possível candidata para ser uma classe
UML – Modelo de Elementos Existem algumas questões que podem nos
ajudar a identificar as classes: Existem sistemas externos ao modelado?
Se existir, eles deverão ser vistos como classes pelo sistema para que possa interagir com outros atores externos
UML – Modelo de Elementos Existem algumas questões que podem nos
ajudar a identificar as classes: Existem classes de bibliotecas,
componentes ou modelos externos a serem utilizados pelo sistema modelado?
Se existir, normalmente essas classes, componentes e modelos conterão classes candidatas ao nosso sistema
UML – Modelo de Elementos Existem algumas questões que podem nos
ajudar a identificar as classes: Qual o papel dos atores dentro do sistema?
Talvez, o papel destes atores possa ser visto como classes, por exemplo, usuário, operador, cliente e daí por diante
UML – Classes Em UML as classes são representadas por
um retângulo divididos em 3 compartimentos:
Cliente
nome: stringendereco:string
cadastraCliente()alteraDados()
Nome
Atributos
Operações
UML – Classes Compartimentos:
OBS: A sintaxe usada em cada um destes compartimentos é independente de qualquer linguagem de programação
Cliente
nome: stringendereco:string
cadastraCliente()alteraDados()
Nome: conterá apenas o nome da classe modelada
UML – Classes Compartimentos:
OBS: A sintaxe usada em cada um destes compartimentos é independente de qualquer linguagem de programação
Cliente
nome: stringendereco:string
cadastraCliente()alteraDados()
Atributos: possuirá a relação de atributos que a classe possui em sua estrutura interna
UML – Classes Compartimentos:
OBS: A sintaxe usada em cada um destes compartimentos é independente de qualquer linguagem de programação
Cliente
nome: stringendereco:string
cadastraCliente()alteraDados()
Operações: serão os métodos de manipulação de dados e de comunicação de uma classe com outras do sistema
UML – Classes As normas de estilo da UML determinam que:
Cliente
nome: stringendereco:string
cadastraCliente()alteraDados()
• Nome da classe seja centralizado e negrito• Escrever as iniciais dos nomes das classes em maiúsculas, inclusive as primeiras letras de nomes compostosEx: AlunoUniversitario, PessoaFisica
UML – Classes As normas de estilo da UML determinam que:
Cliente
nome: stringendereco:string
cadastraCliente()alteraDados()
• Os atributos e as operações devem ser escritos com formatação normal e alinhados a esquerda• Os nomes de atributos e operações devem iniciar com letra minúscula, entretanto as iniciais das palavras compostas devem iniciar com letra maiúsculaEx: nomeCliente reajustarSalario ()
UML – Diagrama de Classes
O diagrama de classes demonstra a estrutura estática das classes de um sistema onde estas representam as “coisas” que são gerenciadas pela aplicação modelada
UML – Diagrama de Classes Classes podem se relacionar com outras
através de diversas maneiras: Associação : conectadas entre si Dependências: uma classe depende ou usa
outra classe Especialização: uma classe é uma
especialização de outra classe Pacotes: Classes agrupadas por
características similares
UML – Diagrama de Classes
Todos os relacionamentos são mostrados no diagramas de classe juntamente com suas estruturas internas, que são os atributos e operações
O diagrama de classes é considerado estático já que a estrutura descrita é sempre válida em qualquer ponto do ciclo de vida do sistema
UML – Diagrama de Classes
Um sistema normalmente possui alguns diagramas de classe, já que não são todas as classes que estão inseridas em um único diagrama e uma certa classes pode participar de vários diagramas de classes
Para se criar um diagrama de classes, as classes tem de estar identificadas, descritas e relacionadas entre si
UML – Diagrama de Classes - ParteContratoAluguel
codigo:integernomeCliente: string
cadastraContrato()alteraDadosCont()
Cliente
nome: stringendereco:string
cadastraCliente()alteraDados()
0..*1
possui
Classe Cliente, com seus atributos e métodos
UML – Diagrama de Classes - ParteContratoAluguel
codigo:integernomeCliente: string
cadastraContrato()alteraDadosCont()
Cliente
nome: stringendereco:string
cadastraCliente()alteraDados()
0..*1
possui
Classe ContratoAluguel, com seus atributos e métodos
UML – Diagrama de Classes - ParteContratoAluguel
codigo:integernomeCliente: string
cadastraContrato()alteraDadosCont()
Cliente
nome: stringendereco:string
cadastraCliente()alteraDados()
0..*1
possui
Relacionamento entre as classes, com sua multiplicidade, isto é, o intervalo numérico permitido de valores que a classe Cliente “possui” com a classe ContratoAluguel
UML – Diagrama de ClassesContratoAluguel
codigo:integernomeCliente: string
cadastraContrato()alteraDadosCont()
possui
0..*
1
0..*
Cliente
nome: stringendereco:string
cadastraCliente()alteraDados()
1..*
refere a
0..*1
possui
Caminhao
torque:string
Tipos de Veículos
CarroEsporte
potenciaMotor:integeraerofolio: string
VeiculoAlugado
codigoVeiculo:integermodelo: stringfabricante: String
cadastraVeiculo()alteraDadosVeiculo()
CarroPasseio
potenciaMotor: integerEmpresadeAluguel
codigo:integernomeEmpresa: string
cadastraEmpresa();alteraEmpresa();
UML – Diagramas de Estrutura Composta
A UML 2.0 deu uma importância maior à composição, com a inclusão deste novo diagrama
O objetivo deste diagrama é permitir que se exiba um pequeno diagrama de classes dentro de uma classe. (agrupamento de estruturas)
Esta notação leva uma apresentação menos confusa de um relacionamento de composição
Torna-se útil quando temos em um mesmo diagrama de classes relacionamentos entre classes, entre as classes-todo e suas partes e entre as próprias partes
UML – Diagramas de Estrutura Composta
Exemplo:
Classe-Todo
Parte-1 [Multipl]
Parte-n [Multipl]
Classe-todo do relacionamento de
composição
Classe-parte com sua
multiplicidade
Conector Assembly
UML – Diagramas de Estrutura Composta
UML – Diagramas de Estrutura Composta
As classes-partes podem ser ligadas por conectores
Conectores Assembly permite que uma classe-parte supra serviços que outra classe-parte necessita. Ele conecta duas partes como associação
Multiplicidade: Mostra o intervalo numérico permitido de valores que determinados elementos da UML possuem com outro elemento