• Nenhum resultado encontrado

aula4.1

N/A
N/A
Protected

Academic year: 2021

Share "aula4.1"

Copied!
19
0
0

Texto

(1)

Análise e Projeto de Software Orientados a Objetos

Aula 4 - Diagramas de classes.

Artur Oliveira Gomes

Sistemas de Informação - CPAN - UFMS

(2)

1 Introdução

2 Propósito do uso de diagramas de classe

(3)

Introdução

O diagrama de classe é um diagrama estático. Ele representa a visão estática de uma aplicação. Diagramas de classe não são apenas usados para visualição, descrição e documentação de diferentes aspectos de um sistema, mas também para a construção de código executável da aplicação desejada.

Os diagramas de classe descrevem os atributos e operações de uma classe e também as restrições impostas ao sistema. Os diagramas de classe são usadas de forma abrangente na modelagem de sistemas orientados a objetos por que eles são os únicos diagramas em UML que permitem o mapeamento direto entre linguagens orientadas a objetos.

Os diagramas de classe mostram uma coleção de classes, interfaces, associações, colaborações e restrições. Eles também são conhecidos como diagramas estruturais.

(4)

Introdução

O diagrama de classe é um diagrama estático. Ele representa a visão estática de uma aplicação. Diagramas de classe não são apenas usados para visualição, descrição e documentação de diferentes aspectos de um sistema, mas também para a construção de código executável da aplicação desejada.

Os diagramas de classe descrevem os atributos e operações de uma classe e também as restrições impostas ao sistema. Os diagramas de classe são usadas de forma abrangente na modelagem de sistemas orientados a objetos por que eles são os únicos diagramas em UML que permitem o mapeamento direto entre linguagens orientadas a objetos.

Os diagramas de classe mostram uma coleção de classes, interfaces, associações, colaborações e restrições. Eles também são conhecidos como diagramas estruturais.

(5)

Introdução

O diagrama de classe é um diagrama estático. Ele representa a visão estática de uma aplicação. Diagramas de classe não são apenas usados para visualição, descrição e documentação de diferentes aspectos de um sistema, mas também para a construção de código executável da aplicação desejada.

Os diagramas de classe descrevem os atributos e operações de uma classe e também as restrições impostas ao sistema. Os diagramas de classe são usadas de forma abrangente na modelagem de sistemas orientados a objetos por que eles são os únicos diagramas em UML que permitem o mapeamento direto entre linguagens orientadas a objetos.

Os diagramas de classe mostram uma coleção de classes, interfaces, associações, colaborações e restrições. Eles também são conhecidos como diagramas estruturais.

(6)

Propósito do uso de diagramas de classe

O propósito do uso de diagramas de classe é a modelagem da visão estática de uma aplicação. Os diagramas de classe são os únicos diagramas que podem ser mapeados diretamente com a linguagem de programação e com isso são amplamente usados no tempo da construção. Então o propósito dos diagramas de classe podem ser sumarizados como:

Análise e modelagem de uma visão estática da aplicação. Descreve responsabilidades do sistema.

É base para os diagramas de componente e implantação. Engenharia direta e reversa.

(7)

Propósito do uso de diagramas de classe

O básico dos diagramas de classe

Como mencionado anteriormente, o propósito dos diagramas de classe é mostrar os tipos sendo modelados entre um sistema. Na maioria dos modelos uml, estes tipos incluem:

Uma classe Uma interface Um data type Um componente

UML usa um nome especial para estes tipos: “classificadores”.

Geralmente, a gente pode pensar em um classificador como uma classe, mas na verdade, um classificador é um termo mais geral que refere também aos outros três tipos acima.

(8)

Propósito do uso de diagramas de classe

Nome da classe

A representação UML de uma classe é um retângulo contendo três compartimentos empilhados verticalmente, como mostrado no diagrama abaixo. O compartimento superior mostra o nome da classe. O

compartimento intermediário lista os atributos da classe. O compartimento inferior lista as operações (métodos) da classe.

NomeDaClasse nome : tipo do atributo

nome : tipo do atributo = valor padrão

nome(lista de parametros) : tipos de valores de retornos Quando modelamos um elemento classe num diagrama de classe, precisamos usar obrigatoriamente o compartimento superior; os demais são opcionais e podem ser representados como vazios.

(9)

Propósito do uso de diagramas de classe

Exemplo

Abaixo temos uma classe de um vôo de uma companhia aérea modelada em UML. Como podemos ver, o nome da classe é VooComercial, e no compartimento do meio, temos três atributos: numeroDoVoo,

horaDePatida e duracaoDoVoo. Finalmente, temos duas operações da classe: atrasoDeVoo e retornaHoraDeChegada.

VooComercial numeroDoVoo : Inteiro

horaDePartida : Data duracaoDoVoo : Minutos

(10)

Propósito do uso de diagramas de classe

Herança

Um conceito muito importante na modelagem orientada a objeto é a herança, que refere à habilidade de uma classe (classe filho) herdar funcionalidades idênticas à outra classe (classe mãe, super classe), e então, adicionar a nova funcionalidade para si própria.

Para modelar herança num diagrama de classe, uma linha sólida é desenhada da classe filha (classe herdando o comportamento) com uma seta fechada e não preenchida, apontando para a super classe.

(11)

Propósito do uso de diagramas de classe

Exemplo ContaBancaria titular : String saldo : Reais = 0 deposito(quantia : Reais) saque(quantia : Reais) VerificaConta fundosInsuficientes : Reais processaCheque ( chequeParaProcessar : Cheque )

saque ( quantia : Reais )

ContaPoupanca rendimentoAnual : Porcenta-gem

rendimentoMensal ( ) saque ( quantia : Reais )

(12)

Associações

Quando modelamos um sistema, certos objetos serão relacionados entre eles, e estes relacionamentos precisam ser modelados por motivos de clareza. Há cinco tipos de associação. Falaremos agora de dois deles: unidirecional e bidirecinal.

(13)

Associações

Associação bidirecional

Uma associação é uma ligação entre duas classes. Assumimos que qualquer associação é bidirecional; isto significa que ambas as classes conhecem uma a outra e conhecem seu relacionamento, a não ser que seja qualificado como algum tipo.

(14)

Associações

Associação bidirecional VooComercial numeroDoVoo : Inteiro horaDaPartida : Data duracaoDeVoo : Minutos aeroportoDePartida : String aeroportoDeChegada : String

atrasoDeVoo ( numeroDeMinutos : Minutos ) horaDeChegada ( ) : Data Aviao tipoDeAviao : String velocidadeMaxima : KPH distanciaMaxima : Km identificacaoDeAviao : String aviaoAssociado 0..1 0..* vooAssociado

(15)

Associações

Associação unidirecional

Numa associação unidirecional, duas classe são relacionadas, porém apenas uma classe sabe da existencia do relacionamento. O diagrama abaixo mostra um exemplo de uma transação numa conta descoberta, com uma associação unilateral.

RelatorioDeContaDescoberta geradoEm : Data atualizar ( ) ContaBancaria titular : String saldo : Reais deposito(quantia : Reais) contasDescobertas 0..*

(16)

Associações

Interfaces

Uma classe e uma interface são distintas: uma classe pode ter uma instancia atual de seu tipo, enquanto uma interface deve ter ao menos uma classe que a implemente. Na UML, uma interface é considerada como sendo uma especialização de uma classe modelando um elemento. Contudo, uma interface é desenhada exatamente como uma classe, contudo seu compartimento superior do bloco "classe"em UML contém um texto "«interface»"como no diagrama abaixo.

<<interface>> Pessoa primeiroNome : String sobrenome : String

(17)

Associações

Agregação

Uma associação com um relacionamento de agregação indica que uma classe é parte de outra classe. Num relacionamento de agregação, a classe filho é uma instancia que pode existir sem a existencia da classe que a agrega. Para representar uma relação de agregação, desenhamos uma linha sólida da classe "todo"em direção a classe "parte", e desenhamos um losango não preenchido no lado do classe que precisa agregar componentes. O exemplo abaixo mostra a necessidade de um carro agregar quatro rodas, representado em UML.

(18)

Associações

Agregação Carro Roda temRodas 4

(19)

Associações

Composição

Uma composição é apenas uma outra forma de relacionamento de agregação, onde a existencia da classe "parte"depende da classe "todo". Abaixo, vemos uma composição entre uma classe Departamento e uma classe Companhia. veja que o relacionamento é desenhado

semelhantemente, contudo, o losango é preenchido com preto.

Companhia

Departamento

temDepartamentos 1..*

Referências

Documentos relacionados

A produção de um texto-síntese para leitura prévia por parte de todos os alunos da classe, bem como a elaboração de um eventual roteiro de questões para a discussão durante a

A partir do levantamento das dissertações e teses de enfermagem sobre itinerário terapêutico foi possível encontrar que os temas abordados reportam-se para a problemática das

Após 96 horas, houve um aumento no consumo, com o aumento de 100 para 160 ninfas, que não diferiu significativamente da densidade 220; com 280 ninfas disponíveis houve um

01 CLAUDIANE RAQUEL DE SOUSA SILVA 1201225026 HOMOLOGADO PARA OS AUXÍLIOS VALE-.. MORADIA

Uma biblioteca para criação de máquinas virtuais baseadas em processadores de rede / Telvio Martins de Mello ; orientador: Sérgio Colcher.. ;

Como por exemplo o tema de segurança ambiental e humana, que não eram considerados questões de segurança, mas na atualidade passaram a ser importantes debates da

- Se você sofre de doença renal grave e se, ao mesmo tempo, está sendo tratado com medicamentos que podem diminuir a eliminação de Vesomni ® do corpo (por exemplo..

Relação entre as variáveis ambientais (altura, cota do rio, temperatura do ar média, temperatura do ar máxima, temperatura do ar mínima, umidade relativa do ar e precipitação e