Vous êtes sur la page 1sur 31

UML Classes e Relacionamentos

Prof. Dr. Wilson M. Yonezawa Departamento de Computao UNESP FC - Bauru

De novo o Hello World


import java.awt.Graphics; class HelloWorld extends java.applet.Applet { public void paint (Graphics g) { g.drawString(Hello, World!, 10, 10); } }

Como utilizar UML na especificao?!?!?!?

Usando UML na especificao


Qual o nome da classe? Quais as classes envolvidas? Quais os relacionamentos envolvidos? Qual o grau de abstrao adequado?

Primeira abstrao do problema


Classe

Nota

Um pouco mais de detalhe


import java.awt.Graphics; class HelloWorld extends java.applet.Applet { public void paint (Graphics g) { g.drawString(Hello, World!, 10, 10); } }

Classe: HelloWorld Classe pai: Applet Classe associada: Graphics

Melhorando a especificao
Applet
import java.awt.Graphics; class HelloWorld extends java.applet.Applet { public void paint (Graphics g) { g.drawString(Hello, World!, 10, 10); } }

HelloWord +paint()

Graphics

HelloWord filha (deriva) de Applet HelloWord usa Graphics

Visualizando Herana na Hierarquia de classes


Object Component ImageObserver

Container

Panel

Applet

HelloWord

Descrevendo pacotes
HelloWord depende de java.applet java.applet depende de java.awt
java
HelloWord +paint() applet

awt

lang

E o mtodo paint ???


Como chamar o mtodo paint() da classe HelloWorld ???? O mtodo paint() foi reescrito em HelloWorld, mas existe tambm na classe Component Mas como ele executado??? Quando chamado??

Ainda sobre o paint


Paint chamado como parte da execuo da thread do applet O mtodo paint est escrito no pai e no filho. O conceito de polimorfismo utilizado neste caso Um diagrama de seqncia pode ser utilizado para demonstrar coisas deste tipo

Exemplo de diagrama de seqncia


Objetos
:Thread run run callback loop handleExpose handleExpose :Toolkit :ComponentPeer target: HelloWorld

Componentes do HelloWorld
executable HelloWorld HelloWorld.java

index.html

logo.jpg

banner1.gif

Sobre Classes
Classe uma descrio de um conjunto de objetos que compartilham os mesmos atributos, operaes, relacionamentos e semntica Termos e conceitos:
Nomes da classe Atributos Operaes Responsabilidade

Sobre Classes
Classes so descritas por substantivos (ex: Cliente, SensorTemperatura, Motor, Computador, Carro) Atributos so propriedades nomeadas de uma classe (ex: nome, endereo, dataNascimento) Operaes so implementaes de servios que pode ser solicitado por algum objeto da classe para modificar o comportamento.

Sobre Classes
O nome da operao um verbo que representa algum comportamento da classe correspondente (ex: move, isEmpty) possvel especificar uma operao indicando sua assinatura com o nome, o tipo e valor padro dos parmetros, assim com o tipo a ser retornado
Ex: configurarSensor(limiteMinimo: int): boolean

Sobre Classes

Esteretipos

Sobre Classes
Aluno -Id : int -nome -endereco -cidade -sexo +EfetuarMatricula() : bool +CancelarDisciplina() +CancelarMatricula()

Responsabilidade: um contrato ou obrigao da classe.

Exemplo: ------------- Realizar a matricula todos semestre Cancelar disciplina sempre que desistir da mesma

Sobre Classes e responsabilidades


Modelar classes responsabilidades dos itens especificar

Uma classe pode ter qualquer nmero de responsabilidades (pelo menos uma responsabilidade necessria) As responsabilidades de uma classe podem ser traduzidas num conjunto de atributos e operaes ao longo do processo de modelagem.

Ainda sobre Classes


Algumas vezes preciso visualizar ou especificar caractersticas como visibilidade de atributos e operaes (ex: polimorfismo) As vezes preciso especificar Excees que objetos produzem ou manipulam Modelagem de classes utilizadas para isso avanadas so

Como identificar Classes?


Levantar o vocabulrio do sistema ou do problema Identifique as principais abstraes no problema Identifique as responsabilidades do sistema

Sobre os Relacionamentos
Classes no trabalham sozinhas Classes colaboram umas com as outras Trs tipos bsicos de relacionamento:
Dependncias Generalizaes Associaes

Ex:
Construir uma casa, carro ou computador Quais as dependncias, generalizaes e associaes existentes nesta tarefa?

Sobre os Relacionamentos
Window -style -posX -posY +open() +close() +move() +display() +handleEvent()

dependncia

Event

generalizao
MessageBox

DialogBox *

associao
*

Control

Sobre os Relacionamentos Generalizao


Forma

Retangulo

Crculo

Polygono

Sobre os Relacionamentos Dependncia

Sobre os Relacionamentos Associao


Papis

Multiplicidade

Nome Papel Multiplicidade Agregao

Sobre os Relacionamentos Agregao


Empresa

Janela

Todo
1

* Departamento

* Moldura

Parte Composio ?!?!

Sobre os Relacionamentos
Lembrar que:
Relacionamentos de generalizao conectam classes generalizadas para outras mais especializadas (hierarquia e herana) Relacionamentos de dependncias representa utilizao de classes Relacionamentos de associaes relacionamentos estruturais entre objetos so

Exerccio No. 2 (adicional)


Pense no problema de requisio de materiais e servios (RMS) existentes na sua unidade Identifique as principais classes neste problema Especifique os atributos, operaes e responsabilidades de pelo menos trs classes no problema discutido

Exerccio No. 1
Pense no problema para controle dos membros dos rgos Colegiados na UNEP Identifique as principais classes neste problema Especifique os atributos, operaes e responsabilidades de pelo menos trs classes no problema discutido

Referncias
Booch, G., Rumbaugh, J., Jacobson, I. UML Guia do Usurio 11a Tiragem. Editora Campus, Rio de Janeiro, 2000. Pender, T. UML Bible, Wiley Publishing Inc. Indianapolis, 2003. Larman, C. Utilizando UML e Padres, 1a edio. Bookman, So Palulo, 2002.

Referncias na Web
http://www.esm.jp/jude-web/index.html http://docs.kde.org/stable/pt_BR/kdesdk/u mbrello/uml-basics.html

Vous aimerez peut-être aussi