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

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

Diagrama de transição de Estados (DTE)

Diagrama de transição de Estados (DTE) Diagrama de transição de Estados (DTE) O DTE é uma ferramenta de modelação poderosa para descrever o comportamento do sistema dependente do tempo. A necessidade de uma ferramenta deste tipo surgiu das

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

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

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

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

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

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

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

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

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

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

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

Base de Dados para Administrações de Condomínios

Base de Dados para Administrações de Condomínios Base de Dados para Administrações de Condomínios José Pedro Gaiolas de Sousa Pinto: ei03069@fe.up.pt Marco António Sousa Nunes Fernandes Silva: ei03121@fe.up.pt Pedro Miguel Rosário Alves: alves.pedro@fe.up.pt

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

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

CAP. I ERROS EM CÁLCULO NUMÉRICO

CAP. I ERROS EM CÁLCULO NUMÉRICO CAP. I ERROS EM CÁLCULO NUMÉRICO 0. Introdução Por método numérico entende-se um método para calcular a solução de um problema realizando apenas uma sequência finita de operações aritméticas. A obtenção

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

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite

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

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

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

Leia mais

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

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

Leia mais

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de 2005 2º Semestre, 2004/2005

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de 2005 2º Semestre, 2004/2005 Departamento de Informática Faculdade de Ciências e Tecnologia UNIVERSIDADE NOVA DE LISBOA Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de 2005 2º Semestre, 2004/2005

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

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

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

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

GUIA DE REDAÇÃO PARA TRABALHO DE EM974

GUIA DE REDAÇÃO PARA TRABALHO DE EM974 GUIA DE REDAÇÃO PARA TRABALHO DE EM974 CONSIDERAÇÕES GERAIS O objetivo deste documento é informar a estrutura e a informação esperadas num texto de Trabalho de Graduação. O conteúdo do texto deverá ser

Leia mais

24 O uso dos manuais de Matemática pelos alunos de 9.º ano

24 O uso dos manuais de Matemática pelos alunos de 9.º ano 24 O uso dos manuais de Matemática pelos alunos de 9.º ano Mariana Tavares Colégio Camões, Rio Tinto João Pedro da Ponte Departamento de Educação e Centro de Investigação em Educação Faculdade de Ciências

Leia mais

Procedimento de Gestão PG 02 Controlo de Documentos e Registos

Procedimento de Gestão PG 02 Controlo de Documentos e Registos Índice 1.0. Objectivo. 2 2.0. Campo de aplicação 2 3.0. Referências e definições....... 2 4.0. Responsabilidades... 3 5.0. Procedimento... 3 5.1. Generalidades 3 5.2. Controlo de documentos... 4 5.3. Procedimentos

Leia mais

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II O seguinte exercício contempla um processo com três estágios. Baseia-se no Inquérito de Satisfação Fase II, sendo, por isso, essencial compreender primeiro o problema antes de começar o tutorial. 1 1.

Leia mais

ISO 9001:2008. A International Organization for Standardization (ISO) publicou em 2008-11- 14 a nova edição da Norma ISO 9000:

ISO 9001:2008. A International Organization for Standardization (ISO) publicou em 2008-11- 14 a nova edição da Norma ISO 9000: A International Organization for Standardization (ISO) publicou em 2008-11- 14 a nova edição da Norma ISO 9000: ISO 9001:2008 Esta nova edição decorre do compromisso da ISO em rever e actualizar as Normas,

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

Pesquisa e organização de informação

Pesquisa e organização de informação Pesquisa e organização de informação Capítulo 3 A capacidade e a variedade de dispositivos de armazenamento que qualquer computador atual possui, tornam a pesquisa de informação um desafio cada vez maior

Leia mais

Utilização do SOLVER do EXCEL

Utilização do SOLVER do EXCEL Utilização do SOLVER do EXCEL 1 Utilização do SOLVER do EXCEL José Fernando Oliveira DEEC FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO MAIO 1998 Para ilustrar a utilização do Solver na resolução de

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

O que farias? pretendem servir de apoio à dinamização de sessões de trabalho

O que farias? pretendem servir de apoio à dinamização de sessões de trabalho Indicações para o professor Introdução Os ALER TAS O que farias? pretendem servir de apoio à dinamização de sessões de trabalho sobre segurança na Internet, promovendo a discussão entre os alunos, em torno

Leia mais

Começo por apresentar uma breve definição para projecto e para gestão de projectos respectivamente.

Começo por apresentar uma breve definição para projecto e para gestão de projectos respectivamente. The role of Project management in achieving Project success Ao longo da desta reflexão vou abordar os seguintes tema: Definir projectos, gestão de projectos e distingui-los. Os objectivos da gestão de

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

Empreendedorismo De uma Boa Ideia a um Bom Negócio

Empreendedorismo De uma Boa Ideia a um Bom Negócio Empreendedorismo De uma Boa Ideia a um Bom Negócio 1. V Semana Internacional A Semana Internacional é o evento mais carismático e que tem maior visibilidade externa organizado pela AIESEC Porto FEP, sendo

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

UMA METODOLOGIA PARA AVALIAÇÃO QUANTITATIVA DA EFICIÊNCIA AMBIENTAL DE EMPRESAS INDUSTRIAIS

UMA METODOLOGIA PARA AVALIAÇÃO QUANTITATIVA DA EFICIÊNCIA AMBIENTAL DE EMPRESAS INDUSTRIAIS UMA METODOLOGIA PARA AVALIAÇÃO QUANTITATIVA DA EFICIÊNCIA AMBIENTAL DE EMPRESAS INDUSTRIAIS António Casimiro de Freitas Borges Barreto Archer Engenheiro Químico e Mestre em Engenharia do Ambiente, UP Professor

Leia mais

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR Curso Engenharia Informática Ano letivo 2012-2013 Unidade Curricular Arquitectura de Computadores ECTS 6 Regime Obrigatório Ano 2º Semestre 2ºsem Horas de trabalho globais Docente (s) Luis Figueiredo Total

Leia mais

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

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

Leia mais

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL Versão: 1.0 Data: 05-06-2009 Índice Acesso e estados dos Formulários... 3 Escolha do Formulário e submissão... 4 Bases para a navegação

Leia mais

GESTÃO de PROJECTOS. Gestor de Projectos Informáticos. Luís Manuel Borges Gouveia 1

GESTÃO de PROJECTOS. Gestor de Projectos Informáticos. Luís Manuel Borges Gouveia 1 GESTÃO de PROJECTOS Gestor de Projectos Informáticos Luís Manuel Borges Gouveia 1 Iniciar o projecto estabelecer objectivos definir alvos estabelecer a estratégia conceber a estrutura de base do trabalho

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Observação das aulas Algumas indicações para observar as aulas

Observação das aulas Algumas indicações para observar as aulas Observação das aulas Algumas indicações para observar as aulas OBJECTVOS: Avaliar a capacidade do/a professor(a) de integrar esta abordagem nas actividades quotidianas. sso implicará igualmente uma descrição

Leia mais

ARQUITECTURAS DE SOFTWARE

ARQUITECTURAS DE SOFTWARE ARQUITECTURAS DE SOFTWARE AULAS Nº 8 e 9 7-21/12/2007 F. Mário Martins Case Studies: Ligação das partes Use Case Diagram Use Case Specification Passo 1: ---------- Passo 2: ---------- Passo 3: ----------

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

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

NP EN ISO 9001:2000 LISTA DE COMPROVAÇÃO

NP EN ISO 9001:2000 LISTA DE COMPROVAÇÃO NP EN ISO 9001:2000 LISTA DE COMPROVAÇÃO NIP: Nº DO RELATÓRIO: DENOMINAÇÃO DA EMPRESA: EQUIPA AUDITORA (EA): DATA DA VISITA PRÉVIA: DATA DA AUDITORIA: AUDITORIA DE: CONCESSÃO SEGUIMENTO ACOMPANHAMENTO

Leia mais

Criatividade e Inovação Organizacional: A liderança de equipas na resolução de problemas complexos

Criatividade e Inovação Organizacional: A liderança de equipas na resolução de problemas complexos Criatividade e Inovação Organizacional: A liderança de equipas na resolução de problemas complexos Dizer que o grande segredo do sucesso das empresas, especialmente em tempos conturbados, é a sua adaptabilidade

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

4 Segmentação. 4.1. Algoritmo proposto

4 Segmentação. 4.1. Algoritmo proposto 4 Segmentação Este capítulo apresenta primeiramente o algoritmo proposto para a segmentação do áudio em detalhes. Em seguida, são analisadas as inovações apresentadas. É importante mencionar que as mudanças

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

Tarefa Orientada 16 Vistas

Tarefa Orientada 16 Vistas Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um

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

4.1. UML Diagramas de casos de uso

4.1. UML Diagramas de casos de uso Engenharia de Software 4.1. UML Diagramas de casos de uso Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Utilizados para ajudar na análise de requisitos Através da forma como o utilizador usa o sistema

Leia mais

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO ACCESS 2010 Conceitos Básicos Ficha Informativa Professor : Vanda Pereira módulo didáctico Conceitos Básicos Necessidade das base de dados Permite guardar dados

Leia mais

Curso de Especialização Tecnológica em Aplicações Informáticas de Gestão (CET-AIG)

Curso de Especialização Tecnológica em Aplicações Informáticas de Gestão (CET-AIG) Curso de Especialização Tecnológica em Aplicações Informáticas de Gestão (CET-AIG) 1. Plano Curricular do curso O curso de especialização tecnológica em Aplicações Informáticas de Gestão integra as componentes

Leia mais

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. 1 Diagrama de Classes Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. Um dos objetivos do diagrama de classes é definir a base para

Leia mais

Prof. Marcelo Henrique dos Santos

Prof. Marcelo Henrique dos Santos ORIENTAÇÃO A OBJETOS COM PROTOTIPAÇÃO CAPÍTULO 02 CONCEITOS FUNDAMENTAIS OBJETIVOS Definiremos alguns conceitos fundamentais de forma a não deixar dúvidas básicas ou interpretações que nos coloquem em

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

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

yuiopasdfghjklçzxcvbnmqwertyuiopasdfghjklçzxcvbnm qwertyuiopasdfghjklçzxcvbnmqwertyuiopasdfghjklçzxc

yuiopasdfghjklçzxcvbnmqwertyuiopasdfghjklçzxcvbnm qwertyuiopasdfghjklçzxcvbnmqwertyuiopasdfghjklçzxc qwertyuiopasdfghjklçzxcvbnmqwertyuiopasdfghjklçzxcvbnmqwertyuiopasdfghjklçzxcvbnmqwe rtyuiopasdfghjklçzxcvbnmqwertyuiopasdfghjklçzxcvbnmqwertyuiopasdfghjklçzxcvbnmqwertyui opasdfghjklçzxcvbnmqwertyuiopasdfghjklçzxcvbnmqwertyuiopasdfghjklçzxcvbnmqwertyuiopas

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

Processo do Serviços de Manutenção de Sistemas de Informação

Processo do Serviços de Manutenção de Sistemas de Informação Processo do Serviços de Manutenção de Sistemas de Informação 070112=SINFIC HM Processo Manutencao MSI.doc, Página 1 Ex.mo(s) Senhor(es): A SINFIC agradece a possibilidade de poder apresentar uma proposta

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

Guia de Estudo Folha de Cálculo Microsoft Excel

Guia de Estudo Folha de Cálculo Microsoft Excel Tecnologias da Informação e Comunicação Guia de Estudo Folha de Cálculo Microsoft Excel Estrutura geral de uma folha de cálculo: colunas, linhas, células, endereços Uma folha de cálculo electrónica ( electronic

Leia mais

Mestrado em Segurança da Informação e Direito no Ciberespaço. Segurança da informação nas organizações Gestão de Configuração

Mestrado em Segurança da Informação e Direito no Ciberespaço. Segurança da informação nas organizações Gestão de Configuração Escola Naval Mestrado em Segurança da Informação e Direito no Ciberespaço Segurança da informação nas organizações Gestão de Configuração Fernando Correia Capitão-de-fragata EN-AEL 14 de Dezembro de 2013

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

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

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu 1 Programação Não Linear Aula 25: Programação Não-Linear - Funções de Uma única variável Mínimo; Mínimo Global; Mínimo Local; Optimização Irrestrita; Condições Óptimas; Método da Bissecção; Método de Newton.

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Introdução Departamento de Matemática Universidade dos Açores Hélia Guerra helia@uac.pt Engenharia de software A economia de todos os países desenvolvidos depende do software. O

Leia mais

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET 2010/2011 1 Protocolo TCP/IP É um padrão de comunicação entre diferentes computadores e diferentes sistemas operativos. Cada computador deve

Leia mais

II EDIÇÃO DO CONCURSO GESTÃO DE IDEIAS PARA ECONOMIZAR

II EDIÇÃO DO CONCURSO GESTÃO DE IDEIAS PARA ECONOMIZAR II EDIÇÃO DO CONCURSO GESTÃO DE IDEIAS PARA ECONOMIZAR APRESENTAÇÃO DO CONCURSO: O concurso Gestão de Ideias para Economizar representa uma oportunidade para os estudantes se prepararem, em pequenos grupos,

Leia mais

Gestão do Risco e da Qualidade no Desenvolvimento de Software

Gestão do Risco e da Qualidade no Desenvolvimento de Software Gestão do Risco e da Qualidade no Desenvolvimento de Software Questionário Taxinómico do Software Engineering Institute António Miguel 1. Constrangimentos do Projecto Os Constrangimentos ao Projecto referem-se

Leia mais

Segurança e Higiene no Trabalho

Segurança e Higiene no Trabalho Guia Técnico Segurança e Higiene no Trabalho Volume III Análise de Riscos um Guia Técnico de Copyright, todos os direitos reservados. Este Guia Técnico não pode ser reproduzido ou distribuído sem a expressa

Leia mais

Sistema para Visualização dos Resultados de Pesquisas de Clima Organizacional. PERSPECTIVA Consultores Associados Ltda.

Sistema para Visualização dos Resultados de Pesquisas de Clima Organizacional. PERSPECTIVA Consultores Associados Ltda. PERSPECTIVA Consultores Associados Ltda. Sistema para Visualização dos Resultados de Pesquisas de Clima Organizacional Manual do Usuário Este documento é de autoria da PERSPECTIVA Consultores Associados

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

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

MICROSOFT POWERPOINT

MICROSOFT POWERPOINT MICROSOFT POWERPOINT CRIAÇÃO DE APRESENTAÇÕES. O QUE É O POWERPOINT? O Microsoft PowerPoint é uma aplicação que permite a criação de slides de ecrã, com cores, imagens, e objectos de outras aplicações,

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

DEMONSTRAÇÕES FINANCEIRAS COMBINADAS

DEMONSTRAÇÕES FINANCEIRAS COMBINADAS 24 DEMONSTRAÇÕES FINANCEIRAS COMBINADAS Os mercados de capitais na Europa e no mundo exigem informações financeiras significativas, confiáveis, relevantes e comparáveis sobre os emitentes de valores mobiliários.

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

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

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

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

Manual do Revisor Oficial de Contas. Projecto de Directriz de Revisão/Auditoria 840

Manual do Revisor Oficial de Contas. Projecto de Directriz de Revisão/Auditoria 840 Projecto de Directriz de Revisão/Auditoria 840 PROJECTO DE DIRECTRIZ DE REVISÃO/AUDITORIA 840 Março de 2008 Relatório Sobre os Sistemas de Gestão de Riscos e de Controlo Interno das Empresas de Seguros

Leia mais