Rua Lauro Müller, 116 sala 3902 Rio de Janeiro, RJ Brasil

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

Download "Rua Lauro Müller, 116 sala 3902 Rio de Janeiro, RJ Brasil 22290-906"

Transcrição

1 Migração e persistência heterogêneas de computações em Lua Anolan Milanés 1, Noemi Rodriguez 12, Renato Maia 1 1 Departamento de Informática Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio) R. Marquês de São Vicente, 225 RDC Rio de Janeiro RJ Brasil 2 Rede Nacional de Ensino e Pesquisa (RNP) Rua Lauro Müller, 116 sala 3902 Rio de Janeiro, RJ Brasil {anolan,noemi,maia}@inf.puc-rio.br Abstract. The lack of support for heterogeneous capture and restoration of computations in most current programming languages makes of migrating or persisting computations heterogeneously a dificult problem. When available, this support is offered through ad-hoc solutions that are difficult to adapt to different requirements. This paper describes a work in progress related to the implementation of persistence and migration in a real Lua application by extending the Lua language with support for capturing and restoration of executions. Resumo. Migrar ou persistir computações em um ambiente heterogêneo é um problema difícil devido à falta de suporte à captura e restauração heterogêneas de computações na maioria das linguagens atuais. Quando oferecido, este suporte consiste em soluções ad-hoc e é difícil de adaptar a diferentes necessidades. Este artigo descreve um trabalho em curso relacionado a implementação de persistência e migração numa aplicação Lua real através de uma extensão à linguagem Lua com suporte a captura e restauração de computações. 1. Introdução Este artigo descreve um trabalho em curso dedicado à implementação de migração e persistência de computações em execução. O problema a resolver consiste em como produzir uma nova computação, como conseqüência de um procedimento de mobilidade ou persistência, cujo estado de execução seja equivalente ao da computação original (computação aqui se refere a uma execução, seja na forma de processos, threads, agentes móveis, ou registros de ativação). Este problema é difícil de resolver em ambientes distribuídos nos quais as plataformas de origem e destino possam ser diferentes. A maioria das linguagens de programação atuais não oferece o suporte para a captura e restauração do estado de execução que a implementação de migração e persistência heterogêneas de computações precisa (veja o survey [Milanés et al. 2008]). Para superar essa limitação, os programadores são forçados, no nível da aplicação, a usar truques que afetam a portabilidade ou o desempenho, ou ambos. Ao acrescentar funcionalidades a uma linguagem de programação de propósito geral, deve-se manter a simplicidade da linguagem e evitar redundâncias e conflitos, mas Trabalho parcialmente apoiado pelo Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)

2 ao mesmo tempo suportar tantas aplicações quanto for possível, privilegiando a generalidade. O ideal é que a linguagem ofereça mecanismos flexíveis, e não políticas específicas. Assim, projetar uma nova linguagem ou acrescentar uma linguagem com construções que permitam a captura e restauração heterogêneas do estado de execução deveria implicar na busca de mecanismos flexíveis que permitam oferecer este suporte. Entretanto, não são comuns as linguagens de programação seqüenciais com suporte flexível à captura e restauração heterogêneas. Pelo contrário, ele é tradicionalmente oferecido através de mecanismos que seguem uma semântica predeterminada. Na maioria dos casos, se trata de implementações ad-hoc focadas para um determinado domínio de aplicação e que não permitem a manipulação da representação da execução no nível da linguagem. Acreditamos que o suporte das linguagens à captura e restauração heterogêneas de computações deva ser baseado na manipulação explícita da representação das estruturas básicas que definem o estado do programa. Oferecendo as primitivas necessárias para manipular o estado da computação, a linguagem permite construir procedimentos customizados de captura e restauração. A nossa abordagem se baseia em dois mecanismos que chamaremos de reificação e instalação das estruturas da linguagem. A API de reificação e instalação de execuções foi implementada como uma extensão de Lua 5.1 [Ierusalimschy 2006] chamada de LuaNua. Várias facilidades reflexivas de Lua já oferecem algum suporte para captura e restauração. LuaNua estende o conjunto de funcionalidades reflexivas de Lua através da modificação e extensão da biblioteca de depuração. O restante do artigo está organizado da seguinte forma. A seção 2 discute a nossa abordagem para o problema da migração e persistencia heterogêneas flexível de computações, assim como a API implementada em LuaNua. A seção 3 descreve o MPA, um servidor de aplicações de automação de processos que é o caso de uso apresentado neste trabalho. A última seção se dedica às conclusões. 2. LuaNua: reificação e instalação em Lua A nossa abordagem é baseada na combinação de operações de reificação e instalação. O termo reificação se refere à disponibilizar, ao programa que está executando, as estruturas de dados do interpretador [Friedman and Wand 1984]. Chamaremos de instalação a operação oposta, que consiste em instalar valores obtidos, através de operações de reificação, no espaço de memória. Ao oferecer acesso à representação de cada componente do estado de execução (através de reificação) e permitir instalar esta representação, a linguagem oferece os meios para executar a captura e restauração heterogêneas de computações. A reificação e instalação, quando baseadas em representações navegáveis e componíveis, resultam em ferramentas poderosas permitindo a implementação de diferentes políticas. Em uma representação navegável, cada entidade que a compõe pode ser alcançável a partir de alguma outra entidade. A componibilidade permite suportar diferentes granularidades: altas granularidades seriam construídas a partir de granularidades pequenas. A capacidade de manipular o estado no nível da linguagem que estas operações permitem é o que provê a flexibilidade da proposta, permitindo mudanças seletivas no comportamento do programa durante a execução da computação. Por outro lado, ao deixar o programador no controle de cada aspecto do procedimento se afeta a usabilidade, sobrecarregando ao programador e levando facilmente a erros [Kennedy 2004]. Espera-

3 se que a API reflexiva seja usada através de bibliotecas de mais alto nível que permitem uma certa customização para determinados conjuntos de aplicações, enquanto as primitivas oferecidas pela linguagem continuam acessíveis para aplicações ou propósitos mais específicos. Nesta proposta, o procedimento comumente chamado de serialização está dividido em dois passos. O primeiro consiste na reificação (e instalação) das estruturas da execução. O segundo passo, que chamaremos de serialização (e o procedimento inverso de de-serialização), consiste na conversão dos valores reificados numa string de bytes a ser transmitida pela rede ou persistida Breve introdução a Lua Lua é uma linguagem interpretada, procedural, dinamicamente tipada, baseada em protótipos e com coleta de lixo. Os valores Lua podem ser de tipo nil, boolean, number, string, table, function, thread, lightuserdata e userdata. O suporte para concorrência é oferecido através de co-rotinas, que implementam suporte para multithreading cooperativo. A transferência de controle está baseada nas primitivas resume/yield. As tabelas Lua implementam arrays associativos, indexados usando qualquer valor da linguagem, exceto nil. Closures e co-rotinas são valores de primeira classe em Lua. Apesar de Lua não oferecer suporte a serialização de co-rotinas, é possível reificar e instalar funções Lua representadas como strings de bytes. Entretanto, esta representação não é facilmente navegável e não é portável, podendo requerer tradução em caso das arquiteturas origem e destino serem diferentes. Lua permite a carga dinâmica de código fonte ou bytecode e oferece outras funcionalidades reflexivas, que incluem o acesso ao ambiente e ao nome das variáveis locais. O fato de ser uma linguagem interpretada garante portabilidade para a informação representada no nível da linguagem. A simplicidade da concorrência em Lua evita a necessidade de tratar problemas de sincronização. Ter as co-rotinas como valores de primeira classe permite o tratamento homogêneo de valores e execuções na serialização, já que as co-rotinas encapsulam execuções API As funcionalidades genéricas que formam parte da API oferecida são implementadas pelas funções content e install. O nosso modelo de reificação é baseado no uso da função content, que recebe um valor Lua como argumento, e retorna a representação da sua estrutura. Esta primitiva aceita um segundo parâmetro na reificação de co-rotinas que é o nível do registro de ativação. A instalação é provida pela primitiva install. Esta função recebe como argumento a representação e o tipo ou um valor do tipo a ser reconstruído. Da mesma forma que o content, install recebe um parâmetro nível na instalação de co-rotinas. Uma invocação à função install deve retornar um valor do tipo especificado, em caso de sucesso. Para poder manipular a representação interna das computações como dados na linguagem, precisamos de uma estrutura de dados que facilite a composição e navegação. As tabelas Lua satisfazem esse requisito, pois podem ser indexadas com qualquer tipo de dado, facilitando a construção da representação, e também podem ser percorridas. Os valores estruturados são reificados em LuaNua como tabelas Lua. Isto permite manipu-

4 lar facilmente os valores e construir as representações progressivamente sob controle do programador. A representação devolvida por content contém somente valores atômicos (numbers, booleans, strings), e referências a abstrações estruturadas (tables, functions, upvalues, prototypes, threads, userdata). Isto permite controlar a extensão do fecho transitivo. A operação de reificação de co-rotinas consiste em reificar todos os frames, um por um, permitindo maior controle ao programador, que pode não estar interessado na co-rotina toda. A reificação e instalação são operações simétricas. As informações que somente fazem sentido para a co-rotina inteira (por exemplo, o status) devem ser extraídas e incorporadas pelo usuário como parte dos procedimentos usando as funcionalidades oferecidas com esse objetivo. A instalação precisa ter a capacidade de modificar execuções correntes, e não somente criar novas computações. Isto é necessário nos casos em que somente algumas co-rotinas da aplicação são modificadas, pois a criação de uma nova co-rotina gera uma nova referência que não irá coincidir com o valor referenciado pelas outras entidades do programa. Por este motivo, o install deve receber como parâmetro a co-rotina sobre a qual será feita a instalação, e deverá ter a capacidade de modificar ou acrescentar o conteúdo de uma pilha qualquer. A transferência de controle (reinício da execução) depois da instalação pode ser executada através das primitivas resume/yield. A restauração do ponto de execução durante o processo de instalação usando LuaNua está baseado nos mecanismos de suspensão/reativação de co-rotinas Lua. 3. Caso de Uso: MPA O MPA é um ambiente de desenvolvimento e implantação de controle automatizado de alto-nível para processos industriais. Idealmente, o MPA é utilizado por engenheiros de processo com pouca ou nenhuma experiência em programação de computadores para definir procedimentos automatizados utilizando uma linguagem visual baseada na notação de fluxograma. O MPA é extensível através de funções Lua definidas no arquivo de préconfiguração, que podem ser chamadas pelos fluxogramas. Todo o controle realizado pelo MPA é feito através de um conjunto de pontos de controle disponibilizados pelo sistema supervisório do processo. Os pontos de controle são variáveis que possuem um nome único, denominado tag e assumem valores do processo, tais como o valor de leitura de um sensor ou a abertura de uma válvula. Os fluxogramas do MPA manipulam os equipamentos do ambiente automatizado escrevendo e lendo os valores desses pontos. Uma aplicação MPA consiste basicamente na definição de um conjunto de fluxogramas e da lista de pontos de controle dos equipamentos manipulados. Essa definição é feita num aplicativo cliente de desenvolvimento que envia a aplicação a um servidor de aplicações MPA que executa num computador do ambiente de automação que tem acesso ao sistema supervisório do processo. Idealmente, uma instalação de um servidor MPA executa aplicações por vários meses ou anos sem interrupções. Isso é importante, pois muitas aplicações se baseiam na monitoração lenta e contínua dos eventos do processo para otimizar a automação. Dessa forma, eventuais paradas do servidor MPA exigem que as aplicações reiniciem o que pode causar perda de informações ou demoras custosas devido à verificação do estado do processo antes do início do controle.

5 Neste estudo de caso, propomos um mecanismo de persistência e migração automática do módulo de execução de aplicações do servidor MPA. Tal recurso é essencial para minimizar os períodos de falta dos serviços oferecidos pelas aplicações MPA devido a eventuais falhas nas manutenções rotineiras dos equipamentos que executam o servidor MPA. Nas próximas seções são apresentadas algumas das características principais da implementação do módulo de execução de aplicações do servidor MPA e do recurso proposto para persistência e migração da sua execução Executor de Aplicações Toda a implementação do servidor de aplicações do MPA é escrita em Lua, o que garante portabilidade, flexibilidade e facilidade de extensão. Basicamente, o servidor MPA oferece uma interface de controle CORBA para o módulo de execução de aplicações, denominado executor. Neste trabalho, nos concentraremos na persistência e migração apenas do executor e não do servidor MPA como um todo. O executor pode ser dividido em cinco partes, conforme ilustrado na figura 1. Figura 1. Estrutura do Executor de Aplicações MPA. chama executa funções Escalonador de Corotinas Fluxogramas Pré- Configuração chama operações Base de Equipamentos herda definições acessa pontos Ponte de Comunicação O restante desta seção descreve o Escalonador de co-rotinas e os Fluxogramas, que estão diretamente relacionados com o procedimento de migração. Fluxogramas Conjunto de grafos que descrevem máquinas de estado que implementam os fluxogramas que compõem a aplicação. Cada elemento gráfico do fluxograma corresponde a um estado implementado por uma função Lua que é chamada quando o estado é atingido. A transição entre os estados é feita com chamadas de cauda, de forma que possam ocorrer inúmeras transições sem que a pilha de execução cresça demasiadamente. O código da listagem 1 ilustra uma implementação de construtores de três elementos de fluxos: fluxos que são chamados como funções (linhas 1 10); iteração sobre equipamentos de uma classe (linhas 11 20); e execução de comandos (linhas 21 27). Em seguida, um fluxo que abre todas as válvulas cadastradas é criado usando esses construtores (linhas 29 33). A linha 35 cria uma nova linha de execução (i.e. thread) para executar o fluxo AbrirValvulas. As ações desempenhadas em cada estado do fluxo geralmente incluem chamadas às funções da pré-configuração ou operações dos equipamentos cadastrados na base, assim como chamadas a outros fluxos ou criação de novas linhas de execução (i.e. threads).

6 Listagem 1. Exemplo de máquina de estado implementando fluxograma. 1 function Flow ( s e l f ) 2 return function (... ) 3 local vars = setmetatable ({},{ i n d e x = G }) 4 for i = 1, select ( #,... ) do 5 vars [ s e l f. params [ i ] ] = select ( i,... ) 6 end 7 s e l f. s t a r t ( vars ) 8 return vars [ s e l f. r e s u l t ] 9 end 10 end 11 function I t e r a t i o n ( s e l f ) 12 return function ( vars ) 13 for, valve in pairs ( s e l f. set ) do 14 vars [ s e l f. var ] = valve 15 s e l f. step ( vars ) 16 end 17 vars [ s e l f. var ] = n i l 18 i f s e l f. next then return s e l f. next ( vars ) end 19 end 20 end 21 function Command( s e l f ) 22 local a c t i o n = assert ( loadstring ( s e l f. a c t i o n ) ) 23 return function ( vars ) 24 setfenv ( action, vars ) ( ) 25 i f s e l f. next then return s e l f. next ( vars ) end 26 end 27 end A b r i r V a l v u l a s = Flow{ params={ ABT }, 30 s t a r t = I t e r a t i o n { set=valvulas, var= V, 31 step = Command { a c t i o n = [ [ ok = V : moverabertura (ABT ) ] ], 32 next = Command{ a c t i o n = [ [ p r i n t ( Valvula aberta?, ok ) ] ] } }, 33 next = Command { a c t i o n = [ [ p r i n t ( Valvulas abertas ) ] ] } } } Scheduler : s t a r t ( A b r i r V a l v u l a s, 100) i n i c i a f l u x o A b r i r V a l v u l a s. Escalonador de Co-rotinas Módulo responsável por controlar a execução das diferentes linhas de execução dos fluxos representadas por co-rotinas. Tipicamente, uma linha de execução de um fluxograma transita continuamente entre diferentes estados, sendo que em alguns deles ocorrem esperas, que causa a suspensão temporária da linha de execução. Nesses momentos, a linha de execução é suspensa e o escalonador fica responsável por selecionar uma outra cujo período de suspensão tenha expirado para que ela retome sua execução. O escalonador mantém registro do estado de todas as linhas de execução, incluindo os tempos de suspensão que ficam armazenados numa fila de corotinas suspensas. Os fluxos ficam em espera basicamente por duas razões: (a) esperar a reação de um equipamento, como o tempo de movimentação da válvula após o comando de mudança de abertura; (b) esperar pela reação do processo após uma atuação nos equipamentos de controle desse processo. Por exemplo, quando a injeção de gás na tubulação de extração de petróleo é aumentada com o intuito de diminuir a peso da coluna de óleo nessa tubulação, é necessário aguardar um tempo (geralmente algumas dezenas de minutos) para que essa atuação surta efeito antes de medir a pressão de surgência de óleo resultante Persistência do Estado A implementação da captura do estado de execução do módulo de execução de aplicações do servidor MPA pode ser implementada inserindo uma chamada à função de captura dentro do escalonador:

7 scheduler : r e g i s t e r ( c o r o u t i n e. create ( function ( )... scheduler : capture ( ) os. e x i t ( ) end ) ) Para facilitar a captura e reificação usamos uma biblioteca de mais alto nível (seriallib), evitando o acesso direto à API de reificação/instalação (veja a seção 2). Esta biblioteca Listagem 2. Função de reificação de uma biblioteca para facilitar o uso da API. 1 function save ( value, saved ) 2 local t t y p e = type ( value ) 3 i f t t y p e == number or t t y p e == s t r i n g or 4 t t y p e == boolean or t t y p e == n i l then 5 return value 6 end 7 i f saved [ value ] then return saved [ value ] 8 else 9 local s = {}; saved [ value ] = s 10 i f t t y p e == f u n c t i o n then 11 s. env = getfenv ( value ) 12 s. env= ( s. env = G and save ( s. env, saved ) ) or n i l 13 value = debug. content ( value ) ; 14 e l s e i f t t y p e == thread then 15 local i = 0 16 s. c i = {} 17 repeat 18 s. c i [ i ] = debug. content ( value, i ) 19 i = i u n t i l ( s. c i [ i 1]== n i l ) 21 value = s 22 e l s e i f 0 u t r o s valores end 25 for k, v in pairs ( value ) do 26 k = save ( k, saved ) 27 s [ k ] = save ( v, saved ) 28 end 29 return s 30 end 31 end em particular oferece funções para a reificação (save, ilustrada na listagem 2) e instalação profunda de valores Lua (rebuild, ilustrada na listagem 3). A função save devolve o fecho transitivo completo do valor e não leva o estado global (linha 12), que será re-vinculado no destino (linha 15). A reificação de valores é feita através de chamadas à função content da API (linhas 13,18). A reificação de valores atômicos devolve o próprio valor (linhas 3-5). A reificação de valores estruturados devolve tabelas que são percorridas (linha 25) para reificar recursivamente todos valores estruturados aninhados (linhas 26,27) segundo o tipo, retornando uma representação completamente reificada. Os valores reificados são armazenados na tabela saved de forma a serem processados somente uma vez (linha 7). A reificação de threads é feita percorrendo os registros de ativação da co-rotina até atingir um nível não válido (linhas 17-20). A chamada a save se insere no código da função de captura (scheduler:capture()) da seguinte forma: local dump = s e r i a l l i b. save ( s e l f, saved ) Na restauração (no destino) é construída uma nova instância do escalonador a partir do estado capturado, já reificado pela função rebuild. local i n s t a l l = s e r i a l l i b. r e b u i l d ( t ) i n s t a l l : run ( )

8 A função rebuild (veja a listagem 3) instala recursivamente (de dentro para fora, valores mais internos primeiro) a representação passada como parâmetro. A instalação é executada segundo o tipo (devolvido pela função type de Lua, linha 2) através de chamadas à função install da API (linhas 8,14). A instalação de valores estruturados precisa da instalação prévia dos valores aninhados da representação (linhas 7-13). A instalação de funções inclui a restauração do ambiente, que no caso do ambiente global é feita como comentado por revinculação (linha 15). A instalação de uma co-rotina consiste na criação de uma nova co-rotina (linha 5), a instalação de cada registro de ativação (linhas 6-9) e a mudança do status da co-rotina para suspensa (linha 11) de forma a permitir sua ativação. Listagem 3. Função de instalação de uma biblioteca para facilitar o uso da API. 1 function r e b u i l d ( t, r e g i s t e r ) 2 local t t y p e = type ( t ) i f t. t t y p e == thread then 5 value = debug. newthread ( ) 6 for i = # t. ci, 0, 1 do 7 t. c i [ i ] = r e b u i l d ( t. c i [ i ], r e g i s t e r ) 8 value = debug. i n s t a l l ( t. c i [ i ], value, 0) 9 end debug. s e t s t a t u s ( value, s ) ; 12 e l s e i f t. t t y p e == f u n c t i o n then 13 for k, v in pairs ( t ) do t [ k ] = r e b u i l d ( v, r e g i s t e r ) end 14 value = debug. i n s t a l l ( t, f u n c t i o n ) ; 15 setfenv ( value, t. env or G ) 16 e l s e i f 0 u t r o s valores end 19 return value 20 end 4. Considerações finais Este trabalho está focado na implementação de migração heterogênea em uma aplicação real para validar as funcionalidades oferecidas por uma extensão à Lua com mecanismos de reificação e instalação de computações. Esta extensão permite a implementação de diferentes aplicações que precisam da capacidade de manipular computações, como é o caso da migração e persistência de execuções. Referências [Friedman and Wand 1984] Friedman, D. P. and Wand, M. (1984). Reification: Reflection without metaphysics. In LFP 84: Proceedings of the 1984 ACM Symposium on LISP and functional programming, pages , New York, NY, USA. ACM. [Ierusalimschy 2006] Ierusalimschy, R. (2006). Lua.Org. Programming in Lua, Second Edition. [Kennedy 2004] Kennedy, A. J. (2004). Functional Pearl: Pickler combinators. Journal of Functional Programming, 14(6): [Milanés et al. 2008] Milanés, A., Rodriguez, N., and Schulze, B. (2008). State of the art in heterogeneous strong computation migration. Concurrency and Computation: Practice & Experience. Accepted for publication.

2 Ferramentas Utilizadas

2 Ferramentas Utilizadas 2 Ferramentas Utilizadas Esta dissertação utiliza vários outros trabalhos para implementar os mecanismos de adaptação abordados. Essas ferramentas são descritas nas seções seguintes. 2.1 Lua Lua [7, 8]

Leia mais

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br Introdução a Banco de Dados Aula 03 Prof. Silvestri www.eduardosilvestri.com.br Arquiteturas de Banco de Dados Arquiteturas de BD - Introdução Atualmente, devem-se considerar alguns aspectos relevantes

Leia mais

DALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS

DALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS DALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS Aluno: Ricardo Gomes Leal Costa Orientadora: Noemi de la Rocque Rodriguez Introdução A biblioteca DALua [1], fruto do projeto anterior, tem por objetivo oferecer

Leia mais

Especificação Operacional.

Especificação Operacional. Especificação Operacional. Para muitos sistemas, a incerteza acerca dos requisitos leva a mudanças e problemas mais tarde no desenvolvimento de software. Zave (1984) sugere um modelo de processo que permite

Leia mais

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi 5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem

Leia mais

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza Sistemas Distribuídos Processos I Prof. MSc. Hugo Souza Até agora vimos a organização como um todo dos SDS, com o mapeamento estrutural e suas devidas características descritas em elementos, regras, conceitos,

Leia mais

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto

Leia mais

Linguagens de Programação Aula 10

Linguagens de Programação Aula 10 Linguagens de Programação Aula 10 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada As sentenças de controle das LP imperativas ocorrem em diversas categorias: seleção, seleção múltipla, iteração

Leia mais

1 Introdução. Componentes Usuários. Provedor de Serviços. Figura 1.1 Ambiente de oferecimento de serviços

1 Introdução. Componentes Usuários. Provedor de Serviços. Figura 1.1 Ambiente de oferecimento de serviços 1 Introdução Nos últimos anos, houve um aumento notável de demanda por plataformas com suporte a diferentes mídias. Aplicações manipulando simultaneamente texto, vídeo e áudio são cada vez mais comuns.

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

3. Fase de Planejamento dos Ciclos de Construção do Software

3. Fase de Planejamento dos Ciclos de Construção do Software 3. Fase de Planejamento dos Ciclos de Construção do Software A tarefa de planejar os ciclos de construção do software pode partir de diretrizes básicas. Estas diretrizes visam orientar que os ciclos de

Leia mais

Banco de Dados Orientado a Objetos

Banco de Dados Orientado a Objetos Banco de Dados Orientado a Objetos MODELAGEM, ANÁLISE, PROJETO e CLASSIFICAÇÃO Interação combinando lógica, através de objetos que contém os dados. Estes divididos conforme seus tipos e métodos (classe),

Leia mais

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO 1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO Desde o seu surgimento, o manuseio da computação é baseado em linguagens de programação. Ela permite que sejam construídos aplicativos

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos,

Leia mais

Descrição do Produto. Altus S. A. 1

Descrição do Produto. Altus S. A. 1 Descrição do Produto O software MasterTool IEC é um ambiente completo de desenvolvimento de aplicações para os controladores programáveis da Série Duo. Esta ferramenta permite a programação e a configuração

Leia mais

Manual do Usuário. Protocolo

Manual do Usuário. Protocolo Manual do Usuário Protocolo Índice de capítulos Parte I - Processos............................... 01 1 - Buscar................................ 01 2 - Listar................................ 02 3 - Abertura..............................

Leia mais

MODELAGEM E SIMULAÇÃO

MODELAGEM E SIMULAÇÃO MODELAGEM E SIMULAÇÃO Professor: Dr. Edwin B. Mitacc Meza edwin@engenharia-puro.com.br www.engenharia-puro.com.br/edwin Terminologia Básica Utilizada em de Sistemas Terminologia Básica Uma série de termos

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

Implementando uma Classe e Criando Objetos a partir dela

Implementando uma Classe e Criando Objetos a partir dela Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe

Leia mais

Figura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001

Figura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001 47 5 Redes Neurais O trabalho em redes neurais artificiais, usualmente denominadas redes neurais ou RNA, tem sido motivado desde o começo pelo reconhecimento de que o cérebro humano processa informações

Leia mais

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO UTILIZANDO O HIBERNATE Rafael Laurino GUERRA, Dra. Luciana Aparecida Martinez ZAINA Faculdade de Tecnologia de Indaiatuba FATEC-ID 1 RESUMO Este artigo apresenta

Leia mais

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona.

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona. Aula 14 Redes de Computadores 24/10/07 Universidade do Contestado UnC/Mafra Sistemas de Informação Prof. Carlos Guerber ROTEAMENTO EM UMA REDE DE COMPUTADORES A máscara de sub-rede é utilizada para determinar

Leia mais

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE Fabiana Gomes Marinho Faculdade Lourenço Filho Resumo: Na UML, a modelagem conceitual dos dados é descrita pelo diagrama de classes, que através

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

Leia mais

PORTABILIDADE NUMÉRICA UMA SOLUÇÃO ORIENTADA PELA SIMPLICIDADE, QUALIDADE E BAIXO CUSTO

PORTABILIDADE NUMÉRICA UMA SOLUÇÃO ORIENTADA PELA SIMPLICIDADE, QUALIDADE E BAIXO CUSTO PORTABILIDADE NUMÉRICA UMA SOLUÇÃO ORIENTADA PELA SIMPLICIDADE, QUALIDADE E BAIXO CUSTO 1 Introdução A portabilidade é a facilidade que possibilita ao assinante de telefonia manter o número do seu telefone

Leia mais

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura 7.1 - Exemplo de um grafo linear.

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura 7.1 - Exemplo de um grafo linear. CAPÍTULO 7 7 ANÁLISE DE REDES 7.1 Conceitos Básicos em Teoria dos Grafos Diversos problemas de programação linear, inclusive os problemas de transporte, podem ser modelados como problemas de fluxo de redes.

Leia mais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1 ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1 Índice 1. Introdução...3 1.1. O que é um Computador?... 3 1.2. Máquinas Multiníveis... 3 2 1. INTRODUÇÃO 1.1 O QUE É UM COMPUTADOR? Para estudarmos como um computador

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

agility made possible

agility made possible RESUMO DA SOLUÇÃO Utilitário ConfigXpress no CA IdentityMinder a minha solução de gerenciamento de identidades pode se adaptar rapidamente aos requisitos e processos de negócio em constante mudança? agility

Leia mais

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de

Leia mais

c. Técnica de Estrutura de Controle Teste do Caminho Básico

c. Técnica de Estrutura de Controle Teste do Caminho Básico 1) Defina: a. Fluxo de controle A análise de fluxo de controle é a técnica estática em que o fluxo de controle através de um programa é analisado, quer com um gráfico, quer com uma ferramenta de fluxo

Leia mais

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela? Exercícios sobre Linguagem PHP: 1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela? 2) Considere a linguagem de programação PHP e seus operadores. A execução da sentença:

Leia mais

REPLICACÃO DE BASE DE DADOS

REPLICACÃO DE BASE DE DADOS FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE FANESE NÚCLEO DE PÓS-GRADUAÇÃO E EXTENSÃO - NPGE REPLICACÃO DE BASE DE DADOS BRUNO VIEIRA DE MENEZES ARACAJU Março, 2011 2 FACULDADE DE ADMINISTRAÇÃO E

Leia mais

Estudo de Viabilidade. GMon Sistema de Gerenciamento de Monitores. Curso: Ciências da Computação Professora: Carla Silva

Estudo de Viabilidade. GMon Sistema de Gerenciamento de Monitores. Curso: Ciências da Computação Professora: Carla Silva Estudo de Viabilidade GMon Sistema de Gerenciamento de Monitores Curso: Ciências da Computação Professora: Carla Silva Recife, 20 de Janeiro de 2012 1 Sumário 1. Motivação... 3 2. Problema identificado...

Leia mais

MINISTÉRIO DA EDUCAÇÃO

MINISTÉRIO DA EDUCAÇÃO MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE SANTA CATARINA CAMPUS SÃO JOSÉ REDES DE COMPUTADORES Laboratório 2 Wireshark

Leia mais

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados Prof. Hugo Souza Até agora vimos como é formada a infraestrutura física e lógica das bases de dados com os principais componentes

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 28 Revisão para a Prova 2 http://www.ic.uff.br/~bianca/engsoft2/ Aula 28-28/07/2006 1 Matéria para a Prova 2 Gestão de projetos de software Conceitos (Cap. 21) Métricas (Cap.

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia 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

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 3-1. A CAMADA DE REDE (Parte 1) A camada de Rede está relacionada à transferência de pacotes da origem para o destino. No entanto, chegar ao destino pode envolver vários saltos em roteadores intermediários.

Leia mais

AULA 16 - Sistema de Arquivos

AULA 16 - Sistema de Arquivos AULA 16 - Sistema de Arquivos Arquivos podem ser vistos como recipientes que contêm dados ou como um grupo de registros correlatos. Os arquivos armazenam informações que serão utilizadas, em geral, por

Leia mais

Permitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova;

Permitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova; Software Básico 2008.2 Trabalho Prático 1: programação de E/S, uso de sinais Prática de programação voltada a eventos Trabalho individual ou em dupla Data de entrega: 01/10/2008 1 O Objetivo Utilizando

Leia mais

Soluções via.net para otimização de processos paramétricos com Autodesk Inventor.

Soluções via.net para otimização de processos paramétricos com Autodesk Inventor. Soluções via.net para otimização de processos paramétricos com Autodesk Inventor. Michel Brites dos Santos MAPData A parametrização quando possível já é uma forma de otimizar o processo de criação na engenharia.

Leia mais

ITIL v3 - Operação de Serviço - Parte 1

ITIL v3 - Operação de Serviço - Parte 1 ITIL v3 - Operação de Serviço - Parte 1 É na Operação de Serviço que se coordena e realiza as atividades e processos necessários para fornecer e gerenciar serviços em níveis acordados com o usuário e clientes

Leia mais

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em

Leia mais

UNIDADE 6 - PROGRAMAÇÃO MODULAR

UNIDADE 6 - PROGRAMAÇÃO MODULAR UNIDADE 6 - PROGRAMAÇÃO MODULAR Até o momento as estruturas de controle (seqüência, seleção e repetição) de um algoritmo definia-o como um bloco lógico (início e fim). À medida que os problemas a serem

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Ciclo de Vida de uma Aplicação Android Professor: Danilo Giacobo OBJETIVOS DA AULA Entender o ciclo de vida de uma aplicação Android. Conhecer algumas dicas para tirar

Leia mais

Manual do Usuário - ProJuris Web - Biblioteca Jurídica Página 1 de 20

Manual do Usuário - ProJuris Web - Biblioteca Jurídica Página 1 de 20 As informações contidas neste documento estão sujeitas a alterações sem o prévio aviso, o que não representa um compromisso da Virtuem Informática. As pessoas, organizações ou empresas e eventos de exemplos

Leia mais

Sistemas de Arquivos NTFS, FAT16, FAT32, EXT2 e EXT3

Sistemas de Arquivos NTFS, FAT16, FAT32, EXT2 e EXT3 Sistemas de Arquivos NTFS, FAT16, FAT32, EXT2 e EXT3 Os sistemas de arquivos é a parte do SO responsável pelo gerenciamento dos arquivos (estrutura, identificação, acesso, utilização, proteção e implementação).

Leia mais

Sumário. Administração de Banco de dados Módulo 12. Ilustração Backup-Recovery. Recuperação (Recovery) - Definição

Sumário. Administração de Banco de dados Módulo 12. Ilustração Backup-Recovery. Recuperação (Recovery) - Definição Sumário Administração de Banco de dados Módulo 12 1. Administração de SGBDs - Continuação 1.1. Recuperação (Recovery) 1.1.1. Recuperação de sistema 1.1.2. Recuperação da mídia M. Sc. Luiz Alberto lasf.bel@gmail.com

Leia mais

Manual das planilhas de Obras v2.5

Manual das planilhas de Obras v2.5 Manual das planilhas de Obras v2.5 Detalhamento dos principais tópicos para uso das planilhas de obra Elaborado pela Equipe Planilhas de Obra.com Conteúdo 1. Gerando previsão de custos da obra (Módulo

Leia mais

Análise e Projeto de Software

Análise e Projeto de Software Análise e Projeto de Software 1 Mundo Real Modelagem Elicitação Análise Problemas Soluções Gap Semântico Mundo Computacional Elicitação de Requisitos Análise de Requisitos Modelagem dos Requisitos 2 Projeto

Leia mais

MINISTÉRIO DA SAÚDE. Secretária de Gestão Estratégica e Participativa da Saúde SGEP. Coordenação de Desenvolvimento dos Sistemas de Saúde - CDESS

MINISTÉRIO DA SAÚDE. Secretária de Gestão Estratégica e Participativa da Saúde SGEP. Coordenação de Desenvolvimento dos Sistemas de Saúde - CDESS MINISTÉRIO DA SAÚDE Secretária de Gestão Estratégica e Participativa da Saúde SGEP Coordenação de Desenvolvimento dos Sistemas de Saúde - CDESS Departamento de Informática do SUS - DATASUS Manual operacional

Leia mais

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada Programação Estruturada Programação Estruturada Paradigmas de Linguagens de Programação As linguagens desse paradigma são muitas vezes chamadas de linguagens convencionais, procedurais ou imperativas.

Leia mais

2 Engenharia de Software

2 Engenharia de Software 20 2 Engenharia de Software 2.1 Design de Sistemas Orientados a Objetos Os Sistemas Orientados a Objetos não são mais novidade hoje em dia já estando há muitos anos no mercado. A orientação a objetos permite

Leia mais

ALGORITMOS E FLUXOGRAMAS

ALGORITMOS E FLUXOGRAMAS ALGORITMOS E FLUXOGRAMAS Prof. André Backes INTRODUÇÃO Computadores = cérebros eletrônicos? Computadores são máquinas e, por si sós, não podem ser inteligentes. Alguém as projetou e deu a ela todas as

Leia mais

O Processo de Engenharia de Requisitos

O Processo de Engenharia de Requisitos UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA O Processo de Engenharia de Requisitos Engenharia de Software 2o.

Leia mais

TÉCNICAS DE PROGRAMAÇÃO

TÉCNICAS DE PROGRAMAÇÃO TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente

Leia mais

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti http://ead.celsomasotti.com.br

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti http://ead.celsomasotti.com.br LÓGICA DE PROGRAMAÇÃO Professor Celso Masotti http://ead.celsomasotti.com.br Ano: 2015 1 HTML & PHP em Ambiente Web PARTE II Sumário I Decisão... 4 Operadores de Comparação... 6 II IF ELSEIF ELSE... 7

Leia mais

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO Referência: NT-AI.04.02.01 http://www.unesp.br/ai/pdf/nt-ai.04.02.01.pdf Data: 27/07/2000 STATUS: EM VIGOR A

Leia mais

O Gerenciamento de Documentos Analógico/Digital

O Gerenciamento de Documentos Analógico/Digital Tipos de GED: Document imaging Document management Document Imaging / Document Management O Gerenciamento de Documentos Analógico/Digital Mundo analógico Criação Revisão Processamento Arquivo Mundo digital

Leia mais

Resolução da lista de exercícios de casos de uso

Resolução da lista de exercícios de casos de uso Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se

Leia mais

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Marco T. A. Rodrigues*, Paulo E. M. de Almeida* *Departamento de Recursos em Informática Centro Federal de Educação Tecnológica de

Leia mais

NORMA TÉCNICA E PROCEDIMENTOS GERAIS PARA ADMINISTRAÇÃO DO BANCO DE DADOS CORPORATIVO

NORMA TÉCNICA E PROCEDIMENTOS GERAIS PARA ADMINISTRAÇÃO DO BANCO DE DADOS CORPORATIVO NORMA TÉCNICA E PROCEDIMENTOS GERAIS PARA ADMINISTRAÇÃO DO BANCO DE DADOS CORPORATIVO Referência: NT-AI.04.01.01 http://www.unesp.br/ai/pdf/nt-ai.04.01.01.pdf Data: 27/07/2000 STATUS: EM VIGOR A Assessoria

Leia mais

Cobrança Bancária. Contas / Manutenção.

Cobrança Bancária. Contas / Manutenção. Cobrança Bancária Este tutorial objetiva auxiliar os usuários na configuração do sistema para que a emissão de cobrança bancária dos títulos a receber seja feita. Os processos a seguir consistem na geração

Leia mais

Estudo sobre a linguagem de programação Lua *

Estudo sobre a linguagem de programação Lua * Estudo sobre a linguagem de programação Lua * Bruno Lopes Dalmazo 1, Francisco Tiago Avelar 1 1 Curso de Ciência da Computação Universidade Federal de Santa Maria (UFSM) Santa Maria, RS Brasil {dalmazo,

Leia mais

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

3 Um Modelo de Operações para a web semântica 3.1. Modelo de Operações 34 3 Um Modelo de Operações para a web semântica 3.1. Modelo de Operações As classes do Modelo de Operações representam a definição de como deve ser uma operação em uma aplicação, ou seja, quais os valores

Leia mais

Gerência do Sistema de Arquivos. Adão de Melo Neto

Gerência do Sistema de Arquivos. Adão de Melo Neto Gerência do Sistema de Arquivos Adão de Melo Neto 1 Gerência do Sistema de Arquivos Organização dos arquivos Estrutura de diretório Gerência de espaço livre Gerência de alocação de espaços em disco Proteção

Leia mais

Conceitos básicos da linguagem C

Conceitos básicos da linguagem C Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por

Leia mais

Programação Orientada a Objetos: Lista de exercícios #1. Bruno Góis Mateus

Programação Orientada a Objetos: Lista de exercícios #1. Bruno Góis Mateus Programação Orientada a Objetos: Lista de exercícios #1 Bruno Góis Mateus 1 Contents Programação Orientada a Objetos (Bruno Góis Mateus ): Lista de exercícios #1 Classes e Instanciação 3 A classe Circle...............................................

Leia mais

3.1 Definições Uma classe é a descrição de um tipo de objeto.

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

Leia mais

Casos de uso Objetivo:

Casos de uso Objetivo: Casos de uso Objetivo: Auxiliar a comunicação entre os analistas e o cliente. Descreve um cenário que mostra as funcionalidades do sistema do ponto de vista do usuário. O cliente deve ver no diagrama de

Leia mais

GBD PROF. ANDREZA S. AREÃO

GBD PROF. ANDREZA S. AREÃO GBD PROF. ANDREZA S. AREÃO Dado, Informação e Conhecimento DADO: Estímulos captados pelos sentidos humanos; Símbolos gráficos ou sonoros; Ocorrências registradas (em memória, papel, etc.); Indica uma situação

Leia mais

1. Introdução. Avaliação de Usabilidade Página 1

1. Introdução. Avaliação de Usabilidade Página 1 1. Introdução Avaliação de Usabilidade Página 1 Os procedimentos da Avaliação Heurística correspondem às quatro fases abaixo e no final é apresentado como resultado, uma lista de problemas de usabilidade,

Leia mais

SISTEMA BRENA DE AUTOMAÇÃO COMERCIAL

SISTEMA BRENA DE AUTOMAÇÃO COMERCIAL SISTEMA BRENA DE AUTOMAÇÃO COMERCIAL VERSÃO 359 U N I P A C K NOTA FISCAL ELETRÔNICA CONTENDO ITENS COM CFOP S DISTINTOS RIO DE JANEIRO 25 DE JULHO DE 2013 SUMÁRIO 1- INTRODUÇÃO... 03 2- MOTIVAÇÃO... 03

Leia mais

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento Professor Rene - UNIP 1 Revisão... Segmento A unidade de dados trocada entre as entidades de transporte é denominada

Leia mais

ESTUDO DE CASO: LeCS: Ensino a Distância

ESTUDO DE CASO: LeCS: Ensino a Distância ESTUDO DE CASO: LeCS: Ensino a Distância HERMOSILLA, Lígia Docente da Faculdade de Ciências Jurídicas e Gerenciais de Garça FAEG - Labienópolis - CEP 17400-000 Garça (SP) Brasil Telefone (14) 3407-8000

Leia mais

8 Threads. 8.1 Introdução

8 Threads. 8.1 Introdução 1 8 Threads 8.1 Introdução Uma thread, também chamada de tarefa, pode ser definida como uma parte ou rotina de um processo em execução que compartilha o mesmo espaço de endereçamento, mas tem seu próprio

Leia mais

Integração de livros fiscais com o Microsoft Dynamics AX 2009

Integração de livros fiscais com o Microsoft Dynamics AX 2009 Microsoft Dynamics AX Integração de livros fiscais com o Microsoft Dynamics AX 2009 White paper Este white paper descreve como configurar e usar a integração de livros fiscais entre o Microsoft Dynamics

Leia mais

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: SEGURANÇA DA INFORMAÇÃO Aula N : 15 Tema:

Leia mais

2 Modelos de Implementação

2 Modelos de Implementação 2 Modelos de Implementação Os modelos de concorrência definem como uma aplicação atende às requisições concorrentes. Os modelos de sandboxes definem como o ambiente das aplicações são criados. Os modelos

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO TÓPICOS AVANÇADOS EM SISTEMAS INTEGRADOS E DISTRIBUÍDOS II

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO TÓPICOS AVANÇADOS EM SISTEMAS INTEGRADOS E DISTRIBUÍDOS II UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO TÓPICOS AVANÇADOS EM SISTEMAS INTEGRADOS E DISTRIBUÍDOS II RELATÓRIO TÉCNICO ADORILSON BEZERRA DE ARAÚJO ANDRÉ GUSTAVO

Leia mais

Organização de Computadores Software

Organização de Computadores Software Organização de Computadores Software Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br www.univasf.edu.br/~marcus.ramos Objetivos: Entender

Leia mais

REDES DE COMPUTADORES E TELECOMUNICAÇÕES MÓDULO 12

REDES DE COMPUTADORES E TELECOMUNICAÇÕES MÓDULO 12 REDES DE COMPUTADORES E TELECOMUNICAÇÕES MÓDULO 12 Índice 1. Serviços Orientados à Conexão...3 1.1 O protocolo IP... 3 2. Serviços não Orientados à Conexão...4 2.1 Tecnologias de redes token ring... 4

Leia mais

MANIPULANDO BANCO DE DADOS NO POSTGRESQL SEM FAZER USO DE COMANDOS SQL

MANIPULANDO BANCO DE DADOS NO POSTGRESQL SEM FAZER USO DE COMANDOS SQL MANIPULANDO BANCO DE DADOS NO POSTGRESQL SEM FAZER USO DE COMANDOS SQL INTRODUÇÃO: O PostgreSQL é um dos mais populares e avançados sistemas gerenciadores de banco de dados (SGBD) com código aberto. É

Leia mais

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana

Leia mais

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores Conceitos Básicos de Rede Um manual para empresas com até 75 computadores 1 Conceitos Básicos de Rede Conceitos Básicos de Rede... 1 A Função de Uma Rede... 1 Introdução às Redes... 2 Mais Conceitos Básicos

Leia mais

Bem-vindo ao curso delta Gerenciamento de peso para a versão 9.1. Este curso aborda a nova solução de peso introduzida nessa versão.

Bem-vindo ao curso delta Gerenciamento de peso para a versão 9.1. Este curso aborda a nova solução de peso introduzida nessa versão. Bem-vindo ao curso delta Gerenciamento de peso para a versão 9.1. Este curso aborda a nova solução de peso introduzida nessa versão. Você deve ter bons conhecimentos de estoque, UM e administração de posições

Leia mais

Diretrizes para determinação de intervalos de comprovação para equipamentos de medição.

Diretrizes para determinação de intervalos de comprovação para equipamentos de medição. Diretrizes para determinação de intervalos de comprovação para equipamentos de medição. De acordo com a Norma NBR 1001, um grande número de fatores influência a freqüência de calibração. Os mais importantes,

Leia mais

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle. Introdução Os principais elementos de um sistema de computação são a unidade central de processamento (central processing unit CPU), a memória principal, o subsistema de E/S (entrada e saída) e os mecanismos

Leia mais

É importante que nos atenhamos a alguns aspectos importantes sobre banco de dados:

É importante que nos atenhamos a alguns aspectos importantes sobre banco de dados: Módulo 16 CONCEITOS DE BANCO DE DADOS Quando nos referimos a um computador como máquina, observamos as suas características em armazenar e gerenciar informações, além dessas características, existem outras

Leia mais

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word 2010. Sumário

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word 2010. Sumário CADERNO DE INFORMÁTICA FACITA Faculdade de Itápolis Aplicativos Editores de Texto WORD 2007/2010 Sumário Editor de texto... 3 Iniciando Microsoft Word... 4 Fichários:... 4 Atalhos... 5 Área de Trabalho:

Leia mais

O Primeiro Programa em Visual Studio.net

O Primeiro Programa em Visual Studio.net O Primeiro Programa em Visual Studio.net Já examinamos o primeiro programa escrito em C que servirá de ponto de partida para todos os demais exemplos e exercícios do curso. Agora, aprenderemos como utilizar

Leia mais

Introdução ao Android

Introdução ao Android Introdução ao Android André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida Parte 1 Conhecendo o Sistema e Primeiro Programa Roteiro Pré-requisitos Conceitos Básicos Configurando o Ambiente

Leia mais

Copyright Proibida Reprodução. Prof. Éder Clementino dos Santos

Copyright Proibida Reprodução. Prof. Éder Clementino dos Santos NOÇÕES DE OHSAS 18001:2007 CONCEITOS ELEMENTARES SISTEMA DE GESTÃO DE SSO OHSAS 18001:2007? FERRAMENTA ELEMENTAR CICLO DE PDCA (OHSAS 18001:2007) 4.6 ANÁLISE CRÍTICA 4.3 PLANEJAMENTO A P C D 4.5 VERIFICAÇÃO

Leia mais

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

Nesta seção apresentamos protótipos que desenvolvemos com o objetivo de levantar os requesitos necessários para um sistema para apresentações 3 Protótipos Nesta seção apresentamos protótipos que desenvolvemos com o objetivo de levantar os requesitos necessários para um sistema para apresentações multimídia distribuídas. Os protótipos auxiliaram

Leia mais