Objetos de Interface
© 2001 Jaelson Castro
Objetos de Interface 1
Objetivos






Arquitetura em três camadas - camada de
apresentação.
Diagramas de Seqüência - adicionando classe
de interface do usuário.
Fazer o protótipo da interface do usuário.
Representando classes de interface do usuário
em diagramas de classes e diagramas de
pacote.
Padrões de projeto - MVC.
Diagramas Statechart.
© 2003 Jaelson Castro
Objetos de Interface 2
Arquitetura três camadas




A interface do usuário é representada na
arquitetura de três camadas pela camada de
apresentação.
Isto separa a interface do usuário das classes
lógica/negócio da aplicação e do
armazenamento de dados.
O mesmo princípio é usado no Modelo-VisãoControlador (MVC) em SmallTalk.
Classes de negócio não se preocupam como
vão ser apresentadas aos usuários.
© 2003 Jaelson Castro
Objetos de Interface 3
Ex: Avaliar o custo da campanha
© 2003 Jaelson Castro
Objetos de Interface 4
Adiciona um objeto caixa de
diálogo
© 2003 Jaelson Castro
Objetos de Interface 5
Protótipo do diálogo

Protótipo pode ser usado para
determinar como o diálogo deve parecer.
© 2003 Jaelson Castro
Objetos de Interface 6
Diagrama de Classes
Dialog

Composição
mostra que
caixa de
diálogo é
composta por
outros
componentes
Label
© 2003 Jaelson Castro
CBWindow
1
1
1
2
2
Button
2
1
Choice
1
TextField
Objetos de Interface 7
Diagrama de Classes

Isto também
pode ser
mostrado como
uma classe com
os componentes
gráficos
aparecendo como
atributos.
© 2003 Jaelson Castro
CBWindow
clientLabel
campaignLabel
budgetLabel
checkButton
closeButton
budgetTextField
client Choice
campaignChoice
Objetos de Interface 8
Pacotes

Diagrama de classes mostra a dependência
entre classes de diferentes pacotes
© 2003 Jaelson Castro
Objetos de Interface 9
Diagrama de Classes Revisado

Composição
mostra que
caixa de diálogo
é feita de outros
componentes
Java do pacote
AWT.
AWT::Dialog
CBWindow
1
© 2003 Jaelson Castro
1
2
1
2
AWT::Button
3
AWT::Label
1
AWT::Choice
1
AWT::TextField
Objetos de Interface 10
Protótipo do Diálogo

Existem opções para definir como será
a entrada do nome do Cliente e da
Campanha:



© 2003 Jaelson Castro
Usar uma janela de consulta separada para
cada classe
Permitir que o usuário entre com uma
parte do nome para receber uma lista com
alguns nomes correspondentes
Usar estruturas do tipo explorer que
mostram as instâncias como uma
hierarquia.
Objetos de Interface 11
Protótipos das alternativas do
diálogo

© 2003 Jaelson Castro
Janela de consulta separada
Objetos de Interface 12
Protótipos das alternativas do
diálogo

© 2003 Jaelson Castro
Controle do tipo explorer
(3 níveis)
Objetos de Interface 13
Atualizando o Diagrama de
Seqüência
Escolha:
Cliente (CL)
&
Campanha (CA)

Lookup
© 2003 Jaelson Castro
Objetos de Interface 14
Atualizando o Diagrama de
Classes
© 2003 Jaelson Castro
Objetos de Interface 15
Padrões de Projeto para
Interface do Usuário

A abordagem mais usada é ModeloVisão-Controlador (MVC), baseado em
três padrões (Observador, Composto,
Estratégia).



© 2003 Jaelson Castro
Modelo é o objeto de negócio
Visão é a apresentação ao usuário
Controle define como a interface do
usuário responde às ações do usuário
Objetos de Interface 16
Modelo-Visão-Controlador MVC
4: Update Presentation
User Event
:Controller
6: Notify Change
:View
1: Broadcast
7: Request Model data
2: Update self
5: Ask What Has Changed
:Model
3: Notify Change
© 2003 Jaelson Castro
Objetos de Interface 17
Padrões de Projeto para
Interface do Usuário


Java AWT usa o padrão composto para
exibir objetos dentro de outros gráficos
aninhados.
Java pode usar MVC, com a interface
Observer e a classe Observable.
Normalmente usa ActionListener, etc.
para interfaces dirigidas por eventos.
© 2003 Jaelson Castro
Objetos de Interface 18
Abordagem ActionListener
4: Update Self
User Event
:Component
any:Class
1: ActionPerformed
(ActionEvent e)
2: Inspect Event
© 2003 Jaelson Castro
:ActionListener
3: [Event of Interest]
Notify Class of Event
Objetos de Interface 19
Modelando o Comportamento
Dinâmico da Interface


Os diagramas de seqüência mostram a visão
seqüencial do usuário trabalhando com os
campos na tela de cima para baixo.
Mas nas interfaces GUI o usuário pode clicar
no objeto interface fora da seqüência


O que acontece se o usuário clica no botão Check
antes do cliente e da campanha ser selecionada?
Use o diagrama de Statechart
© 2003 Jaelson Castro
Objetos de Interface 20
Client listbox, Campaign Listbox,
Cursor
© 2003 Jaelson Castro
Objetos de Interface 21
CheckButton, BudgetTextbox
© 2003 Jaelson Castro
Objetos de Interface 22
Leituras Adicionais


Bennett S, Farmer R and McRobb S (1999) ObjectOriented Systems Analysis and Design using UML.
McGraw-Hill. Chapter 16 - Designing interface
objects.
Larman C (1998) Applying UML and Patterns.
Prentice-Hall. Chapter 22 - Issues in System Design.
© 2003 Jaelson Castro
Objetos de Interface 23
Download

Objetos de Interface