Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouIsadora Azenha Desconhecida Alterado mais de 7 anos atrás
1
www.agilcoop.org.br Modelagem Orientada a Objetos com UML Cursos para a CTI - IME/USP Dairton Bassi, Hugo Corbucci e Mariana Bravo Departamento de Ciência da Computação
2
Copyleft AgilCoop 20072 Roteiro ● Cartões CRC ● Diagrama de comunicação ● Herança e polimorfismo ● Classe abstrata e interface ● Mais diagrama de classe
3
Copyleft AgilCoop 20073 Cartões CRC ● Classe, Responsabilidade e Colaboração ● Objetivo: a partir de um problema, reconhecer classes e relacionamentos importantes em uma possível solução para o sistema. ● Não é UML!
4
Copyleft AgilCoop 20074 Cartões CRC ● Classe: o nome da classe, que tenha significado relevante ● Responsabilidades: o que a classe deve conhecer o fazer (e não como) ● Colaboração: outras classes no sistema com as quais esta classe colabora
5
Copyleft AgilCoop 20075 Cartões CRC – Exemplo Carro Conhece sua velocidade atual Conhece sua direção Permite acelerar Permite frear Permite girar o volante para fazer curvas Motor Sistema Eletrico
6
Copyleft AgilCoop 20076 Exercício! ● Vamos montar um sistema para uma locadora de livros. Ele deve cuidar do estoque de livros, dos aluguéis e do cadastro dos clientes. ● Os livros são separados por categoria, e queremos buscá-los seja pela categoria, pelo autor ou pelo título para descobrir em qual estante da loja ele está, se não estiver alugado.
7
Copyleft AgilCoop 20077 Exercício! (continuado) ● O cadastro de clientes é bem simples, só precisamos saber seu nome, CPF e telefone. ● Os clientes podem alugar livros que estejam disponíveis por quanto tempo quiserem, pagando uma taxa diária que varia de R$0,90 a R$1,70 dependendo da categoria do livro. Ele paga a taxa de dois dias ao levar o livro, e o resto ao devolver, dependendo do tempo de aluguel.
8
Copyleft AgilCoop 20078 Discussão do exercício!
9
Copyleft AgilCoop 20079 Diagrama de comunicação ● Mostra como diversos objetos colaboram para realizar uma determinada tarefa. ● É um diagrama de objetos mostrando quais mensagens são trocadas entre os objetos e em qual ordem.
10
Copyleft AgilCoop 200710 Exemplo :Carro:Motor :Controle 1. fazCurva(angulo) 2. acelera(valor) 1.1 freia(valor) 2.1 acelera(valor) 1.2 giraVolante(angulo)
11
Copyleft AgilCoop 200711 Exercício ● Revisitando o exercício da locadora de livros, desenhe um diagrama de comunicação mostrando como é feita a retirada e a devolução de um livro no sistema.
12
Copyleft AgilCoop 200712 Herança ● Relacionamento entre dois tipos indicando que um (filho) é subtipo do outro (pai). ● Usada para: – Reaproveitar implementação (classe pai tem código que classes filhas podem usar) – Reaproveitar especificação (tipo pai define métodos que tipos filhos devem seguir)
13
Copyleft AgilCoop 200713 Herança em UML
14
Copyleft AgilCoop 200714 Polimorfismo ● É a habilidade de um tipo A parecer e ser usado como um tipo B. ● Qualquer tipo de herança permite polimorfismo dos subtipos, que podem ser usados como o supertipo.
15
Copyleft AgilCoop 200715 Classe abstrata ● É uma classe que não define a implementação de todos os seus métodos. ● Suas subclasses devem fornecer implementações para os métodos abstratos, a não ser que sejam abstratas também.
16
Copyleft AgilCoop 200716 Classe abstrata ● Código: abstract class ClasseAbstrata { void metodoConcreto() {... } abstract void metodoAbstrato(); }
17
Copyleft AgilCoop 200717 Exercício! ● Suponha que você tem uma classe abstrata Robo usada para controlar diversos tipos de rôbos que ajudam na limpeza de uma casa. Por exemplo, ela tem uma subclasse AspiradorDePo e outra LimpadorDeVidro. Que métodos teria a classe Rôbo? E as suas subclasses? Quais métodos seriam abstratos? Na sua solução, a herança aproveita implementação ou especificação?
18
Copyleft AgilCoop 200718 Discussão do exercício!
19
Copyleft AgilCoop 200719 Interface ● Tipo que não define implementação para nenhum de seus métodos. É apenas uma especificação. ● O suporte em UML é feito através de esteriótipos (notação: >)
20
Copyleft AgilCoop 200720 Interface ● interface UmaInterface { void umMetodo(); }
21
Copyleft AgilCoop 200721 Estender e implementar em UML
22
Copyleft AgilCoop 200722 Discussão! Quando você usaria uma classe abstrata?Quando usaria uma interface? Tente pensar em exemplos.
23
Copyleft AgilCoop 200723 Exercício! ● Modele um sistema de pintura de um desenho, usando uma classe Tela que desenha apenas linhas. Queremos poder desenhar retângulos, quadrados e triângulos na tela, criando classes que não sejam nem subclasses nem superclasses de Tela. Queremos apenas usar Tela.
24
Copyleft AgilCoop 200724 Discussão do exercício!
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.