Aula 9


Fases do desenvolvimento de software
UML

Diagramas de classes
Classes
 Relações


Diagramas de objectos
Objectos ou instâncias
 Ligações

1
2002/2003
Programação Orientada para
Objectos
Ideia do cliente
2
2002/2003
Programação Orientada para
Objectos
Resultado da falta de planeamento
3
2002/2003
Programação Orientada para
Objectos
Fases do desenvolvimento de software



4
Análise: identificação dos conceitos
importantes e suas relações  modelo de
análise ou modelo conceptual
Desenho: decisão dos conceitos identificados
que serão modelados através de classes e
suas relações  modelo de desenho
Implementação: implementação do modelo de
desenho numa linguagem de programação
2002/2003
Programação Orientada para
Objectos
UML: Unified Modelling Language

Grady Booch, Ivar Jacobson e James
Rumbaugh

Ferramenta importante de comunicação
Um programa é um modelo simplificado
Diagramas representam modelo simplificado


5
2002/2003
Programação Orientada para
Objectos
Diagramas em UML

Estáticos:








6
De classes
De objectos
Casos de Utilização
Sequência
Colaboração
Estado
Actividade
Implementação
2002/2003
Programação Orientada para
Objectos
Diagramas de classes





7
Representam as classes e as relações que existem
entre elas
Vários diagramas é melhor que apenas um: ênfase
numa parte do modelo
Domínio do problema: conceitos - modelo de análise
Domínio da solução: classes - modelo de desenho
Estáticos: as relações entre as classes não se
alteram ao longo da execução do programa
2002/2003
Programação Orientada para
Objectos
Classes
Forma
Empregado
...
+ desenha(): string
+ nova(inout entrada: istream&): Forma*
...
Empregado
Empregado {abstract}
Empregado
- nome_: string
- sexo_: Sexo
Empregado
Atributos
Atributos
- nome_: string
- sexo_: Sexo
Empregado
+ nome(): string
+ nome(): string
+ salário(): double
8
Característica
com âmbito de
classe
+ salário(): double
Operações
Operações
2002/2003
Programação Orientada para
Objectos
Notas, comentários e restrições
Isto é uma nota.
Notas
Empregado
Restrições
Classe
representando
empregados…
{Isto é uma restrição.}
Racional
- numerador_: int
- denominador_: int
9
«invariant»
{denominador_  0 
mdc(numerador_, denominador_) = 1}
2002/2003
Programação Orientada para
Objectos
Operações
Empregado
Empregado
+ nome(): string {query}
+ salário(): double {query}
+ nome(): string {query, isPolymorphic = false}
+ salário(): double {query}
Forma
Racional
- posição_: Posição
- numerador_: int
- denominador_: int
«constructor»
+ Forma(in posição: Posição)
«destructor»
+ ~Forma()
«query»
+ posição() {isPolymorphic = false}
+ Racional(in numerador: int,
in denominador: int)
…
+ desenha(): string
«update»
+ movePara(in posição: Posição) {isPolymorphic = false}
{denominador_  0}
+ nova(inout entrada: istream&): Forma*
10
«precondition»
2002/2003
Programação Orientada para
Objectos
Atributos
PilhaFixaDe100Int
PilhaFixaDe100Int
- número_de_itens: int = 0
- número_máximo_de_itens: int = 100 {frozen}
- itens [número_de_itens]: int
- número_de_itens: int = 0
- número_máximo_de_itens: int = 100 {frozen}
- itens: int[número_máximo_de_itens]
…
…
FormaComposta
11
FormaComposta
- formas [*]: Forma
…
- formas: vector<Forma*>
…
…
…
2002/2003
Programação Orientada para
Objectos
Relação de generalização
Forma
Círculo
12
Rectângulo
2002/2003
FormaComposta
Programação Orientada para
Objectos
Relação de amizade
ListaDeInt
13
«friend»
2002/2003
ListaDeInt::Iterador
Programação Orientada para
Objectos
Relações de associação

Composição



Agregação



Relação parte/todo ou possui um
Pode implicar o controlo do tempo de vida de um objecto por outro
Associação simples


14
Relação é composto por um
Os tempos de vida dos objectos envolvidos estão relacionados
Não há conceito de posse
Os tempos de vida dos objectos ligados entre si são independentes
2002/2003
Programação Orientada para
Objectos
Associação simples
Empregado
Empregado
Chefe
empregados
*
Chefia
Empregado
chefe
Chefe
- empregados
*
0..1
Chefia
Empregado
- empregados
*
Chefia
- chefe
Chefe
0..1
- chefe
Chefe
0..1
Empregado
15
- empregados
*
Chefia
- chefe
Chefe
0..1
2002/2003
Programação Orientada para
Objectos
Agregação
- frota
Empresa
0..1
16
Veículo
*
2002/2003
Programação Orientada para
Objectos
Composição
Forma
- formas
*
{incomplete}
FormaComposta
0..1
17
2002/2003
Programação Orientada para
Objectos
Diagramas de objectos

Objectos ou instâncias

Ligações
zé: Humano
: Humano
: Círculo
zé
: FormaComposta
: Rectângulo
zé: Humano {frozen}
: Círculo
: Racional
numerador_ = 3
denominador_ = 2
18
2002/2003
Programação Orientada para
Objectos
Download

9 - iscte-iul