Modelo Conceptual para o Depuramento de Programas Distribuídos por Troca de Mensagens

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

Download "Modelo Conceptual para o Depuramento de Programas Distribuídos por Troca de Mensagens"

Transcrição

1 Modelo Conceptual para o Depuramento de Programas Distribuídos por Troca de Mensagens Ana Paula Boler Cláudio DI-FCUL TR July 2003 Departamento de Informática Faculdade de Ciências da Universidade de Lisboa Campo Grande, Lisboa Portugal Technical reports are available at The files are stored in PDF, with the report number as filename. Alternatively, reports are available by post from the above address.

2

3 MODELO CONCEPTUAL PARA O DEPURAMENTO DE PROGRAMAS DISTRIBUÍDOS POR TROCA DE MENSAGENS Ana Paula Boler Cláudio Dissertação submetida para obtenção do grau de DOUTOR EM INFORMÁTICA Orientador: João Duarte Cunha Júri: José Alberto Cardoso e Cunha António Augusto Sousa Helder Manuel Ferreira Coelho Paulo Jorge Esteves Veríssimo Dezembro de 2002

4

5 Resumo Esta dissertação apresenta um modelo conceptual de programas distribuídos por troca de mensagens que é usado como alicerce para o depuramento deste tipo de programas. O modelo é independente do sistema de troca de mensagens utilizado e incorpora diversas facilidades vocacionadas para o suporte ao depuramento: geração de um diagrama espaço-tempo que ilustra o desenrolar da execução em estudo, detecção de condições de concorrência, detecção de alguns tipos de predicados e cálculo de cones de causalidade. Concebido segundo a metodologia da orientação por objectos, o modelo é composto por dois grupos de classes: as classes do núcleo e as classes gráficas. No primeiro grupo encontram-se as classes que modelam as entidades envolvidas na execução. As classes do segundo grupo, as classes gráficas, são subclasses das anteriores e desempenham, adicionalmente, as tarefas inerentes à geração do diagrama espaço-tempo. Estas classes encapsulam todas as dependências do software gráfico utilizado. A ferramenta designada por MPVisualizer concretiza o modelo conceptual. Da ferramenta faz parte um mecanismo de reexecução que permite reproduzir comportamentos de programas potencialmente não deterministas. A reprodução de comportamentos é uma capacidade imprescindível ao depuramento cíclico, uma técnica comum no depuramento de programas sequenciais. PALAVRAS-CHAVE Depuramento, Causalidade, Predicados, Condições de concorrência, Diagrama espaço-tempo.

6

7 Abstract This dissertation presents a conceptual model of message-passing distributed programs that is used as a base for the debugging of this kind of programs. The model is independent from the message-passing software used and incorporates several facilities aimed at supporting debugging: generation of a space-time diagram which shows the progression of the execution being studied, detection of race conditions, detection of particular kinds of predicates and representation of causality cones. Conceived according to the object-oriented methodology, the model is composed of two groups of classes: kernel classes and graphical classes. The first group contains the classes which are models of the entities envolved in the execution. The classes in the second group, graphical classes, are subclasses of the previous ones and, additionaly, are responsible for drawing the space-time diagram. All the details that depend on the graphical software adopted are encapsulated in graphical classes. A tool called MPVisualizer implements the conceptual model. This tool contains a reexecution mechanism that allows the reproduction of behaviours exhibited in previous executions by programs that are potentially nondeterministic. The capability of reproducing behaviours is vital in cyclic debugging, a frequently used technique in the debugging of sequencial programs. KEYWORDS Debugging, Causality, Predicates, Race Conditions, Space-time diagram.

8

9 Agradecimentos Os meus primeiros agradecimentos vão para o Professor Doutor João Duarte Cunha, por quem tive o privilégio de ser orientada neste trabalho. Estou-lhe profundamente grata por ter aceite ser meu orientador e pelo muito que com ele aprendi ao longo da execução deste trabalho. Ao Professor Doutor Graça Martins, agradeço o impulso inicial que, entusiasticamente, deu a este trabalho e o interesse que sempre demonstrou no seu desenrolar. Manifesto a minha gratidão às duas instituições no âmbito das quais realizei este trabalho: a FCUL (Faculdade de Ciências da Universidade de Lisboa) e o LNEC (Laboratório Nacional de Engenharia Civil). Relativamente à FCUL, não quero deixar de expressar a minha gratidão ao Professor Doutor Pinto Paixão, anterior presidente do concelho directivo da FCUL, e aos vários presidentes do Departamento de Informática que, permitindo a regularização da minha situação contratual como docente desta instituição, me deram a oportunidade de levar a cabo este trabalho. À FCT (Fundação para a Ciência e Tecnologia) agradeço o suporte financeiro dado, quer ao projecto PMCT/C/TIT/455/90 que foi fundamental à execução deste trabalho, quer à minha deslocação ao INRIA (Institute de la Recherche en Informatique et Automatique) de Rennes. Na fase de concepção do referido projecto esteve envolvido, para além do orientador deste trabalho, o Professor Doutor José Legatheaux Martins a quem manifesto também os meus agradecimentos. Ao Professeur Michel Raynal e a toda a sua equipa agradeço o modo como me receberam no INRIA de Rennes, durante o período de tempo que aí permaneci. Ao Dr. Rui Tavares estou grata pelo trabalho de codificação relativo ao mecanismo de reexecução, uma das componentes do trabalho apresentado nesta dissertação.

10 Ao Dr. António Inês, do Centro de Informática do LNEC, e à equipa de administração de sistemas do DI, quer na sua composição actual, chefiada pelo Dr. Nuno Cruz, quer nas suas composições anteriores, agradeço todo o apoio técnico prestado sempre de forma pronta e eficiente. À Professora Doutora Isabel Nunes e ao Professor Doutor Luís Rodrigues agradeço as valiosas críticas e sugestões feitas às versões anteriores do texto desta dissertação. Ao Professor Doutor Paulo Veríssimo, ao Eng.º António Casimiro e ao Dr. Hugo Miranda agradeço a resposta rápida a vários pedidos de esclarecimento por mim formulados. Ao conjunto de pessoas que compõem o Departamento de Informática agradeço, de um modo geral, o bom ambiente de trabalho. Em particular, estou grata às colegas e amigas que comigo partilham ou partilharam gabinete, Dr.ª Beatriz Carmo, Dr.ª Dulce Domingos e Dr.ª Teresa Chambel. Com elas tenho esclarecido dúvidas, dividido entusiasmos, angústias, e alegrias. Aos meus amigos Isabel e José Carlos, à Maria e ao Carlos, manifesto a minha gratidão pelo interesse, o apoio e o incentivo sempre demonstrados. A concretização deste trabalho não teria sido possível sem a ajuda das pessoas que me são mais próximas: os meus pais e o Henrique, que constituem uma retaguarda segura e sempre pronta a dar-me apoio; os meus filhos, André e Margarida, que me têm proporcionado muitas alegrias. Eles são, no seu conjunto, o meu porto seguro de afectos.

11 Índice 1 INTRODUÇÃO OBJECTIVOS DO TRABALHO ORIGENS E DESENVOLVIMENTOS DO ESTUDO CONVENÇÕES DE ESCRITA ORGANIZAÇÃO E CONTEÚDO DO ESTUDO DEPURAMENTO DE PROGRAMAS DISTRIBUÍDOS INTRODUÇÃO DEPURAMENTO E DETERMINISMO OS CICLOS DO DEPURAMENTO MONITORIZAÇÃO Monitorização por software MODOS DE OPERAÇÃO DO DEPURAMENTO Depuramento durante uma execução livre Depuramento durante uma execução controlada Depuramento após a execução CONDIÇÕES DE CONCORRÊNCIA CONCLUSÃO DETECÇÃO DE PREDICADOS INTRODUÇÃO MODELO DE COMPUTAÇÃO DISTRIBUÍDA - CONCEITOS FUNDAMENTAIS Modelo de Computação Distribuída Relação de Causalidade e Caminho Causal Estado Global Coerente e Reticulado de Estados Globais Coerentes MECANISMOS DE TEMPO LÓGICO Relógios Lógicos de Lamport Vectores de Estampilhas Lógicas Matrizes de Estampilhas Lógicas ALGORITMO PARA OBTER ESTADOS GLOBAIS COERENTES ALGORITMOS DE DETECÇÃO DE PREDICADOS Detecção de Predicados Globais Quaisquer Detecção de Tipos Particulares de Predicados Globais PONTOS DE CONTROLO GLOBAIS COERENTES Condições Necessárias e Suficientes para a Coerência Algoritmos para Obter Pontos de Controlo Globais Coerentes PONTOS DE PARAGEM Proposta de Classificação...77

12 3.7.2 Algoritmos de Paragem CONCLUSÃO MODELO CONCEPTUAL PARA PROGRAMAS DISTRIBUÍDOS POR TROCA DE MENSAGENS INTRODUÇÃO MODELO DE COMPUTAÇÃO DISTRIBUÍDA MECANISMO DE REEXECUÇÃO MODELO CONCEPTUAL Classes do Núcleo Classe Manager Classe Collector Classe Process Classe TimeStamp Classe Message Classe C_event e suas subclasses Classes Gráficas CORTES GLOBAIS COERENTES DETECÇÃO DE CONDIÇÕES DE CONCORRÊNCIA DETECÇÃO DE PREDICADOS VISUALIZAÇÃO DE PROGRAMAS Visualização de software Diagramas Espaço-Tempo Visualização de Programas no MPVisualizer Âmbito Conteúdo Forma Método Interacção Eficácia Desenvolvimentos a Curto Prazo CONCLUSÃO...185

13 5 COMPARAÇÃO DE DEPURADORES PARALELOS INTRODUÇÃO NORMA PARA DEPURADORES PARALELOS COMPARAÇÃO DE FERRAMENTAS Integração num Ambiente de Desenvolvimento Programas Distribuídos Suportados Interface e Representação Gráfica Modos de Operação do Depuramento Utilização de um Depurador Sequencial Mecanismo de Detecção de Condições de Concorrência Definição e Controlo de Grupos de Processos Tabela Comparativa CONCLUSÃO CONCLUSÃO INTRODUÇÃO BALANÇO DO TRABALHO EFECTUADO TRABALHO FUTURO CONSIDERAÇÕES FINAIS GLOSSÁRIO BIBLIOGRAFIA...237

14 Índice de Figuras FIGURA 2.1- CICLOS DO DEPURAMENTO FIGURA 2.2- CONDIÇÃO DE CONCORRÊNCIA FIGURA 3.1- DIAGRAMA ESPAÇO-TEMPO DE UMA COMPUTAÇÃO DISTRIBUÍDA FIGURA 3.2- DIAGRAMA ESPAÇO-TEMPO EQUIVALENTE AO DA FIGURA FIGURA 3.3- CORTES GLOBAIS FIGURA 3.4- RETICULADO DE ESTADOS GLOBAIS COERENTES...47 FIGURA 3.5- RELÓGIOS LÓGICOS...53 FIGURA 3.6- VECTORES DE ESTAMPILHAS LÓGICAS FIGURA 3.7- MATRIZES DE ESTAMPILHAS LÓGICAS...59 FIGURA 3.8- PONTOS DE CONTROLO...68 FIGURA 3.9- CICLO-Z...70 FIGURA EFEITO DOMINÓ FIGURA MENSAGEM PERDIDA FIGURA PROPRIEDADE RDT FIGURA PONTO DE PARAGEM FIGURA 4.1-ESQUEMA DE FUNCIONAMENTO DO MPVISUALIZER...85 FIGURA 4.2- INTERFACE GRÁFICA DO MPVISUALIZER...86 FIGURA 4.3- DIAGRAMA DE CLASSES DO MODELO CONCEPTUAL NA NOTAÇÃO UML FIGURA 4.4- CONDIÇÃO DE CONCORRÊNCIA FALSA FIGURA 4.5- SITUAÇÃO 3 DA TABELA FIGURA 4.6- SITUAÇÃO 4 DA TABELA FIGURA 4.7- SITUAÇÃO 7 DA TABELA FIGURA 4.8- SITUAÇÃO 8 DA TABELA FIGURA 4.9- SITUAÇÃO 11 DA TABELA FIGURA SITUAÇÃO 12 DA TABELA FIGURA SITUAÇÃO 15 DA TABELA FIGURA SITUAÇÃO 16 DA TABELA FIGURA CONDIÇÃO DE CONCORRÊNCIA QUE ENVOLVE RECEPÇÕES NÃO ADJACENTES- PRIMEIRA RECEPÇÃO DO TIPO RECV(-1,T) FIGURA CONDIÇÃO DE CONCORRÊNCIA QUE ENVOLVE RECEPÇÕES NÃO ADJACENTES- PRIMEIRA RECEPÇÃO DO TIPO RECV(-1,-1) FIGURA CONDIÇÃO DE CONCORRÊNCIA NÃO DETECTÁVEL PELO MPVISUALIZER FIGURA DIAGRAMA ESPAÇO-TEMPO GERADO PELO MPVISUALIZER FIGURA JANELA DESCRITIVA DE PREDICADO LOCAL SOB OBSERVAÇÃO- MODO DE DETECÇÃO DE PREDICADOS ACTIVO...175

15 FIGURA JANELA DESCRITIVA DE PREDICADO LOCAL SOB OBSERVAÇÃO- MODO DE DETECÇÃO DE PREDICADOS INIBIDO FIGURA JANELAS INFORMATIVAS DE EVENTOS DE COMUNICAÇÃO FIGURA JANELA INFORMATIVA DE RECEPÇÃO NÃO BLOQUEANTE FIGURA JANELA INFORMATIVA DE RECEPÇÃO BLOQUEANTE FIGURA JANELA INFORMATIVA DE PREDICADO LOCAL FIGURA CONE DE CAUSALIDADE NUM DIAGRAMA ESPAÇO-TEMPO FIGURA JANELA INFORMATIVA DE PREDICADOS GLOBAIS FIGURA JANELAS INFORMATIVAS DE CONDIÇÃO DE CONCORRÊNCIA Índice de Tabelas TABELA 4.1- COMBINAÇÕES DOS ARGUMENTOS IDENTIFICADOR DO PROCESSO EMISSOR E ETIQUETA DA MENSAGEM ESPERADA EM DOIS EVENTOS DE RECEPÇÃO DE UM MESMO PROCESSO TABELA 4.2- JANELAS ADICIONAIS DO MPVISUALIZER E MODO DE AS VISUALIZAR TABELA 5.1- RESUMO DO ESTUDO COMPARATIVO ENTRE DEPURADORES PARALELOS

16

17 1 Introdução 1.1 Objectivos do trabalho Actualmente assiste-se a um crescente interesse na utilização de clusters de estações de trabalho e/ou computadores pessoais como forma de obter plataformas de computação paralela de baixo custo, ou mesmo com custos marginais quando se recorre a máquinas já existentes tirando proveito dos intervalos de tempo, significativamente longos, em que os seus processadores se encontram desocupados. Trata-se de uma alternativa viável e consideravelmente mais económica que o recurso a supercomputadores ou computadores com múltiplos processadores. O surgimento destas novas plataformas de trabalho, compostas por máquinas potencialmente heterogéneas ligadas em rede, criou novas necessidades aplicacionais em áreas tão diversas como, citando apenas um subconjunto, protocolos de transporte na rede, algoritmos de scheduling, novos paradigmas e metodologias de programação e ferramentas de desenvolvimento de programas. Neste último grupo encontramos as ferramentas de depuramento. Esta dissertação debruça-se sobre o depuramento de programas distribuídos por troca de mensagens. É proposto um modelo conceptual para programas distribuídos por troca de mensagens que tem por objectivo constituir um alicerce sólido para o estudo deste tipo de programas. O modelo pode ser combinado, a montante, com diversas bibliotecas de troca de mensagens e, a jusante, com variadas bibliotecas gráficas. A necessidade de recorrer a bibliotecas gráficas prende-se com o facto de se ter considerado fundamental a existência de uma interface gráfica capaz de produzir representações pictóricas da execução dos programas em estudo. O modelo conceptual proposto, desenvolvido segundo o paradigma da orientação por objectos, baseia-se no modelo de computação distribuída de Babaoğlu e Marzullo [Babaoğlu93] e respeita a relação de ordem causal definida por Lamport [Lamport78]. O tipo de representação pictórica adoptado foi o diagrama espaço-tempo. Por manipulação directa dos símbolos do diagrama produzido pode obter-se informação 1

18 detalhada sobre as entidades do modelo, os eventos observáveis, os processos e as mensagens, ou desencadear acções relacionadas com capacidades incorporadas no modelo conceptual proposto. Estas capacidades, todas de grande importância para o depuramento de programas distribuídos por troca de mensagens, são: a detecção de condições de concorrência, a detecção de predicados e o cálculo de cortes globais coerentes. O protótipo MPVisualizer concretiza o modelo conceptual. Neste protótipo foi incorporado um mecanismo de reexecução que permite reproduzir comportamentos e dar suporte ao depuramento cíclico, uma técnica muito comum no depuramento de programas sequenciais. 1.2 Origens e Desenvolvimentos do Estudo O nosso interesse em observar programas distribuídos teve a sua origem na utilização de um sistema de visualização de dados científicos, o ape [ape90], que suportava a execução de módulos de cálculo em modo distribuído. No decorrer da utilização deste produto foi sentida a necessidade de compreender o desenrolar da execução distribuída de diferentes módulos do programa o que motivou o projecto de conceber uma ferramenta para monitorizar programas desenvolvidos no ambiente ape cujos módulos estivessem em execução numa ou em várias máquinas ligadas em rede [Cláudio92a]. O interesse crescente em tirar partido do paralelismo para obter um aumento de desempenho, nomeadamente na geração de imagens, levou-nos à utilização do PVM. Este produto, de domínio público, era adequado a uma plataforma então disponível no LNEC: um cluster de estações de trabalho. Utilizando o PVM nesta plataforma, foram efectuadas duas experiências distintas. Uma das experiências consistiu na paralelização do algoritmo de Ray-Tracing para geração de imagens realistas e foi efectuado por um grupo de alunos da disciplina de Computação Gráfica do Departamento de Informática. Neste trabalho foi observada uma redução do tempo de execução da versão paralela relativamente à versão sequencial próxima do valor ideal para o número de processadores usados. Este facto era esperado já que o referido algoritmo é um dos exemplos apontado com frequência como sendo naturalmente paralelo. 2

19 A segunda experiência teve por objectivo obter medidas concretas de comparação de desempenho entre uma versão sequencial e uma versão distribuída de um mesmo algoritmo. Usando a biblioteca PVM, codificou-se um programa distribuído para aplicação do método de Gauss para resolução de sistemas de equações lineares [Cláudio93a]. Neste trabalho foram efectuadas medidas de desempenho utilizando uma rede Ethernet e uma ligação SOCC (Serial Optical Channel Converter); os resultados então obtidos apontavam para o facto da latência da rede ser o principal entrave ao aumento de desempenho do programa distribuído. Outras experiências efectuadas por diversos investigadores levavam a uma conclusão idêntica. Ao desenvolver os anteriores programas distribuídos usando as rotinas de comunicação do PVM foi sentida na prática a falta de uma ferramenta de depuramento que permitisse ter uma visão e um controlo globais destes programas. O interesse entretanto surgido pelo depuramento de programas distribuídos pôde ser materializado no âmbito de um projecto patrocinado pela JNICT (Junta Nacional de Investigação Científica e Tecnológica, actual Fundação para a Ciência e Tecnologia) no âmbito do Programa Mobilizador de Ciência e Tecnologia (projecto PMCT/C/TIT/455/90). Com o título Utilização da Visualização Gráfica no Desenvolvimento de Aplicações Distribuídas, este projecto teve como entidades proponentes o LNEC (Laboratório Nacional de Engenharia Civil) e o DI-FCUL (Departamento de Informática da Faculdade de Ciências da Universidade de Lisboa). No âmbito do projecto foram elaborados três relatórios de progresso [Cláudio92b], [Cláudio93b] e [Cláudio94]. A primeira proposta para o modelo conceptual foi apresentada em [Cláudio94]. Neste relatório podem ser também encontradas algumas considerações sobre as representações pictóricas a utilizar na representação gráfica. Em [Cláudio95] apresenta-se o mecanismo de reexecução implementado; no relatório técnico [Cláudio99b] são fornecidos os detalhes sobre esta implementação. Em [Cláudio98] discute-se quer o modo escolhido para incorporar no modelo conceptual a capacidade de detecção de predicados, quer a adopção do diagrama espaço-tempo. Um novo modelo conceptual, adaptação do anteriormente proposto, é 3

20 apresentado em [Cláudio99a]; este modelo tem capacidade para detectar alguns tipos de condições de concorrência. O modelo descrito em [Cláudio00] é um refinamento do anterior e encontra-se muito próximo do modelo conceptual apresentado nesta dissertação. Nesta versão haviam sido incorporados melhoramentos ao mecanismo de detecção de condições de concorrência. Subsequentemente, procedeu-se ainda a pequenas alterações no diagrama de classes do modelo conceptual e a melhoramentos significativos no mecanismo de detecção de condições de concorrência. Tirando partido do mecanismo de tempo lógico já incorporado, acrescentou-se a capacidade de cálculo de estados globais coerentes e melhorou-se o mecanismo de detecção de predicados, tornando possível a detecção da conjunção e disjunção de predicados locais. A interface gráfica foi adequada a estas novas funcionalidades oferecidas ao utilizador. 1.3 Convenções de escrita Na escrita da dissertação foram adoptadas algumas convenções com o intuito de tornar a sua leitura mais fácil. As traduções de termos ou expressões originalmente em língua inglesa, na sua primeira ocorrência no texto, surgem seguidas pela designação original grafada em itálico e entre parêntesis. O glossário incluído nesta dissertação contém a lista dos termos e expressões originais e as respectivas traduções. Optou-se por não traduzir alguns termos ingleses de utilização generalizada como, por exemplo, scheduling, bug, hardware e software. Também nestes casos se adopta o grafismo em itálico. São igualmente grafadas em itálico todas as expressões latinas como a priori ou post-mortem. As aspas são usadas para destacar uma palavra ou um conjunto de palavras no texto. Por exemplo, as designações de conceitos que vão sendo introduzidos ao longo do capítulo que descreve o trabalho efectuado surgem sempre entre aspas na sua primeira ocorrência no texto. 4

21 Foram adoptadas duas fontes distintas, como se ilustra neste parágrafo, uma para o texto corrente, outra para designações ou expressões matemáticas, extractos de código, nomes de classes, de atributos ou de métodos. 1.4 Organização e Conteúdo do Estudo A dissertação é constituída pela presente introdução a que se seguem cinco capítulos: o segundo e o terceiro constituem, no seu conjunto, um estado da arte, o quarto capítulo descreve o trabalho efectuado, no quinto capítulo procede-se a um estudo comparativo do protótipo desenvolvido com diversos depuradores paralelos e, por fim, o sexto capítulo é dedicado às conclusões e ao trabalho futuro. Nos parágrafos seguintes apresenta-se uma descrição sumária de cada um destes capítulos. Segundo capítulo O capítulo dois debruça-se sobre o depuramento de programas distribuídos de um modo geral. Seguindo Meyer, decompõe-se a designação genérica mas imprecisa de bug nos conceitos de erro, defeito e falha [Meyer97]. Apontam-se os dois factores fundamentais que contribuem para a complexidade do depuramento de programas distribuídos: o número habitualmente grande de entidades envolvidas na execução destes programas e o não determinismo. Este último é causado potencialmente pelas denominadas condições de concorrência. Observa-se que o depuramento cíclico, uma técnica comum no depuramento de programas sequenciais, só é aplicável a programas distribuídos desde que exista como suporte um método que permita repetir comportamentos. Refere-se a importância que a aplicação de métodos formais pode ter, quer na verificação da correcção do programa, quer na geração de cenários de teste. Analisam-se as duas fases do depuramento cíclico: a localização de um defeito e a eliminação do mesmo. Referem-se os vários processos de monitorização de programas distribuídos dando especial destaque aos monitores por software e ao inerente efeito intrusivo sobre a execução dos programas monitorizados. Discutem-se os três modos de operação do depuramento: no decurso de uma execução livre do programa em estudo, ou de uma execução controlada ou ainda com base no registo de uma execução anterior (modo post-mortem). Finalmente, referem-se trabalhos sobre detecção e classificação de condições de concorrência. 5

22 Terceiro capítulo O terceiro capítulo tem como tema principal a detecção de predicados, tarefa que está habitualmente associada à inserção de pontos de paragem (breakpoints) mas que pode ser usada de modo mais abrangente para exprimir comportamentos esperados ou erróneos por parte do programa em estudo. O capítulo começa por descrever um modelo, conceitos e resultados fundamentais ao enquadramento da detecção de predicados: o modelo de computação distribuída por troca de mensagens proposto por Babaoğlu e Marzullo [Babaoğlu93], a relação de causalidade definida por Lamport [Lamport78] para os eventos desta computação, os conceitos de estado global coerente e de reticulado de estados globais coerentes. Descreve-se o funcionamento de três mecanismos de tempo lógico: os relógios lógicos de Lamport, os vectores de estampilhas lógicas e as matrizes de estampilhas lógicas. Os vectores de estampilhas lógicas merecem especial destaque porque gozam de um conjunto de propriedades importantes que são enumeradas. A descrição do algoritmo de Chandy e Lamport [Chandy85] para obtenção de estados globais coerentes antecede a dos algoritmos de detecção de predicados globais. Neste grupo de algoritmos estuda-se a abordagem de Cooper e Marzullo [Cooper91], adequada à detecção de qualquer predicado global, mas de custos demasiados pesados em termos de cálculo, e resume-se um conjunto significativo de trabalhos dedicados à detecção de tipos particulares de predicados globais. Por último, referem-se resultados importantes sobre pontos de controlo (checkpoints) e pontos de paragem e apresenta-se uma súmula de algoritmos dedicados a estes conceitos. Quarto capítulo No quarto capítulo apresenta-se o trabalho efectuado. Nele se descreve, quer o modelo conceptual para programas distribuídos por troca de mensagens que incorpora importantes capacidades para o depuramento deste tipo de programas, quer a ferramenta MPVisualizer que concretiza o modelo conceptual. São descritas as três componentes do MPVisualizer: o mecanismo de reexecução, a interface gráfica e a aplicação visualizadora. 6

23 Introduz-se um modelo de execução de programas distribuídos por troca de mensagens que se baseia no modelo de Babaoğlu e Marzullo, descrito no capítulo dois, e a partir do qual se concebeu o modelo conceptual proposto. São referidos os aspectos mais relevantes do mecanismo de reexecução implementado que é uma adaptação do algoritmo Instant Replay, proposto por Leblanc e Mellor-Crummey [Leblanc87], destinado a programas distribuídos por partilha de memória. Descreve-se o modelo conceptual que foi concebido de acordo com o paradigma da orientação por objectos: apresenta-se a hierarquia de classes do modelo e descrevem-se os dois grupos de classes que o compõem, as classes do núcleo e as classes gráficas. Discute-se o método incorporado no modelo conceptual que se destina ao cálculo de cortes globais coerentes. Prova-se que um corte obtido segundo este método corresponde ao cone de causalidade de um determinado evento. São apresentados os mecanismo de detecção de condições de concorrência e de detecção de predicados locais e globais. O mecanismo de detecção de condições de concorrência baseia-se num estudo exaustivo das várias situações em que duas recepções de mensagem num mesmo processo podem estar envolvidas numa condição de concorrência. O mecanismo de detecção de predicados locais, obriga a uma intervenção por parte do utilizador a qual é explicada e ilustrada com um exemplo. Em contrapartida, a detecção dos dois predicados locais que são a disjunção e a conjunção de predicados locais é automática, não requerendo a intervenção do utilizador. Tendo em conta que o MPVisualizer pode ser considerado uma ferramenta de visualização de programas, procede-se à sua descrição sistemática utilizando uma taxonomia vocacionada para este tipo de ferramentas. No contexto desta descrição estão incluídos os aspectos relativos à interface gráfica da ferramenta. Os desenvolvimentos futuros a efectuar, quer sobre o modelo, quer sobre o MPVisualizer são dispostos em dois patamares de dificuldade. Neste capítulo descrevem-se os desenvolvimentos mais simples, os do patamar inferior, previstos para o curto prazo. Os desenvolvimentos do segundo patamar, previstos para o médio prazo, são discutidos no capítulo seis. 7

24 Quinto capítulo No quinto capítulo procede-se a um estudo comparativo entre o MPVisualizer e diversos depuradores paralelos tendo por base uma proposta de grelha de sete pontos. Designam-se por depuradores paralelos as ferramentas de depuramento destinadas a programas paralelos ou distribuídos. Para a comparação escolheu-se um conjunto significativo de depuradores paralelos, de entre os mais citados nas publicações científicas da especialidade. Do estudo comparativo pode concluir-se que a ferramenta que concretiza o modelo conceptual proposto neste trabalho, apresenta características que permitem considerá-la como uma contribuição positiva para o depuramento de programas distribuídos baseados em troca de mensagens. Sexto capítulo O último capítulo da dissertação é dedicado às conclusões e desenvolvimentos futuros. Nele se faz o balanço do trabalho apresentado destacando os seus aspectos positivos e negativos. Apresentam-se os desenvolvimentos incluídos no segundo patamar de dificuldade, destinados a eliminar os aspectos negativos e a introduzir melhoramentos considerados importantes. 8

25 2 Depuramento de Programas Distribuídos 2.1 Introdução A palavra depuramento é a tradução da palavra inglesa debugging, usada para designar o processo de eliminação dos bugs de um programa. Meyer citando Dijkstra afirma que a designação bug sugere indevidamente que as incorrecções de um programa não são responsabilidade de quem o desenvolve e codifica, mas sim de uma entidade externa [Meyer97]. Embora seja universalmente utilizada, a palavra não tem um significado exacto. No contexto do desenvolvimento de software, segundo Meyer, a palavra bug pode ser aplicada para designar incorrecções em três etapas distintas de desenvolvimento do programa: a concepção, a codificação e a execução. Deste modo, pode corresponder, respectivamente, a um erro (error), um defeito (defect) ou uma falha (fault): um erro é uma decisão incorrecta tomada durante a concepção do programa; um defeito é uma propriedade do programa que pode fazer com que o comportamento deste se afaste do comportamento esperado; uma falha é a manifestação de um defeito durante uma execução concreta do programa [Meyer97]. Estes três conceitos constituem uma cadeia causal: a causa de uma falha é sempre um defeito e a causa deste pode ser um erro ou uma deficiência de codificação. Contudo, os erros e os defeitos nem sempre se manifestam numa falha e, em sucessivas execuções, um defeito pode não produzir sempre a mesma falha, o que claramente dificulta o depuramento. A maior parte das vezes a palavra bug é aplicada com o significado de defeito. É fundamental referir que num contexto distinto, o da confiabilidade no funcionamento dos sistemas computacionais, usa-se uma outra cadeia causal cujas designações estão perfeitamente consagradas e que, numa primeira análise, parecem ser sinónimas das anteriores. Segundo Laprie, a confiabilidade de um sistema define-se como o conjunto de propriedades do mesmo que permite que se tenha, justificadamente, confiança no seu funcionamento [Laprie92]. Os impedimentos à confiabilidade são as faltas (faults), os 9

Análise de Sistemas. Conceito de análise de sistemas

Análise de Sistemas. Conceito de análise de sistemas Análise de Sistemas Conceito de análise de sistemas Sistema: Conjunto de partes organizadas (estruturadas) que concorrem para atingir um (ou mais) objectivos. Sistema de informação (SI): sub-sistema de

Leia mais

NOÇÕES ELEMENTARES DE BASES DE DADOS

NOÇÕES ELEMENTARES DE BASES DE DADOS 1 NOÇÕES ELEMENTARES DE BASES DE DADOS Este primeiro capítulo aborda conceitos elementares relacionados com bases de dados. Os conceitos abordados neste capítulo são necessários para trabalhar adequadamente

Leia mais

Ferramenta computacional para implementação de redes neuronais optimização das capacidades gráficas

Ferramenta computacional para implementação de redes neuronais optimização das capacidades gráficas INEB- PSI Technical Report 2007-2 Ferramenta computacional para implementação de redes neuronais optimização das capacidades gráficas Alexandra Oliveira aao@fe.up.pt Professor Joaquim Marques de Sá December

Leia mais

Um sistema SMS 1 simplificado

Um sistema SMS 1 simplificado 1 Introdução Um sistema SMS 1 simplificado Projecto de Redes de Computadores I - 2007/2008 LEIC IST, Tagus Park 10 de Setembro de 2007 Pretende-se com este projecto que os alunos implementem um sistema

Leia mais

4.2. UML Diagramas de classes

4.2. UML Diagramas de classes Engenharia de Software 4.2. UML Diagramas de classes Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Um diagrama de classes serve para modelar o vocabulário de um sistema Construído e refinado ao longo

Leia mais

Informática II Cap. 3

Informática II Cap. 3 Cap. 3 1 Tradicionalmente, programar significava apenas a escrita de um programa, que resolvesse o problema pretendido de uma forma aparentemente correcta. Problema Problema Programa Programa Desvantagens:

Leia mais

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia 1 Tradicionalmente, programar significava apenas a escrita de um programa, que resolvesse o problema pretendido de uma forma aparentemente correcta. Problema Problema Programa Programa Desvantagens: Programas

Leia mais

ORIENTAÇÃO SOBRE PRINCÍPIOS DE AUDITORIA NP EN ISO 19011:2003. Celeste Bento João Carlos Dória Novembro de 2008

ORIENTAÇÃO SOBRE PRINCÍPIOS DE AUDITORIA NP EN ISO 19011:2003. Celeste Bento João Carlos Dória Novembro de 2008 ORIENTAÇÃO SOBRE PRINCÍPIOS DE AUDITORIA NP EN ISO 19011:2003 Celeste Bento João Carlos Dória Novembro de 2008 1 SISTEMÁTICA DE AUDITORIA - 1 1 - Início da 4 - Execução da 2 - Condução da revisão dos documentos

Leia mais

Projecto de Programação MEEC - 2010/2011-1ºSemestre. Mestrado Integrado em Engenharia Electrotécnica e de Computadores

Projecto de Programação MEEC - 2010/2011-1ºSemestre. Mestrado Integrado em Engenharia Electrotécnica e de Computadores Mestrado Integrado em Engenharia Electrotécnica e de Computadores Programação 2010/2011 Enunciado do projecto O projecto a desenvolver pelos alunos consistirá numa sistema de monitorização do estado de

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

Departamento de Engenharia Informática DISTRIBUTED PROBLEM SOLVING

Departamento de Engenharia Informática DISTRIBUTED PROBLEM SOLVING Departamento de Engenharia Informática DISTRIBUTED PROBLEM SOLVING 1000833 Henrique de Meireles Morais Maio de 2008 Disciplina: Sistemas Baseados em Agentes Professor: António Pinto de Sousa e Silva Mestrado

Leia mais

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

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

Leia mais

UML (Unified Modelling Language) Diagrama de Classes

UML (Unified Modelling Language) Diagrama de Classes UML (Unified Modelling Language) Diagrama de Classes I Classes... 2 II Relações... 3 II. Associações... 3 II.2 Generalização... 9 III Exemplos de Modelos... III. Tabelas de IRS... III.2 Exames...3 III.3

Leia mais

Curso Técnico Superior Profissional em Desenvolvimento Web

Curso Técnico Superior Profissional em Desenvolvimento Web Curso Técnico Superior Profissional em Desenvolvimento Web PROVA DE AVALIAÇÃO DE CAPACIDADE REFERENCIAL DE CONHECIMENTOS E APTIDÕES Áreas relevantes para o curso de acordo com o n.º 4 do art.º 11.º do

Leia mais

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

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

SISTEMAS DE GESTÃO DA QUALIDADE

SISTEMAS DE GESTÃO DA QUALIDADE SISTEMAS DE GESTÃO DA QUALIDADE Objectivos do Curso. No final deste os alunos deverão: Identificar os principais objectivos associados à implementação de Sistemas de Gestão da Qualidade (SGQ) Compreender

Leia mais

Portal AEPQ Manual do utilizador

Portal AEPQ Manual do utilizador Pedro Gonçalves Luís Vieira Portal AEPQ Manual do utilizador Setembro 2008 Engenharia Informática - Portal AEPQ Manual do utilizador - ii - Conteúdo 1 Introdução... 1 1.1 Estrutura do manual... 3 1.2 Requisitos...

Leia mais

Tolerância a Faltas. 8/28/2003 José Alves Marques. Sistema Computacional

Tolerância a Faltas. 8/28/2003 José Alves Marques. Sistema Computacional Tolerância a Faltas Sistema Computacional Sistema computacional: Formado por um conjunto de componentes internas Contém um estado interno Está sujeito a um conjunto de entradas, ou estímulos externos Tem

Leia mais

Sistemas Operativos - 2005/2006. Trabalho Prático v1.0

Sistemas Operativos - 2005/2006. Trabalho Prático v1.0 Instituto Politécnico de Viseu Escola Superior de Tecnologia de Viseu Engenharia de Sistemas e Informática Sistemas Operativos - 2005/2006 Trabalho Prático v1.0 Introdução O presente trabalho prático visa

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

Utilização de DGPS para Monitorização de Frotas em Ambiente Urbano

Utilização de DGPS para Monitorização de Frotas em Ambiente Urbano Utilização de DGPS para Monitorização de Frotas em Ambiente Urbano Telmo Cunha (1,2), Phillip Tomé (1), Sérgio Cunha (2), Jaime Cardoso (2) e Luisa Bastos (1) (1) Observatório Astronómico da Universidade

Leia mais

3 ao Quadrado - Agenda Web

3 ao Quadrado - Agenda Web 3 ao Quadrado - Agenda Web Relatório de Gestão de Projectos de Software - Grupo A - LEIC 2001/2002 http://gnomo.fe.up.pt/gps01a João Montenegro - ei97023@fe.up.pt André Teixeira - ei97024@fe.up.pt Carlos

Leia mais

Manual do Utilizador

Manual do Utilizador Faculdade de Ciências e Tecnologia da Universidade de Coimbra Departamento de Engenharia Electrotécnica e Computadores Software de Localização GSM para o modem Siemens MC35i Manual do Utilizador Índice

Leia mais

Os Investigadores da Universidade de Coimbra e as plataformas

Os Investigadores da Universidade de Coimbra e as plataformas Os Investigadores da Universidade de Coimbra e as plataformas & 1 Índice 2 Introdução...3 3 A Plataforma de Curricula DeGóis...3 3.1 É utilizada porque...3 3.2 Com a utilização do DeGóis ganho...4 3.1

Leia mais

Juciara Nepomuceno de Souza Rafael Garcia Miani. Teste de Software

Juciara Nepomuceno de Souza Rafael Garcia Miani. Teste de Software Juciara Nepomuceno de Souza Rafael Garcia Miani Teste de Software Técnicas de Teste de Software Testabilidade Operabilidade; Observabilidade; Controlabilidade; Decomponibilidade; Simplicidade; Estabilidade;

Leia mais

Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto Mestrado Integrado em Engenharia Electrotécnica e de Computadores Programação 2º Semestre 2010/2011 Enunciado do projecto O projecto a desenvolver pelos alunos consistirá numa sistema de monitorização,

Leia mais

Gestão de Configurações II

Gestão de Configurações II Gestão de Configurações II Bibliografia Livro: Software Configuration Management Patterns: Effective Teamwork, Practical Integration Gestão de Projecto 14 Padrões de Gestão Os padrões de gestão de configurações

Leia mais

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática 3ºAno Disciplina de Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/2010 GereComSaber Sistema de

Leia mais

Sistemas Distribuídos e Tolerância a Falhas

Sistemas Distribuídos e Tolerância a Falhas Processamento de erros Detectar / Recuperar/ Mascarar 1º passo: Detecção. A detecção de um erro pode ser realizada por mecanismos como: - códigos de detecção de erros, - timeouts - watchdogs - verificações

Leia mais

Linguateca e Processamento de Linguagem Natural na Área da Saúde: Alguns Comentários e Sugestões

Linguateca e Processamento de Linguagem Natural na Área da Saúde: Alguns Comentários e Sugestões Capítulo 7 Linguateca e Processamento de Linguagem Natural na Área da Saúde: Alguns Comentários e Sugestões Liliana Ferreira, António Teixeira e João Paulo da Silva Cunha Luís Costa, Diana Santos e Nuno

Leia mais

1.1 A abordagem seguida no livro

1.1 A abordagem seguida no livro 1- Introdução A área de administração de sistemas e redes assume cada vez mais um papel fundamental no âmbito das tecnologias da informação. Trata-se, na realidade, de uma área bastante exigente do ponto

Leia mais

Sistema de Certificação de Competências TIC

Sistema de Certificação de Competências TIC Sistema de Certificação de Competências TIC Portal das Escolas Manual de Utilizador INDICE 1 Introdução... 5 1.1 Sistema de formação e certificação de competências TIC...6 1.1.1 Processo de certificação

Leia mais

PERIVER PLATAFORMA SOFTWARE REQUIREMENT SPECIFICATION. Periver_SoftwareRequirementSpecification_2008-03-31_v1.0.doc. Versão 1.0

PERIVER PLATAFORMA SOFTWARE REQUIREMENT SPECIFICATION. Periver_SoftwareRequirementSpecification_2008-03-31_v1.0.doc. Versão 1.0 PLATAFORMA Versão 1.0 31 de Março de 2008 TABELA DE REVISÕES Versão Autores Descrição da Versão Aprovadores Data António Rocha Cristina Rodrigues André Ligeiro V0.1r Dinis Monteiro Versão inicial António

Leia mais

Centro Atlântico, Lda., 2011 Ap. 413 4764-901 V. N. Famalicão, Portugal Tel. 808 20 22 21. geral@centroatlantico.pt www.centroatlantico.

Centro Atlântico, Lda., 2011 Ap. 413 4764-901 V. N. Famalicão, Portugal Tel. 808 20 22 21. geral@centroatlantico.pt www.centroatlantico. Reservados todos os direitos por Centro Atlântico, Lda. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa dos editores da obra. Microsoft Excel 2010 Colecção: Software

Leia mais

Curriculum DeGóis Guia de preenchimento do Curriculum Vitae (Informação mínima necessária)

Curriculum DeGóis Guia de preenchimento do Curriculum Vitae (Informação mínima necessária) Curriculum DeGóis Guia de preenchimento do Curriculum Vitae (Informação mínima necessária) http://curriculum.degois.pt Março de 2012 Versão 1.5 1 Introdução O objectivo deste guia é auxiliar o utilizador

Leia mais

PHC Consolidacão. Execute de uma forma simples e eficaz a consolidação contabilística de grupos de empresas

PHC Consolidacão. Execute de uma forma simples e eficaz a consolidação contabilística de grupos de empresas PHCConsolidacão DESCRITIVO O módulo PHC Consolidação foi desenhado para executar a consolidacão contabilística, no que diz respeito à integração de contas e respectivos ajustamentos de consolidação. PHC

Leia mais

PROJECTO DE NORMA REGULAMENTAR

PROJECTO DE NORMA REGULAMENTAR PROJECTO DE NORMA REGULAMENTAR Princípios aplicáveis ao desenvolvimento dos Sistemas de Gestão de Riscos e de Controlo Interno das Empresas de Seguros As melhores práticas internacionais na regulamentação

Leia mais

PÁGINAS WEB. António Ginja Carmo

PÁGINAS WEB. António Ginja Carmo PÁGINAS WEB António Ginja Carmo Índice 1 - Titulo 2 2 Enquadramento 2 3 - Descrição 3 4 - Objectivos 3 5 Público-Alvo 3 6 - Conteúdos 4 7 - Calendário das Actividades 5 8 - Estratégias Pedagógicas 8 9

Leia mais

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Prof. Bruno Vilela Oliveira bruno@cca.ufes.br http://www.brunovilela.webnode.com.br Programas e Linguagens Para executar uma tarefa

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Desenho de Software Departamento de Matemática Universidade dos Açores Hélia Guerra helia@uac.pt desenho Desenho (dicionário Priberam on-line) do Lat.! designu s. m., arte de representar

Leia mais

Engenharia de Software LEIC/LERC, 3 o Ano, 2 o Semestre, Ano lectivo de 2009/2010

Engenharia de Software LEIC/LERC, 3 o Ano, 2 o Semestre, Ano lectivo de 2009/2010 UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LERC, 3 o Ano, 2 o Semestre, Ano lectivo de 2009/2010 Segundo Exame 16 de Julho de 2010, 9:00H 11:30H (Versão A) Nome:

Leia mais

Engenharia de Software

Engenharia de Software CENTRO UNIVERSITÁRIO NOVE DE JULHO Profº. Edson T. França edson.franca@uninove.br Software Sistemas Conjunto de elementos, entre os quais haja alguma relação Disposição das partes ou dos elementos de um

Leia mais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais Notas da Aula 4 - Fundamentos de Sistemas Operacionais 1. Threads Threads são linhas de execução dentro de um processo. Quando um processo é criado, ele tem uma única linha de execução, ou thread. Esta

Leia mais

Arquitetura de Sistemas Operativos

Arquitetura de Sistemas Operativos Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Modelos de Interacção entre Processos Produtor e Consumidor Os dados transmitidos entre as aplicações são geralmente opacos para o sistema

Leia mais

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores Primeiro Teste 21 de Outubro de 2006, 9:00H 10:30H Nome: Número:

Leia mais

Sumário. Objectivos Técnicas Casos Notáveis Exemplo Conclusões. Testes de Software 2

Sumário. Objectivos Técnicas Casos Notáveis Exemplo Conclusões. Testes de Software 2 Testes de Software Sumário Objectivos Técnicas Casos Notáveis Exemplo Conclusões Testes de Software 2 Objectivos Verificação o programa está de acordo com a especificação (construímos bem o produto?) Validação

Leia mais

Programa de Parcerias e Submissão de Propostas 2014/15

Programa de Parcerias e Submissão de Propostas 2014/15 DEPARTAMENTO DE INFORMÁTICA Programa de Parcerias e Submissão de Propostas 2014/15 O Departamento de Informática (DI) da Faculdade de Ciências da Universidade de Lisboa (FCUL) procura criar e estreitar

Leia mais

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual Algoritmos: Lógica para desenvolvimento de programação de computadores Autor: José Augusto Manzano Capítulo 1 Abordagem Contextual 1.1. Definições Básicas Raciocínio lógico depende de vários fatores para

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

Leia mais

De Arte a Ciência: Regras para o Desenho de Software

De Arte a Ciência: Regras para o Desenho de Software De Arte a Ciência: Regras para o Desenho de Software Neste artigo é apresentado um conjunto de regras de desenho um padrão de desenho universal associado ao princípio fundamental e aos requisitos axiomáticos.

Leia mais

ECTS: European Credit Transfer System (Sistema europeu de transferência de créditos)

ECTS: European Credit Transfer System (Sistema europeu de transferência de créditos) http://www.dges.mcies.pt/bolonha/ ECTS: European Credit Transfer System (Sistema europeu de transferência de créditos) A razão de um novo sistema de créditos académicos Um dos aspectos mais relevantes

Leia mais

Como elaborar um Plano de Negócios de Sucesso

Como elaborar um Plano de Negócios de Sucesso Como elaborar um Plano de Negócios de Sucesso Pedro João 28 de Abril 2011 Fundação António Cupertino de Miranda Introdução ao Plano de Negócios Modelo de Negócio Análise Financeira Estrutura do Plano de

Leia mais

Interface Homem Máquina para Domótica baseado em tecnologias Web

Interface Homem Máquina para Domótica baseado em tecnologias Web Interface Homem Máquina para Domótica baseado em tecnologias Web João Alexandre Oliveira Ferreira Dissertação realizada sob a orientação do Professor Doutor Mário de Sousa do Departamento de Engenharia

Leia mais

Vantagem Garantida PHC

Vantagem Garantida PHC Vantagem Garantida PHC O Vantagem Garantida PHC é um aliado para tirar maior partido das aplicações PHC A solução que permite à empresa rentabilizar o seu investimento, obtendo software actualizado, formação

Leia mais

ServidorEscola Plataforma Web de apoio Administrativo

ServidorEscola Plataforma Web de apoio Administrativo ServidorEscola Plataforma Web de apoio Administrativo Introdução Co-habitamos uma sociedade de informação universal, aliados ao paradigma da evolução tecnológica que se verifica e se revela como um meio

Leia mais

Manual do Gestor da Informação do Sistema

Manual do Gestor da Informação do Sistema Faculdade de Engenharia da Universidade do Porto Licenciatura Informática e Computação Laboratório de Informática Avançada Automatização de Horários Manual do Gestor da Informação do Sistema João Braga

Leia mais

Introdução à Programação de Computadores

Introdução à Programação de Computadores 1. Objetivos Introdução à Programação de Computadores Nesta seção, vamos discutir os componentes básicos de um computador, tanto em relação a hardware como a software. Também veremos uma pequena introdução

Leia mais

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

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Diagrama de entidades relacionamentos (abordado anteriormente) Diagrama de Fluxo de Dados (DFD)

Diagrama de entidades relacionamentos (abordado anteriormente) Diagrama de Fluxo de Dados (DFD) Diagrama de entidades relacionamentos (abordado anteriormente) Prod_Forn N N 1 Stock 1 1 N Prod_Enc N 1 N 1 Fornecedor Movimento Encomenda Diagrama de Fluxo de Dados (DFD) Ferramenta de modelação gráfica,

Leia mais

Curriculum DeGóis Guia de preenchimento do Curriculum Vitae (Informação mínima necessária)

Curriculum DeGóis Guia de preenchimento do Curriculum Vitae (Informação mínima necessária) Curriculum DeGóis Guia de preenchimento do Curriculum Vitae (Informação mínima necessária) /curriculum Julho de 2008 Versão 1.1 1 Introdução O objectivo deste guia é auxiliar o utilizador da Plataforma

Leia mais

Transcrição Automática de Música

Transcrição Automática de Música Transcrição Automática de Música Ricardo Rosa e Miguel Eliseu Escola Superior de Tecnologia e Gestão do Instituto Politécnico de Leiria Departamento de Engenharia Informática A transcrição automática de

Leia mais

EXPERIMENTAR PODE SER VOAR PARA OUTRO ESPAÇO

EXPERIMENTAR PODE SER VOAR PARA OUTRO ESPAÇO EXPERIMENTAR PODE SER VOAR PARA OUTRO ESPAÇO In: Pensar avaliação, melhorar a aprendizagem /IIE Lisboa: IIE, 1994 (...) tenho de observar o mundo a partir de outra óptica, outra lógica, e outros métodos

Leia mais

SICOP Sistema de Inovação, Controlo e Optimização de Produtos

SICOP Sistema de Inovação, Controlo e Optimização de Produtos SICOP Sistema de Inovação, Controlo e Optimização de Produtos Célia Alves, Liliana Monteiro, Fernanda Barbosa, Ana Borges, Jorge Barbosa* Resumo De modo a facilitar e estandardizar o ciclo de desenvolvimento,

Leia mais

b : nas representações gráficas de funções do tipo

b : nas representações gráficas de funções do tipo do as suas escolhas a partir daí. Nesta situação, tendem a identificar as assímptotas verticais, as assímptotas horizontais e a associar as representações analítica e gráfica que têm estas características

Leia mais

Enunciado de apresentação do projecto

Enunciado de apresentação do projecto Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 Enunciado de apresentação do projecto FEARSe Índice 1 Introdução... 2 2 Cenário de Enquadramento... 2 2.1 Requisitos funcionais...

Leia mais

ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário. As Normas da família ISO 9000. As Normas da família ISO 9000

ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário. As Normas da família ISO 9000. As Normas da família ISO 9000 ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário Gestão da Qualidade 2005 1 As Normas da família ISO 9000 ISO 9000 descreve os fundamentos de sistemas de gestão da qualidade e especifica

Leia mais

Rock In Rio - Lisboa

Rock In Rio - Lisboa Curso de Engenharia Informática Industrial Rock In Rio - Lisboa Elaborado por: Ano Lectivo: 2004/05 Tiago Costa N.º 4917 Turma: C Gustavo Graça Patrício N.º 4757 Turma: C Docente: Professora Maria Estalagem

Leia mais

EXERCÍCIOS ACOMPANHADOS: CONJUNTO INOVADOR DE FUNCIONALIDADES DE PLATAFORMAS DE E-LEARNING

EXERCÍCIOS ACOMPANHADOS: CONJUNTO INOVADOR DE FUNCIONALIDADES DE PLATAFORMAS DE E-LEARNING EXERCÍCIOS ACOMPANHADOS: CONJUNTO INOVADOR DE FUNCIONALIDADES DE PLATAFORMAS DE E-LEARNING Anna Guerman, Humberto Santos, Pedro Dinis Gaspar, António Espírito Santo, Cláudia Santos Universidade da Beira

Leia mais

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho. Computação Paralela Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro 2005 Desenvolvimento de Aplicações Paralelas Uma Metodologia

Leia mais

Perguntas e Respostas via WebCast Roadshow Mais PHC 2009 O novo SNC

Perguntas e Respostas via WebCast Roadshow Mais PHC 2009 O novo SNC Perguntas e Respostas via WebCast Roadshow Mais PHC 2009 O novo SNC PERGUNTAS VIA WEB CAST: Dado que vamos ter necessariamente durante o período de transição que efectuar lançamentos manuais na contabilidade,

Leia mais

CÓDIGO INTERNACIONAL ICC/ESOMAR PARA A INVESTIGAÇÃO SOCIAL E DE MERCADO

CÓDIGO INTERNACIONAL ICC/ESOMAR PARA A INVESTIGAÇÃO SOCIAL E DE MERCADO CÓDIGO INTERNACIONAL ICC/ESOMAR PARA A INVESTIGAÇÃO SOCIAL E DE MERCADO INTRODUÇÃO O primeiro Código para a Prática de Investigação Social e de Mercado foi publicado pela ESOMAR em 1948. Depois deste foram

Leia mais

Guia passo a passo para o preenchimento do formulário de candidatura. Junho 2008

Guia passo a passo para o preenchimento do formulário de candidatura. Junho 2008 Guia passo a passo para o preenchimento do formulário de candidatura Junho 2008 ÍNDICE 1. Instruções gerais... 2 2. Parceria... 4 3. Grupos de tarefas... 8 4. Indicadores... 13 5. Preenchimento das outras

Leia mais

Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters

Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters Trabalho elaborado por: 980368 - Sérgio Gonçalves Lima 1010949 - Nisha Sudhirkumar Chaganlal Clusters O que é

Leia mais

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/10 GereComSaber Ana Duarte, André Guedes, Eduardo

Leia mais

PHC dteamcontrol Interno

PHC dteamcontrol Interno PHC dteamcontrol Interno A gestão remota de projectos em aberto A solução via Internet que permite acompanhar os projectos em aberto em que o utilizador se encontra envolvido, gerir eficazmente o seu tempo

Leia mais

Módulo de Administração de Utilizadores

Módulo de Administração de Utilizadores base Módulo de Administração de Utilizadores Versão 2.0 Manual do utilizador Janeiro 2002 Ficha técnica Título BIBLIObase : Módulo de Administração de Utilizadores: versão 2.0 : manual do utilizador Autores

Leia mais

Grupo de trabalho sobre a protecção das pessoas singulares no que diz respeito ao tratamento de dados pessoais. Recomendação 1/99

Grupo de trabalho sobre a protecção das pessoas singulares no que diz respeito ao tratamento de dados pessoais. Recomendação 1/99 5093/98/PT/final WP 17 Grupo de trabalho sobre a protecção das pessoas singulares no que diz respeito ao tratamento de dados pessoais Recomendação 1/99 sobre o tratamento invisível e automatizado de dados

Leia mais

CAPÍTULO 4 Implementação do modelo num programa de cálculo automático

CAPÍTULO 4 Implementação do modelo num programa de cálculo automático CAPÍTULO 4 Implementação do modelo num programa de cálculo automático Neste capítulo, será feita a demonstração da aplicação do modelo num programa de cálculo automático, desenvolvido em linguagem de programação

Leia mais

Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle

Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle Luís Filipe Borges Pinto Resumo: Este projecto consiste na implementação de uma aplicação WEB para monitorização

Leia mais

Um compilador é um programa que lê um programa escrito numa dada linguagem, a linguagem objecto (fonte), e a traduz num programa equivalente

Um compilador é um programa que lê um programa escrito numa dada linguagem, a linguagem objecto (fonte), e a traduz num programa equivalente Capítulo 1 Introdução Um compilador é um que lê um escrito numa dada linguagem, a linguagem objecto (fonte), e a traduz num equivalente numa outra linguagem, a linguagem destino Como parte importante neste

Leia mais

SISTEMAS DE INFORMAÇÃO PARA GESTÃO

SISTEMAS DE INFORMAÇÃO PARA GESTÃO 07-05-2013 1 SISTEMAS DE INFORMAÇÃO PARA GESTÃO Aula I Docente: Eng. Hercílio Duarte 07-05-2013 2 Objectivo Sistemas Modelos Dados Vs. Informação Introdução aos sistemas de Informação 07-05-2013 3 Introdução

Leia mais

PRINCIPIOS GERAIS PARA A ELABORAÇÃO DE UM PLANO DE JOGO

PRINCIPIOS GERAIS PARA A ELABORAÇÃO DE UM PLANO DE JOGO PRINCIPIOS GERAIS PARA A ELABORAÇÃO DE UM PLANO DE JOGO ANTÓNIO GUERRA DEPARTAMENTO DE FORMAÇÃO DA FPV CONHEÇA A SUA EQUIPA E A COMPETIÇÃO ONDE PARTICIPA Primeiro que tudo têm de conhecer a sua equipa,

Leia mais

Sistemas distribuídos:comunicação

Sistemas distribuídos:comunicação M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.

Leia mais

GESTÃO MUSEOLÓGICA E SISTEMAS DE QUALIDADE Ana Mercedes Stoffel Fernandes Outubro 2007 QUALIDADE E MUSEUS UMA PARCERIA ESSENCIAL

GESTÃO MUSEOLÓGICA E SISTEMAS DE QUALIDADE Ana Mercedes Stoffel Fernandes Outubro 2007 QUALIDADE E MUSEUS UMA PARCERIA ESSENCIAL CADERNOS DE MUSEOLOGIA Nº 28 2007 135 GESTÃO MUSEOLÓGICA E SISTEMAS DE QUALIDADE Ana Mercedes Stoffel Fernandes Outubro 2007 QUALIDADE E MUSEUS UMA PARCERIA ESSENCIAL INTRODUÇÃO Os Sistemas da Qualidade

Leia mais

Livraria dos Mestres

Livraria dos Mestres Gestão de Projectos Informáticos Livraria dos Mestres 3ª Entrega Empresa B Grupo nº 11 João Maurício nº 53919 Ricardo Carapeto nº 53942 Nuno Almeida nº 53946 Page 1 of 28 Índice 1. Sumário para a Gestão

Leia mais

Auditorias da Qualidade

Auditorias da Qualidade 10 páginas sobre s da Qualidade "Não olhes para longe, despreocupando-se do que tens perto." [ Eurípedes ] VERSÃO: DATA de EMISSÃO: 9-10-2009 AUTOR: José Costa APROVAÇÃO: Maria Merino DESCRIÇÃO: Constitui

Leia mais

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos Vetores Nos capítulos anteriores estudamos as opções disponíveis na linguagem C para representar: Números inteiros em diversos intervalos. Números fracionários com várias alternativas de precisão e magnitude.

Leia mais

Figura 1 - O computador

Figura 1 - O computador Organização e arquitectura dum computador Índice Índice... 2 1. Introdução... 3 2. Representação da informação no computador... 4 3. Funcionamento básico dum computador... 5 4. Estrutura do processador...

Leia mais

3. Comunicação em Sistemas Distribuídos

3. Comunicação em Sistemas Distribuídos 3. Comunicação em 3.1.Troca de mensagens As mensagens são objetos de dados cuja estrutura e aplicação são definidas pelas próprias aplicações que a usarão. Sendo a troca de mensagens feita através de primitivas

Leia mais

O PROJETO DE PESQUISA. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

O PROJETO DE PESQUISA. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza O PROJETO DE PESQUISA Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Escolher um tema de pesquisa Por onde começar? Ler para aprender Estrutura do Projeto de Pesquisa A Definição

Leia mais

Controladores Lógicos Programáveis 2

Controladores Lógicos Programáveis 2 Escola Superior de Tecnologia Instituto Politécnico de Castelo Branco Departamento de Informática Curso de Engenharia Informática Automação e Controlo Industrial Ano Lectivo de 2004/2005 Controladores

Leia mais

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto Computabilidade 2012/2013 Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto Capítulo 1 Computabilidade 1.1 A noção de computabilidade Um processo de computação

Leia mais

Engenharia de Software Sistemas Distribuídos

Engenharia de Software Sistemas Distribuídos Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 FEARSe Requisitos para a 1 a entrega 18 de Março de 2010 1 Introdução O projecto conjunto das disciplinas de Engenharia de Software

Leia mais

AMBIENTE DE PROGRAMAÇÃO PYTHON

AMBIENTE DE PROGRAMAÇÃO PYTHON Computadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2003/2004 FICHA 1 AMBIENTE DE PROGRAMAÇÃO PYTHON 1.1. Objectivos

Leia mais

Tópicos. Engenharia de Software: Uma Visão Geral

Tópicos. Engenharia de Software: Uma Visão Geral Tópicos 2 3 Engenharia de Software: Uma Visão Geral SCE 186 - Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestre de 2002 A importância do Software Software Aplicações

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software 2º Semestre de 2006/2007 Terceiro enunciado detalhado do projecto: Portal OurDocs ic-es+alameda@mega.ist.utl.pt ic-es+tagus@mega.ist.utl.pt 1. Introdução O terceiro enunciado do

Leia mais

BPstat. manual do utilizador. Banco de Portugal BPstat Estatísticas online Manual do Utilizador 1/24

BPstat. manual do utilizador. Banco de Portugal BPstat Estatísticas online Manual do Utilizador 1/24 BPstat manual do utilizador Banco de Portugal BPstat Estatísticas online Manual do Utilizador 1/24 BANCO DE PORTUGAL Av. Almirante Reis, 71 1150-012 Lisboa www.bportugal.pt Edição Departamento de Estatística

Leia mais

Desenho de Software. Desenho de Software 1

Desenho de Software. Desenho de Software 1 Desenho de Software Desenho de Software 1 Sumário Caracterização Conceitos fundamentais Desenho funcional e desenho OO Qualidades Desenho de Software 2 Bibliografia Pfleeger, Capítulo 6 Design the Modules

Leia mais

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado.

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado. Conceitos relativos à Informação 1. Informação O que á a informação? Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado. 2. Dados Em informática designa-se

Leia mais

Auditoria. Auditoria de Demonstrações Financeiras Consolidadas REVISORES AUDITORES OUT/DEZ 2009

Auditoria. Auditoria de Demonstrações Financeiras Consolidadas REVISORES AUDITORES OUT/DEZ 2009 Auditoria de Demonstrações Financeiras Consolidadas 30 REVISORES AUDITORES OUT/DEZ 2009 Ana Sofia Nunes Revisora Oficial de Contas Auditoria 1 Introdução No âmbito do Clarity Project, em curso, do International

Leia mais