1 modelos de implementação maria alice grigas varella ferreira ep-usp março 2003

47
1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

Upload: amadeu-amarante-santiago

Post on 07-Apr-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

1

Modelos de implementação

Maria Alice Grigas Varella FerreiraEP-USP

Março 2003

Page 2: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

2Maria Alice Grigas Varella Ferreira – EP-USP

Software de Interface

Há necessidade de facilitar a implementação de interfaces para:Melhorar o desempenho da equipe de

projeto (interface custa caro)Facilitar as alterações (sempre

necessárias)Facilitar a manutenção de aspectos de

consistência (as ferramentas já implementam a consistência, dentro de certos limites)

Page 3: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

3Maria Alice Grigas Varella Ferreira – EP-USP

Software da Interface

Visão externa look and feel

versus

Page 4: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

4Maria Alice Grigas Varella Ferreira – EP-USP

Software da interface

Visão interna como funciona internamente este

software?como pode ser implementado?qual o modelo de implementação a ser

utilizado?Modelos de implementaçãomodelo lingüísticomodelo voltado à implementação

Page 5: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

5Maria Alice Grigas Varella Ferreira – EP-USP

Desenvolvimento de software

Um sistema de software é desenvolvido por um processo de software.Processo de software – conjunto de atividades e resultados associados que geram um produto de software.Os processos de software são descritos através de modelos de processo de software ou paradigmas de desenvolvimento de software

Page 6: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

6Maria Alice Grigas Varella Ferreira – EP-USP

Paradigmas de desenvolvimento de software

Modelo em cascata (clássico)

Análise

Especificação

Desenho

Implementação

Testes

Operação

Jones, G. W. Software Engineering. John Wiley & Sons, New York, 1990.

Page 7: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

7Maria Alice Grigas Varella Ferreira – EP-USP

Paradigmas de desenvolvimento de software – Ciclo espiral

Análise de riscos baseada nosRequisitos iniciais

Análise de riscos baseada na reação do cliente

Análise dos riscos baseada nos requisitos iniciaisAnálise dos riscos baseada na reação do cliente

Decisão de prosseguir/não prosseguirNa direção de um projetoconcluídoProtótipo do software inicial

Protótipo no nível seguinte

Sistema construído pela Engenharia

Análise de riscos

Planejamento

EngenhariaAvaliação do cliente

Coleta inicial dosrequisitos e planeja-

mento do projeto

Planejamento baseado nos comentários

do clienteAvaliação do

cliente

Extraída de Pressman, 3a. Ed.

Page 8: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

8Maria Alice Grigas Varella Ferreira – EP-USP

Paradigmas de desenvolvimento de software – Ciclo espiral

Sistema construído pela Engenharia (última etapa da espiral)Projeto (desenho) detalhadoCodificaçãoTestes de unidadeTestes de integraçãoTestes de aceitaçãoOperação

Page 9: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

9Maria Alice Grigas Varella Ferreira – EP-USP

Paradigmas de desenvolvimento de software

Modelo com prototipaçãoAnálise

Especificação

Desenho

Implementação

Testes

Operação

Ciclo de prototipação

Jones, G. W. Software Engineering. John Wiley & Sons, New York, 1990.

Page 10: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

10Maria Alice Grigas Varella Ferreira – EP-USP

Prototipação

“Um protótipo é versão inicial de um sistema de software, que é utilizada para mostrar conceitos, experimentar opções de projeto e, em geral, para conhecer mais sobre os problemas e suas possíveis soluções”.

(Sommerville, 2003)

Page 11: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

11Maria Alice Grigas Varella Ferreira – EP-USP

Prototipação

Um protótipo de software apóia várias atividades do processo de Engenharia de Requisitos: Levantamento de requisitos – para ver como o

sistema apóia o trabalho e ajuda também a identificar pontos positivos e negativos do sistema.

Validação de requisitos – pode revelar erros e omissões nos requisitos propostos.

Treinamento do usuário. Execução de testes do sistema.

Page 12: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

12Maria Alice Grigas Varella Ferreira – EP-USP

Processo de projeto de interface de usuário

Analisar ecompreenderas atividadesdo usuário

Produzir umprotótipo deprojeto em papel

Avaliar o projetocom os usuários finais

Protótipo deProjeto

Produzir umprotótipo dinâmico deprojeto

Avaliar o projetocom os usuários finais

Protótipo Executável

Implementar ainterface finalde usuário

Page 13: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

13Maria Alice Grigas Varella Ferreira – EP-USP

Modelo LinguísticoLinguagem do Homem: AçõesLinguagem da máquina: gráficos, textos, sons, realimentação (“feedback”), sensações tácteis

Significado

Forma

Nível conceitual

Nível Semântico

Nível Sintático

Nível Léxico

Page 14: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

14Maria Alice Grigas Varella Ferreira – EP-USP

Nível ConceitualConceitos - chave da aplicação: quem é, o que se pretende, quais os requisitos etc. O nível conceitual retrata o modelo mental do sistema e: Define os Objetos e Classes de Objetos (Objetos

e Sub-Objetos) Define Relações entre Objetos Define as operações sobre os Objetos (ações) Deve permitir ao usuário, usar o sistema sem ter

que fazer estudos elaborados

Page 15: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

15Maria Alice Grigas Varella Ferreira – EP-USP

Nível ConceitualProjeto por metáforasObjetos intrínsicos - os da aplicaçãocontrole - comuns a aplicações diferentes:

grade, cursores, escala, menus e outros widgets

as ações devem ser consistentes, isto é, aplicáveis a todas as categorias de objetos - nem sempre é possível

Page 16: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

16Maria Alice Grigas Varella Ferreira – EP-USP

Nível Conceitual

Exemplo: Editor de TextosObjetos: Linhas e ArquivosRelações : Arquivo = Seqüência de LinhasOperações:

Sobre Linhas: insert / delete / move / change

Sobre Arquivos: create/ copy/ merge/ rename/ delete

Page 17: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

17Maria Alice Grigas Varella Ferreira – EP-USP

Nível Semântico

Especificação funcional detalhada de cada operação sobre um objeto:informação necessáriaerros que podem ocorrer e

tratamento a ser dado a cada umresultado das operações

Page 18: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

18Maria Alice Grigas Varella Ferreira – EP-USP

Nível SintáticoEspecificação das seqüências de entradas e saídasEntradas: a seqüência é dada pela Gramática;

a seqüência é dada pelos tokens (átomos)Exemplo: comando: ROTATE quantidade: 45o

objeto: cadeira ponto em torno do qual rotacionar: X,YExemplo: ROTATE 45 cadeira (0,0)

Page 19: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

19Maria Alice Grigas Varella Ferreira – EP-USP

Nível SintáticoSaídas: seqüência inclui noção

temporal /espacial organização da tela

projeto visual

Porque estudar IHC. Heloisa V. Rocha. IHC’ 2002

Page 20: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

20Maria Alice Grigas Varella Ferreira – EP-USP

Nível léxicoEspecifica como combinar os primitivos gráficos de hardware (lexemes) para compor os tokens lexemes de entrada depende dos

dispositivos de entrada: mouse, mesa digitalizadora, setas

lexemes de saída linhas, gráficos e respectivos atributos (cor, espessura, tipo do fonte)

tokens lexemesindependente de HW

dependente de HW

Page 21: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

21Maria Alice Grigas Varella Ferreira – EP-USP

Modelo Orientado à Implementação Admite que os programas são implementados em “algum” ambiente de janelamento (padrão X-Windows) e podem ser: X-View, MS-Windows, X-Windows etc.Os ambientes de janelamento gerenciam a: tela dispositivos de entradaOs primeiros ambientes eram extensões do sistema operacional, sendo compostos por: “Window Manager” “Underlying Window System” - provê a infra-

estrutura para as demais funções

Page 22: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

22Maria Alice Grigas Varella Ferreira – EP-USP

Modelo Orientado à Implementação

O aplicativo tem acesso a qualquer camada do sistema

HARDWARE

UIMS/UIDS APLICATIVOToolkitsSistema de Gerenciamento de Janelas/Pacotes gráficos

Sistema Operacional

Page 23: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

23Maria Alice Grigas Varella Ferreira – EP-USP

Ferramentas de desenvolvimento da interfaceAmbientes de gerenciamento de janelas (algum tipo de ambiente)

Linguagens de programaçãoToolkits (bibliotecas de widgets)Ambientes de Desenvolvimento de interfaces (UIDS) ou de Gerenciamento de interfaces (UIMS)

Page 24: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

24Maria Alice Grigas Varella Ferreira – EP-USP

Widgets

Widgets – Objetos de tela – são os elementos que permitem controlar o programa Formulários (Forms) Menus Barras deslizantes (Scroll Bars) Botões Caixas de texto Editores de texto etc

Page 25: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

25Maria Alice Grigas Varella Ferreira – EP-USP

Linguagens orientadas a eventos

Widgets produzem eventos que são tratados pelo mecanismo de eventos da linguagemOs dispositivos de entrada também produzem eventosA linguagem pode fornecer um gerenciador de telas, que permite que a interface seja construída diretamente sobre a tela, através do posicionamento dos widgets. Ex: C Builder, Visual Basic, Delphi

Page 26: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

26Maria Alice Grigas Varella Ferreira – EP-USP

Tipos de Eventos

KeyPress - tecla pressionadaKeyRelease - tecla liberada

Page 27: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

27Maria Alice Grigas Varella Ferreira – EP-USP

Tipos de Eventos

ButtonPress - botão pressionado (mouse)ButtonRelease - botão liberado (mouse)Motion - mouse movimentado

Page 28: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

28Maria Alice Grigas Varella Ferreira – EP-USP

Tipos de Eventos

LeaveNotify - cursor abandona a janelaEnterNotify - cursor entra na janelaWindowExpose - janela foi expostaResizeRequest - requisição de redimen-sionamento da janelaTimer - ocorre timeout

Page 29: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

29Maria Alice Grigas Varella Ferreira – EP-USP

Gerenciadores de Janelasprovêem as características da maioria das interfaces como: aplicações sendo executadas em diferentes áreas

do display (janelas); capacidade de alterar o tamanho destas áreas,

empilhá-las (pop-up), deslocá-las uso de menus e caixas de diálogo police-free systems - sistemas sobre os quais

podem ser implementados diferentes tipos de look and feel. Nestes sistemas diferentes tipos de window managers podem ser implementados

Page 30: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

30Maria Alice Grigas Varella Ferreira – EP-USP

Gerenciadores de janela

Modelo cliente-servidor - necessário para sistemas distribuídos e para multi-processamento. O modelo cliente-servidor faz parte dos pressupostos iniciais do padrão X-Windows.Requerem estratégias de projeto para minimizar as necessidades de comunicação entre o cliente e o servidor (detalhes no livro do Foley)

Page 31: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

31Maria Alice Grigas Varella Ferreira – EP-USP

Gerenciamento da SaídaRecursos são atribuídos ao cliente: o principal, espaço na telaEstratégias de alocação deste espaço variam com o sistema. A maior diferença teria a ver em como tratar as partes recém-expostas e quando se diminui o tamanho de uma janela, expondo as demais window-exposed eventMuitas vezes o cliente é o responsável pelo tratamento deste evento, forçando-o ao reprocessamento de todas as primitivas de saída, regeneração através de pixmap, soluções de hardware, etcSistemas mais poderosos - tratam deste problema para o usuário

Page 32: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

32Maria Alice Grigas Varella Ferreira – EP-USP

Modelo gráfico da entradaDerivado de pacotes gráficos padronizados: GKS/ PHIGSFoley: pacotes simplificados SRGP e SPHIGSClasses de dispositivos lógicos: locator, pick, choice, valuator, string, stroke

Page 33: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

33Maria Alice Grigas Varella Ferreira – EP-USP

Modelo gráfico da entradaClasses de tarefas interativas Seleção Posicionamento Texto Quantificação Orientação TrajetoClasses de dispositivos físicos Mouse, caneta ótica, painel de toque Mesa digitalizadora Teclado alfanumérico Potenciômetro

Page 34: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

34Maria Alice Grigas Varella Ferreira – EP-USP

Modelo gráfico da entrada

Elementos da entrada: Medida - a medida tomada Disparo - fornece o instante de leitura da medida Timestamp

Modos de entrada Amostragem Evento Requisição de dados

Page 35: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

35Maria Alice Grigas Varella Ferreira – EP-USP

Tratamento dos eventos

A entrada é assíncrona e ocorre no instante do disparoQualquer evento (interrupção) é “sentido” pelo sistema operacional, e a rotina de tratamento de interrupção é acionada;O sistema de gerenciamento intercepta esta rotina, direcionando o evento para a rotina do gerenciador de janelas; esta rotina encaminha o evento para a Fila de Eventos;

Page 36: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

36Maria Alice Grigas Varella Ferreira – EP-USP

Tratamento dos eventos

A Fila de Eventos mantém os eventos na fila, de acordo com a ordem de chegada (timestamp)Os dados do evento são coletados num registro, de acordo com o dispositivo que o produziu (mouse, teclado)Cada dispositivo tem o seu próprio tipo de registro

Page 37: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

37Maria Alice Grigas Varella Ferreira – EP-USP

Mouse

O mouse é um dispositivo que opera também no modo amostrado, ou seja, a sua posição é feita por amostragem, enquanto os seus botões produzem os eventos. Como a amostragem da posição do mouse é necessária para fazer o seu rastreamento (mouse tracking), o relógio é utilizado para fazer esta leitura. Outros dispositivos podem ser também lidos desta forma. Por exemplo, os sliders.

Page 38: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

38Maria Alice Grigas Varella Ferreira – EP-USP

Teclado

O teclado é, tipicamente, um dispositivo que provoca interrupções.O teclado pode operar de duas formas: Raw – apenas uma tecla pressionada já causa o

evento Edit – exige a leitura de uma cadeia de caracteres

para que o evento seja produzido; o caracter fim-de-linha (eol), caracterizado pelo Enter, marca o encerramento da cadeia

Page 39: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

39Maria Alice Grigas Varella Ferreira – EP-USP

Gerenciamento da Entrada

Os dispositivos necessitam estar habilitados a produzirem os eventos que serão “sentidos” pelas janelas do programa.Quando uma janela não “aceita” um evento, ele o transfere para a janela hierarquicamente superior (a que está por baixo) e assim sucessivamenteSe nenhuma janela aceitar o evento, ele é descartado

Page 40: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

40Maria Alice Grigas Varella Ferreira – EP-USP

Registro de evento do mouse#define LEFT_BUTTON 0#define MIDDLE_BUTTON 1#define RIGHT_BUTTON 2#define LEFT_BUTTON_MASK 1#define MIDDLE_BUTTON_MASK 2#define RIGHT_BUTTON_MASK 4#define SHIFT 0#define CONTROL 1#define META 2

typedef enum {NO_ECHO=0, CURSOR, RUBBER_LINE, RUBBER_RECT} echoType;

Page 41: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

41Maria Alice Grigas Varella Ferreira – EP-USP

Registro de evento do mouse

typedef enum {UP=0, DOWN} buttonStatus;typedef struct { srgp__point position; buttonStatus button_chord[3]; int

button_of_last_transition; buttonStatus modifier_chord[3]; srgp_timestamp timestamp;} srgp__deluxe_locator_measure;

Page 42: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

42Maria Alice Grigas Varella Ferreira – EP-USP

Registro de evento do teclado

typedef struct { char *buffer; int buffer_length; buttonStatus modifier_chord[3]; srgp__point position; srgp_timestamp timestamp;

} srgp__deluxe_keyboard_measure;

Page 43: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

43Maria Alice Grigas Varella Ferreira – EP-USP

Gerenciamento da saídaredimensionamento da janela - como funciona o sistema de coordenadas? a janela tomada sobre o “mundo real” varia

proporcionalmente enxerga-se menos deste mundo

a janela tomada sobre o “mundo real” permanece fixa; tem-se efeito de “zoom” possibilidade de distorção, se o fator de escala não for uniforme

partilhamento de recursos: tabela de cores

Page 44: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

44Maria Alice Grigas Varella Ferreira – EP-USP

Primitivas de janelamentoCreate Window (name) - cria uma nova janela, que se torna a janela correnteSet Position (xmin, ymin) - determina a posição da janela correnteSet Size (height,width) - determina o tamanho da janela correnteSelect Window (name) - torna uma janela, a janela corretnteShow Window - torna a janela corrente visível, no topo da pilha de janelasHide Window - torna a janela corrente invisível; apresenta as janelas que estavam obscurecidas por ela

Page 45: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

45Maria Alice Grigas Varella Ferreira – EP-USP

Primitivas de janelamentoSet Title (char_string) - nomeia a janela corrente com a cadeia fornecidaGet Position (x, y) - lê a posição da janela correnteGet Size (height, width) - lê o tamanho da janela correnteBring to Top - coloca a janela corrente no topo da pilhaBring to Bottom - coloca a janela corrente na base da pilha das janelasDelete Window - exclui a janela corrente

Page 46: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

46Maria Alice Grigas Varella Ferreira – EP-USP

Gerenciamento de Eventos Rotinas típicas

EnableEvents (event-list) - habilita os eventos constantes da listaWaitEvent(timeout,event_Type, window _name, event_Record)SetInputFocus (window, event_list) - dirige para a janela especificada os eventos componentes da lista de eventos)CursorShape (pixmap, x, y) - define o tipo e a posição de referência dentro do pixmap, que deve ser reportada como a posição do cursor

Page 47: 1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003

47Maria Alice Grigas Varella Ferreira – EP-USP

Referências

Foley, J. D. et al. Computer Graphics Principles and Practices. Addison-Wesley, Reading, 1990. Cap. 8-10.Somerville, I. Engenharia de Software. Pearson Education do Brasil. 2003.Jones, G. W. Software Engineering. John Wiley & Sons, New York, 1990.Pressman, R. Engenharia de Software. Makron Books, 1995.