Geração Automática e Assistida de Interfaces de Usuário

Tamanho: px
Começar a partir da página:

Download "Geração Automática e Assistida de Interfaces de Usuário"

Transcrição

1 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 <Título> - <Subtítulo> Instituto de Informática PPGC Mestrado Universidade Federal do Rio Grande do Sul slide 1 de junho/2008 xx

2 Sumário PARTE 1 1. Introdução 2. Motivação 3. Interfaces de Usuário PARTE 2 4. MBUIDE PARTE 3 5. Merlin 6. Estudo de Caso PARTE 4 7. Conclusões

3 PARTE 1 1. Introdução 2. Motivação 3. Interfaces de Usuário

4 Introdução Contextualização Esta apresentação resume o trabalho de pesquisa realizado durante o Programa de Pós-Graduação em Computação do Instituto de Informática da UFRGS e que teve como ênfase o projeto Merlin, que vem sendo desenvolvido desde 2001 O Merlin é um software para geração automatizada de Interfaces de Usuário (IU) que segue as premissas das MBUIDE, e que tem foco específico no mercado profissional de desenvolvimento de sistemas Objetivos Apresentar o conceito de geração de IU defendido pelas MBUIDE e um panorama geral dessa tecnologia na atualidade Detalhar as bases do projeto Merlin e sua relação com as demais MBUIDE, buscando evidenciar os seus diferenciais Apresentar um pequeno Estudo de Caso, onde o Merlin é utilizado para gerar uma IU de baixa complexidade Mostrar os resultados obtidos até o momento, os pontos em aberto e os direcionamentos da pesquisa

5 Motivação Experiência Profissional A criação de UI, principalmente em sistemas de banco de dados, é uma tarefa repetitiva, cansativa em com baixos índices de reuso Custo Expressivo para a Criação das IU De forma geral, pesquisas demonstram que os custos de criação de IU são significativos, mesmo na atualidade Quanto custa a IU nos sistemas em geral Sistema Completo Interface do Usuário 50% 100% User Interface Software Tools; MEYERS (1994,2002)

6 Interfaces de Usuário Cenário Atual na Criação de IU Escrita de código-fonte Programador escreve código-fonte usando API de um toolkit gráfico Uso de ferramentas WYSIWYG Programador usa o conceito de arrastar e soltar elementos de IU Uso de assistentes de criação Wizards coletam informações do meio do sistema e geram código-fonte Geração Automatizada Templates Esqueletos de código substituíveis otimizam a programação Model Driven Architecture (MDA) Cartuchos de geração transformam modelos abstratos em código

7 Interfaces de Usuário Problemas Recorrentes nas Abordagens Descritas Tempo elevado de construção de estruturas genéricas Quanto custa criar um template realmente genérico? Demora nas alterações Como refatorar artefatos gerados se o código já foi alterado manualmente? Falta de reuso Posso reusar o rótulo Nome do cliente em projetos diferentes? Gerência de código Código template ou não? E a versão? Onde é utilizado? Refatoração E se o template contiver erros?

8 Interfaces de Usuário Tipos de Interfaces de Usuário Uso Geral São interfaces de usuário que não têm relação específica com os dados do sistema, e são orientadas para satisfazer as mais variadas regras de negócio Devido a sua generalidade, a automação de geração dessas IU é reduzida Interfaces CRUD Acrônimo do inglês Create, Retrieve, Update and Delete, são IU destinadas a visualizar e manipular os dados existentes na aplicação Por possuírem uma relação muito forte com os dados do sistema, tendem a ser beneficiadas por recursos de geração automatizada Presentes em 100% dos sistemas que operam sobre banco de dados

9 Interfaces de Usuário Tipos de Interfaces CRUD Um-Para-Um São as IU mais simples, e todos os elementos da IU existem em função de um objeto de dados com propriedades primitivas ou com associações de cardinalidade máxima igual a 1 no destino EXEMPLO: Tela de cadastro de um produto Um-Para-Muitos (Mestre-Detalhes) De média complexidade, os elementos da IU representam objetos de dados com associações de cardinalidade maior que 1 no destino, e exatamente 1 na origem EXEMPLO: Tela de cadastro de uma nota fiscal e seus itens Muitos-Para-Muitos De alta complexidade, representam dados relacionados por estruturas com cardinalidade maior que 1 em ambas extremidades Na prática, durante a implementação, são transformadas em IU Um-Para- Muitos isomórficas EXEMPLO: Tela de cadastro de cursos e disciplinas

10 Interfaces de Usuário Conceito Básico de Geração das IU CRUD Mapeamento de um objeto de dados para uma IU CRUD simples : Funcionario codigo = RH0001 : String nome = Marcelo Mrack : String ativo = true : boolean datadenascimento = 02/10/1977 : Date observacoes = null : String

11 Interfaces de Usuário Foco do Software Proposto 100% das interfaces CRUD elementares com custo zero de configuração 100% das interfaces CRUD com algum trabalho de configuração que tenha melhor custo-benefício do que as abordagens existentes Abrangência da ferramenta Merlin descrita no trabalho Sistema completo 100% IU CRUD em geral 30% 50% CRUD elementar 18% Merlin: Um Novo Horizonte na Criação de Telas de Cadastro; MRACK (2007)

12 4. MBUIDE PARTE 2

13 MBUIDE Model-Based User Interface Development Environment (MBUIDE) São ferramentas que objetivam produzir IU através do uso de modelos declarativos de alto nível Os modelos são processados por um mecanismo de transformação que tem como resultado as IU do sistema São semelhantes à tecnologia MDA, porém: Dão grande ênfase para a geração de IU Valem-se de de processos, linguagens e mecanismos de transformação proprietários Seguem metodologias próprias de trabalho

14 MBUIDE Origens nas Antigas UIMS User Interface Management System (UIMS) Início dos anos 80 Primeira alternativa utilizada para produzir IU sem escrever diretamente código-fonte Características das UIMS Focada no resultado final pela visão do desenvolvedor e sem processos ou metodologias claras de trabalho Sem grande preocupação com integrações ou refatoramento Utilização de linguagens ou sintaxes próprias Uso de diagramas de estados e transições para modelar o diálogo entre o usuário e o sistema Resultados das UIMS Geração dos principais menus do sistema, caixas de diálogo, mensagens simples e invocação de funções pré-determinadas

15 MBUIDE Evolução Grande crescimento entre os anos 80 e 90 Evolução das linguagens e sintaxes de especificação mais ricas Separação de conceitos: Elementos de IU, Tarefas, Dados, etc. Modelos Formam a base das MBUIDE Estruturas declarativas que armazenam aspectos relevantes do sistema a ser gerado e que, em conjunto, podem detalhar todas as informações necessárias para geração de uma aplicação Definidos, os modelos servem como entrada para os mecanismos de geração da MBUIDE que, através de ciclos evolutivos e incrementais, produz as IU do sistema

16 MBUIDE Tipos de Modelos 1. Modelo de Dados Semelhante a um modelo relacional, foca os dados persistentes da aplicação 2. Modelo de Domínio Extende o Modelo de Dados, agregando conceitos semelhantes a OO 3. Modelo de Tarefas Foca as regras de negócio da aplicação e as operações e restrições relacionadas 4. Modelo de Apresentação Dá ênfase para os elementos gráficos da IU Abstract Interface Object (AIO) e Concrete Interface Object (CIO) são suportados 5. Modelo de Diálogo Correlato ao Modelo de Tarefas, focaliza a conversação do usuário com a IU 6. Modelo de Usuário Define aspectos de personalização da IU para determinados usuários ou grupos 7. Modelo de Aplicação Efetua a ligação das IU com o meio externo da aplicação 8. Modelo de Plataforma Variante do Modelo de Aplicação, foca mais detalhes do ambiente operacional 9. Modelo de Contexto Semelhante ao Modelo de Usuário, enfatiza aspectos dependentes do uso do sistema

17 MBUIDE Exemplos de Modelos de MBUIDE Modelos de Apresentação Modelo de Tarefas na TRIDENT TRIDENT (1994) DEFINE INTERACTION-OBJECT ID_Label; WORDING IS "Id."; MNEMONIC IS "I"; PROMPT IS ":"; IS INSTANCE OF Label; IS COMPONENT OF Customer_GroupBox; DEFINE INTERACTION-OBJECT Id_EditBox; MAX-LENGTH IS 6; LINEARITY SIMPLE; IS INSTANCE OF EditBox; IS COMPONENT OF Customer_GroupBox; IS ATTACHED TO Cust_id; Merlin mnemonic=i; Customer String id; BODART, LEHEUREUX e VANDERDONCKT (1994) e MRACK (2007) Insert Login Identification Insert Password Request Patient File Acess and Manage Patient Information >> >> >> Manage Patiente Information Manage Patiente Medical File Visualize Pictures Visualize Patiente Medical File Visualize Text >> Close Session Monitor Real Time Patient Information Modify Patiente Medical File Add Information Adaptado de SOUCHON, LIMBOURG e VANDERDONCK (2002) Delete Information

18 MBUIDE Arquitetura das MBUIDE Arquitetura geral das MBUIDE em relação ao processo de geração da IU (1) TEALLACH e TADEUS (2) TRIDENT e METAGEN (3) MERLIN e MECANO Conjunto de modelos Código principal da aplicação Conjunto de modelos Código principal da aplicação Conjunto de modelos Código principal da aplicação Gerador de códigofonte Gerador de código intermediário Interpretador de tempo de execução Interpretador de tempo de execução Código gerado para um toolkit gráfico específico Subconjunto otimizado dos modelos Biblioteca do toolkit gráfico específico Compilador Biblioteca do toolkit gráfico específico Compilador Biblioteca do toolkit gráfico específico Compilador Aplicação final Aplicação final Aplicação final Adaptado de PINHEIRO (2001)

19 MBUIDE Visão Geral das Arquiteturas das MBUIDE 1. Geradores de código-fonte Aplicação final não possui dependência dos modelos da MBUIDE MBUIDE deve (ou deveria) se preocupar com refatoração de código-fonte Menor flexibilidade à mudanças, usando abordagem uma via Maior desempenho da aplicação final (devido compilação total) 2. Geração de código intermediário Menor dependência dos modelos da MBUIDE Problemas de sincronização duplicados, devido 2 pontos de integração Possível melhor desempenho 3. Geradores de tempo de execução (abordagem do Merlin) Total dependência dos modelos da MBUIDE Prototipação instantânea Praticamente não sofrem problemas de refatoração Possível pior desempenho

20 MBUIDE Processo de Desenvolvimento Processo geral de desenvolvimento de IU usando MBUIDE (notação BPMN) Nova IU Refatoração Criação dos modelos Adição de funcionalidades Geração de versões preliminares Detalhamentos de mais baixo nível Geração da IU ou código-fonte final Ajustes e integração com o restante do sistema Maior Abstração Menor IU Completa

21 MBUIDE Vantagens Padronização e centralização de atividades Trabalhos realizados em mais alto nível Respostas rápidas nos primeiros ciclos de desenvolvimento Problemas Recorrentes Sintaxes e notações complicadas Linguagens e metodologias proprietárias Busca pela generalidade, implicando em modelos demasiadamente complexos e instáveis Reuso de soluções não alcançado com praticidade Fraco suporte à refatoração e evolução dos modelos Desequilíbrio entre a pesquisa e a aplicação de conceitos

22 5. Merlin 6. Estudo de Caso PARTE 3

23 Merlin É uma MBUIDE com Ênfase no Cenário Profissional que: 1. Tem foco específico em interfaces CRUD Na versão corrente suporta CRUD simples, do tipo Um-Para-Um 2. Utiliza uma estrutura única para o armazenamento dos seus modelos Na prática, os modelos são as próprias classes compiladas da aplicação 3. Não gera nenhum tipo de código-fonte A transformação dos modelos em IU ocorre totalmente em tempo de execução 4. Vale-se de heurísticas plugáveis para geração da IU Podendo serem definidas em linguagem nativa ou usando mecanismos externos 5. Utiliza um conjunto realimentado de configurações Inferência de comportamento com base em informações históricas e taxas de acerto 6. É neutra em relação a pacote gráfico e ambiente de uso Web, desktop ou dispositivos móveis podem ser alcançados 7. Possui uma arquitetura focada em reuso e integração de tecnologias Baseada na plataforma Java, inúmeras tecnologias correlatas podem ser acopladas

24 Merlin Origens Projeto Metagen na UNISC Iniciado em 2001, era uma MBUIDE rudimentar Gerava interfaces CRUD Um-Para-Um e Um-Para-Muitos Foi utilizado com sucesso em sistemas profissionais de médio porte Ênfase no Modelo de Dados Utilizava código intermediário para os modelos Carências do Metagen Linguagem VB, Delphi e Kylix Sem suporte Web, não era multi-plataforma e não permitia distribuição Sem definição clara de modelos Orientação a Objetos não era utilizada Pouca preocupação com padrões e tecnologias de mercado Reuso baseado em cópia e ajustes de configuração Layout de IU sem grande flexibilidade

25 Merlin Típica Interface CRUD Gerada pelo Metagen (2003) Interface CRUD Um-Para-Um de média complexidade gerada pelo Metagen Layout essencialmente tabular Operações CRUD essenciais Dependências de preenchimento Agrupamentos simples Máscaras e tamanhos Ligação básica de funções de negócio

26 Merlin Iniciado em 2004, é a Continuação do Projeto Metagen Uso da linguagem Java Franco crescimento Suporte Web, Desktop, multi-plataforma Orientação a Objetos Separação de conceitos Modelos claros Modelo de Domínio Modelo de Tarefas Modelo de Apresentação, com suporte AIO e CIO Modelo de Diálogo Modelo de Usuário Pouca aderência dos outros modelos devido uso da Java Flexibilidade total no layout da IU Foco em reuso de configurações e integração de tecnologias Geração da IU totalmente em tempo de execução

27 Merlin Características Modelos O Merlin utiliza 5 tipos de modelos para geração das IU, todos orbitando sobre o Modelo de Domínio Descritos através da própria linguagem Java, com o recurso conhecido como Metadata Facility, ou simplesmente Anotações (JSR 175) Os modelos nada mais são do que as classes da aplicação (com ênfase nas de persistência) enriquecidas com Anotações, as quais: São definidas pelo próprio Merlin Podem ser reutilizadas de outros frameworks de mercado Podem ser criadas pelo próprio programador Como os modelos são as classes da aplicação e como as Anotações associadas são preservadas após a compilação do sistema, o Merlin não exige estruturas externas para armazenamento de configurações

28 Merlin Características Modelos no Merlin, um exemplo Uma classe de persistência utilizada como base de um conjunto de modelos Cadastro de Cliente Pessoa Física ) 2 class Cliente extends Pessoa implements IPessoaFisica { 4 event={ focuslost }, 5 action={ habilitarcartao } 6 condition={ length>0 }) 7 float salario; 9 boolean 40 ) foreground=color.blue ) nome ) 13 String ; UF ) 15 Estado estado; 17 Cidade cidade; 18 }

29 Merlin Características Modelos no Merlin, um exemplo Uma classe de persistência utilizada como base de um conjunto de modelos Cadastro de Cliente Pessoa Física ) 2 class Cliente extends Pessoa implements IPessoaFisica { 4 event={ focuslost }, 5 action={ habilitarcartao } 6 condition={ length>0 }) 7 float salario; 9 boolean 40 ) foreground=color.blue ) nome ) 13 String ; UF ) 15 Estado estado; 17 Cidade cidade; 18 }

30 Merlin Características Arquitetura Estrutura geral de funcionamento do software Merlin Histórico Modelos Classes da Aplicação Anotações Estimativas Heurísticas Resolvedores Interpretador de Tempo de Execução IU Gerada Meio Externo AIO CIO Toolkit Gráfico Aplicação final

31 Merlin Características Processo de desenvolvimento Desenvolvimento de IU utilizando o software Merlin Legenda IDE 1 Aplicação 7 1 Programador usa IDE 2 Programador cria classes 3 Programador insere anotações 4 Programador compila sistema 5 Merlin interpreta modelos 2 Tempo de projeto Tempo de execução 6 IU gerada pelo Merlin 7 Usuáirio utiliza o sistema final

32 Merlin Funcionalidades Heurísticas plugáveis Nada mais são do que algoritmos que transformam as informações dos modelos nas características desejadas para a IU Escritos em linguagem Java, Groovy, BeanShell ou delegados a mecanismos externos JBoss Drools é uma máquina de processamento de regras de produção (um Sistema Especialista) que pode ser usado para inferir resultados com base nas classes anotadas do sistema (modelos). A estrutura do Merlin permite integrações desse tipo, seja com delegação total, ou com um sistema híbrido de resolução de informações de geração

33 Merlin Funcionalidades Heurísticas plugáveis, um exemplo Implementando uma heurística simples em código Java Uma nova anotação Capitalized {} Um resolvedor simples em código Groovy instrumentado + class CapitalizedResolver extends AbstractResolver { Uma classe decorada class Cliente String nome; } } void resolve(object source, Object destination) { if (source.contains(annotation)) { set( destination.text, StringUtil.capitalize(destination)) }

34 Merlin Funcionalidades Layout customizável Por heurísticas Regras de usabilidade são aplicadas nos algoritmos internos Novas heurísticas podem ser criadas Por anotações Por design manual

35 Merlin Funcionalidades Layout customizado por anotações (um elemento de IU) 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; }

36 Merlin Funcionalidades Layout customizado por anotações (uma IU inteira) 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 Nome A classe de dados class Cliente observacoes ) String nome; float salario; String observacoes; }

37 Merlin Diferenciais Similaridades e sinônimos Utilizando similaridades e sinônimos para geração da IU Modelo de Domínio A class Cliente String observacao; } Modelo de Domínio B class Produto { String observacoes; } Observação Obs Cliente Observações Nota Fiscal Sinônimo Produto Similar Modelo de Domínio C class NotaFiscal { String obs; }

38 Merlin Diferenciais Integração com ferramentas (plugins) Edição Textual Assistida é uma tendência de mercado Parsing de expressões e captura de erros Preenchimento automático de informações Navegação entre modelos Code folding (Dobras de código no editor de texto) Assistência de edição de modelos no Eclipse IDE { focoslost } The event focoslost cannot be recognized. Available events are: focuslost focusgain see others...

39 Merlin Diferenciais API enxuta, dois métodos essenciais para o programador getinstance(toolkit) Obtém uma instância do gerador para o toolkit gráfico desejado createiu(objeto, params) Retorna uma IU CRUD completa Integração com tecnologias Java, Groovy, BeanShell Java Annotations Object Constraint Language (OCL) e Expression Language (EL) Web Beans, Seam, EJB, WebServices Hibernate, JPA, Beans Binding, Bean Validation, Hibernate Validator Toolkits Gráficos: Swing (JSF, GWT, SWT) Eclipse IDE

40 Merlin Diferenciais Configuração realimentada Durante o uso, o mecanismo interpretador agrega informações de classes de sistemas já desenvolvidos, e com base nessas informações históricas, infere novos valores de geração Na eventualidade de uma ação do gerador for inadequada, o programador utiliza a premissa de Configuração por Exceção e insere uma anotação com o comportamento desejado Essas novas informações entram para o sistema de histórico que, com base em taxas de acertos e erros, adequa-se ao ambiente de desenvolvimento Configuração distribuída Diversos sistemas podem ser interconectados, de forma que as informações de geração propaguem-se entre eles Bases de informações podem ser formadas e compartilhadas, maximizando o poder de geração

41 Merlin Diferenciais Configuração realimentada Implementando o mecanismo de histórico em servidores de aplicação através da navegação entre os classloaders do container Classloaders em um servidor de aplicação Root LIBs classes C 1 S 1 C 2 S 2 classes classes Legenda Root = Bootstrap classloader LIB = Pacote de classes C = Classloader S = Sistema C n S n classes

42 Merlin Diferenciais Configuração realimentada Implementando o mecanismo de histórico em servidores de aplicação através da navegação entre os classloaders do container Classloaders em um servidor de aplicação Root LIBs classes C 1 S 1 classes C 2 S 2 classes Histórico C n S n classes

43 Merlin Diferenciais Configuração distribuída Como pode ser implementada a distruição da configuração entre diversos sistemas Uma base federada distribuída de configurações Federação 1 Federação 2 Grupo 1 S 1 S 2 S 3 Grupo 2 S 1 S 2 S 3 Grupo 3 S 1 S 2 S 3

44 Estudo de Caso Geração de uma Interface CRUD simples 1. Definir um conjunto de classes, que é a base do Modelo de Domínio 2. Gerar uma Interface CRUD para esse Modelo de Domínio 3. Refatorar o sistema, inserindo anotações sobre as classes, as quais vão evoluir o Modelo de Domínio e formar os outros modelos 4. Efetuar uma nova geração da IU CRUD e comparar os resultados

45 Estudo de Caso 1. Criando uma classe simples Criar código-fonte da classe-base de geração (Modelo de Domínio) Uma classe simples, base do Modelo de Domínio public class Cliente { String nome; String sexo; Date datadenascimento; String descricao; String observacoes; boolean ativo; boolean vip; String ; }

46 Estudo de Caso 2. Gerar a Interface CRUD Passo 1 Código da aplicação principal Código-fonte da aplicação principal public class TesteMerlin { public static void main(string[] s) { IMerlin m = Merlin.getInstance(SWING); JPanel crud = (JPanel) m.createiu(new Cliente()); JFrame frame = new Frame( TesteMerlin ); frame.add(crud,center); frame.setvisible(true); } }' Passo 1

47 Estudo de Caso 2. Gerar a Interface CRUD Passo 2 Resultado da geração da IU Interface CRUD simples resultante Painel de mensagens Adequação de textos Correção ortográfica Layout tabular TesteMerlin Controles de IU por tipo de dado Heurísticas de tamanho Não gerado pela ferramenta Passo 2

48 Estudo de Caso 3. Refatorar e Evoluir o Sistema Adicionando a enumeração Sexo e evoluindo a classe Pessoa Novas classes, anotações e regras de negócio (classes Sexo e Pessoa) public enum Sexo { NAO_DECLARADO, MASCULINO, FEMININO } public class Pessoa = { "focuslost" }, action = { "propose " String nome = "marcelo"; public Sexo sexo = = { "foreground=color.blue" }, binder = DateToTextComponentBinder.class) Date datadenascimento = new Date( ,9,02); }

49 Estudo de Caso 3. Refatorar e Evoluir o Sistema Evoluindo a classe Cliente Novas classes, anotações e regras de negócio (classe Cliente) 1 2 de Clientes") public class Cliente extends Pessoa { = { "focuslost" },action = { "ispreferencial" }) (R$)") int salario; = "observacoes") String = { "selected=true" }) 8 String observacoes; [:alnum:]") } = { "selected=true;" }) boolean = JTextField.class, binder = boolean vip = String ;

50 Estudo de Caso 3. Refatorar e Evoluir o Sistema Adicionando a classe AlgumasRegras Novas classes, anotações e regras de negócio (classe AlgumasRegras) public class AlgumasRegras { Context ctx; public void ispreferencial() { ctx.eval("$vip.text=$salario.text>1500? 'SIM':'NÃO'"); } public void propose () { ctx.eval("$ .text=$nome.text.trim+'@merlin.com'"); }

51 Estudo de Caso 4. Efetuar uma nova geração Essas alterações poderiam ter sido feitas com o sistema em execução Interface CRUD simples resultante após as refatorações e melhorias Painel de mensagens preenchidas TesteMerlin Campos obrigatórios em destaque Campo Ativo é o primeiro da tela Preenchimento pela regra associada Formatação de data customizada Campo Observações agora é CheckBox Tipo multivalorado Rótulo customizado e regra de negócio Campo booleano com formatação especial e regra de negócio aplicada Desabilitado devido dependência

52 Estudo de Caso 4. Efetuar uma nova geração Comparando as duas IU Interfaces CRUD antes (esquerda) e depois (direita) da evolução do sistema TesteMerlin TesteMerlin

53 7. Conclusões PARTE 4

54 Conclusões Este Trabalho Apresentou Interfaces de Usuário Um panorama sobre os custos de criação das IU em sistemas, principalmente as que operam sobre banco de dados Uma divisão simplista das IU, com ênfase nas CRUD, objeto do trabalho As tecnologias comumente utilizadas para criar esses tipos de IU Os problemas recorrentes nas abordagens comumente utilizadas Tecnologia MBUIDE Origem e proposta das MBUIDE Elementos básicos das MBUIDE, como seus modelos e geradores integrados Distinção entre os tipos de modelos suportados pelas MBUIDE Arquitetura geral e processo de desenvolvimento de IU nessa tecnologia Problemas recorrentes nas MBUIDE

55 Conclusões Este Trabalho Apresentou Projeto Merlin, uma nova proposta nas área das MBUIDE Origens do projeto e objetivos Caraterísticas gerais, arquitetura e processo de desenvolvimento de IU Funcionalidades adicionais frente outras MBUIDE Similaridades e sinônimos Heurísticas plugáveis descritas em linguagem comum ao programador Capacidades de integração com ferramentas e tecnologias correlatas Mecanismo de configurações realimentado e distribuído como diferencial

56 Conclusões Problemas em Aberto Suporte CRUD Um-Para-Muitos e Muitos-Para-Muitos Finalizar suporte à OCL e EL Maximizar algoritmos de layout integrados Atualmente, somente o layout tabular é suportado Implementar suporte para outros pacotes gráficos além do Swing Desenvolver plugins para integração com ferramentas Trabalhos Futuros Sistema de configuração realimentada Gerência de propagação, segurança, estimativas e outros Possível trabalho de doutorado

57 Agradecimentos CAPES Pela bolsa de estudos durante o período da pesquisa Orientadores Pela dedicação, paciência, disponibilidade e sinceridade nas opiniões UFRGS Pelos espaços de estudo, biblioteca e laboratórios Medicina Hospital de Clínicas de Curitiba e Cristo Redentor de Porto Alegre Pelo tratamento durante os longos 8 anos de quimioterapia Hospital Amaral Carvalho de Jaú SP Pelo excelente trabalho e acompanhamento no meu transplante de medula Doador de Medula Óssea A quem devo a vida

58 Fim Geração Automática e Assistida de Interfaces de Usuário Marcelo Mrack <Título> - <Subtítulo> slide 58 de xx

59 Sobre o autor Marcelo Mrack, mmrack@gmail.com 30 anos, 9 em TI, 6 em Java Bacharel em C. Computação, UNISC 2001 Mestre em C. Computação, UFRGS 2008 Atuação em projetos web e desktop n camadas Diretor de P&D na 3Layer Tecnologia Arquiteto JBoss na LM2 Consultor e instrutor Java EE Especialidades: IHC, Patterns, geradores, PU Ágil e UML

www.3layer.com.br www.3layer.com.br Merlin Um Novo Horizonte na Criação das Telas de Cadastro

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 mais

www.3layer.com.br www.3layer.com.br Merlin The First Runtime GUI Generator

www.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 mais

Merlin. Um Novo Horizonte na Criação das Telas de Cadastro

Merlin. Um Novo Horizonte na Criação das Telas de Cadastro 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. http://, 2007. CONTEÚDO: Apresentação criada

Leia mais

Fábrica de Software 29/04/2015

Fá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 mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 10 Persistência de Dados

Leia mais

USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE

USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE SUMÁRIO usando o izcode... 1 para gerar software rapidamente... 1 introdução... 2 o que é o izcode?... 2 Como funciona o izcode?... 2 os tipos diferentes

Leia mais

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID Maik Olher CHAVES 1 ; Daniela Costa Terra 2. 1 Graduado no curso de Tecnologia em Análise e Desenvolvimento de Sistemas

Leia mais

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Ferramenta de apoio a gerência de configuração de software Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Gerência de Configuração

Leia mais

Orientação a Objetos

Orientaçã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 mais

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

Conteú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 mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

Documento de Arquitetura

Documento de Arquitetura Documento de Arquitetura A2MEPonto - SISTEMA DE PONTO ELETRÔNICO A2MEPonto - SISTEMA DE PONTO ELETRÔNICO #1 Pág. 1 de 11 HISTÓRICO DE REVISÕES Data Versão Descrição Autor 28/10/2010 1 Elaboração do documento

Leia mais

MAGREGISTER 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 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 mais

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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Prá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 mais

Análise e Projeto Orientados por Objetos

Aná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 mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

GERADOR 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 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 mais

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2009 Profa. Dra. Itana Gimenes RUP: Artefatos de projeto Modelo de Projeto: Use-Case Realization-projeto

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na 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 mais

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Juarez Bachmann Orientador: Alexander Roberto Valdameri Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

Leia mais

Padrão Arquitetura em Camadas

Padrão Arquitetura em Camadas Padrão Arquitetura em Camadas Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Definição Estimula a organização

Leia mais

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

Qualidade de Software

Qualidade de Software Qualidade de Software O software é algo abstrato, pois são as instruções que quando executadas atingem o propósito desejado no sistema computacional. (Algoritmo). As principais características são: Complexidade:

Leia mais

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge. Projeto Demoiselle Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.net Palestrantes: Antônio Carlos Tiboni Luciana Campos Mota 20/07/2009

Leia mais

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS Pablo dos Santos Alves Alexander Roberto Valdameri - Orientador Roteiro da apresentação Introdução Objetivos Motivação Revisão bibliográfica

Leia mais

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44 Armazenando Dados em Aplicações Java Parte 2 de 3: Apresentando as opções Hua Lin Chang Costa, hualin@cos.ufrj.br, COPPE/UFRJ. Leonardo Gresta Paulino Murta, leomurta@ic.uff.br, IC/UFF. Vanessa Braganholo,

Leia mais

Figura 1 - Arquitetura multi-camadas do SIE

Figura 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 mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Ambiente Web É o ambiente formado

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 6 EJB Enterprise Java

Leia mais

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

DESENVOLVIMENTO 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 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 mais

CURSO DESENVOLVEDOR JAVA Edição 2010

CURSO DESENVOLVEDOR JAVA Edição 2010 CURSO DESENVOLVEDOR JAVA Edição 2010 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos e com o uso

Leia mais

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária Cascavel Novembro de 2009 Pedro Patitucci Finamore Daniel Bordignon Cassanelli Marco Antonio da Rosa DIAGRAMAS DE CLASSE E SEQUÊNCIA

Leia mais

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores

Leia mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Ambiente Web É o ambiente

Leia mais

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem Luiz Cláudio Hogrefe Orientador: Prof. Roberto Heinzle, Doutor Roteiro Introdução Fundamentação teórica

Leia mais

Semântica para Sharepoint. Busca semântica utilizando ontologias

Semântica para Sharepoint. Busca semântica utilizando ontologias Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...

Leia mais

EMENTA DO CURSO. Tópicos:

EMENTA DO CURSO. Tópicos: EMENTA DO CURSO O Curso Preparatório para a Certificação Oracle Certified Professional, Java SE 6 Programmer (Java Básico) será dividido em 2 módulos e deverá ter os seguintes objetivos e conter os seguintes

Leia mais

Aplicativo para elaboração de questionários, coleta de respostas e análise de dados na área da saúde em dispositivos móveis

Aplicativo para elaboração de questionários, coleta de respostas e análise de dados na área da saúde em dispositivos móveis Aplicativo para elaboração de questionários, coleta de respostas e análise de dados na área da saúde em dispositivos móveis Visão Versão Histórico da Revisão Data Versão Descrição Autor 24/06/12

Leia mais

Planejando o aplicativo

Planejando 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 mais

MBA Inteligência Competitiva Com ênfase em BI/CPM. Metadados

MBA Inteligência Competitiva Com ênfase em BI/CPM. Metadados MBA Inteligência Competitiva BI/CPM 1 Data Warehousing PÓS-GRADUAÇÃO MBA Inteligência Competitiva Com ênfase em BI/CPM Metadados Andréa Cristina Montefusco (36927) Hermes Abreu Mattos (36768) Robson Pereira

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Software Livre e GIS: Quais são as alternativas?

Software Livre e GIS: Quais são as alternativas? Software Livre e GIS: Quais são as alternativas? Tiago Eugenio de Melo tiago@comunidadesol.org 1 Sumário Conceitos GIS e Software Livre Ferramentas: Thuban Qgis Jump MapServer O Futuro das Tecnologias

Leia mais

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

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 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 mais

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

Conteú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 mais

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma

Leia mais

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1. ARCO - Associação Recreativa dos Correios Sistema para Gerenciamento de Associações Recreativas Versão Histórico da Revisão Data Versão Descrição Autor Página

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Feature-Driven Development

Feature-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 mais

CURSO DESENVOLVEDOR JAVA Edição 2009

CURSO DESENVOLVEDOR JAVA Edição 2009 CURSO DESENVOLVEDOR JAVA Edição 2009 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos e com o uso

Leia mais

Prototipação de Software

Prototipação de Software UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Prototipação de Software Engenharia de Software 2o. Semestre de 2005

Leia mais

Cenário atual de uso e das ferramentas de software livre em Geoprocessamento

Cenário atual de uso e das ferramentas de software livre em Geoprocessamento Cenário atual de uso e das ferramentas de software livre em Geoprocessamento Tiago Eugenio de Melo tiago@comunidadesol.org 1 Sumário Conceitos GIS e Software Livre Ferramentas: Jump Qgis Thuban MapServer

Leia mais

Modernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br

Modernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br Modernização e Evolução do Acervo de Software Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br Tópicos 1. Estudo Amplo sobre Modernização 2. Visão IBM Enterprise Modernization 3. Discussão - Aplicação

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO 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 mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

Integração Contínua com Rational Team Concert, Jenkins e SonarQube

Integração Contínua com Rational Team Concert, Jenkins e SonarQube Integração Contínua com Rational Team Concert, Jenkins e SonarQube Agenda 1. Introdução à Integração Contínua 2. Ferramentas 3. Solução de Integração Contínua em Furnas 4. Demonstração O que é a Integração

Leia mais

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

UNIDADE 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 mais

Criando uma agenda simples com NetBeans 6.5

Criando 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 mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

Lista 3 Exercícios de Gestão de Redes

Lista 3 Exercícios de Gestão de Redes 1. Quais os fatores que contribuem para o sucesso de uma operação de gerenciamento? O sucesso de uma operação de Gerenciamento depende dos seguintes fatores: O sistema de gerenciamento invocador deve ter

Leia mais

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

Leia mais

Questionário. A ferramenta auxilia na alocação de Não (0) x x x. Satisfatório (5) complexidade de um caso de uso? de uso (72) Sim (10)

Questionário. A ferramenta auxilia na alocação de Não (0) x x x. Satisfatório (5) complexidade de um caso de uso? de uso (72) Sim (10) Questionário Nível Avaliado Gerador de plano de teste Gerador de dados Função/característica do produto Gestão dos dados do plano de teste (51) Perguntas Pontuação Selenium BadBoy Canoo A ferramenta auilia

Leia mais

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com ANÁLISE E PROJETO ORIENTADO A OBJETOS Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Análise Descrição do problema a ser implementado Descrição dos objetos e classes que fazem parte do problema, Descrição

Leia mais

1/26/2009. Baseadas em http://www.voelter.de/services/mdsdtutorial.html. Experiência pessoal/profissional/acadêmica

1/26/2009. Baseadas em http://www.voelter.de/services/mdsdtutorial.html. Experiência pessoal/profissional/acadêmica Baseadas em http://www.voelter.de/services/mdsdtutorial.html Experiência pessoal/profissional/acadêmica 1 Metamodelo UML Meu Metamodelo Meu processo de negócios Meu processo de negócios Stereotypes Perfis

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo 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 mais

ERP Enterprise Resource Planning

ERP Enterprise Resource Planning ERP Enterprise Resource Planning Sistemas Integrados de Gestão Evolução dos SI s CRM OPERACIONAL TÁTICO OPERACIONAL ESTRATÉGICO TÁTICO ESTRATÉGICO OPERACIONAL TÁTICO ESTRATÉGICO SIT SIG SAE SAD ES EIS

Leia mais

Módulo 4: Gerenciamento de Dados

Módulo 4: Gerenciamento de Dados Módulo 4: Gerenciamento de Dados 1 1. CONCEITOS Os dados são um recurso organizacional decisivo que precisa ser administrado como outros importantes ativos das empresas. A maioria das organizações não

Leia mais

Professor: Douglas Sousa Cursos de Computação

Professor: Douglas Sousa Cursos de Computação Linguagem de Programação C# Professor: Douglas Sousa Cursos de Computação Agenda Conceitos Básicos; Principais Características; Visual Studio; Meu Primeiro Programa; A Linguagem C#; Sistemas de Tipos;

Leia mais

Núvem Pública, Privada ou Híbrida, qual adotar?

Núvem Pública, Privada ou Híbrida, qual adotar? Instituto de Educação Tecnológica Pós-graduação Gestão e Tecnologia da Informação - Turma 25 03/04/2015 Núvem Pública, Privada ou Híbrida, qual adotar? Paulo Fernando Martins Kreppel Analista de Sistemas

Leia mais

PROJETO PEDAGÓGICO DE CURSOS

PROJETO PEDAGÓGICO DE CURSOS 1 de 6 PROJETO PEDAGÓGICO DE CURSOS BURITREINAMENTOS MANAUS-AM MARÇO / 2015 2 de 6 PACOTES DE TREINAMENTOS BURITECH A Buritech desenvolveu um grupo de pacotes de treinamentos, aqui chamados de BuriPacks,

Leia mais

Introdução. Hardware X Software. Corpo Humano Parte Física. Capacidade de utilizar o corpo em atividades especificas explorando seus componentes

Introdução. Hardware X Software. Corpo Humano Parte Física. Capacidade de utilizar o corpo em atividades especificas explorando seus componentes Introdução Hardware X Software Corpo Humano Parte Física Componentes 18 Capacidade de utilizar o corpo em atividades especificas explorando seus componentes Hardware Introdução Parte física: placas, periféricos,

Leia mais

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software Análise e Projeto de Sistemas Análise e Projeto de Sistemas Contextualização ENGENHARIA DE SOFTWARE ANÁLISE E PROJETO DE SISTEMAS ENGENHARIA DA INFORMAÇÃO Perspectiva Histórica Engenharia de Software 1940:

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Engenharia de Software Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 9 Mapeamento em JPA Introdução O mapeamento objeto-relacional

Leia mais

enbsp - NBioBSP NITGEN Biometric Service Provider SDK Manual do Desenvolvedor SDK version 4.xx

enbsp - NBioBSP NITGEN Biometric Service Provider SDK Manual do Desenvolvedor SDK version 4.xx Índice: CAPÍTULO 1. INTRODUÇÃO... 3 Módulo NBioBSP COM... 3 Módulo NBioBSP Class Library... 3 Módulo Data Conversion... 3 Módulo Image Conversion... 3 1.1 CARACTERÍSTICAS... 4 Interface Gráfica para o

Leia mais

ARQUITETURA DO SISTEMA ERP PEGASUS

ARQUITETURA DO SISTEMA ERP PEGASUS ARQUITETURA DO SISTEMA ERP PEGASUS Elaborado por: Bruno Duarte Nogueira Arquiteto de Software Data: 05/03/2012 1 Sumário 1. Introdução... 3 2. Tecnologias... 3 2.1. Web Tier... 3 2.1.1. Facelets 1.1.14...

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso 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 mais

Arquitetura de Banco de Dados

Arquitetura de Banco de Dados Arquitetura de Banco de Dados Daniela Barreiro Claro MAT A60 DCC/IM/UFBA Arquitetura de Banco de dados Final de 1972, ANSI/X3/SPARC estabeleceram o relatório final do STUDY GROUP Objetivos do Study Group

Leia mais

FERRAMENTA 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 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 mais

Aula 2. Programa. Arquitectura da camada de interface.! Programação Web - 1! Engenharia de Aplicações Sistemas Interactivos 2010/11!

Aula 2. Programa. Arquitectura da camada de interface.! Programação Web - 1! Engenharia de Aplicações Sistemas Interactivos 2010/11! Aula 2 Arquitectura da camada de interface.! Programação Web - 1! Mestrado em Engenharia Informática Universidade do Minho! 44! Programa Métodos! &! Tecnologias!! Conceitos de IHC!! Programação web client

Leia mais

NetBeans. Conhecendo um pouco da IDE

NetBeans. Conhecendo um pouco da IDE NetBeans Conhecendo um pouco da IDE Professor: Edwar Saliba Júnior Sumário Apresentação:...1 Criando Um Novo Projeto de Software:...1 Depurando Um Código-fonte:...4 Entendendo o Código-fonte:...7 Dica

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (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 mais

Um Ambiente Gráfico para Desenvolvimento de Software de Controle para Robôs Móveis Utilizando Simulação 3D

Um Ambiente Gráfico para Desenvolvimento de Software de Controle para Robôs Móveis Utilizando Simulação 3D Um Ambiente Gráfico para Desenvolvimento de Software de Controle para Robôs Móveis Utilizando Simulação 3D Cardoso Marchezi e Hans-Jorg Andreas Schneebeli VIII Simpósio Brasileiro de Automação Inteligente

Leia mais

Powerlogic Agosto / 2011.

Powerlogic Agosto / 2011. Formação de Profissionais para Desenvolvimento Java EE/Web 2.0 Orientações para capacitação de mão de obra especializada para atividades de Especificação, Arquitetura e Implementação de Aplicações Java

Leia mais

Sistema de Recursos Humanos

Sistema de Recursos Humanos Sistema de Recursos Humanos Projeto 1 O objetivo desse sistema é gerenciar a admissão e a demissão de funcionários. Esse funcionário pode ou não ter dependentes. Esse funcionário está alocado em um departamento

Leia mais

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico Fundamentos de Java Prof. Marcelo Cohen 1. Histórico 1990 linguagem Oak; desenvolvimento de software embutido para eletrodomésticos S.O. para o controle de uma rede de eletrodomésticos o surgimento da

Leia mais

Demoiselle Framework. Palestrante: Flávio Gomes da Silva Lisboa JUN/2009

Demoiselle Framework. Palestrante: Flávio Gomes da Silva Lisboa JUN/2009 Demoiselle Framework Palestrante: Flávio Gomes da Silva Lisboa JUN/2009 Sumário Introdução Desenvolvimento de TI para Governo Elementos de Decisão Estratégia para a área de tecnologia Diretivas da Arquitetura

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

Prototype, um Design Patterns de Criação

Prototype, um Design Patterns de Criação Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe

Leia mais

1. Apresentação. 1.1. Objetivos

1. Apresentação. 1.1. Objetivos 1.1. Objetivos 1. Apresentação Neste capítulo estão descritos os objetivos gerais do livro, os requisitos desejáveis do estudante para que possa utilizá-lo eficientemente, e os recursos necessários em

Leia mais

Aula 1 Acesso a Banco de Dados

Aula 1 Acesso a Banco de Dados Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados Prof. Josenildo Silva jcsilva@ifma.edu.br Introdução O JDBC (Java Database Connectivity) foi criado com o intuito de fornecer aos programadores

Leia mais

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9 Laboratório de Computação VI JAVA IDL Fabricio Aparecido Breve - 981648-9 O que é Java IDL? Java IDL é uma tecnologia para objetos distribuídos, ou seja, objetos em diferentes plataformas interagindo através

Leia mais

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

Model-Driven Engineering Geração de modelos de software e especificações usando a plataforma IBM Model-Driven Engineering Geração de modelos de software e especificações usando a plataforma IBM Luiz Esmiralha IBM Eduardo Chiote IBM Quem somos Luiz Esmiralha Arquiteto de Aplicações / IBM 15 anos exp.

Leia mais

Anexo I Formulário para Proposta

Anexo I Formulário para Proposta PLATAFORMA CGI.br Solicitação de Propostas SP Anexo I Formulário para Proposta Data: 05/07/2013 Versão: 1.1 Plataforma CGI.br Solicitação de Propostas - SP Anexo I Formulário para Proposta 1. Estrutura

Leia mais

Professor: Curso: Disciplina:

Professor: Curso: Disciplina: Professor: Curso: Disciplina: Aula 1 Turma: Esp. Marcos Morais de Sousa Sistemas de informação Engenharia de Software I Dinâmica da disciplina, plano de curso e avaliação 03º semestre Prof. Esp. Marcos

Leia mais