Você está na página 1de 53

Cadeira de Tecnologias de Informao

Ano lectivo 2009/10

UML Diagramas de Classes

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_1

Tpicos
1.

Crise de Software

2.

Metodologias Orientadas por Objectos (OO)

3.

Unified Modeling Language - UML

4.

Objectos e Classes

5.

Diagramas de Classes

6.

Relaes entre Classes

7.

Como identificar Classes

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_2

Crise do Software

Nos finais da dcada de 60 comeou a tomar-se conscincia


daquilo a que se chamou crise do software.

Alguns estudos demonstraram que o software:


raramente respondia s necessidades do cliente
era pouco fivel
excessivamente caro
de manuteno cara e propensa a erros
(o desenvolvimento) excedia os limites de tempo
preestabelecidos
era inflexvel, no portvel e no reutilizvel
pouco eficiente, no fazendo um bom uso dos recursos
disponveis

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_3

Crise do Software

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_4

Crise do Software

O software torna-se cada vez mais complexo e no existem


tcnicas que permitam gerir essa complexidade.

75% de todos os projectos de software nunca chegam a ser


completados, ou nunca so usados quando terminados.

Mesmo quando um projecto chega ao fim, nem sempre o


resultado
o esperado, ou ento demorou tanto a ser feito que j deixou
de ser
necessrio. [Revista Americana "Fortune"]

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_5

Crise do Software

Pensava-se que para resolver a crise do software era


preciso criar linguagens de programao adequadas ao
desenvolvimento de grandes (e de qualquer tipo de)
sistemas.

MAS

So necessrios mtodos e ferramentas capazes de ajudar a


planear, a desenvolver e a gerir o software.

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_6

FINDING THE GUILTY!

A maior parte dos projectos de software so mal geridos


(P.A.N.I.C. Mode)

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_7

Crise do Software

Para disciplinar o processo de desenvolvimento de software


nasceu a Engenharia de Software.
A engenharia de software a disciplina que define
tcnicas, mtodos, metodologias e ferramentas para
ajudar a desenvolver e a manter software de qualidade;
preocupa-se com todas as etapas desde a definio dos
requisitos at a avaliao do produto final.

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_8

Metodologias

Durante os anos 70 e 80 apareceram pela primeira vez os


conceitos de ciclo de vida e de metodologia de
desenvolvimento de software, com os seguintes objectivos:
prestar mais ateno ao processo global, e menos
programao.
formalizar o processo de identificao de requisitos,
Introduzir tcnicas baseadas nas melhores prticas no
processo de anlise e desenho

Estas metodologias estruturadas (baseadas em processos e


dados) propuseram diversos tipos de notaes e tcnicas
de modelao (DFDs, DEAs, etc).

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_9

Metodologias - Modelos
Muitas destas metodologias propunham a modelao do
sistema, usando modelos para o efeito.
Um modelo uma descrio abstracta da estrutura e
comportamento de um sistema:
Os modelos so mais simples de entender que os
sistemas que descrevem;
Os modelos podem ajudar-nos a entender e prever o
comportamento de um sistema.

Os modelos devem ligar os requisitos do negcio com a


implementao do software.
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_10

Metodologias

As tcnicas e metodologias inicialmente propostas


(estruturadas) apresentaram vrios problemas:
Dificuldade
em
lidar
adequadamente
com
a
complexidade e tamanho crescente dos sistemas,
Difcil integrao e reutilizao de mdulos e
componentes do sistema,
Qualidade do software baixa com um desempenho
inadequado.

Mais tarde, surgiu o conceito de orientao por objectos (OO),


que veio solucionar alguns dos problemas referidos.

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_11

Metodologias Orientadas por


Objectos
O paradigma OO baseia-se numa nova forma de analisar o
mundo
Reproduz a forma como o ser humano se apercebe e
expressa a realidade que o rodeia
Classifica e subdivide o mundo em diferentes objectos,
com base nas diferenas e semelhanas existentes ao
nvel das caractersticas e comportamentos dos mesmos
As metodologias orientadas por objectos so por isso
encaradas como uma das mais recentes propostas para
resolver os problemas de desenvolvimento de software,
abordagens mais naturais cujos conceitos bsicos so
simples e reproduzem o mundo real

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_12

Metodologias Orientadas por


Objectos
O elevado nmero de metodologias disponveis no mercado fez
com
que a simbologia usada variasse normalmente conforme a
metodologia
adoptada.

Em meados dos anos noventa a OMG (Object Management


Group) tomou a iniciativa de criar uma metodologia standard
para resolver esta situao.
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_13

Unified Modeling Language (UML)


Surge ento a Unified Modeling Language (UML) na
sequncia de um esforo de unificao de trs das
principais linguagens de modelao orientadas por objectos
OMT
BOOch
OOSE

Em 1997 adquiriu o estatuto de norma.

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_14

Unified Modeling Language (UML)


A UML uma linguagem grfica para:

Visualizar
Especificar
Construir
Documentar

artefactos de sistemas diversos (software, negcios ou


outros), usando o paradigma orientado por objectos.

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_15

Unified Modeling Language (UML)


A verso 2 da UML define 13 tipos de diagramas, divididos em trs
conjuntos gerais:
Diagramas de Viso Dinmica:
Diagramas de Estados, Diagramas de Sequncia, etc.
Diagramas de Viso Estrutural ou Esttica:
Diagramas de Classes, Diagramas de Componentes,
etc.
Diagramas de Viso Funcional:
Diagramas de Casos de Utilizao, Diagramas de
Actividades, etc.
Cada diagrama apresenta uma perspectiva especfica sobre o
sistema.
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_16

Objectos

Um objecto representa uma entidade


conceptual existente no mundo real.

fsica

ou

Um objecto tem estado, comportamento e identidade,


realizados por:
elementos inertes (Dados ou Valores)
elementos dinmicos (Mtodos)

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_17

Exemplos de Objectos

O elctrico da Praia das Mas

O carro do Joo

O rdio da Cantina

O carro da Maria

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_18

Classes
Uma classe agrega todos os objectos que partilhem as
mesmas caractersticas, comportamento, relaes e
semntica.
Pode dizer-se que:
uma classe uma abstraco de objectos
semelhantes
um objecto uma instncia de uma classe

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_19

Exemplos de Classes

(1/3)

Pessoas especficas - Objectos

Pessoa Genrica Classe

instncias de

Cristiano
Ronaldo

Angelina Jolie
Barack Obama
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_20

Exemplos de Classes
Carros especficos objectos

(3/3)

Classe carro
instancia de

Atributos:
tamanho
n de portas
motor
acessrios

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_21

Exemplos de Classes

(2/3)

PessoaObjecto
PessoaClasse

instancia de

numInstancia = 17
nome = Angelina Jolie

dataNascimento = 4/06/1975

numInstancia:Integer
nome:String
dataNascimento:Date

PessoaObjecto
instancia de

numInstancia = 5
nome = Barack Obama

dataNascimento = 04/08/1961

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_22

Diagramas de Classes
So usados para modelar a estrutura de um sistema
e no descrevem o comportamento do sistema.
Ilustram um conjunto de:
classes de objectos envolvidos no sistema
relaes entre as classes
Representa-se por um grafo em que:
os ns representam as classes
os arcos representam as relaes entre as classes

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_23

Representao da Classe
Em UML, uma classe representada por um rectngulo com
uma, duas ou trs seces:
1 Nome da classe
2 Lista de atributos
3 Lista de operaes Nome da Classe

Circulo
Atributos
Tipo de Dados
Operaes

Restries

raio{raio >0}
pontoCentral: Ponto (10, 10)

Valor Inicial

Expor ( )
Remover ( )
AtribPosicao (posio)
AtribRaio (novo)

Argumentos

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_24

Nomes das classes


Distinguem a identidade da classe
So substantivos retirados do vocabulrio do domnio
Devem ser nicos
Pode ser apresentado na forma simples ou completa

Conveno
Primeira letra de todas as palavras capitalizada

LinhaEncomenda

Cliente

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_25

Atributos

(1/2)

Um atributo uma caracterstica que os objectos possuem e


que representada por um valor de dados.
O nome do atributo obrigatrio e tem de ser nico no
contexto da classe onde definido.
Conveno
Primeira letra de todas as palavras capitalizada, com excepo da primeira

Cliente

Tipo de atributo:

nome: String
dataNascimento: Date
morada: String
bilhIdentidade:Integer

Determina o tipo
de informao que
pode ser guardada
no atributo

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_26

Atributos

(2/2)

No se podem, nem devem, colocar como atributos de uma Classesas


chaves artificiais (criadas por ns e no correspondendo a atributos
existentes no mundo real. Ex: codigoOficina, codigoTipoCarto, etc.
Ex de Atributos existentes no mundo real, que se podem e devem,
colocar na Classe: nBI, nContribuinte, nSS,(Blaha, Rumbaugh, 2005)

Cliente

Cliente

nCliente: Integer
nome: String
dataNascimento: Date
morada: String
bilhIdentidade:Integer

nome: String
dataNascimento: Date
morada: String
bilhIdentidade:Integer

Errado

Certo

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_27

Relaes das classes


Tal como acontece no mundo real, as classes podem
relacionar-se entre si.

Realidade

Modelo
conduzido

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_28

Relacionamentos entre Classes

Podemos encontrar os seguintes tipos de relacionamentos


entre classes:

0-1

verbo

Associao
Agregao
Composio
Generalizao/Especializao

Em UML, uma relao estabelece uma ligao entre


elementos e representada graficamente por um
determinado tipo de linha.

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_29

Adornos das Associaes

(1/2)

Uma associao um relacionamento entre diferentes


ocorrncias de uma ou mais classes; define regras que
garantem a integridade desse relacionamento;
As associaes representam-se por linhas a cheio
complementadas por um conjunto de adornos que
especificam diferentes informaes:
Nome: modo de identificar univocamente a associao.
Recomenda-se a adopo de um verbo (emprega) ou
de uma expresso verbal (trabalha para);
Indicador direccional (opcional): ajuda a esclarecer
sentido de leitura da associao. Quando no se coloca,
assume-se que a leitura do nome da associao deva ser
realizado da esquerda para a direita;

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_30

Adornos das Associaes

(2/2)

Papel
de
cada
participante
na
associao
(opcional): informa semanticamente como que um
objecto participa na relao;
Multiplicidade ou cardinalidade: traduz o nmero de
instncias de uma classe que se podem relacionar
(atravs da associao) com uma nica instncia da(s)
outra(s) classe(s) participante(s);
Navegao: traduz a forma como a partir de uma
instncia de uma classe se pode aceder s instncias da
outra classe. Por omisso, uma associao bidireccional.

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_31

Representao das Associaes


Diagrama de Classes
0..1

Homem

Nome da associao

casado com

marido

0..1

Mulher

esposa
Indicador direccional

Multiplicidade

Pessoa

1..*
empregado

trabalha para

0..1
empregador

Empresa

Papel

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_32

Papis das Associaes


O extremo de uma associao, no ponto onde liga a uma
classe, constitui um dos papis dessa associao;
O papel parte da associao e no da classe (i.e., a mesma
classe pode ter papis diferentes em associaes
diferentes);
os papis so muito importantes, porque ajudam a fazer a
representao semntica (que muito rica) das associaes
entre classes.

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_33

Representao dos Papis das


Associaes
Os papis podem ser explicitados ou no.

BI
promover()
pedirAumento()

chefia

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_34

Multiplicidade
A Multiplicidade definida em cada extremo da associao
por um limite mnimo e um limite mximo:
Limite mnimo:
0
1
N (quando um nmero conhecido, p.e. 3)
Limite mximo:
1
M (quando um nmero conhecido, p.e. 10)
* (significa muitos, no conhecido o limite)
A representao na associao feita como um intervalo
entre o limite mnimo e o limite mximo.

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_35

Multiplicidade das Associaes


Exemplos de multiplicidade:
* ou (0..*) muitos (0 ou mais);
(1..*) um ou mais;
(0..1) zero ou um;
1 ou (1..1) exactamente um;
(e.g., 5) um determinado nmero;
(e.g., 2..5) uma determinada gama; ou mesmo uma
multiplicidade mais complexa especificada atravs de
listas (e.g., 0..3, 5..7, 10..).

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_36

Multiplicidade
Associao uma relao estrutural onde objectos
de uma classe esto ligados a objectos de outra classe
Diag. de Classes

Objectos

Armazm

0..1

armazena

0..*

Produto

Armazm

Produto

Armazm 1

Produto 1

Armazm 2

Produto 2
Produto 3

A classe Armazm tem dois objectos


Produto 4
A classe Produto tem cinco objectos
A associao armazena est a ligar um objecto de
Armazm com trs objectos de Produto
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_37

Agregao
uma forma especial de associao que traduz que existe
uma relao de parte de ou tem.
Representa-se por um losango no preenchido colocado junto
classe que representa o elemento agregador ou o todo.
a parte

Pessoa

o todo
1..*

empregado

Empresa

Agregao
Importante: A parte pode permanecer sem o todo!

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_38

Composio
Tambm designada de agregao forte, uma variante
agregao simples, em que adicionada semntica.
Representa-se por um losango preenchido colocado junto
classe que representa o elemento agregador ou o todo.
a parte

Departamento

o todo
*

organograma

Empresa

Composio

Importante: As partes no podem existir sem o todo!


Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_39

Mais exemplos

Agregao

O todo composto por partes

Mesa

Restaurante
1..*

Composio
LinhaFactura

Factura
1..*

Uma linha de factura no existe fora do contexto de uma factura


Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_40

Generalizao
Representa um relacionamento entre uma classe (superclasse) e
uma ou mais variaes dessa classe (as subclasses), na
perspectiva de uma relao entre um elemento geral e um
elemento mais especfico.

Superclasse

Representa-se em
UML por uma linha
a cheio com um
tringulo a branco
num seu extremo.

Subclasse

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_41

Generalizao
No contexto das classes usam-se generalizaes para
ilustrar o conceito de herana.
A herana providencia
organizao:

um

mecanismo

natural

de

Cada subclasse herda o estado (atributos) e o


comportamento (operaes) da superclasse
As subclasses podem adicionar atributos e
comportamentos especficos

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_42

Exemplo de Herana
Animal

Mamfero

Peixe

O tm
que em
que
tm em comum?
O que que
comum?
Co

Vaca

Sardinha

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_43

Exemplo de Herana - Variveis


super-classes
G
e
n
e
r
a
l
i
z
a

Varivel

Numrica

N Inteiro

Integer

Long integer

String

N Decimal

Float

Double

E
s
p
e
c
i
a
l
i
z
a

o
sub-classes

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_44

Classe-Associao ou Associao
Atributiva
Uma associao pode ter os seus prprios atributos devendo
ser representada como uma classe.

Empresa
npc
morada

empregador
*

empregado
*

Emprega

Pessoa
nome
morada

ordenado
dtInicio
dtFim

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

Classe-associao

TI2009/2010_DC_45

Grau das Associaes


Grau (ou Aridade) traduz o nmero de classes que
intervm numa dada associao.
As associaes podem ser
Binrias associao entre duas classes (caso mais
frequente)
Unrias (ou Reflexivas) associao de uma classe
consigo prpria
N-rias associao entre mais de duas classes

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_46

Associaes Unrias ou Reflexivas


Uma associao diz-se reflexiva quando estabelece uma
relao duma classe consigo prpria.
Este tipo de associao acontece quando as ocorrncias
de uma classe desempenham diferentes papis.

condutor

conduz

Ocupante_carro

0..4
passageiro

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_47

Associaes N-rias (N>= 3)


As associaes N-rias (N>= 3) so relativamente pouco
comuns.

data_fim
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_48

Associaes N-rias (N>= 3)


As
associaes
N-rias
podem
geralmente
ser
transformadas em vrias associaes binrias entre a
classe-associao e as restantes classes participantes.

Projecto
1
*

Pessoa

1
*

Tarefa

Departamento

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_49

Como identificar as classes


Identificar as classes:
a descrio de um problema refere normalmente
objectos concretos, mas so as abstraces do mundo
real (os objectos que so do mundo real; no as
abstraces...) que permitem detectar aspectos comuns
a vrios objectos semelhantes;
normalmente, inicia-se o processo sublinhando os
substantivos (na maior parte dos casos correspondem a
abstraces que vo originar classes);
escolher muito bem os nomes (num diagrama de
classes, o nome muitas vezes a informao visvel
sobre uma classe);
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_50

Falsas Classes
Um dos erros mais perigosos e mais frequentes em OO
identificar como classe algo que realmente no o
(ateno a substantivos que no correspondem a classes);
Um desses erros descrever uma classe pelo que ela faz:
esta classe desenha figuras. Uma classe no faz. Uma
classe uma definio (descreve um conjunto de objectos
atravs dos seus atributos e operaes);
Se uma classe tem apenas uma funo na interface,
ento apenas uma funo com rtulo de classe;
Um ente, para ser considerado classe, tem que possuir
riqueza semntica (vrios atributos e vrias operaes).

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_51

Em sntese
As

caractersticas mais importantes das classes so:


devem ser relevantes,
ter diversas ocorrncias,
ser dotadas de riqueza semntica (vrios
atributos e vrias operaes).

As

caractersticas mais importantes dos atributos so:


devem ser relevantes,
elementares,
atmicos em cada ocorrncia da classe e
variveis de ocorrncia para ocorrncia da classe.

Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_52

Mtodo de Booch
Booch props um mtodo simples para identificar classes.
O mtodo consiste em:
sublinhar os substantivos na descrio de um problema,
distinguir os que so classes dos que so atributos.

Exemplo:
Quando o comboio se aproxima da estao, a sua
velocidade diminui
Classes provveis: comboio e estao;
Atributos provveis: velocidade por certo um dos
atributos de comboio...
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)

TI2009/2010_DC_53

Você também pode gostar