Drools Desacoplando as regras de negócio do código da aplicação. Raphael Duarte Paiva

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

Download "Drools Desacoplando as regras de negócio do código da aplicação. Raphael Duarte Paiva"

Transcrição

1 Drools Desacoplando as regras de negócio do código da aplicação Raphael Duarte Paiva

2 Agenda Motivação Alguns Problemas Acoplamento Dificuldade de acesso O Motor de Regras Como Funciona? Alguns Conceitos Componentes principais Definindo Regras Drools Rule Language Domain Specific Languages Processos Guvnor (BRMS)

3 Motivação Alguns Problemas

4 Alguns Problemas Acoplamento das regras de negócio com o código do sistema.

5 Alguns Problemas Dificuldade de acesso pelos analistas de negócio às regras que foram implementadas, compromentendo a comparação da regra descrita pelo analista com a regra que foi implementada no sistema.

6 Alguns Problemas Acoplamento

7 Acoplamento

8 Acoplamento Vantagens das regras Regras rodam em uma camada acima do código nativo da aplicação. Podem ser expressas em uma linguagem diferente, mais natural. São compiladas para uma linguagem cujo o motor de regras interpreta. Conseqüentemente, um build da aplicação para mudança de regras faz-se desnecessário, aumentando o uptime e contribuindo para uma maior qualidade do serviço.

9 Alguns Problemas Dificuldade de Acesso

10 Dificuldade de acesso Um desenvolvedor pode claramente expressar o que o código abaixo significa public void checamaiordeidade(aluno aluno) { Date datanascimento = aluno.getpessoafisica().getpessoa().getdatanascimento(); if (subtrairdata(new Date(), datanascimento) < IDADE_MINIMA) { aluno.getmatricula().invalidar(); } else { aluno.getmatricula().validaridade(); } } Para um analista de negócios que, normalmente, nunca teve alguma experiência com desenvolvimento, ler tal pedaço de código seria uma tarefa difícil.

11 Dificuldade de acesso E se regras pudessem ser escritas do seguinte modo? regra "Aluno deve ser maior de idade" quando O aluno em questão possui - idade menor que idade mínima então invalidar matrícula fim Drools permite que regras de negócio possam ser escritas neste modo, para depois serem compiladas e executadas por seu motor de inferência.

12 Dificuldade de acesso Vantagens Linguagem muito próxima à linguagem natural Facilidade de manutenção e leitura. Introduz a possibilidade do próprio analista de negócios realizar a autoria e manutenção das regras, sabendo exatamente como serão interpretadas pelo sistema.

13 Dificuldade de acesso Diminui a responsabilidade da equipe de desenvolvimento de interpretar, escrever e manter as regras de negócio Analistas de negócio têm um conhecimento muito maior do domínio do que os desenvolvedores. A capacidade dos próprios analistas escreverem as regras remove a possibilidade de algum desenvolvedor interpretar erroneamente uma regra e conseqüentemente implementá-la de forma errada.

14 O Motor de Regras Como funciona?

15 Como funciona? Alguns conceitos: Fatos: São objetos que representam um determinado estado do domínio. Regras de negócio: Toda regra é representada por dois elementos principais, seguindo a sintaxe: quando <condições (LHS)> então <ações (RHS)>

16 Como funciona? Existem 4 componentes principais:

17 Como funciona? Working Memory - Memória de Trabalho É onde residem os fatos. Production Memory - Base de Conhecimento É onde reside todo o conhecimento de negócio (regras). Pattern Matcher - Reconhecedor de padrões Responsável por casar os fatos na memória de trabalho com as condições das regras e criar ativações a partir dos casamentos. Agenda Responsável pela ordenação das ativações para execução.

18 O Motor de Regras Definindo Regras

19 Definindo Regras Drools Rule Language O motor de regras lê arquivos.drl, de texto puro que descrevem as regras de negócio. Nativamente, um arquivo.drl possui a seguinte sintaxe: rule <nome_da_regra> when <condições> then <ações> end

20 Definindo Regras Temos duas construções interessantes: <condições> São escritas utilizando a linguagem do Motor de regras. <ações> São escritas utilizando código Java.

21 Definindo Regras A linguagem do motor de regras por exemplo: package org.minhacompania.regras; import org. minhacompania.dominio.aluno import org.jboss.seam.core.facesmessages import function org.minhacompania.utils.datautils.subtraidata; global java.util.date dataatual; global org.jboss.seam.core.facesmessages facesmessages; function void mensagemmenordeidade(string nome) { facesmessages.add(nome + " é menor de idade."); } rule "deve ser maior de idade" salience 0 ruleflow-group "validacao" when a : Aluno($pf : pessoafisica) pf : PessoaFisica($p : pessoa) from $pf p : Pessoa($dataNasc: datanascimento, $nome : nome) from $p eval( subtraidata(dataatual, $datanasc) < 18 ) then mensagemmenordeidade($nome); a.getmatricula().invalidar(); end

22 Definindo Regras Domain Specific Languages

23 Definindo Regras Domain Specific Languages O motor de regras possui uma poderosa maneira de mapear sua linguagem nativa, expressa nos.drl's, para uma linguagem mais natural, como mostrada nos primeiros exemplos. Este mapeamento se dá através das Domain Specific Languages, ou dsl's. dsl s são expressas em arquivos.dsl, com uma sintaxe bastante simples, bem parecida com um arquivo. properties.

24 Definindo Regras Domain Specific Languages por exemplo: [keyword]rule=regra [keyword]when=quando [keyword]then=então [keyword]end=fim [when]o Aluno em questão possui=a : Aluno($pf : pessoafisica) pf : PessoaFisica($p : pessoa) from $pf p : Pessoa($dataNasc: datanascimento, $nome : nome) from $p [when]- idade menor que {idademinima}=eval( subtraidata(dataatual, $datanasc) < {idademinima} ) [then]invalidar matrícula=mensagemmenordeidade($nome); a.getmatricula().invalidar();

25 Definindo Regras A regra anterior poderia ser reescrita da seguinte maneira: regra "deve ser maior de idade" salience 0 ruleflow-group "validacao" quando O aluno em questão possui - idade menor que 18 então Invalidar matrícula fim

26 Definindo Regras Processos

27 Definindo Regras Processos O Drools provê também um motor para processos de negócio (BPM). Processos são definidos em arquivos xml, ou utilizando o editor gráfico do eclipse. O desenho de um processo se parece com o seguinte exemplo:

28 Definindo Regras Processos são compostos por nós, sempre começando por um nó "Start" e acabando em um ou mais nós "End". Os tipos de nós disponíveis para uso são:

29 Definindo Regras Alguns nós importantes: RuleFlowGroup Quando a execução chegar a este nó, todas as regras pertencentes a ruleflow-group serão executadas. Fault Representa uma condição excepcional no processo. Quando a execução chega a um nó deste tipo, uma falha com um dado nome será lançada e uma busca por um tratador para aquela falha. Caso ela não seja tratável, o processo é abortado.

30 Guvnor Business Rules Management System

31 Guvnor O Guvnor é uma ferramenta para gerência de regras de negócio. Entre suas características estão: Integração com LDAP; Ambiente multi-usuário; Múltiplos tipos de editores (gráfico, texto); Controle de versão; Categorização; Criação de cenários de teste; Build e deploy.

32 Guvnor Com o Guvnor, é possível realizar autoria, teste, build e deploy de pacotes de regras. Todas estas atividades estão integradas na mesma ferramenta. Com a configuração de Knowledge Agents no sistema, basta um build do pacote de regras pelo guvnor que a aplicação automaticamente fará download do pacote compilado e atualizará a sua base de conhecimento.

33 Guvnor Tela inicial

34 Guvnor Permissionamento de fina granularidade

35 Guvnor Tela de pacotes

36 Guvnor Tela de edição textual

37 Guvnor Tela de edição gráfica

38 Guvnor Tela de Testes

39 Módulos Divisão das funcionalidades do Drools

40 Divisão das funcionalidades do Drools É o módulo principal, que compreende o motor de regras, linguagem de regras e a implementação do algoritmo de pattern matching. Adiciona as capacidades para lidar com BPM.

41 Divisão das funcionalidades do Drools Adiciona capacidades para realizar o CEP (Complex Event Processing). Inclui a ferramenta para Gerência de Regras de negócio (BRMS).

42 Fim! Dúvidas? Contato:

Daniel Wildt

Daniel Wildt Orientação a Objetos 1 Daniel Wildt http://danielwildt.blogspot.com Agenda 2 Orientação a Objetos Classe x Objeto Representação classe Atributos / operações Construtores e Destrutores Liberando memória

Leia mais

Acadêmico: Mateus Artur Schneiders Prof. Orientador: Dr. Mauro Marcelo Mattos

Acadêmico: Mateus Artur Schneiders Prof. Orientador: Dr. Mauro Marcelo Mattos Adoção de JBoss Drools no desenvolvimento de sistemas Acadêmico: Mateus Artur Schneiders Prof. Orientador: Dr. Mauro Marcelo Mattos Roteiro da apresentação Introdução Objetivos Fundamentação Teórica Trabalhos

Leia mais

An Open Source Java Rules Engine

An Open Source Java Rules Engine An Open Source Java Rules Engine Eduardo Araújo Oliveira slide 1 2 1 Drools O que é? Drools is a business rule management system (BRMS) with a forward chaining inference based rules engine, more correctly

Leia mais

BPMN e BPMS. Ad, Décio, Marcos, Yuri

BPMN e BPMS. Ad, Décio, Marcos, Yuri BPMN e BPMS Ad, Décio, Marcos, Yuri BPM - Business Process Management Surgimento Contexto Conceito Prós e Contras Ciclo de vida Design Modelagem Execução Monitoramento Otimização Reengenharia BPMn - Business

Leia mais

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho Gilson de Souza Carvalho gaucho.gilson@hotmail.com 3.1.3 Condições compostas Linguagem e Técnicas em Programação As condições que vimos até agora sempre foram únicas. Entretanto, conforme aumenta a complexidade

Leia mais

Prof. Me. Sérgio Carlos Portari Júnior

Prof. Me. Sérgio Carlos Portari Júnior Prof. Me. Sérgio Carlos Portari Júnior Ambientes que visam desenvolver aplicações que precisam de um processamento paralelo e distribuído deverão saber lidar com algumas dificuldades. Isto decorre da heterogeneidade

Leia mais

Geração Automática de Metadados

Geração Automática de Metadados Geração Automática de Metadados José David Fernández Curado Instituto de Matemática e Estatística - Universidade de São Paulo November 17, 2010 1 Introdução Motivação Metadados 2 Algoritmos de Geração

Leia mais

1.1 Linguagens de Programação

1.1 Linguagens de Programação Fundamentos Procurando fazer com que haja uma melhor compreensão para o estudo e desenvolvimento utilizando linguagens de programação, este capítulo apresenta conceitos básicos sobre como um programa pode

Leia mais

6.1. Teste Baseado em Gramática e Outras Abordagens de Teste

6.1. Teste Baseado em Gramática e Outras Abordagens de Teste 6 Discussão Além das técnicas de teste usando modelos gramaticais, existem outras abordagens de teste funcional de sistemas que estão sendo estudadas pela comunidade científica. Algumas delas se dedicam

Leia mais

3 Tecnologias Relacionadas

3 Tecnologias Relacionadas Tecnologias Relacionadas 31 3 Tecnologias Relacionadas O objetivo deste capítulo é apresentar um resumo de cada tecnologia relacionada ao processo proposto nesta dissertação, mostrando suas principais

Leia mais

3 Trabalhos relacionados

3 Trabalhos relacionados 3 Trabalhos relacionados Adaptação e implantação dinâmicas são requisitos de aplicações em diversos domínios. Diversas abordagens são capazes de promover adaptação e implantação em tempo de execução. Alguns

Leia mais

Histórico. Perl (Practical Extraction and Report Language). Criada por Larry Wall em 1987.

Histórico. Perl (Practical Extraction and Report Language). Criada por Larry Wall em 1987. www.perl.org Sumário 1. Histórico 2. Características 3. Compilação/Interpretação 3.1. Procedimento; 1. Sintaxe 1. Variáveis; 2. Escopo; 3. Operadores; 4. Controle de Fluxo; 5. Estruturas de Repetição 5.

Leia mais

Grupo: Diogo Furtado Phellipe Perin Stephan Hebeda

Grupo: Diogo Furtado Phellipe Perin Stephan Hebeda Grupo: Diogo Furtado Phellipe Perin Stephan Hebeda INTRODUÇÃO Scala é uma linguagem de programação de propósito geral projetado para expressar padrões de programação comuns de uma forma concisa. Foi desenvolvido

Leia mais

Agenda da Aula. Reuso de Software. Tipos de Reuso. Potenciais Problemas. Vantagens de Reuso. Introdução a Reuso de Software

Agenda da Aula. Reuso de Software. Tipos de Reuso. Potenciais Problemas. Vantagens de Reuso. Introdução a Reuso de Software Reuso de Software Aula 02 Agenda da Aula Introdução a Reuso de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com Introdução a Reuso de Software Abordagens de Reuso

Leia mais

4 ALBATROZ : Um ambiente para desenvolvimento de SMA

4 ALBATROZ : Um ambiente para desenvolvimento de SMA 41 4 ALBATROZ : Um ambiente para desenvolvimento de SMA Resumo Neste capítulo será apresentado o processo de desenvolvimento do ambiente Albatroz. Cada ferramenta é detalhada indicando suas funcionalidades.

Leia mais

Sistemas Baseados em Regras. Profa. Patrícia Dockhorn Costa pdcosta@inf.ufes.br www.inf.ufes.br/~pdcosta/ensino

Sistemas Baseados em Regras. Profa. Patrícia Dockhorn Costa pdcosta@inf.ufes.br www.inf.ufes.br/~pdcosta/ensino Sistemas Baseados em Regras Aula3: Drools Profa. Patrícia Dockhorn Costa pdcosta@inf.ufes.br www.inf.ufes.br/~pdcosta/ensino Drools Business Logic integration Platform Plataforma integrada para gerenciamento

Leia mais

M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O

M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O A P L I C A Ç Õ E S M O N O L Í T I C A S Na época dos computares independentes um aplicativo era desenvolvido para ser usado em uma única

Leia mais

Introdução à Gestão de Processos de Negócios

Introdução à Gestão de Processos de Negócios Introdução à Gestão de Processos de Negócios Profa. Dra. Elisa Yumi Nakagawa 2. Semestre de 2016 SSC0531 - Gestão de Sistemas de Informação Slides inicialmente preparados por Roberto Rocha e Prof. João

Leia mais

Aula 11 Introdução ao Java Script

Aula 11 Introdução ao Java Script Aula 11 Introdução ao Java Script Java Script é uma linguagem que permite trabalhar com a Lógica em páginas escritas em HTML (HiperText Mark-up Language). As páginas HTML podem ser escritas utilizando-se

Leia mais

1/26/2009. Metamodelo MMA. Metamodelo MMB. Modelo A2. Modelo A. Modelo B. Transformação M2M

1/26/2009. Metamodelo MMA. Metamodelo MMB. Modelo A2. Modelo A. Modelo B. Transformação M2M Abstrações do mundo real Sistema e seu ambiente Com um propósito específico Simulação, geração de código No MDD Quem lê e entende o modelo é o computador Uma vez que o computador entenda o modelo... O

Leia mais

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: 8429016 Definição de MDA OMG (Object Management Group) propôs uma aplicação abrangente das práticas

Leia mais

Treinamento em Activiti Workflow e BPM Open Source

Treinamento em Activiti Workflow e BPM Open Source Treinamento em Activiti Workflow e BPM Open Source Sobre o treinamento Este treinamento e voltado para usuários e desenvolvedores que pretendem conhecer o processo de implementação de workflows na Ferramenta

Leia mais

5 Conclusão e trabalhos futuros

5 Conclusão e trabalhos futuros 5 Conclusão e trabalhos futuros Neste capítulo fazemos uma retrospectiva do trabalho realizado, uma avaliação da proposta de solução de integração de dados ou conhecimentos mostrada na dissertação e também

Leia mais

Introdução a Teste de Software

Introdução a Teste de Software Universidade Católica de Pelotas Tecnólogo em Análise e Desenvolvimento de Sistemas Disciplina de Qualidade de Software Introdução a Teste de Software Prof. Luthiano Venecian 1 Conceitos Teste de software

Leia mais

Lista de Linguagens de Programação 7

Lista de Linguagens de Programação 7 Lista de Linguagens de Programação 7 Nome: Matrícula: 1. Dizemos que uma linguagem é segura quando esta linguagem não permite que operações sejam aplicadas a argumentos que não possuam os tipos previstos

Leia mais

Requisitos de Software e UML Básico. Janaína Horácio

Requisitos de Software e UML Básico. Janaína Horácio Requisitos de Software e UML Básico Janaína Horácio janaina@les.inf.puc-rio.br Agenda Requisitos O que é? Objetivos? Atividades?... UML O que é? Modelos... Casos de Uso O que é? Componentes 2 Requisitos

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Ciência da Computação Prof. Elias Ferreira Elaborador por: Ana Claudia Bastos Loureiro Monção JUNIT Teste de Software Processo de Software Um processo de software pode ser visto como o conjunto de atividades,

Leia mais

Estruturas de Repetição

Estruturas de Repetição Algoritmos e Estruturas de Dados I (DCC/003) Estruturas de Repetição Aula Tópico 4 (while, for) 1 Problema 10 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em C. Dados dois números

Leia mais

Plataformas de Distribuição de Objetos

Plataformas de Distribuição de Objetos Plataformas de Distribuição de Objetos Denominações Equivalentes: Modelos de Componentes Modelos de Integração de Objetos Motivação: Reuso de objetos Redução do Tempo e do Custo de Desenvolvimento de Software

Leia mais

Linguagens de Programação Funcional

Linguagens de Programação Funcional Linguagens de Programação Funcional Conceitos de Linguagens de Programação Pedro Libório Setembro de 2013 2 Roteiro Introdução Funções matemáticas Fundamentos das linguagens de programação funcionais A

Leia mais

Gradle para Geração de Multi-Aplicativos Móveis: Um Estudo de Caso em uma Universidade

Gradle para Geração de Multi-Aplicativos Móveis: Um Estudo de Caso em uma Universidade Gradle para Geração de Multi-Aplicativos Móveis: Um Estudo de Caso em uma Universidade Ramon Abilio 1, Cristiano M. Garcia 1, João A. Silva 1 1 Diretoria de Gestão de Tecnologia da Informação (DGTI) Universidade

Leia mais

Tabela de Identificadores CMinus - Resolução com DMS

Tabela de Identificadores CMinus - Resolução com DMS Tabela de Identificadores CMinus - Resolução com DMS Miguel Regedor miguelregedor@gmail.com André Santos pg15973@alunos.uminho.pt Análise e Transformação de Software - Engenharia de Linguagens Mestrado

Leia mais

WEBDESIGN. Professor: Paulo Marcos Trentin - Escola CDI de Videira

WEBDESIGN. Professor: Paulo Marcos Trentin -  Escola CDI de Videira WEBDESIGN Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira Introdução ao JavaScript É uma linguagem client-side que possui diversas aplicações,

Leia mais

132 6 Conclusão 6.1. Contribuições da Tese

132 6 Conclusão 6.1. Contribuições da Tese 132 6 Conclusão Esta tese teve como objetivo principal o estudo da aplicação de transformações para manter a rastreabilidade de um sistema de software. Esta abordagem permite a captura automática das informações

Leia mais

Programação de Computadores:

Programação de Computadores: Instituto de C Programação de Computadores: Introdução a Linguagens de Programação Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Seis Camadas Problema

Leia mais

Desenvolvimento de Aplicações Desktop

Desenvolvimento de Aplicações Desktop Desenvolvimento de Aplicações Desktop Conceitos Básicos de POO Professor: Charles Leite Motivação Na Programação OO, um OBJETO é considerado a entidade central de um programa Assim, o desenvolvimento de

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 02 Algoritmos e Ciclo de Desenvolvimento Edirlei Soares de Lima Modelo de um Computador Linguagem de Máquina Um processador executa instruções de máquina

Leia mais

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO Prof. Msc. Carlos José Giudice dos Santos carlos@oficinadapesquisa.com.br www.oficinadapesquisa.com.br Compiladores e Interpretadores Compiladores

Leia mais

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software AJA Software www.ajasoftware.wordpress.com De Olho na Pista Documento de Arquitetura Confidencial De Olho na Pista, 2013 1 Sumário 1. Introdução 3 2. Metas e Restrições da Arquitetura 3 3. Padrão da Arquitetura

Leia mais

4 Processo de Transformação

4 Processo de Transformação Tecnologias Relacionadas 43 4 Processo de Transformação Com a constante mudança nos requisitos (funcionais e não funcionais) do domínio da aplicação, há uma grande necessidade de que os sistemas estejam

Leia mais

Curso Online de E-commerce. Plano de Estudo

Curso Online de E-commerce. Plano de Estudo Curso Online de E-commerce Plano de Estudo Descrição do programa O programa oferece metodologias e técnicas necessárias para a implementação de soluções web baseadas no CMS para o suporte, estratégias

Leia mais

UNIVERSIDADE FEDERAL DO PIAUÍ DEPARTAMENTO DE COMPUTÇÃO DISCIPLINA: ENGENHARIA DE SOFTWARE II PROFESSOR: ARMANDO SOARES

UNIVERSIDADE FEDERAL DO PIAUÍ DEPARTAMENTO DE COMPUTÇÃO DISCIPLINA: ENGENHARIA DE SOFTWARE II PROFESSOR: ARMANDO SOARES UNIVERSIDADE FEDERAL DO PIAUÍ DEPARTAMENTO DE COMPUTÇÃO DISCIPLINA: ENGENHARIA DE SOFTWARE II PROFESSOR: ARMANDO SOARES TUTORIA DE USO DO HIBERNATE NA IDE ECLIPSE KEPLER DISCENTE: JOANA DARC CARVALHO DE

Leia mais

Gerência de Projetos de TI

Gerência de Projetos de TI Gerência de Projetos de TI Grade Curricular Unidade de aprendizagem Ementas Carga horária Semestre 1 Business Intelligence Gerência de Qualidade de Software Métodos e Práticas na Engenharia de Requisitos

Leia mais

DESENVOLVIMENTO DE UMA SOLUÇÃO DE INTEGRAÇÃO DE APLICAÇÕES PARA AUTOMATIZAR RESERVAS DE VIAGEM 1

DESENVOLVIMENTO DE UMA SOLUÇÃO DE INTEGRAÇÃO DE APLICAÇÕES PARA AUTOMATIZAR RESERVAS DE VIAGEM 1 DESENVOLVIMENTO DE UMA SOLUÇÃO DE INTEGRAÇÃO DE APLICAÇÕES PARA AUTOMATIZAR RESERVAS DE VIAGEM 1 Edinaldo Gaspar Da Silva 2, Fabricia Roos Frantz 3, Rafael Z. Frantz 4, Sandro Sawicki 5. 1 Projeto de pesquisa

Leia mais

Programação I Apresentação

Programação I Apresentação Programação I Apresentação Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Referências JUNIOR, D. P.; NAKAMITI, G. S.; ENGELBRECHT, A. de M. E.; BIANCHI, F. Algoritmos e Programação

Leia mais

Modularidade. Objetivos: Introduzir noções básicas de modularidade. Funções e procedimentos

Modularidade. Objetivos: Introduzir noções básicas de modularidade. Funções e procedimentos Modularidade Objetivos: Introduzir noções básicas de modularidade Funções e procedimentos Motivação É muito difícil manter um código quando ele tende a ser grande (com muitas linhas) É preciso organizar

Leia mais

6 Hist-Inspect: A Ferramenta de Medição e Avaliação

6 Hist-Inspect: A Ferramenta de Medição e Avaliação 6 Hist-Inspect: A Ferramenta de Medição e Avaliação Hist-Inspect 1 (Mara et al. 2010b) é a ferramenta que projetamos e implementamos para apoiar esta pesquisa. Ela visa principalmente disponibilizar recursos

Leia mais

Modularização. Prof. Antonio Almeida de Barros Junior

Modularização. Prof. Antonio Almeida de Barros Junior Modularização Prof. Antonio Almeida de Barros Junior 1 Modularização A modularização consiste em decompor um programa em uma série de subprogramas individuais; Trata-se de um método utilizado para facilitar

Leia mais

UML Diagramas Estruturais Diagrama de Componentes

UML Diagramas Estruturais Diagrama de Componentes UML Diagramas Estruturais Diagrama de Componentes Representa um modelamento físico dos componentes de software de um determinado Sistema Um componente realiza um conjunto de interfaces e contém em seu

Leia mais

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ESTRUTURA DE UM SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ESTRUTURA DE UM SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ INTRODUÇÃO À TECNOLOGIA DA ESTRUTURA DE UM SISTEMA PROFESSOR CARLOS MUNIZ ESTRUTURA DE SISTEMAS OPERACIONAIS O sistema operacional tem uma estrutura bem complexa, devido não funcionar como um programa

Leia mais

COBOL Query 1.0. Ferramenta para extração de dados em arquivos COBOL. Aluno: André Luiz Jacinto Orientador: Adilson Vahldick

COBOL Query 1.0. Ferramenta para extração de dados em arquivos COBOL. Aluno: André Luiz Jacinto Orientador: Adilson Vahldick COBOL Query 1.0 Ferramenta para extração de dados em arquivos COBOL Aluno: André Luiz Jacinto Orientador: Adilson Vahldick Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento

Leia mais

Apostila - Desenvolvimento web com PHP

Apostila - Desenvolvimento web com PHP José Roberto Madureira Junior Adaní Cusin Sacilotti Reginaldo Sacilotti Apostila - Desenvolvimento web com PHP Primeira Edição São Paulo 2017 Sumário 1 INTRODUÇÃO AO PHP... 1 1.1 PREPARAÇÃO DO AMBIENTE

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE CURSO TÉCNICO DE INFORMÁTICA Módulo A ENGENHARIA DE SOFTWARE Análise de Requisitos REQUISITO? Pode variar de uma declaração abstrata de alto nível de um serviço ou de uma restrição de sistema para uma

Leia mais

SQL Pacotes. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados Pacotes

SQL Pacotes. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados Pacotes SQL Pacotes Laboratório de Bases de Dados Características Pacotes objetos do banco de dados são equivalentes a bibliotecas Armazenam procedimentos funções definições de cursores declarações de variáveis

Leia mais

GROOVY. Diogo Eládio Igor

GROOVY. Diogo Eládio Igor GROOVY Diogo Eládio Igor Como surgiu? Primeiro sinal de vida foi dado por James Strachan em seu blog em agosto de 2003. Várias versões foram lançadas entre 2004 e 2006, porém somente depois do processo

Leia mais

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli Programa de computador sequência de comandos ou instruções executados por um computador com a finalidade de produzir um resultado e resolver um problema; Linguagem de programação método para a criação

Leia mais

MASTERSAF DFE MANUAL DE CONFIGURAÇÃO SAML DFE V3

MASTERSAF DFE MANUAL DE CONFIGURAÇÃO SAML DFE V3 DFE V3 Versão do Documento: 1.0 Publicado em: 09/04/2019 SUMÁRIO INTRODUÇÃO... 3 PRÉ-REQUISITO... 3 CONFIGURAÇÃO... 3 MUDANÇAS DE VERSÕES DO MANUAL... 14 SUPORTE TÉCNICO... 15 Página 2 de 15 INTRODUÇÃO

Leia mais

Shell Script. Rafael Silva Guimarães

Shell Script. Rafael Silva Guimarães Shell Script Rafael Silva Guimarães O que é Shell O Shell é o "prompt" da linha de comando do Linux, que recebe os comandos digitados pelo usuário e os executa. Mas o Shell é muito mais poderoso que seu

Leia mais

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada

Leia mais

1. Quando algo visível para os usuário finais é um desvio em relação ao especificado ou um comportamento não esperado, isso é chamado de:

1. Quando algo visível para os usuário finais é um desvio em relação ao especificado ou um comportamento não esperado, isso é chamado de: Simulado CTFL- BSTQB Tempo de duração: 60 minutos 1. Quando algo visível para os usuário finais é um desvio em relação ao especificado ou um comportamento não esperado, isso é chamado de: a) Um erro b)

Leia mais

VANTAGENS DE USAR APACHE MAVEN NA PROGRAMAÇÃO.

VANTAGENS DE USAR APACHE MAVEN NA PROGRAMAÇÃO. VANTAGENS DE USAR APACHE MAVEN NA PROGRAMAÇÃO. Julio Fernandes Rocha, Jaime William Dias Universidade Paranaense (Unipar) juliofernandes_rocha@hotmail.com jaime@unipar.br Resumo. Este artigo tem por objetivo

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Sintaxe e semântica Aula 4 Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Sintaxe A sintaxe de uma linguagem de programação é a forma

Leia mais

Capítulo 6 Nível do Sistema Operacional

Capítulo 6 Nível do Sistema Operacional Capítulo 6 Nível do Sistema Operacional - Sistema Operacional: Programa que, do ponto de vista do programador, adiciona uma grande quantidade de instruções e funcionalidades bem além das disponibilizadas

Leia mais

Avaliação de Frameworks de Produtividade para aplicações CRUD

Avaliação de Frameworks de Produtividade para aplicações CRUD Superintendência de Informática - SINFO/UFRN Avaliação de Frameworks de Produtividade para aplicações CRUD Leonardo René Campos Analista de TI Agenda 1. Introdução 2. Objetivos 3. Critérios de Avaliação

Leia mais

Introdução ao Desenvolvimento de

Introdução ao Desenvolvimento de Introdução ao Desenvolvimento de Aplicações Web com JSF e PrimeFaces Marcelo Vinícius Cysneiros Aragão ICC Inatel Competence Center marcelovca90@inatel.br Santa Rita do Sapucaí, 15 de março de 2016 Conteúdo

Leia mais

Figura 16 Niagara - Visão de grupos de notas.

Figura 16 Niagara - Visão de grupos de notas. Conclusão 6 Conclusão 6.1 Trabalhos Relacionados Dentre as funcionalidades fornecidas pela interface gerada pelo framework, em destaque está a possibilidade do zoom livre. Disponibilizar esta funcionalidade

Leia mais

[versão para impressão] Link original: comp=24763 Conhecendo o PL/SQL

[versão para impressão] Link original:  comp=24763 Conhecendo o PL/SQL www.devmedia.com.br [versão para impressão] Link original: http://www.devmedia.com.br/articles/viewcomp.asp? comp=24763 Conhecendo o PL/SQL Veja neste artigo o que é PL/SQL, quando utilizá-la e uma breve

Leia mais

A Linguagem Lua Lua Puc-Rio

A Linguagem Lua Lua Puc-Rio A Linguagem Lua Lua foi projetada e implementada por uma equipe no Tecgraf, o Grupo de Computação Gráfica da Puc-Rio (Pontifícia Universidade Católica do Rio de Janeiro). 1 Exemplos de linguagens de scripts

Leia mais

Plataforma de desenvolvimento JAVA para terminal POS

Plataforma de desenvolvimento JAVA para terminal POS Plataforma de desenvolvimento JAVA para terminal POS Avenida Viena, 360 Bairro São Geraldo CEP 90240020 Porto Alegre RS Fone 51 3325 2728 Fax 51 3343 9847 azanonatec@azanonatec.com.br Apresentação A plataforma

Leia mais

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em: RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em: http://www.oxnar.com.br/aulas/java ATIVIDADE ELABORAR O PROGRAMA DE CÁLCULOS DE ÁREAS USANDO

Leia mais

Figura 28: Tela da aplicação Demo

Figura 28: Tela da aplicação Demo Exemplos de uso 4 Exemplos de uso Para o melhor entendimento dos conceitos expostos no capítulo anterior, são apresentadas aqui duas aplicações que ilustram o poder da DSL criada e a facilidade de utilizar

Leia mais

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 Exercícios de revisão Lista 01: a) Monte um mapa conceitual indicando as relações entre os seguintes conceitos, no contexto do assunto visto em aula:

Leia mais

Linguagem de Programação II Programação Orientada a Objetos. Ambientes de Programação

Linguagem de Programação II Programação Orientada a Objetos. Ambientes de Programação Linguagem de Programação II Programação Orientada a Objetos Ambientes de Programação Prof. Alessandro Borges 2 Tópicos Prompt de comando JDK IDE NetBeans Eclipse Jbuilder Visual Café Visual J++ NetBeans

Leia mais

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Jordana Sarmenghi Salamon jssalamon@inf.ufes.br jordanasalamon@gmail.com http://inf.ufes.br/~jssalamon Departamento de Informática Universidade Federal do Espírito Santo Agenda

Leia mais

Este é o segundo modulo, nele abordaremos os métodos de gerenciamento do Windows Server 2008.

Este é o segundo modulo, nele abordaremos os métodos de gerenciamento do Windows Server 2008. Gerenciando o Windows Server 2008 Bem vindo(a), Este é o segundo modulo, nele abordaremos os métodos de gerenciamento do Windows Server 2008. Após essa aula você será capaz de: Definir quais são as formas

Leia mais

Metodologias de Teste de Software

Metodologias de Teste de Software Metodologias de Teste de Software Fernando Magno Quintão Pereira 10 de Novembro de 2010 A espiral de testes Muitos processos de teste de software seguem a mesma espiral de desenvolvimento que vemos em

Leia mais

Engenharia de Software. Prof. Raquel Silveira

Engenharia de Software. Prof. Raquel Silveira Engenharia de Software Prof. Raquel Silveira MOTIVAÇÃO Você já perdeu alguma versão anterior do arquivo do projeto? Já teve problemas em manter diferentes versões do sistema rodando ao mesmo tempo? Alguém

Leia mais

Técnicas para Reutilização de Software

Técnicas para Reutilização de Software DCC / ICEx / UFMG Técnicas para Reutilização de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Panorama de Reutilização Frameworks Padrões de projeto Aplicações configuráveis Padrões de

Leia mais

Professor Emiliano S. Monteiro

Professor Emiliano S. Monteiro Professor Emiliano S. Monteiro To-Do Doing Done Conhecer os processos de desenvolvimento habilita o aluno a realizar uma melhor escolha de processo para uso em projetos futuros. A vantagem de conhecer

Leia mais

Engenharia de Software

Engenharia de Software Prof. M.Sc. Ronaldo C. de Oliveira ronaldooliveira@facom.ufu.br FACOM - 2011 Verificação e Validação (V&V) S.L.Pfleeger (Cap.8 & 9) R.Pressman (Cap.13 & 14) I.Sommerville (Cap.22 & 23) Introdução Verificação

Leia mais

Model Driven Architecture. Centro de Informática/UFPE Fernando Trinta

Model Driven Architecture. Centro de Informática/UFPE Fernando Trinta Model Driven Architecture Centro de Informática/UFPE Fernando Trinta Roteiro Contexto Introdução Conceitos MDA Platform Independent Model Platform Specific Model Transformations Consequências Promessas

Leia mais

Primeira Prova de Linguagens de Programação - DCC024B -

Primeira Prova de Linguagens de Programação - DCC024B - Primeira Prova de Linguagens de Programação - DCC024B - Ciência da Computação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Paradigma Imperativo Matheus Hafner Tiago Xavier CET 087 - Conceitos de Linguagens de Programação (CLP) 17 de novembro de 2011 Aula Prática Instalação Fortran sudo apt-get install

Leia mais

Valdex Santos. 09 de junho de 2011

Valdex Santos. 09 de junho de 2011 Progamação Algébrica em Matlab Valdex Santos Instituto Federal da Bahia 09 de junho de 2011 Sumário 1 Introdução 2 MATLAB como linguagem de programação 3 Funções Matemáticas 4 IF, FOR e WHILE 5 outras

Leia mais

Paradigmas de Linguagens

Paradigmas de Linguagens Paradigmas de Linguagens Aula 1: Introdução e Conceitos Básicos Professora Sheila Cáceres O que é um paradigma??? Paradigmas de Linguagens - Sheila Cáceres 2 O que é um paradigma??? Paradigmas de Linguagens

Leia mais

Revisão. Profa Marina Gomes

Revisão. Profa Marina Gomes Revisão Profa Marina Gomes Algoritmos Na construção de um programa, o problema que o algoritmo representa é composto por três fases. Entrada: dados de entrada do algoritmo. Processamento: ações sobre os

Leia mais

Surgindo em 1997 a API Java Servlet proporciona ao desenvolvedor a possibilidade de adicionar conteúdo dinâmico em um servidor web usando a

Surgindo em 1997 a API Java Servlet proporciona ao desenvolvedor a possibilidade de adicionar conteúdo dinâmico em um servidor web usando a servlet Surgindo em 1997 a API Java Servlet proporciona ao desenvolvedor a possibilidade de adicionar conteúdo dinâmico em um servidor web usando a plataforma Java. Os servlets normalmente utilizam o protocolo

Leia mais

Fundação Educacional Encosta Inferior do Nordeste

Fundação Educacional Encosta Inferior do Nordeste JavaScript Faculdade de Informática de Taquara - Curso Sistemas de Informação Fundação Educacional Encosta Inferior do Nordeste Av. Oscar Martins Rangel, 4500 - Taquara - RS Brasil leandro@faccat.br, rpretto@tca.com.br

Leia mais

Agenda do Curso. Reuso de Software. Agenda da Aula. Tipos de Reuso. Vantagens de Reuso. Reuso de Software. Eduardo Figueiredo

Agenda do Curso. Reuso de Software. Agenda da Aula. Tipos de Reuso. Vantagens de Reuso. Reuso de Software. Eduardo Figueiredo Engenharia de Software Aula 21 Agenda do Curso Reuso de Software Aula 23 Data 28/05 Assunto Desenv. Orientado a Aspectos 24 30/05 Laboratório 25 04/06 Apresentações do TP (1) Eduardo Figueiredo 26 06/06

Leia mais

3 Kaluana Arquitetura

3 Kaluana Arquitetura Kaluana 31 3 Kaluana O middleware Kaluana original [12] tem como objetivo oferecer ao desenvolvedor de aplicações móveis, maior facilidade na implementação de aplicações dinamicamente adaptáveis. Ele define

Leia mais

Executa em qualquer plataforma que possua o Java (JDK) da Oracle

Executa em qualquer plataforma que possua o Java (JDK) da Oracle Recurso Benefícios Multiplataforma Executa em qualquer plataforma que possua o Java (JDK) da Oracle Utiliza base de dados Oracle, Microsoft SQL ou MySql Utiliza os principais bancos de dados de mercado

Leia mais

MANGUE Métricas e Ferramentas para Avaliação Automática da Qualidade de Código-Fonte Paulo R. M. Meirelles IME-USP

MANGUE Métricas e Ferramentas para Avaliação Automática da Qualidade de Código-Fonte Paulo R. M. Meirelles IME-USP Métricas e Ferramentas para Avaliação Automática da Qualidade de Código-Fonte Paulo R. M. Meirelles IME-USP 01 de Junho de 2009 WTDQS-SBQS Ouro Preto-MG, Brasil 1 Projeto de Doutorado Ciência da Computação

Leia mais

Análise e Projeto de Sistemas (Cont.) Profª Rafaella Matos

Análise e Projeto de Sistemas (Cont.) Profª Rafaella Matos Análise e Projeto de Sistemas (Cont.) Profª Rafaella Matos Modelando classes A dinâmica de troca de mensagens do diagrama de sequência forçará a existência de um relacionamento prévio entre as classes

Leia mais

Noções de sistemas de computação

Noções de sistemas de computação Noções de sistemas de computação Software Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons

Leia mais

Módulo 1. Introdução. Programação Orientada a Objetos I Java (Rone Ilídio)

Módulo 1. Introdução. Programação Orientada a Objetos I Java (Rone Ilídio) Módulo 1 Introdução Programação Orientada a Objetos I Java (Rone Ilídio) Dados Importantes E-mail: rone@ufsj.edu.br Página: www.ronepage.com Deitel, H. M., Deitel, T. J., Java, editora Bookman, 6ª edição

Leia mais

BEHAVIOR DRIVEN DEVELOPMENT BRUNO ROLIM MANSUR

BEHAVIOR DRIVEN DEVELOPMENT BRUNO ROLIM MANSUR BEHAVIOR DRIVEN DEVELOPMENT BRUNO ROLIM MANSUR AGENDA Motivação Processo Tradicional Processo BDD Fazer certo o certo Ciclo BDD Ferramentas Exemplo - Vídeo Rspec Vantagens e Desvantagens Referências MOTIVAÇÃO

Leia mais

Indexação e Busca. O objetivo deste trabalho é projetar e implementar um sistema de programas para indexação e busca em arquivos de texto.

Indexação e Busca. O objetivo deste trabalho é projetar e implementar um sistema de programas para indexação e busca em arquivos de texto. Universidade Federal do Espírito Santo Departamento de Informática Estruturas de Dados 2017/1 Profa. Claudine Badue Trabalho 2 1. Objetivo Indexação e Busca O objetivo deste trabalho é projetar e implementar

Leia mais