Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
3.
4.
Objectos e Classes
5.
Diagramas de Classes
6.
7.
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)
TI2009/2010_DC_2
Crise do Software
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
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)
TI2009/2010_DC_5
Crise do Software
MAS
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)
TI2009/2010_DC_6
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)
TI2009/2010_DC_7
Crise do Software
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)
TI2009/2010_DC_8
Metodologias
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.
TI2009/2010_DC_10
Metodologias
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)
TI2009/2010_DC_11
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)
TI2009/2010_DC_12
TI2009/2010_DC_13
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)
TI2009/2010_DC_14
Visualizar
Especificar
Construir
Documentar
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)
TI2009/2010_DC_15
TI2009/2010_DC_16
Objectos
fsica
ou
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)
TI2009/2010_DC_17
Exemplos de Objectos
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)
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
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)
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)
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
Realidade
Modelo
conduzido
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)
TI2009/2010_DC_28
0-1
verbo
Associao
Agregao
Composio
Generalizao/Especializao
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)
TI2009/2010_DC_29
(1/2)
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)
TI2009/2010_DC_30
(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
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
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)
TI2009/2010_DC_33
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
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
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
TI2009/2010_DC_39
Mais exemplos
Agregao
Mesa
Restaurante
1..*
Composio
LinhaFactura
Factura
1..*
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
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
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
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)
TI2009/2010_DC_46
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
data_fim
Antnio Palma dos Reis/Aristides Sousa Mendes/Fernanda Sampaio/Winnie Picoto/Filipa Pires da Silva (2009)
TI2009/2010_DC_48
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
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
As
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