Merlin. Um Novo Horizonte na Criação das Telas de Cadastro
|
|
- Manuel Luiz Figueira Almeida
- 8 Há anos
- Visualizações:
Transcrição
1 Merlin Um Novo Horizonte na Criação das Telas de Cadastro Autoria e Conteúdo AUTOR: Marcelo Mrack mmrack@gmail.com. 3Layer Tecnologia, Porto Alegre, RS Brasil CONTEÚDO: Apresentação criada para o 8 Fórum Internacional de Software Livre (FISL2007) a ser realizado em Porto Alegre de 12 a 14 Abril de Sobre os Direitos Autorais Essa apresentação pode ser copiada e impressa, sendo que qualquer parte de seu conteúdo pode ser reutilizada em outras obras, públicas ou privadas. Em qualquer caso é necessário manter a referência para o autor acima identificado. É expressamente proibida a exibição em público desse documento, seja na forma de palestra, workshop, feira ou qualquer outro evento similar sem o consentimento do autor. 1
2 Sumário Cenário A proposta Comparações Características e Funcionalidades O presente e o futuro EOF >> panorama geral Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 2 de 44 2
3 Sobre o autor Marcelo Mrack, mmrack@gmail.com 29 anos, 8 em TI, 6 em Java Bacharel em C. Computação, UNISC 2001 Mestrando em C. Computação, UFRGS 2006 Atuação em projetos web e desktop n camadas Arquiteto na 3Layer Tecnologia Projetista na CWI Software Consultor e instrutor Hibernate, Java EE Especialidades: IHC, Patterns, geradores, PU Ágil e UML Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 3 de 44 Sobre o autor Informações sobre o autor do documento e orador. 3
4 Panorama geral Quanto custa construir um sistema >> a construção da IU hoje Custo de construção Sistema completo Interface do usuário TC TC elementares 18% 30% 2 50% 2 100% 1 1 Referências 1 Meyers, Brad User Interface Software Tools (1994,2002) 2 Pesquisas próprias (2005,2006) Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 4 de 44 OBJETIVO Evidenciar o esforço destinado à construção e manutenção das Telas de Cadastro nos sistemas em geral. SEGUIMENTO Instigar a platéia que as ferramentas existentes não cumprem o papel de reduzir o patamar de 18% e que uma abordagem diferente pode ser dada ao assunto com o intuito de resolvê-lo. Segundo trabalhos referenciados e pesquisas próprias conduzidas em ambiente profissional de desenvolvimento ao longo de mais de 15 sistemas (predominantemente sistemas para áreas administrativa, gerencial e de recursos humanos de entidades da área educacional e empresarial), observa-se que aproximadamente metade do tempo, da quantidade de código-fonte e dos recursos financeiros dispendidos para o desenvolvimento de um sistema são destinados para a construção e manutenção da interface do usuário. Um fato importante a ser salientado é que desse total, aproximadamente 30% corresponde à Telas de Cadastro, sendo que 18% são Telas de Cadastro elementares. Em outras palavras, 18% do sistema é constituído de interfaces de usuário que, embora necessitem tratamentos diversos como validação de entrada e saída, aplicação de regras de usabilidade, aparência, comportamento e outros, não envolvem nenhuma complexidade relacionada a execução das regras de negócio do sistema. Otimizar esse percentual é objetivo de diversas ferramentas disponíveis no mercado mas que, infelizmente, a prática tem demostrado que nem sempre tal desafio é superado. A existência de uma ferramenta que realmente cumprisse as expectativas de reduzir esse esforço é interesse comum para os desenvolvedores de sistemas, principalmente se essa ferramenta suportasse não somente a construção dessas interfaces, mas também apoiasse, de forma inteligente e perspicaz, todo o ciclo de vida da aplicação. 4
5 A construção da IU hoje O cenário atual As diversas formas de construir interface de usuário e os problemas em comum Abordagens Escrita de código-fonte Uso de ferramentas WYSIWYG 1 Uso de assistentes de criação Geração baseada em modelos Templates MDA Problemas recorrentes >> a ferramenta proposta Tempo elevado de construção Quanto custa criar um template? Demora nas alterações Como refatorar classes já geradas? E se o código já foi alterado? Falta de reuso Posso reusar o label Nome do cliente em projetos diferentes? Gerência de código Código template ou não? E a versão? 1. ( WYSIWYG: /wǻziwǻg/ ) What You See Is What You Get, ou seja o que você vê (ou o que você desenha no editor) é o que você tem quando o sistema estiver em execução. Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 5 de 44 Nesse slide é data uma visão geral sobre o processo de construção de interfaces de usuário. A primeira abordagem, e mais antiga, é a codificação manual de toda IU. Todos os elementos que compõe a IU são codificados pelo programador com a utilização de algum pacote gráfico, como Swing ou outro. A segunda é a utilização de ferramentas visuais que trabalham com o conceito de arrastar e soltar componentes na tela. Com elas, o programador cria a IU visualmente, através do posicionamento de controles na tela e ajustes de propriedades em caixas de diálogo específicas. Os componentes de tela tratados nesse caso são os elementos primitivos, como caixas de texto, botões, etc. Os assistentes de criação ou wizards são ferramentas que conduzem a criação da IU através de um processo interativo, onde o programador, através do uso de (em alguns casos) modelos pré-concebidos (templates) e uma sequência de escolhas determina a aparência e o comportamento da IU. Os assistentes de criação operam geralmente sobre conjuntos de componentes primitivos, os quais já têm incorporados as funcionalidades esperadas pela aplicação. A outra abordagem é a geração baseada em modelos. Nela, a geração da IU é um processo automático (ou semiautomático) que depende da existência de modelos do sistema, tais como modelos de dados (diagrama de classes ou ER), modelos de tarefas de usuário, diagramas de sequência, etc. Com base nesses modelos, geradores de código dedicados produzem o código-fonte da interface do usuário. No cenário atual, a MDA pode ser interpretada com uma reinvenção desse paradigma, a qual agrega novos conceitos, como o uso de templates de código e geradores específicos (chamados de cartuchos), de forma que as ferramentas de geração possam efetuar transformações sucessivas até que o código-fonte da IU seja produzido. Excetuando-se a primeira, as outras abordagens conseguem, pelo menos em algum momento, melhorar a produtividade dos programadores. Entretanto, mesmo essas soluções incorrem em tempos elevados, seja pela repetitividade das tarefas (arrastar e soltar os mesmos componentes em IU diferentes em vários sistemas), seja pela limitação dos assistentes de criação (disponibilidade de modelos adequados às necessidades da empresa e qualidade do código gerado) ou pelo deslocamento do esforço outrora dedicado a construção da IU à configuração e criação de templates e escolha (ou mesmo criação) dos cartuchos corretos para as IU. Além disso, os problemas relacionados à modificação nas interfaces do usuário ainda estão presentes. Isso porque, a cada modificação necessária em uma IU, todo o processo interativo entre o desenvolvedor e as ferramentas deve ser reexecutado, objetivando a geração (e compilação, empacotamento, distribuição, etc.) de um novo código-fonte. E, também aqui, estão presentes os problemas relativos à gerência e sincronia de código-fonte e a inexistência de reuso. 5
6 A ferramenta proposta Abdicar totalmente da geração do código-fonte >> motivação Em outras palavras, gerar a TC durante a execução do sistema, através de um processo de interpretação de meta-informações oriundas do próprio modelo de dados A idéia-chave class Cliente { String codigo; String nome; } Tempo de projeto CAFE new JFrame.add( Merlin.createIhc(Pessoa.class) ).setvisible(true); Tempo de execução Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 6 de 44 6
7 Motivação TC são funções do modelo de dados >> motivação A dependência da TC em relação ao modelo de dados Modelo de classes Tela de Cadastro consistência, aparência, validação, organização, customizações, etc. Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 7 de 44 OBJETIVO Evidenciar para a platéia que a construção de Telas de Cadastro elementares é função direta do modelo de dados relacionado SEGUIMENTO Utilizar essa premissa como argumento para geração da TC durante o uso do sistema 7
8 Motivação Regras clássicas Classe Tela >> motivação Atributo Relacionamento Controle Link Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 8 de 44 OBJETIVO Evidenciar para a platéia que a construção de Telas de Cadastro elementares é função direta do modelo de dados relacionado SEGUIMENTO Utilizar essa premissa como argumento para geração da TC durante o uso do sistema 8
9 Motivação Regras clássicas Classe Atributo Relacionamento Tela Controle Link Implementando as regras clássicas A classe de dados public class Cliente { String nome; Cidade naturalidade; boolean ativo; } O cadastro gerado 1 >> motivação 1 Cadastro de Clientes Nome Naturalidade Ativo Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 9 de 44 OBJETIVO Evidenciar para a platéia que a construção de Telas de Cadastro elementares é função direta do modelo de dados relacionado SEGUIMENTO Utilizar essa premissa como argumento para geração da TC durante o uso do sistema 9
10 Motivação Regras clássicas Classe Atributo Relacionamento Tela Controle Link Implementando as regras clássicas A classe de dados public class Cliente { 2 String nome; Cidade naturalidade; boolean ativo; } O cadastro gerado >> motivação Cadastro de Clientes Nome Naturalidade Ativo 2 Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 10 de 44 OBJETIVO Evidenciar para a platéia que a construção de Telas de Cadastro elementares é função direta do modelo de dados relacionado SEGUIMENTO Utilizar essa premissa como argumento para geração da TC durante o uso do sistema 10
11 Motivação Regras clássicas Classe Atributo Relacionamento Tela Controle Link Implementando as regras clássicas A classe de dados public class Cliente { String nome; Cidade naturalidade; 3 boolean ativo; } O cadastro gerado >> o objetivo da ferramenta Cadastro de Clientes Nome Naturalidade Ativo 3 Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 11 de 44 OBJETIVO Evidenciar para a platéia que a construção de Telas de Cadastro elementares é função direta do modelo de dados relacionado SEGUIMENTO Utilizar essa premissa como argumento para geração da TC durante o uso do sistema 11
12 O objetivo da ferramenta Gerar TCs elementares com o menor esforço possível Um exemplo de interface elementar a ser gerada >> algumas definições O código essencial new JFrame().add( Merlin.createIhc(Usuario.class) ).setvisible(true); Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 12 de 44 OBJETIVO Mostrar uma Tela de Cadastro elementar e colocá-la como desafio a ser alcançado pela ferramenta proposta SEGUIMENTO Evidenciar que as Telas de Cadastro elementares, por não possuírem complexidades relativas à regras de negócio, podem conter semântica padronizada e, por isso, serem geradas automaticamente. Nessa figura, uma Tela de Cadastro elementar é mostrada. Percebe-se nela vários aspectos, como a aplicação de regras de usabilidade e aparência (alinhamento de campos, esquema de cores, formatação de textos, mensagens de auxílio, etc.), organização (agrupamento de informações, separação de contextos edição, feedback e execução de ações), consistência (regras de validação de conteúdo, mensagens informativas, sinalizadores, etc.). Embora todos esses conceitos estejam aplicados e sejam perceptíveis, essa interface é dita elementar porque, basicamente, nenhuma regra de negócio está associada a ela. De fato, essa interface é, praticamente, completamente dependente da estrutura do modelo de dados a ela associado; uma classe chamada Usuario. É justamente esse tipo de tela a que corresponde aos 18% comentados no slide anterior e é esse o tipo de interface que deve ser o resultado e o foco do projeto Merlin. Em outras palavras, a ferramente Merlin objetiva a geração de interfaces de usuário semelhantes a essa, de forma que toda a geração ocorra em tempo de execução e que nenhuma linha de código seja produzida durante esse processo. 12
13 Algunas definições importantes Contexto É a relação entre o elemento e o ambiente em que ele ocorre Algo é importante dependendo do local onde ele está Empirismo É o conhecimento baseado na experiência Eu sei porque eu já fiz isso É reativo Heurística É o conhecimento baseado em aproximações Eu acho que sei porque eu já fiz algo parecido É pró-ativa Inferência Obtém-se novos conhecimentos a partir de informações existentes Quanto mais contexto, melhor >> o processo Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 13 de 44 OBJETIVO Apresentar alguns conceitos importantes que são utilizados internamente na ferramenta para ela consiga atingir os resultados esperados. SEGUIMENTO Explanados os conceitos, direcionar a platéia para Fontes
14 O processo 1. Cria-se as classes de dados 2. Opcionalmente, decora-se elas com anotações 3. Dentro da aplicação, invoca-se Merlin.createIhc sobre a classe ou objeto >> comparação Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 14 de 44 14
15 Uma pequena comparação A mesma entrada e as diferentes saídas... >> comparação Uma classe de dados para teste... public class Usuario { long codigo; String nome; String observacoes; String logradouro; int numero; Cidade cidade; String complemento; }... ou em notação UML Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 15 de 44 15
16 Uma pequena comparação A mesma entrada e as diferentes saídas... Interfaces geradas por ferramentas tradicionais (a) e pelo Merlin (b) Um gerador tradicional (a) Merlin (b) >> comparação usuario Cadastro de Usuário codigo nome Dicas O campo nome é obrigatório. O campo logradouro é obrigatório O campo número é obrigatório cidade logradouro Rua São Sepé numero 256 complemento observacoes Cancelar Salvar Endereço Nome Cidade Logradouro Rua São Sepé Número 256 Complemento Observações Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 16 de 44 Nesse slide é data uma visão geral sobre o processo de construção de interfaces de usuário. A primeira abordagem, e mais antiga, é a codificação manual de toda IU. Todos os elementos que compõe a IU são codificados pelo programador com a utilização de algum pacote gráfico, como Swing ou outro. A segunda é a utilização de ferramentas visuais que trabalham com o conceito de arrastar e soltar componentes na tela. Com elas, o programador cria a IU visualmente, através do posicionamento de controles na tela e ajustes de propriedades em caixas de diálogo específicas. Os componentes de tela tratados nesse caso são os elementos primitivos, como caixas de texto, botões, etc. Os assistentes de criação ou wizards são ferramentas que conduzem a criação da IU através de um processo interativo, onde o programador, através do uso de (em alguns casos) modelos pré-concebidos (templates) e uma sequência de escolhas determina a aparência e o comportamento da IU. Os assistentes de criação operam geralmente sobre conjuntos de componentes primitivos, os quais já têm incorporados as funcionalidades esperadas pela aplicação. A outra abordagem é a geração baseada em modelos. Nela, a geração da IU é um processo automático (ou semiautomático) que depende da existência de modelos do sistema, tais como modelos de dados (diagrama de classes ou ER), modelos de tarefas de usuário, diagramas de sequência, etc. Com base nesses modelos, geradores de código dedicados produzem o código-fonte da interface do usuário. No cenário atual, a MDA pode ser interpretada com uma reinvenção desse paradigma, a qual agrega novos conceitos, como o uso de templates de código e geradores específicos (chamados de cartuchos), de forma que as ferramentas de geração possam efetuar transformações sucessivas até que o código-fonte da IU seja produzido. Excetuando-se a primeira, as outras abordagens conseguem, pelo menos em algum momento, melhorar a produtividade dos programadores. Entretanto, mesmo essas soluções incorrem em tempos elevados, seja pela repetitividade das tarefas (arrastar e soltar os mesmos componentes em IU diferentes em vários sistemas), seja pela limitação dos assistentes de criação (disponibilidade de modelos adequados às necessidades da empresa e qualidade do código gerado) ou pelo deslocamento do esforço outrora dedicado a construção da IU à configuração e criação de templates e escolha (ou mesmo criação) dos cartuchos corretos para as IU. Além disso, os problemas relacionados à modificação nas interfaces do usuário ainda estão presentes. Isso porque, a cada modificação necessária em uma IU, todo o processo interativo entre o desenvolvedor e as ferramentas deve ser reexecutado, objetivando a geração (e compilação, empacotamento, distribuição, etc.) de um novo código-fonte. E, também aqui, estão presentes os problemas relativos à gerência e sincronia de código-fonte e a inexistência de reuso. 16
17 Uma pequena comparação A mesma entrada e as diferentes saídas... Interfaces geradas por ferramentas tradicionais (a) e pelo Merlin (b) Um gerador tradicional (a) Merlin (b) >> comparação usuario Cadastro de Usuário codigo nome Dicas O campo nome é obrigatório. O campo logradouro é obrigatório O campo número é obrigatório cidade logradouro Rua São Sepé numero 256 complemento observacoes Cancelar Salvar Endereço Nome Cidade Logradouro Rua São Sepé Número 256 Complemento Observações Porque Observações é uma caixa de texto de múltiplas linhas? Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 17 de 44 Nesse slide é data uma visão geral sobre o processo de construção de interfaces de usuário. A primeira abordagem, e mais antiga, é a codificação manual de toda IU. Todos os elementos que compõe a IU são codificados pelo programador com a utilização de algum pacote gráfico, como Swing ou outro. A segunda é a utilização de ferramentas visuais que trabalham com o conceito de arrastar e soltar componentes na tela. Com elas, o programador cria a IU visualmente, através do posicionamento de controles na tela e ajustes de propriedades em caixas de diálogo específicas. Os componentes de tela tratados nesse caso são os elementos primitivos, como caixas de texto, botões, etc. Os assistentes de criação ou wizards são ferramentas que conduzem a criação da IU através de um processo interativo, onde o programador, através do uso de (em alguns casos) modelos pré-concebidos (templates) e uma sequência de escolhas determina a aparência e o comportamento da IU. Os assistentes de criação operam geralmente sobre conjuntos de componentes primitivos, os quais já têm incorporados as funcionalidades esperadas pela aplicação. A outra abordagem é a geração baseada em modelos. Nela, a geração da IU é um processo automático (ou semiautomático) que depende da existência de modelos do sistema, tais como modelos de dados (diagrama de classes ou ER), modelos de tarefas de usuário, diagramas de sequência, etc. Com base nesses modelos, geradores de código dedicados produzem o código-fonte da interface do usuário. No cenário atual, a MDA pode ser interpretada com uma reinvenção desse paradigma, a qual agrega novos conceitos, como o uso de templates de código e geradores específicos (chamados de cartuchos), de forma que as ferramentas de geração possam efetuar transformações sucessivas até que o código-fonte da IU seja produzido. Excetuando-se a primeira, as outras abordagens conseguem, pelo menos em algum momento, melhorar a produtividade dos programadores. Entretanto, mesmo essas soluções incorrem em tempos elevados, seja pela repetitividade das tarefas (arrastar e soltar os mesmos componentes em IU diferentes em vários sistemas), seja pela limitação dos assistentes de criação (disponibilidade de modelos adequados às necessidades da empresa e qualidade do código gerado) ou pelo deslocamento do esforço outrora dedicado a construção da IU à configuração e criação de templates e escolha (ou mesmo criação) dos cartuchos corretos para as IU. Além disso, os problemas relacionados à modificação nas interfaces do usuário ainda estão presentes. Isso porque, a cada modificação necessária em uma IU, todo o processo interativo entre o desenvolvedor e as ferramentas deve ser reexecutado, objetivando a geração (e compilação, empacotamento, distribuição, etc.) de um novo código-fonte. E, também aqui, estão presentes os problemas relativos à gerência e sincronia de código-fonte e a inexistência de reuso. 17
18 Uma pequena comparação A mesma entrada e as diferentes saídas... Interfaces geradas por ferramentas tradicionais (a) e pelo Merlin (b) Um gerador tradicional (a) Merlin (b) >> comparação usuario Cadastro de Usuário codigo nome Dicas O campo nome é obrigatório. O campo logradouro é obrigatório O campo número é obrigatório cidade logradouro Rua São Sepé numero 256 complemento observacoes Cancelar Salvar Endereço Nome Cidade Logradouro Rua São Sepé Número 256 Complemento Observações Porque é Observações e não Observacoes? Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 18 de 44 Nesse slide é data uma visão geral sobre o processo de construção de interfaces de usuário. A primeira abordagem, e mais antiga, é a codificação manual de toda IU. Todos os elementos que compõe a IU são codificados pelo programador com a utilização de algum pacote gráfico, como Swing ou outro. A segunda é a utilização de ferramentas visuais que trabalham com o conceito de arrastar e soltar componentes na tela. Com elas, o programador cria a IU visualmente, através do posicionamento de controles na tela e ajustes de propriedades em caixas de diálogo específicas. Os componentes de tela tratados nesse caso são os elementos primitivos, como caixas de texto, botões, etc. Os assistentes de criação ou wizards são ferramentas que conduzem a criação da IU através de um processo interativo, onde o programador, através do uso de (em alguns casos) modelos pré-concebidos (templates) e uma sequência de escolhas determina a aparência e o comportamento da IU. Os assistentes de criação operam geralmente sobre conjuntos de componentes primitivos, os quais já têm incorporados as funcionalidades esperadas pela aplicação. A outra abordagem é a geração baseada em modelos. Nela, a geração da IU é um processo automático (ou semiautomático) que depende da existência de modelos do sistema, tais como modelos de dados (diagrama de classes ou ER), modelos de tarefas de usuário, diagramas de sequência, etc. Com base nesses modelos, geradores de código dedicados produzem o código-fonte da interface do usuário. No cenário atual, a MDA pode ser interpretada com uma reinvenção desse paradigma, a qual agrega novos conceitos, como o uso de templates de código e geradores específicos (chamados de cartuchos), de forma que as ferramentas de geração possam efetuar transformações sucessivas até que o código-fonte da IU seja produzido. Excetuando-se a primeira, as outras abordagens conseguem, pelo menos em algum momento, melhorar a produtividade dos programadores. Entretanto, mesmo essas soluções incorrem em tempos elevados, seja pela repetitividade das tarefas (arrastar e soltar os mesmos componentes em IU diferentes em vários sistemas), seja pela limitação dos assistentes de criação (disponibilidade de modelos adequados às necessidades da empresa e qualidade do código gerado) ou pelo deslocamento do esforço outrora dedicado a construção da IU à configuração e criação de templates e escolha (ou mesmo criação) dos cartuchos corretos para as IU. Além disso, os problemas relacionados à modificação nas interfaces do usuário ainda estão presentes. Isso porque, a cada modificação necessária em uma IU, todo o processo interativo entre o desenvolvedor e as ferramentas deve ser reexecutado, objetivando a geração (e compilação, empacotamento, distribuição, etc.) de um novo código-fonte. E, também aqui, estão presentes os problemas relativos à gerência e sincronia de código-fonte e a inexistência de reuso. 18
19 Uma pequena comparação A mesma entrada e as diferentes saídas... Interfaces geradas por ferramentas tradicionais (a) e pelo Merlin (b) Um gerador tradicional (a) Merlin (b) >> características gerais usuario Cadastro de Usuário codigo nome Dicas O campo nome é obrigatório. O campo logradouro é obrigatório O campo número é obrigatório cidade logradouro Rua São Sepé numero 256 complemento observacoes Cancelar Salvar Endereço Nome Cidade Logradouro Rua São Sepé Número 256 Complemento Observações Qual é o campo da cidade exibido na caixa de seleção? Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 19 de 44 Nesse slide é data uma visão geral sobre o processo de construção de interfaces de usuário. A primeira abordagem, e mais antiga, é a codificação manual de toda IU. Todos os elementos que compõe a IU são codificados pelo programador com a utilização de algum pacote gráfico, como Swing ou outro. A segunda é a utilização de ferramentas visuais que trabalham com o conceito de arrastar e soltar componentes na tela. Com elas, o programador cria a IU visualmente, através do posicionamento de controles na tela e ajustes de propriedades em caixas de diálogo específicas. Os componentes de tela tratados nesse caso são os elementos primitivos, como caixas de texto, botões, etc. Os assistentes de criação ou wizards são ferramentas que conduzem a criação da IU através de um processo interativo, onde o programador, através do uso de (em alguns casos) modelos pré-concebidos (templates) e uma sequência de escolhas determina a aparência e o comportamento da IU. Os assistentes de criação operam geralmente sobre conjuntos de componentes primitivos, os quais já têm incorporados as funcionalidades esperadas pela aplicação. A outra abordagem é a geração baseada em modelos. Nela, a geração da IU é um processo automático (ou semiautomático) que depende da existência de modelos do sistema, tais como modelos de dados (diagrama de classes ou ER), modelos de tarefas de usuário, diagramas de sequência, etc. Com base nesses modelos, geradores de código dedicados produzem o código-fonte da interface do usuário. No cenário atual, a MDA pode ser interpretada com uma reinvenção desse paradigma, a qual agrega novos conceitos, como o uso de templates de código e geradores específicos (chamados de cartuchos), de forma que as ferramentas de geração possam efetuar transformações sucessivas até que o código-fonte da IU seja produzido. Excetuando-se a primeira, as outras abordagens conseguem, pelo menos em algum momento, melhorar a produtividade dos programadores. Entretanto, mesmo essas soluções incorrem em tempos elevados, seja pela repetitividade das tarefas (arrastar e soltar os mesmos componentes em IU diferentes em vários sistemas), seja pela limitação dos assistentes de criação (disponibilidade de modelos adequados às necessidades da empresa e qualidade do código gerado) ou pelo deslocamento do esforço outrora dedicado a construção da IU à configuração e criação de templates e escolha (ou mesmo criação) dos cartuchos corretos para as IU. Além disso, os problemas relacionados à modificação nas interfaces do usuário ainda estão presentes. Isso porque, a cada modificação necessária em uma IU, todo o processo interativo entre o desenvolvedor e as ferramentas deve ser reexecutado, objetivando a geração (e compilação, empacotamento, distribuição, etc.) de um novo código-fonte. E, também aqui, estão presentes os problemas relativos à gerência e sincronia de código-fonte e a inexistência de reuso. 19
20 Características gerais >> características gerais Essência Não produzir código-fonte, mas sim renderizar a interface do sistema em tempo de execução Ser independente de framework gráfico Protótipo em Swing Previsão para JSF Outras aplicações podem ser SWT, XUL e GWT Baseada no modelo de objetos do sistema Ter uma API minimalista Anotações Merlin.createIhc() Reusar (e apostar em novos) padrões EJB3 Persistence JSR220 Hibernate Validator JSR299 (JBoss Seam) Java Beans Binding JSR295 Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 20 de 44 20
21 Características gerais Não utilizar metamodelo externo Tudo reside nas classes compiladas do sistema Utilizar ao máximo conceitos como heurísiticas, empirismo, inferência baseada em contexto, etc. Configuração por exceção Reuso de histórico >> características gerais Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 21 de 44 21
22 Características gerais Não utilizar metamodelo externo Tudo reside nas classes compiladas do sistema Utilizar ao máximo conceitos como heurísiticas, empirismo, inferência baseada em contexto, etc. Configuração por exceção Reuso de histórico O custo dos geradores tradicionais Custo >> características gerais S 1 S 2 S 3 S n Tempo Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 22 de 44 22
23 Características gerais Não utilizar metamodelo externo Tudo reside nas classes compiladas do sistema Utilizar ao máximo conceitos como heurísiticas, empirismo, inferência baseada em contexto, etc. Configuração por exceção Reuso de histórico O custo do Merlin Custo S 1 S 2 >> histórico S 3 Sn Tempo Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 23 de 44 23
24 O histórico A busca por informações históricas pode ser feita no próprio classpath do sistema Em servidores de aplicação, tudo pode ser compartilhado Em aplicações simples (standalone), as classes com anotações podem ser exportadas junto >> histórico Classes nos servidores de aplicação Root LIBs classes C 1 S 1 classes C 2 S 2 classes C n S n classes Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 24 de 44 24
25 O histórico A busca por informações históricas pode ser feita no próprio classpath do sistema Em servidores de aplicação, tudo pode ser compartilhado Em aplicações simples (standalone), as classes com anotações podem ser exportadas junto >> slistaks Classes nos servidores de aplicação Root LIBs classes C 1 S 1 classes C 2 S 2 classes Histórico C n S n classes Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 25 de 44 25
26 Slistaks Informações de contexto, heurísticas, empirismo e inferência são utilizados para: Gerar corretamente nomes para labels Mapear os tipos de controles em função do tipo de dado Adicionar validadores, tamanho, etc. Agrupamentos >> slistaks de graça Utilizando a ocorrência de termos para produzir o conteúdo em comboboxes nome 110 status 12 codigo 110 Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 26 de 44 26
27 Slistaks de graça Google como fonte de informações >> mais slistaks de graça Relevância de campos pode ser obtida de forma online O maior contexto gratuito do mundo: A internet nome : 212 milhões O termo nome é mais significativo, logo ele é usado na caixa de seleção codigo : 148 milhões Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 27 de 44 27
28 Mais slistaks de graça >> ainda slistaks de graça Dicionários de sinônimos Para inferir mapeamentos de controles observacao = informacaocomplementar = outrasinformacoes Todos geram textareas Utilizando um dicionário de sinônimos gratuito para inferir mapeamentos observacao Se observacao é (ou já foi) um textarea, é provável que outrasinformacoes também o seja Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 28 de 44 28
29 Ainda slistaks de graça Algoritmos de similaridade Para detectar aproximações e inferir correspondências observacao = observacoes Muitos frameworks na web >> eu adoro slistaks Utilizando um framework externo para identificar similaridades System.out.print( StringMetrics.compare( observacao, observacoes ) ); //imprime 0.8 (entre 0 e 1) Por exemplo, se o valor for maior que 0.5 os termos são conceitualmente iguais. Se observacao é (ou já foi) um textarea, é provável que observacoes também seja Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 29 de 44 29
30 Eu adoro slistaks Corretores ortográficos Para gerar labels observacao = observação >> agrupamentos Utilizando corretores ortográficos disponíveis no próprio ambiente Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 30 de 44 30
31 Agrupamentos Agrupando controles nas telas Requisito Os campos Cidade, Rua e Número devem ser exibidos em conjunto Criando um agrupamento simples A tela Cadastro de Cadastro Clientede Cliente 1 Dicas Endereço Nome Cidade Rua Número A classe de Endereço,fiel ds= cidade,rua,numero ) class Cliente { String nome; Cidade cidade; String rua; String numero; } >> dependências Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 31 de 44 31
32 Dependências Vinculando controles nas telas Requisito Se o cliente possuir cheque especial, habilitar limite de crédito >> agentes Criando dependências simples A tela A classe de dados Cadastro de Cadastro Clientede Cliente Dicas Nome Possui cheque Limite Cancelar Salvar class Cliente { String limite ) boolean possuicheque; double limite; } 7 8 Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 32 de 44 32
33 Agentes Derivados da linguagem Eiffel, agentes são elementos que podem ser plugados na IU e executar funções diversas, como: Tratamento de eventos Invocação de regras de negócio Definição de propriedades Execução de Scripts O conceito de agentes Controle de tela? Eventos Scripts Regras de negócio >> agentes Propriedades Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 33 de 44 33
34 Agentes Derivados da linguagem Eiffel, agentes são elementos que podem ser plugados na IU e executar funções diversas, como: Tratamento de eventos Invocação de regras de negócio Definição de propriedades Execução de Scripts O conceito de agentes Eventos >> agentes Controle de tela Agentes Scripts Regras de negócio Propriedades Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 34 de 44 34
35 Agentes Agentes na execução de regras de negócio Requisito >> agentes Ao preencher o salário do cliente, se ele não tiver débitos deve ser habilitado um cartão de crédito para ele. Conectando eventos e regras de negócio A tela A classe de dados Cadastro de Cadastro Clientede Cliente Dicas Nome Salário Cartão de crédito Cancelar Salvar class Cliente { String event={ focuslost }, action={ habilitarcartao }) float salario; boolean cartaocredito; } Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 35 de 44 35
36 Agentes Agentes na execução de regras de negócio Requisito >> agentes Ao preencher o salário do cliente, se ele não tiver débitos deve ser habilitado um cartão de crédito para ele. Implementando a regra de negócio 1 public class AlgumasRegras { 2 public void habilitarcartao() { 3 JTextField salario = (JTextField) 4 Merlin.getControle( cliente.salario ); 5 //processa a regra de negócio... 6 JCheckBox cartao = (JCheckBox) 7 Merlin.getControle( cliente.cartaocredito ); 8 cartao.setenabled(!debitos); 9 } 10} Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 36 de 44 36
37 Agentes Agentes na execução de regras de negócio Requisito (agora de forma assíncrona) >> agentes Ao preencher o salário do cliente, se ele não tiver débitos deve ser habilitado um cartão de crédito para ele. Conectando eventos e regras de negócio de forma assíncrona A tela A classe de dados Cadastro de Cadastro Clientede Cliente Dicas Nome Salário Cartão de crédito Cancelar Salvar class Cliente { event={ focuslost }, action={ habilitarcartao }) float salario; boolean cartaocredito; } Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 37 de 44 37
38 Agentes Agentes na definição de propriedades de controles Requisito Aplicar uma borda verde saliente sobre o nome do cliente. >> agentes Uma interface com controle customizado A tela A classe de dados Cadastro de Cadastro Clientede Cliente Dicas Nome Salário Cartão de crédito Cancelar Salvar class Cliente property={ border=borderfac tory.createlineborder(color.green,2) }) String nome; float salario; boolean cartaocredito; } Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 38 de 44 38
39 Agentes >> agentes Agentes na execução de scripts (BeanShell, Groovy, etc.) Requisito Criar uma regra externa configurável para calcular o limite de crédito do cliente em função do valor do salário. Utilizando agentes para externalizar comportamentos através de scripts A tela A classe de dados Cadastro de Cadastro Clientede Cliente Dicas Nome Salário Limite de crédito Cancelar Salvar class Cliente { String script={ /scripts/calc.js }) float salario; float limitecredito; } Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 39 de 44 39
40 Agentes >> layout Agentes na execução de scripts (BeanShell, Groovy, etc.) Requisito Criar uma regra externa configurável para calcular o limite de crédito do cliente. O script externo escrito em BeanShell /scripts/calc.js 1 var salario = new Float(this.caller.getText()); var limite = Merlin.getControle( cliente.limitecredito ); limite.settext(salario * 0.3); Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 40 de 44 40
41 Layout >> layout O posicionamento de controles é totalmente executado por algoritmos, os quais utilizam Gerenciadores de layout (TableLayout, JGoodies Forms) Heurísiticas, UI patterns, regras de usabilidade Configurações via anotações Customizações Simples Uso de anotações Complexas Implementação de novos algoritmos Malucas Design manual Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 41 de 44 41
42 Layout Alterando o layout via anotações Modificando algumas coisas >> layout Redefinindo a ordem de controles e a posição de labels na tela A tela Cadastro de Cliente Cadastro de Cliente Salário Observações 5 2 Nome Observações A classe de dados class Cliente observacoes ) String nome; float String observacoes; } Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 42 de 44 42
43 Layout Alterando o layout via anotações Modificando tudo de uma vez >> layout Redefinindo a ordem de controles e a posição de todos os labels na tela A tela Cadastro de Cliente Cadastro de Cliente Salário Observações Nome A classe de class Cliente observacoes ) String nome; float salario; String observacoes; } Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 43 de 44 43
44 Layout Criando um layout maluco 1. Cria-se uma classe IU com o layout desejado >> layout Um exemplo de layout manual O template TemplateMaluco extends JPanel Cadastro de Cliente Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 44 de 44 44
45 Layout Criando um layout maluco 2. Define-se nomes de controles idênticos aos que serão gerados >> layout Um exemplo de layout manual O template TemplateMaluco extends JPanel lblobservacoes Cadastro de Cliente observacoes salario lblsalario lblnome nome Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 45 de 44 45
46 Layout Criando um layout maluco 3. Executa-se a geração passando o template como parâmetro Merlin.createIhc(Cliente.class, TemplateMaluco.class); >> extensões Um exemplo de layout manual O template Cadastro de Cliente Cadastro de Cliente Cadastro de Cliente Observações Salário Nome Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 46 de 44 46
47 Extensões Modificando os controles de tela gerados Uma interface padrão >> extensões A classe de dados class Cliente { String nome; Cidade naturalidade } A tela gerada Cadastro Cadastro de Cliente de Cliente Dicas Nome Naturalidade Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 47 de 44 47
48 Extensões Modificando os controles de tela gerados Uma interface com controle customizado >> extensões A classe de dados class Cliente { String Cidade naturalidade } A tela gerada Cadastro de Cadastro Clientede Cliente Dicas Nome Naturalidade Cancelar Salvar Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 48 de 44 48
49 Extensões Modificando os controles de tela gerados Uma interface com controle customizado >> estágio atual e perspectivas A classe de dados class Cliente { String Cidade naturalidade } A tela gerada Cadastro de Cadastro Clientede Cliente Dicas Nome Naturalidade Cancelar Salvar Criando o controle customizado class Lookup extends JPanel implements IRenderer { //metodos para binding do controle } Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 49 de 44 49
50 Estágio atual e perspectivas Divulgação Alfa release disponível Controles básicos, agentes, layout e anotações essenciais Telas de cadastro simples Parte teórica em desenvolvimento Binding Telas mestre-detalhte Integração com outros frameworks Captação de recursos financeiros Para 2008 Início: Beta release em Swing Final: Beta release em JSF 2009 em diante Gerência de realimentação >> EOF Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 50 de 44 Espaço para críticas e sugestões. 50
51 Fim Conteúdo Contato Histórias Merlin - Um Novo Horizonte na Criação das Telas de Cadastro slide 51 de 44 Fim da apresentação. 51
www.3layer.com.br www.3layer.com.br Merlin Um Novo Horizonte na Criação das Telas de Cadastro
Merlin Um Novo Horizonte na Criação das Telas de Cadastro Sumário >> panorama geral Cenário A proposta Comparações Características e Funcionalidades O presente e o futuro EOF Merlin - Um Novo Horizonte
Leia maiswww.3layer.com.br www.3layer.com.br Merlin The First Runtime GUI Generator
Merlin The First Runtime GUI Generator Sumário >> panorama geral Cenário A proposta Comparações Características e Funcionalidades O presente e o futuro EOF Merlin - The First Runtime GUI Generator slide
Leia maisDESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES
DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisDocumentação. Programa de Evolução Contínua Versão 1.76
Documentação Programa de Evolução Contínua Versão 1.76 Sumário Resumo das Novidades... 3 Configuração das Novidades... 5 Nova integração Google Universal Analytics... 5 Sistema de Múltiplos Pacotes de
Leia maisMANUAL DO GERENCIADOR ESCOLAR WEB
CNS LEARNING MANUAL DO GERENCIADOR ESCOLAR WEB Versão Online 13 Índice ÍNDICE... 1 VISÃO GERAL... 2 CONCEITO E APRESENTAÇÃO VISUAL... 2 PRINCIPAIS MÓDULOS... 3 ESTRUTURAÇÃO... 3 CURSOS... 4 TURMAS... 4
Leia maisImóvel Mix SGI. 1. Acesso ao Sistema 2. Aspectos Gerais 3. Configuração da Empresa 4. Cadastro de Usuários
Imóvel Mix SGI Imóvel Mix SGI 1. Acesso ao Sistema 2. Aspectos Gerais 3. Configuração da Empresa 4. Cadastro de Usuários 5. Controle de Acesso 6. Cadastro de Clientes 7. Cadastro de Imóveis 8. Vistoria
Leia maisEspecialização em Engenharia de Software com Ênfase em Software Livre ESL2/2008. Projeto Agenda Saúde Requisitos e Modelagem UML
Projeto Agenda Saúde Requisitos e Modelagem UML Histórico de Revisão Versão 0.1 Data 01/06/09 Revisor Descrição Versão inicial Sumário 1. Introdução...4 1.1 Visão geral deste documento...4 1.2 Módulos
Leia maisPlano de Gerenciamento do Projeto
Projeto para Soluções Contábeis 2015 Plano de Gerenciamento do Projeto Baseado na 5ª edição do Guia PMBOK Brendon Genssinger o e Elcimar Silva Higor Muniz Juliermes Henrique 23/11/2015 1 Histórico de alterações
Leia maisFeature-Driven Development
FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por
Leia maisDocumento de Análise e Projeto VideoSystem
Documento de Análise e Projeto VideoSystem Versão Data Versão Descrição Autor 20/10/2009 1.0 21/10/2009 1.0 05/11/2009 1.1 Definição inicial do documento de análise e projeto Revisão do documento
Leia maisCurso de Aprendizado Industrial Desenvolvedor WEB
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Servidor de Aplicações WEB Tomcat Servidor Tomcat Foi desenvolvido
Leia maisConstrutor de sites SoftPixel GUIA RÁPIDO - 1 -
GUIA RÁPIDO - 1 - Sumário Introdução...3 Por que utilizar o Construtor de Sites?...3 Vantagens do Construtor de Sites...3 Conceitos básicos...3 Configuração básica do site...5 Definindo o layout/template
Leia maisPortal Sindical. Manual Operacional Empresas/Escritórios
Portal Sindical Manual Operacional Empresas/Escritórios Acesso ao Portal Inicialmente, para conseguir acesso ao Portal Sindical, nos controles administrativos, é necessário acessar a página principal da
Leia maisIntrodução a Java. Hélder Nunes
Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais
Leia maisTópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres
Tópicos de Ambiente Web Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres Roteiro Motivação Desenvolvimento de um site Etapas no desenvolvimento de software (software:site) Analise
Leia maisIntrodução a listas - Windows SharePoint Services - Microsoft Office Online
Page 1 of 5 Windows SharePoint Services Introdução a listas Ocultar tudo Uma lista é um conjunto de informações que você compartilha com membros da equipe. Por exemplo, você pode criar uma folha de inscrição
Leia mais2 Diagrama de Caso de Uso
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa
Leia maisDesenvolvimento de aplicação web com framework JavaServer Faces e Hibernate
Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Tiago Peres Souza 1, Jaime Willian Dias 1,2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil tiagop_ti@hotmail.com 2 Universidade
Leia maisNa medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.
1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade
Leia maisFERRAMENTA PARA CONSTRUÇÃO DE INTERFACES DE SOFTWARE A PARTIR DE DIAGRAMA DE CLASSES
FERRAMENTA PARA CONSTRUÇÃO DE INTERFACES DE SOFTWARE A PARTIR DE DIAGRAMA DE CLASSES Aluno: André Luis Becker Orientador: Prof. Everaldo Artur Grahl. Mestre Orientador, FURB Roteiro da Apresentação Introdução;
Leia maisHistórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial
1 of 14 27/01/2014 17:33 Sistema de Paginação de Esportes Universitários Documento de Arquitetura de Software Versão 1.0 Histórico da Revisão Data 30 de novembro de 1999 Versão Descrição Autor 1.0 Versão
Leia maisGASweb - Usabilidade Parte 1-3
GASweb - Usabilidade Parte 1-3 Nível Básico Por: Lucas Bruno O GASweb - Application Generator é um produto que oferece aos seus usuários o grande aumento de produtividade. Entretanto, assim como as demais
Leia maisRational Requirements Composer Treinamento aos Analistas de Qualidade e Gestor das Áreas de Projeto
Rational Requirements Composer Treinamento aos Analistas de Qualidade e Gestor das Áreas de Projeto Objetivos do Treinamento Apresentar as principais funcionalidades do Rational Requirements Composer relacionadas
Leia maisPrática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva
1. O que são Serviços Web (Web Services)? Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva A ideia central dos Web Services parte da antiga necessidade
Leia maisUm Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena
Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE
Leia maisFábrica de Software 29/04/2015
Fábrica de Software 29/04/2015 Crise do Software Fábrica de Software Analogias costumam ser usadas para tentar entender melhor algo ou alguma coisa. A idéia é simples: compara-se o conceito que não se
Leia maisRelatório Gerencial. Coordenação de Tecnologia da Informação e Comunicação FUNDEPAG 17/01/2013
2013 Relatório Gerencial Coordenação de Tecnologia da Informação e Comunicação FUNDEPAG 17/01/2013 Sumário 1. Objetivo... 4 2. Seleção dos registros... 4 2.1 Seleção dos executores... 4 2.2 Parâmetros...
Leia maisgerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado
O NetPublisher é um sistema de gerenciamento de portais e websites corporativos (intranets ou extranets), apropriado para pequenas, médias e grandes empresas. O conteúdo do website pode ser atualizado
Leia maisINF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena
INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena Trabalho Experimental Sistema de Gestão Hoteleira 1. Objetivo Este trabalho tem o objetivo de consolidar o conhecimento sobre UML e
Leia maisAnálise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender
Leia maisEm 2012, a Prosoft planejou o lançamento da Versão 5 dos seus produtos.
VERSÃO 5 Outubro/2012 Release Notes Não deixe de atualizar o seu sistema Planejamos a entrega ao longo do exercício de 2012 com mais de 140 melhorias. Mais segurança, agilidade e facilidade de uso, atendendo
Leia maisManual do sistema SMARsa Web
Manual do sistema SMARsa Web Módulo Gestão de atividades RS/OS Requisição de serviço/ordem de serviço 1 Sumário INTRODUÇÃO...3 OBJETIVO...3 Bem-vindo ao sistema SMARsa WEB: Módulo gestão de atividades...4
Leia maisCONTEÚDOS PROGRAMÁTICOS DA ACADEMIA
Página: 1/16 CONTEÚDOS PROGRAMÁTICOS DA ACADEMIA Módulo CBDS (Central de Banco de Dados Senior) A quem se destina: Todos que tiverem a necessidade de administrar os dados da base de dados da Senior Sistemas
Leia maisMAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick
MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento
Leia maisManual Geral do OASIS
Manual Geral do OASIS SISTEMA DE GESTÃO DE DEMANDA, PROJETO E SERVIÇO DE TECNOLOGIA DA INFORMAÇÃO OASIS Introdução Esse manual tem como objetivo auxiliar aos usuários nos procedimentos de execução do sistema
Leia maisGovernança de TI. ITIL v.2&3. parte 1
Governança de TI ITIL v.2&3 parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 1 1 ITIL Gerenciamento de Serviços 2 2 Gerenciamento de Serviços Gerenciamento de Serviços 3 3 Gerenciamento de Serviços
Leia maisAnálise e Projeto Orientados a Objetos Aula IV Requisitos. Prof.: Bruno E. G. Gomes IFRN
Análise e Projeto Orientados a Objetos Aula IV Requisitos Prof.: Bruno E. G. Gomes IFRN 1 Introdução Etapa relacionada a descoberta e descrição das funcionalidades do sistema Parte significativa da fase
Leia maisDocumentação. Programa de Evolução Contínua Versão 1.72
Documentação Programa de Evolução Contínua Versão 1.72 Sumário Resumo das Novidades... 3 Configuração das Novidades... 5 Exibição de variações nas listagens... 5 Novo Sistema de Lista de Desejos... 7 Resumo
Leia maisTRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES
TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES [Observação: O template a seguir é utilizado como roteiro para projeto de sistemas orientado
Leia maisDESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação
DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES Trabalho de Graduação Orientando: Vinicius Stein Dani vsdani@inf.ufsm.br Orientadora: Giliane
Leia maisDOCUMENTAÇÃO DO FRAMEWORK - versão 2.0
DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando
Leia maisHardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)
Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,
Leia maisSistema TrackMaker de Rastreamento e Logística de Transportes. Solução de Despacho Integrada. Manual do Usuário
Sistema TrackMaker de Rastreamento e Logística de Transportes Solução de Despacho Integrada Manual do Usuário Índice Solução de Despacho Integrada... O que é necessário para ter a Solução de Despacho Integrada...
Leia maisPlanejando o aplicativo
Um aplicativo do Visual FoxPro geralmente inclui um ou mais bancos de dados, um programa principal que configura o ambiente de sistema do aplicativo, além de uma interface com os usuários composta por
Leia maisPRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)
RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,
Leia maisProgramação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos
Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton
Leia maisEngenharia de Requisitos Estudo de Caso
Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este
Leia maisFigura 1 - Arquitetura multi-camadas do SIE
Um estudo sobre os aspectos de desenvolvimento e distribuição do SIE Fernando Pires Barbosa¹, Equipe Técnica do SIE¹ ¹Centro de Processamento de Dados, Universidade Federal de Santa Maria fernando.barbosa@cpd.ufsm.br
Leia maisEngenharia de Software III
Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,
Leia maisCONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS
MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MANUAL
Leia mais02/10/2012. Padronização de interfaces. Referências
Referências Engenharia de Usabilidade Prof.: Clarindo Isaías Pereira da Silva e Pádua Contribuição: Cláudio Márcio de Souza Vicente Gestus Hix, D.; Hartson, H. R. Developing User Interfaces: ensuring usability
Leia maisTOTVS BA Guia de Customização Linha Logix
TOTVS BA Guia de Customização Linha Logix Guia de Customização Sumário Título do documento 1. Objetivo... 3 2. Introdução... 3 3. Customização... 3 2 TOTVS BA Linha Logix Guia de Customização Projeto/Versão:
Leia maisFootprints Service Core. Manual de uso do sistema
Footprints Service Core Manual de uso do sistema Sumário Acessando o sistema... 3 Visão geral... 4 Criação de chamados... 5 Acompanhamento de chamados... 7 Compartilhamento de chamados... 8 Notificações...
Leia maisANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.
ANEXO 11 O MATRIZ Para o desenvolvimento de sites, objeto deste edital, a empresa contratada obrigatoriamente utilizará o framework MATRIZ desenvolvido pela PROCERGS e disponibilizado no início do trabalho.
Leia maisConstruindo Sites com. CSS e (X)HTML. sites controlados por folhas de estilo em cascata. Maurício Samy Silva. Novatec
Construindo Sites com CSS e (X)HTML sites controlados por folhas de estilo em cascata Maurício Samy Silva Novatec capítulo 1 Ferramentas básicas de desenvolvimento Este capítulo destina-se aos iniciantes.
Leia maisFerramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider
Ferramenta: Spider-CL Manual do Usuário Versão da Ferramenta: 1.1 www.ufpa.br/spider Histórico de Revisões Data Versão Descrição Autor 14/07/2009 1.0 15/07/2009 1.1 16/07/2009 1.2 20/05/2010 1.3 Preenchimento
Leia maisManual de Utilização do Zimbra
Manual de Utilização do Zimbra Compatível com os principais navegadores web (Firefox, Chrome e Internet Explorer) o Zimbra Webmail é uma suíte completa de ferramentas para gerir e-mails, calendário, tarefas
Leia maisTUTORIAL MRV CORRETOR
TUTORIAL MRV CORRETOR O MRV Corretor é o sistema de vendas da MRV. Nele é possível realizar cadastro de clientes, efetuar reservas, solicitar análise de crédito e consultar tabelas de vendas. OUTUBRO/2012
Leia maisReuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior
Reuso Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reutilização de Software Na maioria das áreas de engenharia de software, sistemas são desenvolvidos
Leia maisGerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com
Gerenciamento de Arquivos e Pastas Professor: Jeferson Machado Cordini jmcordini@hotmail.com Arquivo Todo e qualquer software ou informação gravada em nosso computador será guardada em uma unidade de disco,
Leia maisTabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Leia maisGERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins
GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD Acadêmico: Maicon Klug Orientadora: Joyce Martins Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento do trabalho Conclusão Extensões
Leia maisSmart Laudos 1.9. A Forma Inteligente de Criar seus Laudos Médicos. Manual do Usuário
Smart Laudos 1.9 A Forma Inteligente de Criar seus Laudos Médicos Manual do Usuário Conteúdo 1. O que é o Smart Laudos?... 3 2. Características... 3 3. Instalação... 3 4. Menu do Sistema... 4 5. Configurando
Leia maisEduardo Bezerra. Editora Campus/Elsevier
Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES
Leia maisCapítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Capítulo 11 Conceitos de Orientação a Objetos Objetivos do Capítulo Introduzir os conceitos fundamentais da Programação Orientada a Objetos. Apresentar o significado dos objetos e das classes no contexto
Leia maisLidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado.
, ()! $ Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado. Uma estratégia muito utilizada para organizar visualmente informações numéricas
Leia maisGeração Automática e Assistida de Interfaces de Usuário
Geração Automática e Assistida de Interfaces de Usuário aluno Marcelo Mrack orientador Prof. PhD Álvaro Freitas Moreira co-orientador Prof. D. Marcelo Soares Pimenta - Instituto de
Leia maisLP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br
LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de
Leia maise-ouv Passo-a-passo Sistema de Ouvidorias do Poder Executivo Federal Junho, 2015 Controladoria-Geral da União
e-ouv Passo-a-passo Sistema de Ouvidorias do Poder Executivo Federal Junho, 2015 Sumário 1. Acesso ao sistema... 3 2. Funcionalidades do sistema... 5 3. Como tratar manifestações... 14 3.1 Detalhar...
Leia maisFACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>
FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido
Leia maisINTERNET HOST CONNECTOR
INTERNET HOST CONNECTOR INTERNET HOST CONNECTOR IHC: INTEGRAÇÃO TOTAL COM PRESERVAÇÃO DE INVESTIMENTOS Ao longo das últimas décadas, as organizações investiram milhões de reais em sistemas e aplicativos
Leia maisData Warehouse. Debora Marrach Renata Miwa Tsuruda
Debora Marrach Renata Miwa Tsuruda Agenda Introdução Contexto corporativo Agenda Introdução Contexto corporativo Introdução O conceito de Data Warehouse surgiu da necessidade de integrar dados corporativos
Leia maisCADASTRO DE CLIENTES
CADASTRO DE CLIENTES 1. INTRODUÇÃO No Softpharma há o Cadastro de Convênio, nele estão vinculados os clientes que fazem parte do convênio e podem usufruir dos descontos e demais benefícios negociados entre
Leia maisTutorial WEB CONTENT MANAGEMENT [WCM] Obtenha benefícios a partir das aplicações customizadas da ADMT.
Tutorial WEB CONTENT MANAGEMENT [WCM] Obtenha benefícios a partir das aplicações customizadas da ADMT. PÁGINA: 2 de 21 Nenhuma parte deste documento pode ser utilizado ou reproduzido, em qualquer meio
Leia maisManual SAGe Versão 1.2 (a partir da versão 12.08.01)
Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação
Leia maisGTI2-Tecnologia. <Analisador de logs> Documento Visão. Versão <1.0>
GTI2-Tecnologia Documento Visão Versão Histórico de Revisões Data Versão Descrição Autor 02/06/2014 1.0 Desenvolvimento do documento Visão Eduardo, Fernando, Inácio e Hudson.
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar
Leia maisProjeto de Software Orientado a Objeto
Projeto de Software Orientado a Objeto Ciclo de Vida de Produto de Software (PLC) Analisando um problema e modelando uma solução Prof. Gilberto B. Oliveira Estágios do Ciclo de Vida de Produto de Software
Leia maisConteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo
Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de
Leia maisGrupo Projeção. Portal Acadêmico. - Ambiente do Aluno -
Grupo Projeção Portal Acadêmico - Ambiente do Aluno - Março / 2011 1 Índice Apresentando o Portal Acadêmico: Ambiente do Aluno... 3 Iniciando no ambiente do Aluno... 4 Meu Perfil... 6 Avisos... 6 Processos
Leia maisRoteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)
Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo
Leia maisHistórico da Revisão. Data Versão Descrição Autor
Sistema de Gerenciamento de Loja - SIGEL Documento de Visão Versão 1.0.0 Histórico da Revisão Data Versão Descrição Autor 13/01/2011 0.1 Versão preliminar do levantamento de requisitos funcionais e não
Leia maisCriando uma agenda simples com NetBeans 6.5
Criando uma agenda simples com NetBeans 6.5 (Swing application framework e Beansbinding) Já faz algum tempo que escrevi uma agenda simples usando o Eclipse com o Visual Class Editor. Demorei em torno de
Leia maisGlossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.
Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Versão 1.6 15/08/2013 Visão Resumida Data Criação 15/08/2013 Versão Documento 1.6 Projeto Responsáveis
Leia maisAnálise de Dados do Financeiro
Análise de Dados do Financeiro Introdução Para reunir em um só local as informações de contas a pagar e receber cadastradas e/ou geradas no sistema TTransp existe a interface de análise de dados do financeiro.
Leia maisGerenciamento de Incidentes
Gerenciamento de Incidentes Os usuários do negócio ou os usuários finais solicitam os serviços de Tecnologia da Informação para melhorar a eficiência dos seus próprios processos de negócio, de forma que
Leia maisObjetivo. Este documento tem como objetivo demonstrar o conceito, o processo de instalação e o funcionamento do SITEF (Tef dedicado).
Sitef - Instalação Objetivo Este documento tem como objetivo demonstrar o conceito, o processo de instalação e o funcionamento do SITEF (Tef dedicado). O que é Sitef? O SiTef (ou tef dedicado) é um conjunto
Leia maisUNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas
UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas 4.1 Motivação Sistemas de Informação são usados em diversos níveis dentro de uma organização, apoiando a tomada de decisão; Precisam estar
Leia maisFERRAMENTAS DE COLABORAÇÃO CORPORATIVA
FERRAMENTAS DE COLABORAÇÃO CORPORATIVA Manual de Utilização Google Grupos Sumário (Clique sobre a opção desejada para ir direto à página correspondente) Utilização do Google Grupos Introdução... 3 Página
Leia maisOrientação a Objetos
Orientação a Objetos 1. Sobrecarga (Overloading) Os clientes dos bancos costumam consultar periodicamente informações relativas às suas contas. Geralmente, essas informações são obtidas através de extratos.
Leia maisMANUAL COL MÓDULO DE CADASTRO DE CLIENTES
MANUAL COL MÓDULO DE CADASTRO DE CLIENTES Clientes No cadastro de clientes, insira as informações obtidas sobre todas as pessoas físicas ou jurídicas que compraram seguro através da corretora ou ainda
Leia maisDespachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1
DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 1 Sumário 1 - Instalação Normal do Despachante Express... 3 2 - Instalação do Despachante Express em Rede... 5 3 - Registrando o Despachante Express...
Leia maisAprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.
Omondo EclipseUML Ricardo Rodrigues Lecheta Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte. Introdução Neste tutorial será apresentado
Leia maisANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007
ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007 CURITIBA 2015 2 SUMÁRIO INTRODUÇÃO AO MICROSOFT POWERPOINT 2007... 3 JANELA PRINCIPAL... 3 1 - BOTÃO OFFICE... 4 2 - FERRAMENTAS DE ACESSO
Leia maisSecretaria da Educação do Estado do Rio Grande do Sul. Manual: Sistema de Controle Patrimonial Inventário
Secretaria da Educação do Estado do Rio Grande do Sul Manual: Sistema de Controle Patrimonial Inventário Sumário 1. Introdução... 3 2. Acessar o Controle Patrimonial Web... 4 2.1. Login... 4 3. Inventário...
Leia maisAnálise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem
Leia mais