An Infrastructure for Development of Dynamically Adaptable Distributed Components

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

Download "An Infrastructure for Development of Dynamically Adaptable Distributed Components"

Transcrição

1 14/2/2006 PUC-Rio 1 An Infrastructure for Development of Dynamically Adaptable Distributed Components Renato Figueiró Maia DOA 2004 Agya Napa, Cyprus

2 Agenda Introduction Software Components Dynamic Adaptation CCM Model LOAF Use Examples Conclusions Future Work

3 Introduction Challenges in software evolution Flexibility to incorporate unexpected changes Larger the amount of software requirements Apropriate programming abstractions More complex and tenologically advanced Changes at run time (dynamic adaptation) More essential (e.g. financial, medical, military). Run for months or even years.

4 Software Components Enables modularity and reuse Black-box components Interactions through connectors and contracts Offered services Dependencies with other components Complements object orientation Objects are too small Dependencies are not explicit and are spread thorugh many objects

5 Dynamic Adaptation Definition Changes of a running system prior of changes on their requirements Types of change Expected Mobile computing, software agents Unexpected Long-term systems, computer-intensive systems Mechanisnms (computational reflection) Introspection (interfaces) Java reflrection API, CORBA Interface Repository. Intercesstion (variation points) Interceptors, function pointers, etc.

6 Coarse-grained adaptations Alterações na estrutura (macro) do sistema Modular Substituição dos módulos. Orientação a objetos Troca de objetos e relacionamentos. Componentes Troca de conexões entre os componentes. Reconfiguração de componentes Substituição Reconexão

7 Adaptação em Ponto Pequeno Alterações internas aos componentes que formam o sistema. Estruturas mais fundamentais. Nível de detalhe maior. Níveis de detalhe Linguagem de programação. Arquitetura ou middleware. Componentes. Introspecção da estrutura do componente Intercessão da implementação do componente.

8 Ponto Grande vs. Ponto Pequeno Ponto Grande Mais simples e eficiente. Exige planejamento da arquitetura pra acomodar alterações. Adequada para alterações esperadas. Aplicações auto-adaptáveis (alterações no contexto). Ponto Pequeno Mais flexível, porém mais complexa. Adequada para alterações não esperadas. Manutenção dinâmica de sistemas.

9 CCM Model Facetas Receptores de eventos Home Atributos e interfaces oferecidas Componente instancia Composição Receptáculos Fontes de eventos component MyComponent supports SupportedInterface : SuperComponent { attribute string myattribute; provides Interface myfacet; uses Interface myreceptacle; publishes Event mypublisher; emits Event myemitter; consumes Event myconsumer; }; home MyHome manages MyComponent {};

10 CCM Container Protected execution environment Different types of components Intercepts all interactions with the external world Simplifies the implementation Manages instances Creation and activation. Offers services Transaction, persistence. Manages connections. Executor callback internas Contêiner externa

11 LOAF LuaOrb Adaptation Framework LuaCCM Protocols and roles Handlers

12 LuaCCM Ambiente para construção de componentes reflexivos Motivação Incorporar os conceitos do CCM ao LuaOrb. Simplicidade e flexibilidade. Estrutura de implementação: CORBA LuaCCM CCM LuaOrb LOOP Lua

13 Contêiner Lua Executor Principal Servant LuaOrb Tratador de evento Servant LuaOrb Executor de faceta Servant LuaOrb Contexto Contêiner Lua

14 Contêiner Lua Instâncias de Componente Contêiner Lua Classe do Envoltório instanciado delega consulta define Envoltório (objeto Lua) Repositório de Interfaces de Componentes (serviço de objetos) Gerenciador de Definição (objeto Lua) Classe de Contexto instanciado usa Executor (objeto Lua) Contexto (objeto Lua)

15 Componentes LuaCCM Recursos reflexivos Introspecção (interfaces do CCM) Obter informações sobre portas. Estabelecer e desfazer conexões em portas. Intercessão (LuaCCM::Adaptable) Adicionar e remover portas. Substituir a implementação de portas. Associar interceptadores a portas. Alterações em níveis de abrangência (mesmo servidor) Por Definição (através do contêiner) Por Home (através do home do componente) Por Instância (através da instância do componente)

16 Interfaces de Adaptação interface Adaptable { void add_facet(in string name, in string iface, in LuaCode code); void add_receptacle(in string name, in string iface, in boolean ismultiple);... void set_implementation(in string port, in LuaCode code);... void intercept(in string point, in LuaCode code); }; interface AdaptableContainer : ::Components::Container { Adaptable get_component_adaptor(in string absolute_name); };

17 Papéis e Protocolos Papel Conjunto de alterações no componente para realizar uma nova função (papel) Protocolo Regras de como os papéis são aplicados e os componentes são reconectados para fornecer a nova funcionalidade. Novas portas Protocolo Scripts Papel aplica e conecta faz requisições Componente Novas interações

18 Manipuladores Complexidade de manipulação de portas Diversos nomes de operações connect, subscribe, get, provide, etc. Utilização específica de acordo com o tipo de porta Obter uma faceta e então conectá-la ao receptáculo. Objeto consumidor de eventos é obtido e então conectado ou registrado à fonte de eventos. Geração automática de id. de conexão. Identificador gerado não apresenta signifcado para a aplicação. Aplicação mantém um mapeamento do identificador gerado para outro que possua significado (e.g. nome de um usuário).

19 Manipuladores Complexidade de manipulação de portas CCM CCM: messager:subscribe_out(printer:get_consumer_in()) LOAF: printer.in = messager.out

20 Aplicação de Exemplo rver = loaf.handler(producers:create()) ent1 = loaf.handler(processorsa:create()) ent2 = loaf.handler(processorsb:create()) raw Cliente A : Processor done rver.name = "Servidor" ent1.name = "Cliente A" ient2.name = "Cliente B" ient1.raw = server.produced ient2.raw = server.produced rver.request = client1.done rver.request = client2.done rver.controller:start() request Servidor : Producer controller Controla a produção de eventos Console : LuaCCM produced interfaces de configuração raw Cliente B : Processor done

21 Sincronização de Fluxo FlowWatcher = loaf.role { before = { raw = { code = [[...]] }}, after = { raw = { code = [[...]] }}, provides = { limit = { interface = "Limited", code = [[...]]}}, uses = { regulator = { interface = "Rateable"}}} FlowRegulator = loaf.role { before = { produced = { code = [[...]] }}, provides = { rater = { interface = "Rateable", code = [[...]]}}} request Servidor : Processor rater Console : LuaCCM Insere atrasos no envio de eventos de acordo com a taxa de vazão definida produced FlowRegulator Define nova taxa de vazão de eventos no servidor raw raw Cálcula taxa de vazão de eventos FlowWatcher Define valor de vazão limite para disparar a regulagem regulator Cliente A : Producer Cliente B : Producer limit done done

22 Depuração Distribuída BreakPoint = loaf.role { uses = { pauser = { interface = "Pauser" }}, before = { done = { code = [[ function(self, request) local c = request.context local p = c:get_connection_pauser() if p then while p:locked() do sleep(1) end end end ]]}}} request Inspectable Servidor : Processor Console : LuaCCM produced evaluator Inspeciona os campos dos segmentos do componente raw raw Inspectable evaluator Consulta se a execução no ponto de parada deve continuar pausada Cliente A : Producer Cliente B : Producer done BreakPoint done

23 Replicação Passiva adaptor = container:get_component_adaptor( "Processor ) Replicator:assign(adaptor) raw Cliente A : Processor done replica1 = loaf.handler(replicas:create()) replica2 = loaf.handler(replicas:create()) request Servidor : Producer produced raw Replicator Cliente B : Processor copied done done Replica 1 : Processor raw replica1.name = "Replica 1" replica2.name = "Replica 2" replica1.raw = client2.copied replica2.raw = client3.copied Replicator raw copied Cliente C : Processor done raw Replica 2 : Processor done

24 Conclusões LuaOrb Adaptation Framework Fornece recursos úteis para adaptação dinâmica. Alteração de componentes sem perda de estado. Níveis de abrangência das alterações. Alterações através de papéis e protocolos. Simplificação da reconfiguração de componentes CCM. Ambiente para experimentação de novas ferramentas Arquiteturas de aplicações adaptatívas. Novas abstrações para inserção de alterações.

25 Trabalhos Futuros Implementação completa da especificação CCM Implementação completa da arquitetura de implantação proposta pelo modelo CCM. Contêiner com suporte a componentes persistentes e serviços de objetos. Diminuição das limitações do modelo Mecanismos para manter consistência das adaptações (inter e intra componentes). Definir mecanismos de segurança para controlar alterações. Validação das ferramentas propostas Implementação de sistemas reais. Arquiteturas para aplicações adaptáveis. Avaliação de outras abstrações Contratos de coordenação dinâmicos. Aspectos dinâmicos.

26 FIM Dúvidas Críticas Comentários

5 Trabalhos Relacionados

5 Trabalhos Relacionados 5 Trabalhos Relacionados Durante o trabalho desenvolvido nesta dissertação foram estudadas diversas tecnologias que têm objetivos semelhantes ao nosso. Os trabalhos estudados apresentam modelos de programação

Leia mais

Objetos e Componentes Distribuídos: EJB

Objetos e Componentes Distribuídos: EJB : EJB Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta

Leia mais

Requisitos de sistemas

Requisitos de sistemas Requisitos de sistemas Unidade III - Casos de Uso Identificação de casos de uso Conceitos de orientação a objetos Modelagem do diagrama de classes e casos de uso 1 Casos de uso CONCEITO Especifica o comportamento

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

Introdução ao SCS. Tecgraf PUC-Rio. outubro de 2010

Introdução ao SCS. Tecgraf PUC-Rio. outubro de 2010 Introdução ao SCS Tecgraf PUC-Rio outubro de 2010 Noções básicas O que são componentes de software? Unidades de composição com interfaces bem definidas e dependências explícitas Devem poder ser conectados,

Leia mais

Adriano Medeiros dos Santos. Suporte a Componentes Compostos Para o Middleware SCS. Dissertação de Mestrado

Adriano Medeiros dos Santos. Suporte a Componentes Compostos Para o Middleware SCS. Dissertação de Mestrado Adriano Medeiros dos Santos Suporte a Componentes Compostos Para o Middleware SCS Dissertação de Mestrado Dissertação apresentada ao Programa de Pós graduação em Informática do Departamento de Informática

Leia mais

Utilizando linguagens de programação orientadas a objetos para codificar programas adaptativos

Utilizando linguagens de programação orientadas a objetos para codificar programas adaptativos Utilizando linguagens de programação orientadas a objetos para codificar programas adaptativos Paulo Roberto Massa Cereda paulo.cereda@usp.br João José Neto jjneto@usp.br Escola Politécnica, Universidade

Leia mais

Hélcio Bezerra de Mello. Proxies Inteligentes Automáticas DISSERTAÇÃO DE MESTRADO. Programa de Pós graduação em Informática

Hélcio Bezerra de Mello. Proxies Inteligentes Automáticas DISSERTAÇÃO DE MESTRADO. Programa de Pós graduação em Informática Hélcio Bezerra de Mello Proxies Inteligentes Monitoração e Adaptação Automáticas DISSERTAÇÃO DE MESTRADO DEPARTAMENTO DE INFORMÁTICA Programa de Pós graduação em Informática Rio de Janeiro Setembro de

Leia mais

Arquitetura e Objetos Distribuídos em CORBA. Aula 3. Especificações OMA Object Web

Arquitetura e Objetos Distribuídos em CORBA. Aula 3. Especificações OMA Object Web Arquitetura e Objetos Distribuídos em CORBA Aula 3 Especificações OMA Object Web The Client/Server Evolution O que é a tecnologia CORBA? CORBA Common Object Request Broker Architecture Uma camada de software

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

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software Reuso de Software Aula 04 Agenda da Aula Arquitetura de Software e Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 14 Março 2012 Arquitetura de Software Padrões arquiteturais

Leia mais

por parte dos usuários dos sistemas de computação se tornou menos necessária e a popularidade desse tipo de linguagem diminuiu. Mais recentemente, a

por parte dos usuários dos sistemas de computação se tornou menos necessária e a popularidade desse tipo de linguagem diminuiu. Mais recentemente, a 1 Introdução Middleware é um termo cunhado no final da década de 60 (Naur e Randell, 1968), que é freqüentemente empregado para designar uma camada de software que oferece uma infra-estrutura para construção

Leia mais

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1 Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1 Autor Autor Local Cláudio Geyer Instituto de Informática disciplinas: POD e PDP Versão v4 2010-1 Programação com Objetos Distribuídos

Leia mais

Ciclo de vida: fases x atividades

Ciclo de vida: fases x atividades Ciclo de vida Fase de definição Análise e Especificação Estudo de Viabilidade Estimativas Planejamento Fase de desenvolvimento Design Implementação e integração Verificação e Validação Fase de operação

Leia mais

SCS-Lua - Tutorial - Básico

SCS-Lua - Tutorial - Básico SCS-Lua - Tutorial - Básico Tecgraf Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio) scs-users@tecgraf.puc-rio.br 2011-08-31 1 Introdução Este documento é um tutorial básico sobre a criação

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com 1. Que são sistemas abertos? É um sistema que oferece serviços de acordo com

Leia mais

Projeto de Linguagem. Linguagens de Programação

Projeto de Linguagem. Linguagens de Programação Projeto de Linguagem Renato Ferreira Linguagens de Programação Linguagens são adotadas para preencher uma demada Facilitar uma aplicação outrora difícil/impossível Independente da qualidade da linguagem

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Tecnologia em Sistemas para Internet Aula04 - Arquiteturas de Objetivos Conhecer as principais arquiteturas de sistemas distribuídos e seu funcionamento; 2 Introdução Sistemas distribuídos muitas vezes

Leia mais

IEC Banco de Dados I Aula 11 Técnicas de Programação SQL

IEC Banco de Dados I Aula 11 Técnicas de Programação SQL IEC Banco de Dados I Aula 11 Técnicas de Programação SQL Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho E- mail: andre@icomp.ufam.edu.br Site: hjp://bdufam.wordpress.com Sumário

Leia mais

Documento de Arquitetura de Software- SGE

Documento de Arquitetura de Software- SGE Documento de Arquitetura de Software- SGE IFG Autor: Marcelo Roldrin Barros Silva 1. Introdução 1.1 Finalidade Este documento oferece uma visão geral arquitetural abrangente do sistema SGE (Sistema de

Leia mais

Técnicas de Reutilização. Reutilização em Programação Orientada a Objetos. Considere três classes... Reuso de Classes.

Técnicas de Reutilização. Reutilização em Programação Orientada a Objetos. Considere três classes... Reuso de Classes. DCC / ICEx / UFMG Técnicas de Reutilização Reutilização em Programação Orientada a Objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Reuso de classes Bibliotecas Frameworks Considere três classes

Leia mais

UML. Modelando um sistema

UML. Modelando um sistema UML Modelando um sistema Fases do desenvolvimento de Software Análise de requisitos Análise Projeto Programação Análise de Requisitos Esta fase captura as intenções e necessidades dos usuários do sistema

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Definição Sistema Distribuído é aquele onde os componentes de software e hardware localizados em redes de computadores comunicam-se e coordenam suas ações apenas por passagem de mensagens.

Leia mais

Ambientes de Desenvolvimento Avançados

Ambientes de Desenvolvimento Avançados Ambientes de Desenvolvimento Avançados http://www.dei.isep.ipp.pt/~jtavares/adav Aula 1 Engenharia Informática 2006/2007 José António Tavares jrt@isep.ipp.pt 1 Aula de Apresentação e de Introdução 2 1

Leia mais

Contexto. Motivação. variabilidade. variabilidade

Contexto. Motivação. variabilidade. variabilidade Representação de Variabilidades em Componentes de Negócio no Contexto da Engenharia de Domínio Regiane Oliveira Ana Paula Blois Aline Vasconcelos Claudia Werner Roteiro Contexto Motivação Variabilidade

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

Encapsulamento e Modularização

Encapsulamento e Modularização Encapsulamento e Modularização Departamento de Computação Universidade Federal de Sergipe Encapsulamento Modularização Tipos Abstratos de Dados (TADs) Objetos Classes Conteúdo Encapsulamento Programação

Leia mais

Planning for and Managing Devices in the Enterprise: Enterprise Management Suite (EMS) & On-Premises Tools (20398)

Planning for and Managing Devices in the Enterprise: Enterprise Management Suite (EMS) & On-Premises Tools (20398) Planning for and Managing Devices in the Enterprise: Enterprise Management Suite (EMS) & On-Premises Tools (20398) Formato do curso: Presencial Localidade: Lisboa Data: 18 Dez. 2017 a 22 Dez. 2017 Preço:

Leia mais

Arquitetura de Software

Arquitetura de Software Arquitetura de Software A arquitetura de um software é uma estrutura de componentes interconectados através de interfaces Componentes são compostos de componentes menores e interfaces A interação entre

Leia mais

As 10 Áreas da Engenharia de Software, Conforme o SWEBOK Prof. Elias Ferreira

As 10 Áreas da Engenharia de Software, Conforme o SWEBOK Prof. Elias Ferreira As 10 Áreas da Engenharia de Software, Conforme o SWEBOK Prof. Elias Ferreira Educação de iniciação profissional validada e legitimada pela sociedade Registro da adequação à prática através de certificação

Leia mais

Desenvolvimento Baseado em Componentes e o Enfoque de Linha de Produtos

Desenvolvimento Baseado em Componentes e o Enfoque de Linha de Produtos Desenvolvimento Baseado em Componentes e o Enfoque de Linha de Produtos Segundo Workshop de Desenvolvimento Baseado em Componentes Itana Maria de Souza Gimenes itana@din.uem.br Departamento de Informática

Leia mais

Conceitos de Sistemas de Banco de Dados INE 5323

Conceitos de Sistemas de Banco de Dados INE 5323 Conceitos de Sistemas de Banco de Dados INE 5323 Prof. Mario Dantas Introdução Por quê Sistemas de Banco de Dados Visão dos Dados Modelos de Dados Linguagem de Definição de Dados (DDL) Linguagem de Manipulação

Leia mais

Padrões e exemplos de projetos no LabVIEW 2012

Padrões e exemplos de projetos no LabVIEW 2012 Padrões e exemplos de projetos no LabVIEW 2012 Desenvolvendo aplicações escaláveis com arquiteturas orientadas a Objeto Ilton Pereira Gerente da Engenharia de Aplicações Felipe Flores Engenheiro de Aplicações

Leia mais

MODELAGEM DE DADOS MÓDULO III - UNIDADE V- MAPEAMENTO OBJETO RELACIONAL

MODELAGEM DE DADOS MÓDULO III - UNIDADE V- MAPEAMENTO OBJETO RELACIONAL MODELAGEM DE DADOS MÓDULO III - UNIDADE V- MAPEAMENTO OBJETO RELACIONAL 0 UNIDADE V: MAPEAMENTO OBJETO RELACIONAL Paradigma da Orientação a Objetos: Este paradigma parte do princípio que existem diversos

Leia mais

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008. Common Object Request Broker Architecture [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008. From: Fintan Bolton Pure CORBA SAMS, 2001 From: Coulouris, Dollimore and

Leia mais

Banco de Dados Relacional

Banco de Dados Relacional Centro Federal de Educação Tecnológica de Pernambuco Curso de Tecnologia em Sistemas de Informação Banco de Dados Relacional Renata Lúcia Mendonça Ernesto do Rêgo rlrego@yahoo.com 1 Plano de Ensino Objetivo

Leia mais

Leonardo Godinho da Cunha. Modelos de Concorrência e Sandboxes Aplicados a Servidores HTTP em Lua. Dissertação de Mestrado

Leonardo Godinho da Cunha. Modelos de Concorrência e Sandboxes Aplicados a Servidores HTTP em Lua. Dissertação de Mestrado Leonardo Godinho da Cunha Modelos de Concorrência e Sandboxes Aplicados a Servidores HTTP em Lua Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do grau de Mestre pelo

Leia mais

Leitura: Cap : Sommerville; cap20: Pressman

Leitura: Cap : Sommerville; cap20: Pressman Leitura: Cap26-27 - 28: Sommerville; cap20: Pressman Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / Ian Sommerville 2000 Slide 1/47 Manutenção de software É modificar um programa depois que

Leia mais

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s Introdução Contribuição do Capítulo 2: discutir modelos de dados definir conceitos de esquemas e instâncias descrever os tipos de interfaces e linguagens oferecidas por um SGBD mostrar o ambiente de programas

Leia mais

Sistemas de Objetos DistribuídosPrimeira Aplicação Java ORB p.1/21

Sistemas de Objetos DistribuídosPrimeira Aplicação Java ORB p.1/21 Sistemas de Objetos Distribuídos Primeira Aplicação Java ORB Francisco José da Silva e Silva Departamento de Informática da Universidade Federal do Maranhão Sistemas de Objetos DistribuídosPrimeira Aplicação

Leia mais

Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator

Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator Ederson Evaristo Jantsch Orientador: Marcel Hugo 09/07/2002 Roteiro Introdução Aplicação multicamadas Tecnologias

Leia mais

Introdução a UML (Unified Modeling Language)

Introdução a UML (Unified Modeling Language) Introdução a UML (Unified Modeling Language) O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário

Leia mais

Formação JAVA Web.

Formação JAVA Web. Inscreva-se na Formação JAVA Web e comece a desenvolver sistemas para Web e Desktop com a linguagem de programação open source multiplataforma mais valorizada do mercado. Carga-horária: 80h O que você

Leia mais

Princípios da Engenharia de Software aula 03

Princípios da Engenharia de Software aula 03 Princípios da Engenharia de Software aula 03 Prof.: José Honorato Ferreira Nunes Material cedido por: Prof.: Franklin M. Correia Na aula anterior... Modelos de processos de software: Evolucionário Tipos

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Classes, Atributos e Métodos Msc. Paulo de Tarso F. Júnior 1 Introdução Programas eram lineares e com poucos módulos: PE Programação Estruturada Aumento da complexidade

Leia mais

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F. Diagramas UML Classe, Seqüência e Atividades Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 15 de maio

Leia mais

Sistemas Distribuídos Aula 3

Sistemas Distribuídos Aula 3 Sistemas Distribuídos Aula 3 Aula passada Processos IPC Características Ex. sinais, pipes, sockets Aula de hoje Threads Kernel level User level Escalonamento Motivação: Servidor Web Considere Servidor

Leia mais

O sistema SCS 34. getreceptaclesbyname(in NameList names): Obtém uma lista de descritores

O sistema SCS 34. getreceptaclesbyname(in NameList names): Obtém uma lista de descritores 3 O sistema SCS Todos os mecanismos de adaptação propostos neste trabalho dependem de uma modularização adequada das aplicações para que possam ser aplicados. Além disso, a natureza tipicamente distribuída

Leia mais

Criando uma aplicação web

Criando uma aplicação web Criando uma aplicação web Aplicações web Criaremos uma aplicação completa utilizando: Bancos de dados Modelo MVC JavaServer Faces (PrimeFaces) Um pouco sobre banco de dados Todas as aplicações precisam

Leia mais

Introdução ao módulo LabVIEW FPGA

Introdução ao módulo LabVIEW FPGA Introdução ao módulo LabVIEW FPGA Guilherme Yamamoto Engenheiro de Marketing de Produto Tecnologia FPGA Blocos de E/S Acesso direto às E/S digitais e analógicas. Interconexões programáveis Roteamento de

Leia mais

Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes

Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes Antônio Francisco do Prado Daniel Lucrédio e-mail: prado@dc.ufscar.br Resumo Este artigo apresenta a ferramenta CASE

Leia mais

Aula 04 Introdução à Programação Orientada à Objetos

Aula 04 Introdução à Programação Orientada à Objetos Aula 04 Introdução à Programação Orientada à Objetos Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda Introdução à Programação Orientada

Leia mais

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADAS ATIVIDADES PRÁTICAS SUPERVISIONADAS Tecnologia em Análise e Desenvolvimento de Sistemas 5ª. Série Programação Distribuída A atividade prática supervisionada (ATPS) é um método de ensinoaprendizagem desenvolvido

Leia mais

INE5380 - Sistemas Distribuídos

INE5380 - Sistemas Distribuídos INE5380 - Sistemas Distribuídos Object Request Broker e CORBA Por: Léo Willian Kölln - 0513227-4 Novembro de 2006 ORB Object Request Broker ORB aqui será tratado como um Middleware que permite a construção

Leia mais

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Mestrado em Ciência da Computação 1o. Semestre / 2006 Prof. Fábio M. Costa fmc@inf.ufg.br www.inf.ufg.br/~fmc/ds-msc2006 Aula

Leia mais

Design and Evaluation of a Support Service for Mobile, Wireles. Applications

Design and Evaluation of a Support Service for Mobile, Wireles. Applications Design and Evaluation of a Support Service for Mobile, Wireless Publish/Subscribe Applications Tecnologias de Middleware 06/07 Curso de Especialização em Informática Departamento de Informática Faculdade

Leia mais

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Notas de Aula 03: Introdução a Orientação a Objetos e a UML Notas de Aula 03: Introdução a Orientação a Objetos e a UML Objetivos da aula: Introduzir os conceitos da Orientação à Objetos (O.O) Introduzir os conceitos da UML Relacionar os processos às ferramentas

Leia mais

InGriDE: Um Ambiente Integrado de Desenvolvimento para Computação em Grade

InGriDE: Um Ambiente Integrado de Desenvolvimento para Computação em Grade InGriDE: Um Ambiente Integrado de Desenvolvimento para Computação em Grade Eduardo Guerra eguerra@ime.usp.br Orientador: Prof. Dr. Alfredo Goldman Proposta de dissertação apresentada ao IME-USP para qualificação

Leia mais

Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de Computação e Sistemas Digitais. PCS 0014: Linguagens de Programação

Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de Computação e Sistemas Digitais. PCS 0014: Linguagens de Programação Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de Computação e Sistemas Digitais Prof. ISVega PCS 0014: Linguagens de Programação Apontamento#13 Abr/2001 Sistemas de Tipos Conteúdo

Leia mais

ao paradigma imperativo

ao paradigma imperativo PARADIGMA FUNCIONAL PARADIGMA FUNCIONAL: INTRODUÇÃO G Exemplos de linguagens funcionais LISP - Início: LP puramente funcional - Depois: acréscimo de alguns recursos imperativos (aumentaram eficiência de

Leia mais

Processos de software

Processos de software Processos de software 1 Processos de software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software. 2 Objetivos Introduzir modelos de processos de

Leia mais

Sérgio Koch Van-Dall

Sérgio Koch Van-Dall PROTÓTIPO PARA ATUALIZAÇÃO ASSÍNCRONA DE DADOS UTILIZANDO WEB SERVICES Sérgio Koch Van-Dall sergiod@inf.furb.br Orientador: Prof. Paulo Fernando da Silva UNIVERSIDADE REGIONAL DE BLUMENAU CURSO DE CIÊNCIAS

Leia mais

Ferramentas Programação. UDESC - Prof. Juliano Maia 1

Ferramentas Programação. UDESC - Prof. Juliano Maia 1 Ferramentas Programação UDESC - Prof. Juliano Maia 1 Índice Seção 1 Linguagens de Programação Seção 2 Interpretador Seção 3 Compilador / Linkeditor Seção 4 Ambientes de Desenvolvimento UDESC - Prof. Juliano

Leia mais

Protótipo tipo de software para geração de sistemas distribuídos. dos utilizando Design Patterns

Protótipo tipo de software para geração de sistemas distribuídos. dos utilizando Design Patterns Protótipo tipo de software para geração de sistemas distribuídos dos utilizando Design Patterns Aluno: Fabiano Oss fabiano@inf.furb.br Orientador: Everaldo A Grahl egrahl@furb.br Agenda Introdução; Objetivos;

Leia mais

Livro texto: Capítulo 1

Livro texto: Capítulo 1 Livro texto: Capítulo 1 Bancos de dados (BD) No decorrer do dia, a maioria de nós se depara com atividades que envolvem alguma interação com os BD s banco reservas em um hotel compra de passagens aéreas

Leia mais

Desenvolvimento Baseado em Componentes: Tecnologia J2EE

Desenvolvimento Baseado em Componentes: Tecnologia J2EE Desenvolvimento Baseado em Componentes: Tecnologia J2EE Paulo Pires paulopires@nce.ufrj.br http//genesis.nce.ufrj.br/dataware/hp/pires Agenda Introdução Componentes Introdução a Especificação J2EE Modelo

Leia mais

Permita o acesso ao Internet para o módulo ips ASA 5500-X

Permita o acesso ao Internet para o módulo ips ASA 5500-X Permita o acesso ao Internet para o módulo ips ASA 5500-X Índice Introdução Pré-requisitos Requisitos Componentes Utilizados Convenções Informação da característica Metodologia de Troubleshooting Solução

Leia mais

Computação Ciente do Contexto - Parte II

Computação Ciente do Contexto - Parte II Introdução à Computação Móvel Computação Ciente do Contexto - Parte II Francisco José da Silva e Silva Rafael Fernandes Lopes Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA

Leia mais

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Mestrado em Ciência da Computação 1o. Semestre / 2006 Prof. Fábio M. Costa fmc@inf.ufg.br www.inf.ufg.br/~fmc/ds-msc2006 Aula

Leia mais

CAP. VI ANÁLISE SEMÂNTICA

CAP. VI ANÁLISE SEMÂNTICA CAP. VI ANÁLISE SEMÂNTICA VI.1 Introdução Semântica SIGNIFICADO, SENTIDO LÓGICO, COERÊNCIA,... Diferença entre SINTAXE e SEMÂNTICA Sintaxe : descreve as estruturas de uma linguagem; Semântica : descreve

Leia mais

Introdução INTRODUÇÃO AO SWEBOK. Origens do corpo de conhecimentos da Engenharia de Software: Introdução a Computação e Engenharia de Software

Introdução INTRODUÇÃO AO SWEBOK. Origens do corpo de conhecimentos da Engenharia de Software: Introdução a Computação e Engenharia de Software INTRODUÇÃO AO SWEBOK Introdução a Computação e Engenharia de Software Profa. Cynthia Pinheiro Introdução Origens do corpo de conhecimentos da Engenharia de Software: Engenharia da Computação Ciência da

Leia mais

Sistemas Distribuídos Capítulo 2 - Aula 2

Sistemas Distribuídos Capítulo 2 - Aula 2 Sistemas Distribuídos Capítulo 2 - Aula 2 Aula passada Introdução, metas e tipos de Sistemas Distribuídos, Exemplos Aula de hoje Estilos Arquitetônicos Arquitetura de Sistemas Arquiteturas e Middleware

Leia mais

PROGRAMAÇÃO EM JOGOS DIGITAIS

PROGRAMAÇÃO EM JOGOS DIGITAIS PROGRAMAÇÃO EM JOGOS DIGITAIS Frutuoso Silva Aplicações gráficas / Jogos Como funciona uma aplicação gráfica? O que é um jogo? Como funciona um jogo? 1 Aplicação gráfica! É um programa que apresenta gráficos

Leia mais

Engenharia de Software.

Engenharia de Software. Engenharia de Software Prof. Raquel Silveira O que é (Rational Unified Process)? É um modelo de processo moderno derivado do trabalho sobre a UML e do Processo Unificado de Desenvolvimento de Software

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Arquiteturas Capítulo 2 Agenda Estilos Arquitetônicos Arquiteturas de Sistemas Arquiteturas Centralizadas Arquiteturas Descentralizadas Arquiteturas

Leia mais

SUMÁRIO CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25

SUMÁRIO CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25 SUMÁRIO LISTA DE FIGURAS LISTA DE TABELAS LISTA DE SIGLAS E ABREVIATURAS Pág. CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25 2.1 A tecnologia de orientação a objetos 25 2.1.1 Projeto de software

Leia mais

DNS central. A new approach for DNS records management at Unesp. Carlos Coletti GRC

DNS central. A new approach for DNS records management at Unesp. Carlos Coletti GRC DNS central A new approach for DNS records management at Unesp Carlos Coletti GRC carlos.coletti@unesp.br Agenda Introdução Objetivos Infraestrutura atual Nova infraestrutura proposta Proposta de nova

Leia mais

Sistema de acesso a dispositivos eletrônicos através da TV Digital interativa. Aluno: Rodrigo Brüning Wessler Orientador: Francisco Adell Péricas

Sistema de acesso a dispositivos eletrônicos através da TV Digital interativa. Aluno: Rodrigo Brüning Wessler Orientador: Francisco Adell Péricas Sistema de acesso a dispositivos eletrônicos através da TV Digital interativa Aluno: Rodrigo Brüning Wessler Orientador: Francisco Adell Péricas Roteiro da Apresentação Introdução Objetivos Fundamentação

Leia mais

Levantamento, Análise e Gestão Requisitos. Aula 03

Levantamento, Análise e Gestão Requisitos. Aula 03 Levantamento, Análise e Gestão Requisitos Aula 03 Agenda Paradigma da Orientação a Objetos Classes e objetos Abstração Encapsulamento Herança e polimorfismo Associação de objetos Coesão e acoplamento Levantamento

Leia mais

Qualidade de Software QUALIDADE DE SOFTWARE PRODUTO

Qualidade de Software QUALIDADE DE SOFTWARE PRODUTO Qualidade de Software QUALIDADE DE SOFTWARE PRODUTO O que é Qualidade de Software Produto? Boa fabricação. Deve durar muito. Bom desempenho. Utilizável tanto em UNIX quanto em DOS. Adaptável às minhas

Leia mais

Introdução 12 que inuenciam a execução do sistema. As informações necessárias para o diagnóstico de tais problemas podem ser obtidas através da instru

Introdução 12 que inuenciam a execução do sistema. As informações necessárias para o diagnóstico de tais problemas podem ser obtidas através da instru 1 Introdução Atualmente a demanda pela construção de novos sistemas de software tem aumentado. Junto com esse aumento também cresce a complexidade das soluções que estão sendo desenvolvidas, o que torna

Leia mais

Capítulo 2. Orientação a Objetos

Capítulo 2. Orientação a Objetos Capítulo 2 Orientação a Objetos Princípios da Orientação a Objetos Os princípios da orientação a objetos afetam todo o processo de desenvolvimento de software: Seres humanos pensam em termos de substantivos

Leia mais

Uma Abordagem para Modelagem de Contextos Dinâmicos em Simulação de Projetos Baseada em Multi-Agentes

Uma Abordagem para Modelagem de Contextos Dinâmicos em Simulação de Projetos Baseada em Multi-Agentes Uma Abordagem para Modelagem de Contextos Dinâmicos em Simulação de Projetos Baseada em Multi-Agentes Proposta de Tese Davy Baia Carlos Lucena davybaia@gmail.com Agenda Introdução Motivação - Cenário Definição

Leia mais

4 Arquitetura de Componentes para o OiL

4 Arquitetura de Componentes para o OiL 4 Arquitetura de Componentes para o OiL Como já foi discutido, o desenvolvimento do OiL é interessante para a experimentação de técnicas de construção de middlewares e para a criação de protótipos de serviços

Leia mais

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001 PROJETO DE PROGRAMAS Projeto de Programas PPR0001 Desenvolvimento de Software 2 3 Desenvolvimento de Software Análise de Requisitos Distinguir e dividir o sistema em componentes: Analisar os componentes

Leia mais

Padrão de projeto de software

Padrão de projeto de software Padrão de projeto de software Paulo Venancio Lopes e Daniel Sguillaro Nome Roupa Suja Se Lava Em Casa. Intenção Dar maior capacidade e flexibilidade ao conceito de entidade (no contexto de persitência

Leia mais

Descrição: Retorna uma lista com todos os publishers disponíveis no middleware.

Descrição: Retorna uma lista com todos os publishers disponíveis no middleware. 1 Publisher GET http://server:port/publisher Descrição: Retorna uma lista com todos os publishers disponíveis no middleware. Parâmetros: void. status: error: false, message: null, data: publishers: [ description:

Leia mais

Singleton e Adapter. Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé)

Singleton e Adapter. Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé) e Adapter Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé) O que vimos na última aula? Factory Method Abstract Factory 2 O que veremos hoje? (padrão de criaçã) Adapter

Leia mais

Gerência de Projetos de Software. Prof. Dr. João Dovicchi INE / CTC / UFSC.

Gerência de Projetos de Software. Prof. Dr. João Dovicchi INE / CTC / UFSC. Prof. Dr. João Dovicchi INE / CTC / UFSC dovicchi@inf.ufsc.br http://www.inf.ufsc.br/~dovicchi Programa Projetos e Metodologias Tipos e abordagens Organização Estimativas de Esforço e Gerência de Riscos

Leia mais

Usuários. Interface com Usuários. Programa Aplicativo. Interfaces de Programação. Sistema Operacional

Usuários. Interface com Usuários. Programa Aplicativo. Interfaces de Programação. Sistema Operacional 11. Interfaces Neste capítulo é apresentado o conceito de interfaces Java, sua aplicação no projeto de hierarquias de tipos e sua relação com hierarquias de classes. Ao final deste capítulo o estudante

Leia mais

Unidade II MODELAGEM DE PROCESSOS. Profa. Gislaine Stachissini

Unidade II MODELAGEM DE PROCESSOS. Profa. Gislaine Stachissini Unidade II MODELAGEM DE PROCESSOS Profa. Gislaine Stachissini Modelagem de sistemas A fase do desenvolvimento do sistema exige: esforço; dedicação; envolvimento; um único objetivo. Estilo de desenvolvimento

Leia mais

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo MODELAGEM DE DADOS Sistemas de Banco de Dados Profa. Rosemary Melo SISTEMAS DE BANCO DE DADOS OBJETIVOS Apresentar os conceitos fundamentais de Sistemas de Banco de Dados. Principais componentes dos SGBDs

Leia mais

Engenharia de Software

Engenharia de Software Prof. M.Sc. Ronaldo C. de Oliveira ronaldooliveira@facom.ufu.br FACOM - 2011 UML Linguagem Unificada de Modelagem Projeto de Software Introdução O que é projeto em software? O termo projeto é um tanto

Leia mais

NextFlow: Um Framework para Mapeamento de Processos de Negócio e Objetos

NextFlow: Um Framework para Mapeamento de Processos de Negócio e Objetos NextFlow: Um Framework para Mapeamento de Processos de Negócio e Objetos Rógel Garcia de Oliveira, Marco Túlio Valente 1 Universidade Federal de Minas Gerais (UFMG) Belo Horizonte MG Brasil {rogelgarcia,mtov}@dcc.ufmg.br

Leia mais

Desenvolvimento Web com Framework Demoiselle versão 1.0

Desenvolvimento Web com Framework Demoiselle versão 1.0 Desenvolvimento Web com Framework Demoiselle versão 1.0 Módulo 07: Outros Componentes Autor: Rodrigo Hjort Serpro / Coordenação Estratégica de Tecnologia / Curitiba www.frameworkdemoiselle.org.br Modificado

Leia mais

Orientação a Objetos - Programação em C++

Orientação a Objetos - Programação em C++ OO- Engenharia Eletrônica Orientação a Objetos - Programação em C++ Slides 17: Programação Visual ou Orientada a Objetos Gráficos (Formulários, Botões, Caixas de Texto etc) Exemplificado em Microsoft Visual

Leia mais

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando

Leia mais

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro A importância da UML para projetar sistemas. Principais características do diagrama de classes e de sequência.

Leia mais