Desenvolvimento de Aplicações na Web Semântica Modelagem e Geração de Interfaces Dirigidas por Regras



Documentos relacionados
5 Detalhes da Implementação

Arquitetura de Software

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

INTEGRE Diversas fontes de informações em uma interface intuitiva que exibe exatamente o que você precisa

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Decorator Pattern. SISMO - Sistemas e Mobilidade Junho de Departamento de Informática / UFMA

Apresenta. SofStore o mais novo aliado no gerenciamento do seu negócio

Concepção e Elaboração

Organização e Arquitetura de Computadores I. de Computadores

Internet Visão Geral. O que é a Internet? Ong Ação Cidadã

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS

Modelagem e geração de interfaces dirigidas por regras

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

IBM Software Demos Rational Software Delivery Platform - Recursos de análise de requisitos

EMENTAS DAS DISCIPLINAS

Claudio Damasceno. Avançar

Backsite Serviços On-line

Curso - Padrões de Projeto Módulo 5: Model-View- Controller

A construção de um manual sobre a utilização dos modelos também poderá alavancar o uso das representações. Este conteria a explicação detalhada da

Web Design. Prof. Felippe

Gerenciamento de Dados e Informação Fernando Castor

3 Um Modelo de Operações para a web semântica 3.1. Modelo de Operações

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)?

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Model-Driven Engineering Geração de modelos de software e especificações usando a plataforma IBM

MANUAL RÁPIDO DE UTILIZAÇÃO

USANDO RESPONSIVE WEB DESIGN PARA DESENVOLVIMENTO DE SISTEMAS WEB. Rodrigo Eduardo Boni orientado por Prof. Jhony Alceu Pereira Orientador - FURB

Software Utilitário; Software Orientado a Tarefas; Software de Negócios;

Introdução sobre Implantação de Sistema ERP em Pequenas Empresas. Prof Valderi R. Q. Leithardt

Análise e Projeto Orientados por Objetos

MANUAL DE UTILIZAÇÃO DO SISTEMA GLPI

Uso do Action₀NET com o PI System da OsiSoft

rosefib.webnode.com.br

CORPVS SEGURANÇA SETOR DE TECNOLOGIA DA INFORMAÇÃO

Disciplina de Banco de Dados Introdução

NGIN Mobile Portal Gestão Usuário

Nesta seção apresentamos protótipos que desenvolvemos com o objetivo de levantar os requesitos necessários para um sistema para apresentações

REPROJETO DA ORGANIZAÇÃO COM SISTEMAS DE INFORMAÇÃO

Introdução à Bonita BPM

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

Formalismos de Grafos de Interação (Surveys)

Channel. Visão Geral e Navegação. Tutorial. Atualizado com a versão 3.9

INFORMÁTICA APLICADA II BANCO DE DADOS

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

BANCO DE DADOS PROFESSOR MAURÍCIO - MAURICIO.MELLO@PUCPR.BR AULA 02. O Modelo Entidade-Relacionamento ( MER )

Dynamed. Tutorial de uso.

Processos de Desenvolvimento de Software. Prof. Hélio Engholm Jr

Interfaces Gráficas parte 3

Programa de Atualização de Pontos do Lince GPS

Plano de Carreira Sistema de Apoio à Gestão de Planos de Carreira

como instalar os drivers de USB

Introdução a Interação Humano-Computador (IHC) O Processo de Design da Interação INF 1403

UM FRAMEWORK PARA DESENVOLVIMENTO DE

Post excerpt to catch readers attention and describe the story in short

Design. Thinking. Msc. Caio Márcio

5 Exemplos Produção bibliográfica da PUC-Rio

Desenvolvimento Web Protocolos da Internet

Programa de Instalação do Lince GPS

Senado Federal Questões 2012

Como conectar-se à rede Sem Fio (Wireless) da UNISC. Pré-Requisitos:


Como conectar-se à rede Sem Fio (Wireless) da UNISC. Pré-Requisitos:

Feature-Driven Development

O Processo de Engenharia de Requisitos

Introdução à Engenharia de Software

O PaperPort 12 Special Edition (SE) possui uma grande variedade de novos e valiosos recursos que ajudam a gerenciar seus documentos.

Parte 2 ENGENHARIA WEB

MODELAGEM DE DADOS. Unidade II Arquiteturas do SGBD

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

Hardware & Software. SOS Digital: Tópico 2

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Especificações da oferta Gerenciamento de dispositivos distribuídos: Gerenciamento de ativos

A solução INFOTRÂNSITO abrange sistemas web multiplataformas, podendo ser instalados em ambientes Linux, Windows e Apple.

Guia do usuário do PrintMe Mobile 3.0

Apresentação de Solução

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

MANUAL PORTAL CLIENTE AVANÇO

QUESTÃO 01 - DIAGRAMA DE SEQUENCIA (CONCEITOS)

Software. Módulo do GDM que funciona em plataforma Web Gerenciamento de Manutenção

Computação Gráfica. Introdução. Profª Alessandra Martins Coelho

Produtos da Fábrica de Software

UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO (Bacharelado)

Google Cloud Print. Guia do administrador

MINICURSO WINDOWS SERVER 2008 UTILIZANDO O VMWARE PLAYER

Como conectar-se a rede Sem Fio (Wireless) da UNISC. Observação:

Endereço de Rede. Comumente conhecido como endereço IP Composto de 32 bits comumente divididos em 4 bytes e exibidos em formato decimal

MINISTÉRIO DA CIÊNCIA E TECNOLOGIA MCT MUSEU PARAENSE EMÍLIO GOELDI MPEG

Tecnologia da Informação. Prof Odilon Zappe Jr

Sistema de chamados técnicos GUIA DO USUÁRIO. Gestão de Atendimento de Chamados Técnicos. SoftSol Sistemas & Informática

Formação presencial em contexto de sala de aula, com recurso à utilização prática do software WordPress.

Transcrição:

Desenvolvimento de Aplicações na Web Semântica Modelagem e Geração de Interfaces Dirigidas por Regras Carlos Laufer Tecweb - Departamento de Informática PUC-Rio

W3C Escritório Brasil Avenida das Nações Unidas, 11541, 7 o andar, Brooklin, São Paulo, SP Tópicos Design baseado em Modelos Camaleon Reference Framework SHDM - Synth Interface Abstrata Interface Concreta Geração de Interfaces Dirigidas por Regras

Modelos - Lidando com a complexidade Modelos - Lidando com a complexidade Nível de abstração adequado Não acrescentar complexidade desnecessária Focado no aspecto apropriado do problema Preciso Não ambíguo Compreensível por vários perfis de usuários Cliente Diretoria, Marketing, Comunicação, RH, Sistemas Equipe de projeto Analistas, Conteudistas, Programadores, Designers Visuais

Design Baseado em Modelos Identifica modelos de alto nível (abstrato) Concentra em aspectos semanticamente significativos Não endereça imediatamente o nível de implementação Ferramentas que atualizam a implementação Útil no desenvolvimento e na manutenção Design de Interface Baseada em Modelos Abordagem em camadas com diferentes níveis de abstração no design de interfaces de usuário Benefícios esperados Melhorar qualidade Reduzir tempo e custo de desenvolvimento Melhorar comunicação dos times de desenvolvimento Facilitar testes Reduzir esforços para adaptação para mudanças de requisitos

Cameleon Reference Framework Contexto de Uso Entidades relevantes para a interação Tripla - (U, P, A) U - Modelo de usuário Quem vai usar ou está usando P - Plataforma de hardware-software Conexão do ambiente físico com o mundo digital A - Ambiente físico e social Onde a interação está se estabelecendo <usuário, plataforma, ambiente>

Cameleon Reference Framework Requisitos Funcionais autenticar um usuário selecionar um aposento selecionar um dispositivo no aposento inspecionar e alterar o estado do dispositivo selecionado Contextos de Uso casa, computador rua, celular Exemplo - Digital Home

Exemplo - Digital Home Exemplo - Digital Home

TecWeb :: HDM OOHDM - SHDM Método de Autoria para Sistemas Hipermídia conjunto de modelos (com as respectivas notações) método de projeto Desde 1989 - antes da Web! Várias Evoluções Independente de Plataforma Método Levantamento de Requisitos Modelo de Domínio Aplicação Modelo de Navegação Modelo de Interface e Comportamento Implementação

TecWeb Synth Modelos de Navegação

Cameleon Reference Framework Concurrent Task Trees - CTT Notação para especificação de modelos de tarefas Estrutura hierárquica Sintaxe gráfica Foco nas atividades Notação flexível e expressiva Permite representar atividades interativas e concorrentes Compacta e de fácil entendimento

Concurrent Task Trees - CTT Interleaving (T1 T2 TN) Order independence (T1 = T2 = TN) Synchronization (T1 [] T2 [] TN) Parallelism (T1 T2 TN) Choice (T1 [] T2 [] TN) Disabling (T1 [> T2 [> TN) Suspend-Resume (T1 > T2 > TN) Enabling (T1 >> T2 >> TN) Iteration (T*) Optional ([T]) Exemplo CTT

Cameleon Reference Framework TecWeb Interface Abstrata

TecWeb Interface Abstrata TecWeb Interface Abstrata

TecWeb Interface Abstrata TecWeb Interface Abstrata

TecWeb Interface Abstrata TecWeb Interface Abstrata

Cameleon Reference Framework TecWeb Interface Concreta

Exemplo Reserva de Hotel Exemplo Reserva de Hotel

Exemplo Reserva de Hotel Abordagens

Processo de Definição da Interface Metamodelo da Interface Abstrata Os tipos dos widgets representam o papel desempenhado pelo elemento na interação com o usuário Tipos de Widgets Abstratos

Exemplo de Composição Abstrata Exemplo de Composição Abstrata AbstractInterface name : main_page CompositeInterfaceElement name : header ElementExhibitor name : title SimpleActivator name : account_anchor

Exemplo de Composição Abstrata {name: "main_page", widget_type: "AbstractInterface", children:[ {name: "header", widget_type: "CompositeInterfaceElement", children: [ {name: "title", widget_type: "ElementExhibitor"}, {name: "account_anchor", widget_type: "SimpleActivator }] } Exemplo de Composição Abstrata

Exemplo de Composição Abstrata CompositeInterfaceElement name : Content ElementExhibitor name : hotel_name CompositeInterfaceElement name : hotel_images repeatable : true ElementExhibitor name : hotel_image ElementExhibitor name : hotel_category ElementExhibitor name : hotel_address ElementExhibitor name : hotel_description Exemplo de Composição Abstrata {name: "content", widget_type: "CompositeInterfaceElement", children:[ {name: "hotel_name", widget_type: "ElementExhibitor"}, {name: "hotel_images", widget_type: "CompositeInterfaceElement", repeatable: true, children: [ {name: "hotel_image", widget_type: "ElementExhibitor }]}, {name: "hotel_category", widget_type: "ElementExhibitor"}, {name: "hotel_address", widget_type: "ElementExhibitor"}, {name: "hotel_description", widget_type: "ElementExhibitor }]}

Exemplo de Composição Abstrata Exemplo de Composição Abstrata {name: "search_rates", widget_type: "CompositeInterfaceElement", children: [ {name: "search_rates_title", widget_type: "ElementExhibitor"}, {name: "label_checkin", widget_type: "ElementExhibitor"}, {name: "checkin", widget_type: "IndefiniteVariable"}, {name: "label_checkout", widget_type: "ElementExhibitor"}, {name: "checkout", widget_type: "IndefiniteVariable"}, {name: "search", widget_type: "SimpleActivator }]

Exemplo de Composição Abstrata Exemplo de Composição Abstrata {name: "rates", widget_type: "CompositeInterfaceElement", children: [ {name: "rates_title", widget_type: "ElementExhibitor"}, {name: "rates_by_room", widget_type: "CompositeInterfaceElement, repeatable: true, children: [ {name: "room", widget_type: "CompositeInterfaceElement", children: [ {name: "room_type", widget_type: "ElementExhibitor"}, {name: "price", widget_type: "ElementExhibitor"}, {name: "availability", widget_type: "ElementExhibitor"}, {name: "book", widget_type: "SimpleActivator }]}]}

Regras Condição Regras de Ação Base de Conhecimento (Fatos) Triplas Condições fatos de qualquer modelo do SHDM (domínio, navegação, etc.) parâmetros de requisição informações de ambiente (user-agent, etc.) Fatos <WME "navigational_element" "uri" "http://base#6a-b654-b1e28"> <WME "http://base#6a-b654-b1e28" "class" "SHDM::Index"> <WME "http://base#6a-b654-b1e28" "index_title" "FlightsByAirport"> <WME "params" "airport_from" SDU"> <WME "params" "airport_to" BSB > <WME "params" "controller" "execute"> <WME "params" "action" "search_flights"> <WME "user_agent" "browser" "Chrome"> <WME "user_agent" "platform" "Windows"> <WME "user_agent" "mobile" false>

Regras Seleção de Interface has "user_agent, mobile, true has :_, class, gr::offering Seleção de Elemento Abstrato <abstract_element_id> do equal Time.now.day, 1 end Transformação Abstrato Concreto maps_to abstract: <abstract_element_id>, concrete_widget: <concrete_widget_id>, params: {<parameters>} do <conditions> end Regras de Seleção de Interfaces Seleção de Interface Regras de Seleção de Interface <WME "user_agent" "browser" "Firefox"> <WME "user_agent" "platform" "Windows NT"> <WME "user_agent" "mobile" false> <WME "params" "controller" "execute"> <WME "params" "action" book_hotel"> <WME "params" "id" "Rio Carioca Palace"> has "params", "action", book_hotel has "params", "id", :_

Regras de Seleção de Elementos Abtratos Regras de Seleção de Elementos Abtratos

Regras de Seleção de Elementos Abtratos Composição Abstrata Descrição Abstrata Regras de Seleção de Elementos Abstratos set "rates" do has "params", "checkin", :_ has "params", "checkout", :_ end set "search_rates" do neg "params", "checkin", :_ neg "params", "checkout", :_ end Regras de Mapeamento Concreto

Regras de Mapeamento Concreto maps_to abstract: "main_page", concrete_widget: "HTMLPage", params: { title: "mylogdings.com", include_css: /hotel_mob.css" } do end has "user_agent", "mobile", true maps_to abstract: "main_page", concrete_widget: "HTMLPage", params: { title: "mylogdings.com", include_css: "/hotel.css" } # Header block maps_to abstract: "header", concrete_widget: "HTMLComposition"... Regras de Mapeamento Concreto maps_to abstract: "availability", concrete_widget: "HTMLSpan", params: { content: "Sold out", css_class: "highlight" } do equal room[:status], 'sold-out' end maps_to abstract: "availability", concrete_widget: "HTMLSpan", params: { content: "Only #{room[:rooms_available]} left!", css_class: "highlight" } do equal room[:status], 'few-rooms' end maps_to abstract: "availability", concrete_widget: "HTMLSpan", params: { content: "Available", css_class: plain" }

Obrigado! laufer@globo.com