A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003."— Transcrição da apresentação:

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

2 Maria Alice Grigas Varella Ferreira – EP-USP 2 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)

3 Maria Alice Grigas Varella Ferreira – EP-USP 3 Software da Interface Visão externa  look and feel versus

4 Maria Alice Grigas Varella Ferreira – EP-USP 4 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ção modelo lingüístico modelo voltado à implementação

5 Maria Alice Grigas Varella Ferreira – EP-USP 5 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

6 Maria Alice Grigas Varella Ferreira – EP-USP 6 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.

7 Maria Alice Grigas Varella Ferreira – EP-USP 7 Paradigmas de desenvolvimento de software – Ciclo espiral Análise de riscos baseada nos Requisitos iniciais Análise de riscos baseada na reação do cliente Análise dos riscos baseada nos requisitos iniciais Análise dos riscos baseada na reação do cliente Decisão de prosseguir/ não prosseguir Na direção de um projeto concluído Protótipo do software inicial Protótipo no nível seguinte Sistema construído pela Engenharia Análise de riscos Planejamento Engenharia Avaliação do cliente Coleta inicial dos requisitos e planeja- mento do projeto Planejamento baseado nos comentários do cliente Avaliação do cliente Extraída de Pressman, 3a. Ed.

8 Maria Alice Grigas Varella Ferreira – EP-USP 8 Paradigmas de desenvolvimento de software – Ciclo espiral Sistema construído pela Engenharia (última etapa da espiral) Projeto (desenho) detalhado Codificação Testes de unidade Testes de integração Testes de aceitação Operação

9 Maria Alice Grigas Varella Ferreira – EP-USP 9 Paradigmas de desenvolvimento de software Modelo com prototipação Análise Especificação Desenho Implementação Testes Operação Ciclo de prototipação Jones, G. W. Software Engineering. John Wiley & Sons, New York, 1990.

10 Maria Alice Grigas Varella Ferreira – EP-USP 10 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)

11 Maria Alice Grigas Varella Ferreira – EP-USP 11 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.

12 Maria Alice Grigas Varella Ferreira – EP-USP 12 Processo de projeto de interface de usuário Analisar e compreender as atividades do usuário Produzir um protótipo de projeto em papel Avaliar o projeto com os usuários finais Protótipo de Projeto Produzir um protótipo dinâmico de projeto Avaliar o projeto com os usuários finais Protótipo Executável Implementar a interface final de usuário

13 Maria Alice Grigas Varella Ferreira – EP-USP 13 Modelo Linguístico Linguagem do Homem: Ações Linguagem 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

14 Maria Alice Grigas Varella Ferreira – EP-USP 14 Nível Conceitual Conceitos - 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

15 Maria Alice Grigas Varella Ferreira – EP-USP 15 Nível Conceitual Projeto por metáforas Objetos intrínsicos - os da aplicação controle - 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

16 Maria Alice Grigas Varella Ferreira – EP-USP 16 Nível Conceitual Exemplo: Editor de Textos Objetos: Linhas e Arquivos Relações : Arquivo = Seqüência de Linhas Operações: Sobre Linhas: insert / delete / move / change Sobre Arquivos: create/ copy/ merge/ rename/ delete

17 Maria Alice Grigas Varella Ferreira – EP-USP 17 Nível Semântico Especificação funcional detalhada de cada operação sobre um objeto: informação necessária erros que podem ocorrer e tratamento a ser dado a cada um resultado das operações

18 Maria Alice Grigas Varella Ferreira – EP-USP 18 Nível Sintático Especificação das seqüências de entradas e saídas Entradas: a seqüência é dada pela Gramática; a seqüência é dada pelos tokens (átomos) Exemplo: comando: ROTATE quantidade: 45 o objeto: cadeira ponto em torno do qual rotacionar: X,Y Exemplo: ROTATE 45 cadeira (0,0)

19 Maria Alice Grigas Varella Ferreira – EP-USP 19 Nível Sintático Saídas: seqüência inclui noção temporal /espacial  organização da tela projeto visual Porque estudar IHC. Heloisa V. Rocha. IHC’ 2002

20 Maria Alice Grigas Varella Ferreira – EP-USP 20 Nível léxico Especifica 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) tokenslexemes independente de HW dependente de HW

21 Maria Alice Grigas Varella Ferreira – EP-USP 21 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 entrada Os 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

22 Maria Alice Grigas Varella Ferreira – EP-USP 22 Modelo Orientado à Implementação O aplicativo tem acesso a qualquer camada do sistema HARDWARE UIMS/UIDS APLICATIVO Toolkits Sistema de Gerenciamento de Janelas/Pacotes gráficos Sistema Operacional

23 Maria Alice Grigas Varella Ferreira – EP-USP 23 Ferramentas de desenvolvimento da interface Ambientes de gerenciamento de janelas (algum tipo de ambiente) Linguagens de programação Toolkits (bibliotecas de widgets) Ambientes de Desenvolvimento de interfaces (UIDS) ou de Gerenciamento de interfaces (UIMS)

24 Maria Alice Grigas Varella Ferreira – EP-USP 24 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

25 Maria Alice Grigas Varella Ferreira – EP-USP 25 Linguagens orientadas a eventos Widgets produzem eventos que são tratados pelo mecanismo de eventos da linguagem Os dispositivos de entrada também produzem eventos A 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

26 Maria Alice Grigas Varella Ferreira – EP-USP 26 Tipos de Eventos KeyPress - tecla pressionada KeyRelease - tecla liberada

27 Maria Alice Grigas Varella Ferreira – EP-USP 27 Tipos de Eventos ButtonPress - botão pressionado (mouse) ButtonRelease - botão liberado (mouse) Motion - mouse movimentado

28 Maria Alice Grigas Varella Ferreira – EP-USP 28 Tipos de Eventos LeaveNotify - cursor abandona a janela EnterNotify - cursor entra na janela WindowExpose - janela foi exposta ResizeRequest - requisição de redimen- sionamento da janela Timer - ocorre timeout

29 Maria Alice Grigas Varella Ferreira – EP-USP 29 Gerenciadores de Janelas provê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

30 Maria Alice Grigas Varella Ferreira – EP-USP 30 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)

31 Maria Alice Grigas Varella Ferreira – EP-USP 31 Gerenciamento da Saída Recursos são atribuídos ao cliente: o principal, espaço na tela Estraté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 event Muitas 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, etc Sistemas mais poderosos - tratam deste problema para o usuário

32 Maria Alice Grigas Varella Ferreira – EP-USP 32 Modelo gráfico da entrada Derivado de pacotes gráficos padronizados: GKS/ PHIGS Foley: pacotes simplificados  SRGP e SPHIGS Classes de dispositivos lógicos: locator, pick, choice, valuator, string, stroke

33 Maria Alice Grigas Varella Ferreira – EP-USP 33 Modelo gráfico da entrada Classes de tarefas interativas Seleção Posicionamento Texto Quantificação Orientação Trajeto Classes de dispositivos físicos Mouse, caneta ótica, painel de toque Mesa digitalizadora Teclado alfanumérico Potenciômetro

34 Maria Alice Grigas Varella Ferreira – EP-USP 34 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

35 Maria Alice Grigas Varella Ferreira – EP-USP 35 Tratamento dos eventos A entrada é assíncrona e ocorre no instante do disparo Qualquer 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;

36 Maria Alice Grigas Varella Ferreira – EP-USP 36 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

37 Maria Alice Grigas Varella Ferreira – EP-USP 37 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.

38 Maria Alice Grigas Varella Ferreira – EP-USP 38 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

39 Maria Alice Grigas Varella Ferreira – EP-USP 39 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 sucessivamente Se nenhuma janela aceitar o evento, ele é descartado

40 Maria Alice Grigas Varella Ferreira – EP-USP 40 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;

41 Maria Alice Grigas Varella Ferreira – EP-USP 41 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;

42 Maria Alice Grigas Varella Ferreira – EP-USP 42 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;

43 Maria Alice Grigas Varella Ferreira – EP-USP 43 Gerenciamento da saída redimensionamento 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

44 Maria Alice Grigas Varella Ferreira – EP-USP 44 Primitivas de janelamento Create Window (name) - cria uma nova janela, que se torna a janela corrente Set Position (xmin, ymin) - determina a posição da janela corrente Set Size (height,width) - determina o tamanho da janela corrente Select Window (name) - torna uma janela, a janela corretnte Show Window - torna a janela corrente visível, no topo da pilha de janelas Hide Window - torna a janela corrente invisível; apresenta as janelas que estavam obscurecidas por ela

45 Maria Alice Grigas Varella Ferreira – EP-USP 45 Primitivas de janelamento Set Title (char_string) - nomeia a janela corrente com a cadeia fornecida Get Position (x, y) - lê a posição da janela corrente Get Size (height, width) - lê o tamanho da janela corrente Bring to Top - coloca a janela corrente no topo da pilha Bring to Bottom - coloca a janela corrente na base da pilha das janelas Delete Window - exclui a janela corrente

46 Maria Alice Grigas Varella Ferreira – EP-USP 46 Gerenciamento de Eventos Rotinas típicas EnableEvents (event-list) - habilita os eventos constantes da lista WaitEvent(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

47 Maria Alice Grigas Varella Ferreira – EP-USP 47 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.


Carregar ppt "1 Modelos de implementação Maria Alice Grigas Varella Ferreira EP-USP Março 2003."

Apresentações semelhantes


Anúncios Google