VERIFICAÇÃO DE MODELOS APLICADA AO PROJETO DE SISTEMAS INDUSTRIAIS AUTOMATIZADOS POR CONTROLADORES LÓGICOS PROGRAMÁVEIS
|
|
- Sandra Maria Eduarda Vieira Campelo
- 8 Há anos
- Visualizações:
Transcrição
1 INSTITUTO MILITAR DE ENGENHARIA CARLOS HENRIQUE DA COSTA OLIVEIRA VERIFICAÇÃO DE MODELOS APLICADA AO PROJETO DE SISTEMAS INDUSTRIAIS AUTOMATIZADOS POR CONTROLADORES LÓGICOS PROGRAMÁVEIS Dissertação de Mestrado apresentada ao Curso de Mestrado em Engenharia Elétrica do Instituto Militar de Engenharia, como requisito parcial para obtenção do título de Mestre em Ciências em Engenharia Elétrica. Orientador: Antonio Eduardo Carrilho da Cunha - Dr. Eng. Co-orientador: Mario Cesar Mello Massa de Campos - Dr. ECP Rio de Janeiro 2006
2 c2006 INSTITUTO MILITAR DE ENGENHARIA Praça General Tibúrcio, 80-Praia Vermelha Rio de Janeiro-RJ CEP Este exemplar é de propriedade do Instituto Militar de Engenharia, que poderá incluí-lo em base de dados, armazenar em computador, microfilmar ou adotar qualquer forma de arquivamento. É permitida a menção, reprodução parcial ou integral e a transmissão entre bibliotecas deste trabalho, sem modificação de seu texto, em qualquer meio que esteja ou venha a ser fixado, para pesquisa acadêmica, comentários e citações, desde que sem finalidade comercial e que seja feita a referência bibliográfica completa. Os conceitos expressos neste trabalho são de responsabilidade do(s) autor(es) e do(s) orientador(es). L48 Oliveira, Carlos Henrique da C. Verificação de Modelos Aplicada ao Projeto de Sistemas Industriais Automatizados por Controladores Lógicos Programáveis / Carlos Henrique da Costa Oliveira. - Rio de Janeiro : Instituto Militar de Engenharia, p.: il, graf., tab. Dissertação (mestrado) - Instituto Militar de Engenharia- Rio de Janeiro, Controladores Lógicos Programáveis - CLP. 2. Sistemas Industriais Automatizados. 3. Verificção de Modelos. 4. Automação. 5. Confiabilidade. 6. Diagrama de Blocos Funcionais - DBF. I. Título. II. Instituto Militar de Engenharia. CDD
3 INSTITUTO MILITAR DE ENGENHARIA CARLOS HENRIQUE DA COSTA OLIVEIRA VERIFICAÇÃO DE MODELOS APLICADA AO PROJETO DE SISTEMAS INDUSTRIAIS AUTOMATIZADOS POR CONTROLADORES LÓGICOS PROGRAMÁVEIS Dissertação de Mestrado apresentada ao Curso de Mestrado em Engenharia Elétrica do Instituto Militar de Engenharia, como requisito parcial para obtenção do título de Mestre em Ciências em Engenharia Elétrica. Orientador: Antonio Eduardo Carrilho da Cunha - Dr. Eng. Co-orientador: Mario Cesar Mello Massa de Campos - Dr. ECP Aprovada em 07 de Agosto de 2006 pela seguinte Banca Examinadora: Antonio Eduardo Carrilho da Cunha - Dr. Eng. do IME - Presidente Mario Cesar Mello Massa de Campos - Dr. ECP do CENPES João Carlos dos Santos Basilio - Ph.D. da UFRJ Paulo César Pellanda - Dr. ENSAE do IME Rio de Janeiro
4 Aos meus pais, José Carlos de Oliveira Delgado e Adélia da Costa Oliveira, dedico esta conquista por serem o tesouro da minha vida. 4
5 AGRADECIMENTOS A Deus. Ao Instituto Militar de Engenharia, especialmente ao Departamentos de Engenharia Elétrica, pela oportunidade de realizar este curso. Aos meus pais José Carlos e Adélia, e irmãos Adriana, Claudio e Carlos Adriano, aos meus cunhados Amauri e Esmeri e sobrinhas Lorraine, Catarine, Victoria e Lucas que sempre me deram incentivo e motivação ao longo de toda a minha vida e em mais esta etapa de minha formação. Aos meus tio(a)s, vô, e primo(a)s por todo o incentivo e carinho. A tia Sandra por todo o apoio. A Denise, tia Vera, Sr Vitor, Fernanda e Marlon, que me acolheram com muito carinho no Rio de Janeiro. Aos meus amigos Cris, Faguinho, Rodrigo, Patrick, Charles, Marcinho, Raul, Pablo e Diogo Couto pela alegria, incentivo e amizade. Ao amigo, orientador e professor Antonio Eduardo Carrilho da Cunha pela paciência, dedicação, incentivo e cumplicidade como orientador, sem os quais este trabalho não teria se concretizado. Ao amigo, co-orientador e professor Mario Cesar Mello Massa de Campos por acreditar e incentivar o trabalho. Ao Marcelo do CENPES pelo apoio. Aos professores Ades, Pellanda, Medling, Decilio e Pinheiro pelos conselhos, apoio e profissionalismo prestados no decorrer do curso. Aos meus amigos Leonardo Araújo, Diogo, Arthur, Michele, Alessandra, Rogério por terem entrado na minha vida. Aos amigos Wander, Pinho, Toscano Careca, Ten. Toscano, Ten. Gleison, Leozinho, Luiz Felipe e Gilmar, pelo apoio, bizus e amizade. Aos Professores Envandro Camelo, Hélio Paiva pelas cartas de recomendação para o meu início no curso de mestrado. Aos meus amigos Monique e Roberto pela força. A todos que não foram citados mas contribuíram de alguma forma para o trabalho. A Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPES pelo apoio financeiro. 5
6 SUMÁRIO LISTA DE ILUSTRAÇÕES LISTA DE TABELAS LISTA DE SÍMBOLOS E ABREVIATURAS INTRODUÇÃO Motivação e Justificativa Objetivos Metodologia Organização do Trabalho VERIFICAÇÃO DE MODELOS Visão Geral da Verificação de Modelos A Necessidade de Métodos Formais Verificação de Hardware e Software O Processo de Verificação de Modelos Lógica Temporal e Verificação de Modelos Algoritmos Simbólicos Lógicas Temporais A Lógica da Árvore da Computação CTL CTL e LTL Exemplo - Exclusão Mútua O Verificador de Modelos SMV Resumo do Capítulo VERIFICAÇÃO DE MODELOS APLICADA À PROGRAMAÇÃO DE CLP S Controladores Lógicos Programáveis (CLP s ) Visão Geral da Verificação de Modelos Aplicada à Programação de CLP s Um Modelo para os Diagramas de Contatos Exemplos de Aplicação Sistema de Alarme Sistema de Manufatura
7 3.5 Resumo do Capítulo CONTRIBUIÇÕES À APLICAÇÃO DA VERIFICAÇÃO DE MO- DELOS AO PROJETO DE SISTEMAS AUTOMATIZADOS Projeto de Sistemas Automatizados Exemplo de um Projeto de Sistema Automatizado Descrição Literal das Especificações Matriz de Causa e Efeito Fluxograma de Funcionamento e Programa de Aplicação Programa em DBF Proposta de Verificação de Modelos Escrita da Especificação Escrita de Especificações a partir da Matriz de Causa e Efeito Escrita das Especificações a partir do Conhecimento do Sistema A Tradução da linguagem DBF em código SMV Elementos de Lógica Booleana Elementos de Memória Blocos Temporizadores Construção Modular do Código Verificação Reprojeto Resumo do Capítulo APLICAÇÃO NA AUTOMAÇÃO DE UM AQUECEDOR A CHAMA Automação do Processo de Purga Seqüência de Purga Lista de Entradas e Saídas Matriz de Causa e Efeito Projeto do Programa em DBF Modelagem das Especificações Modelagem do Programa Verificação Resumo do Capítulo
8 6 CONCLUSÃO Contribuições à verificação de modelos Limitações da Abordagem Perspectivas REFERÊNCIAS BIBLIOGRÁFICAS APÊNDICE Manual do Verificador de Modelos Simbólicos (Symbolic Model Checking - SMV) versão Linguagem de Entrada Sintaxe e Semântica Convenções Léxicas Expressões Declaração da ASSIGN Declaração SPEC Declaração DEFINE Módulos Identificadores Módulo main
9 LISTA DE ILUSTRAÇÕES FIG.2.1 (a) Estrutura Kripke. (b) Árvore correspondente para estado inicial S FIG.2.2 Operadores básicos de CTL FIG.2.3 Gráfico de transição de estados global para o problema de exclusão mútua de um processo FIG.3.1 Fluxo de dados entre o CLP e um sistema a controlar FIG.3.2 Ciclo de varredura do CLP FIG.3.3 Diagrama de Fluxo de Dados FIG.3.4 LD e descrição do modelo equivalente FIG.3.5 Sistema de alarme FIG.3.6 Programa de Controle para o Sistema de Alarme FIG.3.7 Representação do programa de controle do alarme em linguagem de verificação de modelos FIG.3.8 Verificação de Modelos para o programa de controle do alarme (contra-exemplo) FIG.3.9 Contra-exemplo da especificação da linha 4 na Figura FIG.3.10 Analise gráfica do contra-exemplo da especificação da linha 4 na Figura FIG.3.11 Contra-exemplo da especificação da linha 7 na Figura FIG.3.12 Analise gráfica do contra-exemplo da especificação da linha 7 na Figura FIG.3.13 Reprojeto FIG.3.14 Planta FIG.3.15 Programa de Controle para o Sistema de Manufatura FIG.3.16 Representação do programa de controle da manufatura em linguagem de verificação de modelos FIG.3.17 Verificação de Modelos para o programa de controle da manufatura (contra-exemplo) FIG.3.18 Analise gráfica do contra-exemplo da especificação na linha 7 da Figura FIG.3.19 Projeto com base na análise do contra-exemplo FIG.3.20 Resposta da Verificação após correção do programa
10 FIG.4.1 Método de projeto adotado por Empresas de Automação FIG.4.2 Sistema estrela-triângulo FIG.4.3 Matriz de Causa e Efeito do sistema Y FIG.4.4 Fluxograma para o sistema estrela-triângulo FIG.4.5 Programa em Diagramas de Blocos Funcionais FIG.4.6 Procedimento atual e proposta de modificação FIG.4.7 Escrita de especificações CTL FIG.4.8 Blocos lógicos AND, OR e NOT FIG.4.9 Blocos SET/RESET FIG.4.10 Códigos SET/RESET FIG.4.11 Blocos dos temporizadores DI, DT, PO FIG.4.12 Máquinas de estado correspondente ao código do temporizador DI FIG.4.13 Máquinas de estado correspondente ao código do temporizador DT FIG.4.14 Máquinas de estado correspondente ao código do temporizador PO FIG.4.15 Códigos dos temporizadores FIG.4.16 Programa em Diagramas de Blocos Funcionais com as variáveis auxiliares FIG.4.17 Tradução do DBF em código SMV FIG.4.18 Resposta da verificação FIG.4.19 Contra-exemplo da especificação na linha 7 da Figura FIG.4.20 Contra-exemplo da especificação na linha 10 da Figura FIG.4.21 Contra-exemplo da especificação na linha 13 da Figura FIG.4.22 Reprojeto com base no contra-exemplo FIG.4.23 Reprojeto na linguagem SMV FIG.5.1 Matriz de Causa e Efeito do sistema Purga FIG.5.2 Projeto do sistema Purga FIG.5.3 Tipos de sinal, segundo a norma ISA 5.2 (ISA, 1992) FIG.5.4 Projeto do sistema Purga com inserção de variáveis auxiliares FIG.5.5 Modelo do Programa no SMV FIG.5.6 Resposta da verificação do sistema Purga FIG.8.1 Listagem de short.smv FIG.8.2 Expressão FIG.8.3 Programa e expressões reusáveis FIG.8.4 Atribuição
11 LISTA DE TABELAS TAB.3.1 Simbologia e descrição dos diagramas de contato TAB.3.2 Bobinas do sistema TAB.4.1 Entradas e saídas do sistema TAB.4.2 Condições para representação das Saídas TAB.5.1 Variáveis de entrada do sistema TAB.5.2 Variáveis de saída do sistema
12 LISTA DE SÍMBOLOS E ABREVIATURAS ABREVIATURAS CLP - Controlador Lógico Programável IME - Instituto Militar de Engenharia LD - Diagrama de Contatos SMV - Verificador de Modelo Simbólico CTL - Lógica da Árvore da Computação LTL - Lógica Temporal Linear SIPN - Rede de Petri Interpretada a Sinais SFC - Diagrama de Função Sequencial PN - Rede de Petri SED - Sistema a Eventos Discretos TCS - Teoria de Controle Supervisório DBF - Diagrama de Blocos de Funções BF - Blocos de Funções IL - Lista de Instruções ST - Texto Estruturado SIS - Sistema Instrumentado de Segurança MCE - Matriz de Causa e Efeito P&I - Diagrama de Processo e Instrumentação MIE - Memória Intermediária de Entrada MIS - Memória Intermediária de Saída OBDD - Diagrama de Decisão Binária Ordenado DCS - Sistemas de Controle Distribuído SÍMBOLOS : - tal que - existe - para todo 12
13 - se, então - se, somente se - operador OU - operador E - operador NÃO a A - a pertence ao conjunto A a / A - a não pertence ao conjunto A - equivalente s = f - f é válido no estado s s f - f não é válido no estado s A B - A está contido em B A B - B está contido em A A B - A maior ou igual a B A B - A menor ou igual a B A < B - A menor que B A > B - A maior que B SIMBOLOGIA PARA ALGORITMOS! - operador NÃO - operador OU & - operador E := - atribuição init(x) - operador de inicialização da variável x next(x) - operador de próximo estado da variável x > - operador implica == - operador igual! = - operador diferente < - operador menor que <= - operador menor ou igual que > - operador maior que >= - operador maior ou igual que 13
14 RESUMO A confiabilidade é um fator fundamental para os Sistemas Industriais Automatizados. Assim, é importante que o programa de aplicação do Controlador Lógico Programável (CLP), responsável pelo processo, atenda às corretas especificações para o funcionamento. A não conformidade com as especificações, seja por implementação errônea de uma lógica ou pela não observação de aspectos da interação do CLP com os equipamentos externos, pode levar a prejuízos materiais, pessoais e ambientais. O objetivo deste trabalho é aplicar as técnicas de verificação de modelos (model checking) ao projeto de Sistemas Industriais Automatizados baseados em CLPs programados por Diagramas de Blocos Funcionais (DBFs). As contribuições deste trabalho são: Criação de um procedimento de tradução de programas escritos em DBF para a linguagem reconhecida pela ferramenta de verificação SMV usando carimbos, descrever um padrão para escrever especificações na linguagem da Lógica da Árvore da Computação CTL e propõe uma etapa de reprojeto, com base no contra exemplo. 14
15 ABSTRACT Reliability is a basic factor for an industrial automated system. Thus, it is important that the application program running in the Programmable Logic controller (PLC), responsible for the system, follows exactly the safety specifications. The nonconformity with the specifications, either by an error in the program implementation or by the nonobservation of some aspects of the interleaving logic, may lead to material, personal or environmental damages. The aim of this work is to apply model checking techniques to the project of industrial automated system based on PLCs. Particularly the verification is performed using the software SMV and the program in the PLC is implemented in Functional Block Diagrams (FBDs). The contributions of this work are: a systematic procedure for the translation of the structures in a FBD program into SMV code using templates, and a method to re-project the PLC software by using of counterexamples given in the verification procedures. 15
16 1 INTRODUÇÃO Este capítulo apresenta uma visão geral do trabalho, incluindo uma introdução ao problema tratado, os objetivos traçados, a metodologia adotada e um guia de leitura desta dissertação. 1.1 MOTIVAÇÃO E JUSTIFICATIVA A confiabilidade é um fator fundamental para os Sistemas Industriais Automatizados. Assim, é importante que o programa de aplicação no Controlador Lógico Programável (CLP) responsável pelo processo industrial atenda às corretas especificações para o seu funcionamento. Uma implementação que fuja do comportamento esperado pode permitir que ocorram falhas, possibilitando a ocorrência de acidentes e prejuízos de ordem material, pessoal e ambiental. Veja-se, por exemplo, o problema na planta química em ALIPERTI (2005) e o problema no projeto das esteiras do aeroporto de Denver em GIBBS (1994). Este trabalho é baseado na necessidade real de se utilizarem métodos formais em sistemas onde falhas são inaceitáveis. A verificação de modelos surgiu na ciência da computação na década de 60 em torno da crise crônica do software (GIBBS, 1994). Começou a ser empregada na Engenharia de Automação mais recentemente com a crescente complexidade dos sistemas automatizados. O processo de verificação de modelos consiste basicamente em modelagem, especificação e verificação. A Verificação de Modelos permite fazer a comparação entre as especificações do Sistema Industrial Automatizado e o programa a ser implementado no CLP. No caso de não conformidade do projeto com as especificações, a verificação fornece um contraexemplo que ilustra a divergência. Procedimentos semelhantes foram descritos em MOON (1994), RAUSCH & KROGH (1998) e SMET & ROSSI (2002). Entretanto tais trabalhos tratam apenas de programas escritos em linguagem por diagramas de contato e não tratam da sistematização do uso da verificação num procedimento de projeto de um Sistema Industrial Automatizado. 16
17 1.2 OBJETIVOS O objetivo do presente trabalho é aplicar a Verificação de Modelos como técnica auxiliar para o projeto de Sistemas Industriais Automatizados por CLP. Deseja-se garantir principalmente a confiabilidade do sistema implementado. Particularmente, neste trabalho, trata-se da programação de CLPs por Diagramas de Blocos Funcionais (DBFs). Este trabalho visa criar um procedimento de tradução do programa de aplicação em DBF para um código aceito pela ferramenta de verificação. Objetiva-se tornar o programa modular, no qual é possível inserir modelos dos equipamentos externos, dos blocos temporizadores e dos blocos de memórias sob a forma de carimbos. Também tem como objetivo sistematizar o procedimento de tradução de especificações em propriedades formais a serem verificadas. 1.3 METODOLOGIA Primeiramente foi feito um estudo dos principais métodos de validação para sistemas complexos, como: simulação, teste, verificação dedutiva e verificação de modelos, que é a adotada no trabalho. Em seguida é feito um estudo de Controladores Lógicos Programáveis (CLPs) e suas principais linguagens de programação dando uma visão geral do processo de verificação de modelos com exemplos de MOON (1994) e RAUSCH & KROGH (1998). Com base numa generalização das etapas do projeto de um Sistema Industrial Automatizado por CLPs, propõem-se etapas adicionais onde se aplica a verificação de modelos para validar o projeto. Para a execução da Verificação é utilizada a ferramenta SMV (Symbolic Model Verifier), que é uma ferramenta acadêmica que representa o estadoda-arte em verificação de modelos (CMU, 2000). Com base no contra exemplo, este trabalho propõe uma etapa de reprojeto do programa de aplicação. Tais procedimentos são descritos na Seção 4.3. Conseqüentemente, o trabalho descreve uma metodologia sistematizada para a verificação de modelos em projetos de sistemas automatizados, criando um procedimento de tradução de programas escritos em Diagramas de Blocos Funcionais (DBF) para a linguagem reconhecida pela ferramenta de verificação SMV. Descreve também um padrão para escrever especificações baseadas no conhecimento do sistema e na matriz de causa e efeito na linguagem da Lógica da Árvore da Computação CTL. Após desenvolvida a metodologia, aplica-se a um exemplo real de parte de um Aquecedor a Chama no Capítulo 17
18 ORGANIZAÇÃO DO TRABALHO O Capítulo 2 dá uma visão geral da verificação de modelos, descrevendo o seu processo. Mostra o sistema de verificação de modelos que MCMILLAN (1993) desenvolveu como parte de sua tese de doutorado, que é utilizado neste trabalho. Também apresenta o que é a lógica da árvore de computação (CTL). O Capítulo 3 tem por principal objetivo mostrar como funciona a verificação de programas de CLP usando a verificação de modelos. São utilizados exemplos acadêmicos de sistemas de pequeno porte (RAUSCH & KROGH, 1998) e (MOON, 1994) para facilitar o entendimento do processo de verificação. O Capítulo 4 tem por objetivo aplicar as técnicas de verificação de modelos ao projeto de Sistemas Automatizados baseados em CLPs programados por DBF. Foram desenvolvidos padrões para a verificação, com base em estruturas lógicas típicas, como carimbos de blocos de memória e temporizadores. Também foram desenvolvidos padrões de especificações para sistemas automatizados, visando a uma futura automatização do processo de verificação. O Capítulo 5 tem por objetivo aplicar as técnicas de verificação de modelos desenvolvidas a uma parte de um projeto de automação de um Aquecedor a Chama Industrial. O Capítulo 6 conclui o trabalho, analisando seu conteúdo em termos dos objetivos propostos. Também neste capítulo são resumidas as contribuições teóricas realizadas e apresentam-se ainda sugestões para futuros trabalhos. 18
19 2 VERIFICAÇÃO DE MODELOS Este capítulo apresenta o método de verificação de modelos desenvolvido por Clarke e Emerson (CLARKE et al., 1999), que é utilizado neste trabalho. 2.1 VISÃO GERAL DA VERIFICAÇÃO DE MODELOS A Verificação de Modelos é uma técnica automática para validação do projeto de sistemas concorrentes de estados finitos. Foi usada com sucesso na prática para validar projetos de complexos circuitos seqüenciais e protocolos de comunicação (CLARKE et al., 1999). O principal desafio da verificação de modelos é o tratamento do problema de explosão de espaço de estados. Este problema ocorre nos sistemas com muitos componentes que interagem entre si e com sistemas que possuem estruturas de dados que podem assumir muitos valores diferentes. Nesta seção, compara-se a verificação de modelos a outros métodos formais para validação de projetos de software e hardware. Além disso, descreve-se como a verificação de modelos é usada para validar projetos de sistemas complexos A NECESSIDADE DE MÉTODOS FORMAIS Hoje, sistemas de hardware e software são usados amplamente em aplicações onde falhas são inaceitáveis: comércio eletrônico, redes de comunicações telefônicas, estradas de rodagem, sistemas de controle de tráfego aéreo, instrumentos médicos, entre outras. Freqüentemente, escutam-se notícias de incidentes onde alguma falha é causada por um erro em um sistema de hardware ou software. Um exemplo recente de tais falhas é o foguete Ariane 5, que explodiu em 4 de junho de 1996, mais ou menos quarenta segundos depois que foi lançado (SPARACO, 1996). O comitê que investigou o acidente mostrou que este foi causado por um erro no software de um computador que era responsável por calcular o movimento do foguete. Durante o lançamento, uma exceção ocorreu quando um número de ponto flutuante de 64-bits foi convertido num inteiro de 16-bits com sinal. Tal conversão não era protegida pelo código para manipular exceções e fez com que o computador falhasse. O mesmo erro também fez com que o computador de backup falhasse. Em conseqüência, dados incorretos da atitude foram transmitidos ao computador de bordo, que causou a destruição do foguete. A equipe que investigou a falha sugeriu que 19
20 diversas medidas fossem tomadas a fim impedir incidentes similares no futuro, incluindo a verificação do software do Ariane 5 (SPARACO, 1996). Por causa do sucesso da Internet e dos sistemas embarcados nos automóveis, aeroplanos, e outros sistemas criticamente seguros, a dependência do correto funcionamento de dispositivos computacionais se torna cada vez maior. De fato, o ritmo da mudança se torna mais acelerado a cada ano. Por causa deste rápido crescimento na tecnologia, é importante desenvolver métodos que aumentem a confiança na correção de tais sistemas VERIFICAÇÃO DE HARDWARE E SOFTWARE Os principais métodos de validação para sistemas complexos são simulação, teste, verificação dedutiva, e verificação de modelos (CLARKE et al., 1999). Ambos, simulação e teste, envolvem a execução de experimentos antes de se empregar o sistema. Enquanto se executa a simulação sobre uma abstração ou modelo do sistema, o teste é executado no produto real. No caso de circuitos, a simulação é executada no projeto do circuito, enquanto o teste é executado no próprio circuito. Em ambos os casos, estes métodos injetam sinais em determinados pontos no sistema e observam os sinais resultantes em outros pontos. Para o software, a simulação e os testes geralmente envolvem a geração de determinadas entradas e observação das saídas correspondentes. Estes métodos podem ser uma maneira econômica para encontrar diversos erros. Entretanto, verificar todas as interações possíveis e falhas potenciais usando simplesmente as técnicas de simulação e teste é raramente possível. O termo verificação dedutiva se refere normalmente ao uso de axiomas e regras de prova para demonstrar a corretude dos sistemas (CLARKE et al., 1999). No início da pesquisa envolvendo verificação dedutiva, o foco principal estava em garantir a correção de sistemas críticos. Supunha-se que a importância do comportamento correto era tão grande que o projetista ou perito em verificação (geralmente um matemático ou um logicista) deveria gastar o tempo que fosse necessário para verificar o sistema. Inicialmente, tais provas eram construídas inteiramente à mão. Com o tempo, os pesquisadores descobriram que ferramentas de software poderiam ser desenvolvidas para forçar o uso correto de axiomas e regras de prova. Tais ferramentas poderiam também aplicar uma busca sistemática para sugerir várias maneiras de se progredir no estágio corrente da prova. A importância da verificação dedutiva é amplamente reconhecida pelos cientistas da computação. A técnica influenciou significativamente a área de desenvolvimento de 20
21 softwares (por exemplo, a noção de um invariante). Entretanto, a verificação dedutiva é um processo demorado que pode ser efetuado somente por peritos treinados no raciocínio lógico e que tenham considerável experiência. A prova de um simples protocolo ou circuito pode durar dias ou meses (CLARKE et al., 1999). Conseqüentemente, o uso da verificação dedutiva é raro. É aplicado primordialmente aos sistemas altamente sensíveis, tais como protocolos de segurança, onde o investimento de recursos necessários para garantir a segurança do seu uso são justificáveis. É importante estar ciente de que algumas tarefas matemáticas não podem ser executadas por algoritmos. A teoria da computabilidade (CLARKE et al., 1999) fornece limitações do que pode ser decidido por um algoritmo. Em particular, mostra-se que não existe um algoritmo que decida se um programa de computador arbitrário (escrito em alguma linguagem de programação como C ou Pascal) termina. Isto limita imediatamente o que pode ser verificado automaticamente. Mais ainda, a terminação correta de um programa genérico não pode ser verificada automaticamente (CLARKE et al., 1999). Dessa forma, uma grande parte dos sistemas de prova não podem ser completamente automatizados. Uma vantagem da verificação dedutiva é que esta pode ser usada para especular sobre sistemas de estados infinitos (CLARKE et al., 1999). E esta tarefa pode ser automatizada dentro de certos limites. E ainda, mesmo que a propriedade a ser verificada seja verdadeira, nenhum limite pode ser colocado na quantidade de tempo ou de memória necessária a se encontrar uma solução. A verificação de modelos (model checking) é uma técnica para verificar sistemas concorrentes de estados finitos (CLARKE et al., 1999). Um benefício desta restrição é que a verificação pode ser executada automaticamente. O procedimento utiliza normalmente uma busca exaustiva do espaço de estados do sistema para determinar se alguma especificação é verdadeira ou não. Dados os recursos suficientes, os procedimentos terminarão sempre com uma resposta do tipo sim ou não. Além disso, pode ser implementada por algoritmos com eficiência considerável, que podem rodar em máquinas potentes (geralmente não em um computador desktop típico). Embora a restrição aos sistemas de estados finitos possa parecer uma principal desvantagem, a verificação de modelos é aplicável a diversas classes importantes de sistemas. Os controladores de hardware são sistemas de estados finitos, e os mesmos são muitos protocolos de comunicação. Em alguns casos, os sistemas que não são de estados finitos podem ser verificados pelo uso da verificação de modelos em combinação com 21
22 vários princípios de abstração e indução. Em muitos casos, erros podem ser encontrados restringindo as estruturas de dados ilimitadas a instâncias específicas que sejam de estados finitos. Por exemplo, programas com filas de mensagens ilimitados podem ser tratados por restrição do tamanho das filas a um número pequeno como dois ou três. Em virtude da verificação de modelos poder ser feita automaticamente, esta é preferível à verificação dedutiva sempre que puder ser aplicada. Entretanto, sempre haverá algumas aplicações críticas em que a prova de teoremas é necessária para a verificação completa. Um novo sentido da pesquisa tenta integrar a verificação dedutiva com a verificação de modelos, de modo que porções de estados finitos de sistemas complexos possam ser verificadas automaticamente. (CLARKE et al., 1999) O PROCESSO DE VERIFICAÇÃO DE MODELOS Aplicar a verificação de modelos a um projeto consiste de basicamente três tarefas (CLARKE et al., 1999): Modelagem: A primeira tarefa é converter um projeto em um formalismo aceito por uma ferramenta de verificação de modelos. Em muitos casos, esta é simplesmente uma tarefa de compilação. Em outros casos, devido a limitações em tempo e memória, modelar um projeto requer o uso de abstração para eliminar detalhes irrelevantes ou sem importância. Especificação: Antes da verificação, é necessário indicar as propriedades a que o projeto deve satisfazer. A especificação é dada geralmente em algum formalismo lógico. Para sistemas de hardware e de software, é comum usar a lógica temporal, que pode afirmar como o comportamento do sistema evolui com o tempo. Um ponto importante na especificação é a abrangência (completeness). Embora a verificação de modelos forneça subsídios para se certificar de que um modelo satisfaz a uma dada especificação, é impossível determinar se a especificação dada cobre todas as propriedades a que o sistema deve satisfazer. Verificação: A verificação é completamente automática. Entretanto, na prática, envolve, freqüentemente, o auxílio humano. Uma atividade manual é a análise dos resultados da verificação. Caso dê um resultado negativo, é fornecido ao usuário um traço de erro. O traço de erro trata de um contra-exemplo para a propriedade verificada e se destina a auxiliar o projetista a detectar onde o erro ocorreu. Neste 22
23 caso, a análise do traço de erro pode requerer uma modificação no sistema e uma nova aplicação do algoritmo de verificação. Um traço de erro pode também resultar de uma modelagem incorreta do sistema ou de uma especificação incorreta, chamada freqüentemente de negativo falso (CLARKE et al., 1999). O traço de erro pode também ser útil para identificar e reparar estes dois problemas. Uma outra possibilidade é que a tarefa da verificação não termine normalmente, devido ao tamanho do modelo, nos casos em que este seja demasiadamente grande para a memória do computador. Neste caso, pode ser necessário refazer a verificação após modificar alguns dos parâmetros do verificador de modelos ou ter-se ajustado o modelo (por exemplo, pelo uso de abstrações adicionais) LÓGICA TEMPORAL E VERIFICAÇÃO DE MODELOS As lógicas temporais são úteis para especificar os sistemas concorrentes, porque descrevem a ordenação temporal dos eventos sem introduzir explicitamente o tempo. Foram desenvolvidas originalmente por filósofos para investigar a maneira como o tempo é usado nos argumentos da linguagem natural (HUGUES & CRESWELL, 1977). Embora uma quantidade de lógicas temporais diferentes tenham sido desenvolvidas, a maioria possui um operador como Gf que é verdadeiro no presente se f for sempre verdadeiro no futuro (isto é, se f for globalmente verdadeiro). Para afirmar que dois eventos e 1 e e 2 nunca ocorrem ao mesmo tempo, escreve-se G( e 1 e 2 ). As lógicas temporais são classificadas freqüentemente conforme o tempo, sendo suposto ter em uma estrutura linear ou ramificada. Neste trabalho, o sentido de uma fórmula em lógica temporal é determinado sempre com respeito a um tipo de grafo de transição de estados, chamado, por razões históricas, de estrutura Kripke (HUGUES & CRESWELL, 1977), conforme mostra a Seção A introdução de algoritmos de verificação de modelos usando lógica temporal por Clarke e Emerson (CLARKE & EMERSON, 1981) no início dos anos 80 permitiu a automação do raciocínio em lógica temporal para validação de programas. O algoritmo desenvolvido por Clarke e Emerson para a lógica de tempo ramificado CTL é polinomial no tamanho do modelo determinado pelo programa sob consideração e no comprimento de sua especificação em lógica temporal. Mostraram também como a imparcialidade (fairness) poderia ser tratada sem alterar a complexidade do algoritmo. Aproximadamente ao mesmo tempo, Quielle e Sifakis (QUIELLE & SIFAKIS, 1982) produziram um algoritmo de verificação de modelos para um subconjunto da CTL, mas 23
24 a complexidade não foi analisada. Mais tarde Clarke, Emerson e Sistla (CLARKE et al., 1986) planejaram um algoritmo melhorado linear no produto do comprimento da fórmula e do tamanho do grafo de transição de estados. O algoritmo foi implementado no verificador de modelos denominado EMC, que foi distribuído e usado amplamente para verificar diversos sistemas de protocolos de rede e circuitos seqüenciais (CLARKE et al., 1999) ALGORITMOS SIMBÓLICOS Na implementação original do algoritmo de verificação de modelos de Clarke e Emerson (CLARKE & EMERSON, 1981), as relações de transição são representadas explicitamente por listas de adjacência. Para sistemas concorrentes com um pequeno número de processos, o número dos estados é geralmente pequeno, e a abordagem é, em geral viável. Nos sistemas com muitas partes concorrentes entretanto, o número de estados no grafo de transição de estados global é muito grande para lidar. Em 1987, Ken McMillan, então um estudante de pós-graduação na Universidade de Carnegie Mellon, descobriu que, usando uma representação simbólica para os grafos de transição de estados, sistemas com número de estados muito maior poderiam ser verificados (MCMILLAN, 1993). A nova representação simbólica foi baseada nos Diagramas de Decisão Binária Ordenados (Ordered Binary Decision Diagrams - OBDDs), (BRYANT & MUSGRAVE, 1998). Os OBDDs fornecem uma forma canônica que é freqüentemente mais compacta que a forma normal conjuntiva ou disjuntiva (CLARKE et al., 1999). Algoritmos eficientes foram desenvolvidos para manipular fórmulas booleanas escritas em OBDDs. Uma vez que a representação simbólica captura alguma regularidade no espaço de estados de determinados circuitos e protocolos, é possível verificar sistemas com um número extremamente grande de estados, muitas ordens maior do que poderia ser tratado pelos algoritmos que explicitam espaços de estados. Usando o algoritmo de verificação de modelos original de CTL de Clarke e Emerson com a nova representação para grafos de transição de estados, tornou-se possível verificar alguns exemplos com mais de estados (CLARKE et al., 1999). Desde então, os vários refinamentos das técnicas baseadas em OBDD por outros pesquisadores levaram à contagem de estados de até mais de (CLARKE et al., 1999). A representação implícita é completamente natural para modelar circuitos seqüenciais e protocolos. Cada estado é codificado por uma atribuição de valores booleanos ao conjunto de variáveis de estado associadas ao circuito ou protocolo. A relação de transição 24
25 pode conseqüentemente ser expressa como uma fórmula booleana nos termos de dois conjuntos de variáveis: um conjunto que codifica o estado de origem e o outro que codifica o de destino. Esta fórmula é, então, representada por um diagrama binário de decisão (CLARKE et al., 1999). O algoritmo de verificação de modelos se baseia no cálculo de pontos fixos dos transformadores de predicado que são obtidos da relação de transição (CLARKE et al., 1999). Os pontos fixos são conjuntos de estados que representam as várias propriedades temporais do sistema concorrente. Nas novas implementações, tanto os transformadores de predicado como os pontos fixos são representados por OBDDs. Assim, é possível evitar que se construa explicitamente o grafo de estados do sistema concorrente. O sistema de verificação de modelos que McMillan desenvolveu como parte de sua tese de doutorado é chamado Verificador de Modelos Simbólicos (Symbolic Model Verifier - SMV) (MCMILLAN, 1993). Baseia-se em uma linguagem para descrever sistemas concorrentes de estados finitos hierárquicos. Os programas na linguagem do SMV podem ser verificados por especificações expressas em lógica temporal. O verificador de modelos extrai um sistema de transição representado por um OBDD a partir de um programa na linguagem SMV e usa um algoritmo de busca baseado em OBDDs para determinar se o sistema satisfaz à especificação. Se o sistema de transição não satisfaz a alguma especificação, o verificador produzirá um traço de execução que mostra porque a especificação é falsa. O sistema SMV é amplamente distribuído, e um grande número de exemplos tem sido verificados com o mesmo. Os exemplos tratados fornecem uma evidência convincente de que o SMV pode ser usado para eliminar erros em projetos industriais reais (CLARKE et al., 1999). Uma descrição completa da linguagem SMV é apresentada no Apêndice 8.1 deste trabalho. Um exemplo que ilustra o poder da verificação simbólica de modelos é a verificação do protocolo de coerência de cache descrito no padrão IEEE Futurebus+ (Padrão IEEE ) (CLARKE et al., 1999). O desenvolvimento do protocolo de coerência de cache Futurebus+ data de 1988, e todas as tentativas precedentes de validar o protocolo foram baseadas inteiramente em técnicas informais. No verão de 1992, pesquisadores da Universidade Carnegie Mellon construíram um modelo preciso do protocolo na linguagem SMV e, então, usaram o SMV para mostrar que o sistema de transição resultante satisfazia uma especificação formal da coerência cache (CLARKE et al., 1993) e (LONG, 1993). Foram capazes de encontrar uma certa quantidade de erros anteriormente não detectados, bem como erros potenciais no projeto do protocolo. Clarke, Grumberg e Peled referem- 25
26 se a esta como sendo a primeira vez que uma ferramenta automática de verificação é utilizada para encontrar erros num padrão IEEE (CLARKE et al., 1999). 2.2 LÓGICAS TEMPORAIS Nesta seção é descrita uma lógica para especificar propriedades temporais dos sistemas de transição de estados. A lógica utiliza proposições atômicas e conectivos booleanos tais como a conjunção, a disjunção, e a negação para construir elaboradas expressões que descrevem as propriedades dos estados do sistema. A lógica temporal é um formalismo para descrever seqüências de transições entre estados em um sistema reativo. Na lógica temporal considerada, o tempo não é mencionado explicitamente, pelo contrário, uma fórmula especifica se algum estado é eventualmente alcançado, ou que um estado de erro nunca é atingido. As propriedades como eventualmente ou nunca são especificadas usando-se operadores temporais (CLARKE et al., 1999) A LÓGICA DA ÁRVORE DA COMPUTAÇÃO CTL Conceitualmente, as fórmulas da lógica da árvore de computação (Computation Tree Logic - CTL ) descrevem propriedades de árvores da computação. Forma-se uma árvore de computação ao se designar um estado de uma estrutura de transição de estados como estado inicial e, então, desenrola-se a estrutura numa árvore infinita com o estado inicial na raiz. A semântica CTL é definida com respeito a uma estrutura Kripke (CLARKE et al., 1999). Sejam AP um conjunto de proposições atômicas, M é uma estrutura Kripke tripla (S, R, L), onde S é o conjunto de estados; R S S é a relação de transição, que deve ser total (isto é, para todos os estados s S existe um estado s S tal que (s, s ) R); e L : S 2 AP é uma função que etiqueta cada estado (s S) com um conjunto de proposições atômicas (L(s) AP) verdadeiras nesse estado. Um caminho em M é uma infinita seqüência de estados, π = s 0,s 1,... tais que, para cada i 0, (s i,s i+1 ) R. A Figura 2.1 (a) ilustra uma estrutura Kripke e a Figura 2.1 (b) mostra a sua correspondente árvore da computação, com estado inicial s 0 (CLARKE et al., 1986). Da Figura 2.1, o conjunto de estados é S = {s 0,s 1,s 2 }, a relação de transição é R = {(s 0,s 1 ), (s 1,s 0 ), (s 0,s 2 ), (s 2,s 1 )}, e os conjuntos de proposições atômicas são AP = {a,b,c}, o conjunto de proposições verdadeiras nos estados é P(s 0 ) = {a,b}, P(s 1 ) = {b,c} e P(s 2 ) = {a,c}. 26
27 S 0 D S 0 E D S 2 S 1 S 2 E F S 0 S 1 F S 1 (a) S 1 S 2.. (b) S 0. FIG. 2.1: (a) Estrutura Kripke. (b) Árvore correspondente para estado inicial S 0. Em CTL as fórmulas são compostas de quantificadores de caminho e operadores temporais. Os quantificadores de caminho são usados para descrever a estrutura de ramificação da árvore de computação. Há dois quantificadores de caminho: A (para todos os caminhos de computação - for all computation paths) e E (para algum caminho de computação - for some computation path). Estes quantificadores são usados em um estado particular para especificar que todos ou algum dos caminhos que começam neste estado possuem alguma propriedade. Os operadores temporais descrevem propriedades de um caminho ao longo da árvore. Há cinco operadores temporais básicos: X (próxima vez - next time) requer que uma propriedade seja válida no segundo estado do caminho. F (eventualmente ou no futuro - eventually or in the future) afirma que uma propriedade é válida em algum estado do caminho. G (sempre ou globalmente - always or globally) especifica que uma propriedade é válida para todo estado do caminho. U (até - until) é um operador que combina duas propriedades. Dadas as propriedades p 1 e p 2, p 1 U p 2 se houver um estado do caminho onde p 2 torna-se válida, e em cada estado precedente, p 1 sempre for válida. R (liberação - release) é dual ao operador U. Dadas as propriedades p 1 e p 2, p 1 R p 2, é válida quando p 2 é válido ao longo do caminho até e incluindo o primeiro 27
28 estado onde p 1 seja válido. Não se requer que p 1 torne-se válido no caminho. Há dois tipos de fórmulas em CTL : fórmulas de estado (que são verdadeiras em um estado específico) e fórmulas de caminho (que são verdadeiras ao longo de um caminho específico). Seja AP o conjunto de nomes de proposição atômicas. A sintaxe de fórmulas de estado é dada pelas seguintes regras: Se p AP, então p é uma fórmula de estado. Se f e g são fórmulas de estado, então f, f g e f g são fórmulas de estado. Se f é uma fórmula de caminho, então E f e A f são fórmulas de estado. Duas regras adicionais são necessárias para especificar a sintaxe de fórmulas do caminho: Se f é uma fórmula de estado, então f é também uma fórmula de caminho. Se f e g são fórmulas de caminho, então f, f g e f g, X f, F f, G f, f U g, e f R g são fórmulas de caminho. A CTL é o conjunto das fórmulas de estado geradas pelas regras acima. Utiliza-se π i para denotar o sufixo do caminho π que começa no estado s i. Se f denotar uma fórmula de estado, a notação M,s = f significa que f é válida no estado s da estrutura kripke M. Similarmente, se f for uma fórmula de caminho, M,π = f significa que f é válida ao longo do caminho π na estrutura kripke M. Quando a estrutura kripke M estiver subentendida no contexto, será usualmente omitida. A relação = é definida indutivamente como segue (supõe-se que f 1 e f 2 sejam as fórmulas de estado, g 1 e g 2 sejam fórmulas de caminho e que π denote um caminho na forma S 0 S 1 S 2...): a) M,s = f 1 f 1 L(s). b) M,s = f 1 M,s f 1. c) M,s = f 1 f 2 M,s = f 1 ou M,s = f 2. d) M,s = f 1 f 2 M,s = f 1 e M,s = f 2. e) M,s = Eg 1 há um caminho π a partir de s tal que M,π = g 1. f) M,s = Ag 1 para cada caminho π que parte de s, M,π = g 1. 28
29 g) M,π = f 1 s é o primeiro estado de π e M,s = f 1. h) M,π = g 1 M,π g 1. i) M,π = g 1 g 2 M,π = g 1 ou M,π = g 2. j) M,π = g 1 g 2 M,π = g 1 e M,π = g 2. k) M,π = Xg 1 M,π 1 = g 1. l) M,π = Fg 1 existe um k 0 tal que M,π k = g 1. m) M,π = Gg 1 para todo i 0,M,π i = g 1. n) M,π = g 1 Ug 2 existe um k 0, tal que M,π k = g 2 e para todo 0 j < k,m,π j = g 1. o) M,π = g 1 Rg 2 para todo j 0, se para cada i < j M,π i g 1 então M,π j = g 2. É fácil ver que os operadores,,x,u, e E são suficientes para expressar qualquer fórmula CTL CLARKE et al. (1999), pois é possível listar o seguinte: f g ( f g) frg ( fu g) Ff verdadeirouf Gf F f A(f) E( f) CTL E LTL Neta seção consideram-se duas sub-lógicas da CTL : uma é uma lógica de tempo ramificante e a outra é uma lógica de tempo linear. A distinção entre as duas está na forma como lidam com a ramificação na árvore de computação subjacente. Na lógica temporal de tempo ramificante, os operadores temporais quantificam sobre os caminhos que são possíveis a partir de um dado estado. Na lógica temporal de tempo linear, os operadores são fornecidos descrevendo eventos ao longo de um único trajeto de computação. A lógica da árvore da computação (CTL) é um subconjunto restrito da CTL onde cada um dos operadores temporais X, F, G, U e R deve ser imediatamente precedido 29
30 por um quantificador de caminho (CLARKE et al., 1999). Mais precisamente, a CTL é um subconjunto da CTL que é obtida ao se restringir a sintaxe de fórmulas de caminho pela seguinte regra: Se f e g forem fórmulas de estado, então X f, F f, G f, f U g, e f R g são fórmulas de caminho. A Lógica temporal linear (LTL), consiste das fórmulas que têm a forma A f, onde f é uma fórmula do caminho em que as únicas subfórmulas de estado permitidas são proposições atômicas (CLARKE et al., 1999). Mais precisamente, uma fórmula de caminho LTL é tal que: Se p AP, então p é uma fórmula de caminho. Se f e g são fórmulas de caminho, então f, f g, f g, X f, F f, G f, f U g, e f R g são fórmulas de caminho. Pode-se mostrar que as três lógicas discutidas neste trabalho possuem poderes de expressão diferentes (CLARKE et al., 1999). Por exemplo, não há nenhuma fórmula CTL que seja equivalente à fórmula LTL A(FGp). Esta fórmula expressa a propriedade de que, ao longo de todo caminho, há algum estado a partir do qual p será sempre válido. Do mesmo modo, não há nenhuma fórmula LTL que seja equivalente à uma fórmula CTL AG(EFp). A disjunção entre as duas fórmulas A(FGp) AG(EFp) é uma fórmula CTL e não é exprimível em fórmulas CTL ou LTL. Todas as especificações neste trabalho serão escritas na lógica CTL. Há dez operadores básicos de CTL (CLARKE et al., 1999): AX e EX; AF e EF; AG e EG; AU e EU; AR e ER. Cada um dos dez operadores podem ser expressos nos termos de três operadores EX, EG e EU (CLARKE et al., 1999): 30
(Model Checking) Estes slides são baseados nas notas de aula da Profa. Corina
Verificação de Modelos (Model Checking) Estes slides são baseados nas notas de aula da Profa. Corina Cîrstea Lista de Leitura para a Parte Teórica M. Huth and M. Ryan, Logic in Computer Science Modelling
Leia maisAula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW
Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto
Leia maisDescrição do Produto. Altus S. A. 1
Descrição do Produto O software MasterTool IEC é um ambiente completo de desenvolvimento de aplicações para os controladores programáveis da Série Duo. Esta ferramenta permite a programação e a configuração
Leia maisc. 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 maisEspecificação Operacional.
Especificação Operacional. Para muitos sistemas, a incerteza acerca dos requisitos leva a mudanças e problemas mais tarde no desenvolvimento de software. Zave (1984) sugere um modelo de processo que permite
Leia mais18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB
18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB Autor(es) HARLEI MIGUEL DE ARRUDA LEITE Orientador(es) PLÍNIO ROBERTO SOUZA VILELA Apoio Financeiro PIBIC/CNPQ
Leia maisAnálise e Projeto de Software
Análise e Projeto de Software 1 Mundo Real Modelagem Elicitação Análise Problemas Soluções Gap Semântico Mundo Computacional Elicitação de Requisitos Análise de Requisitos Modelagem dos Requisitos 2 Projeto
Leia maisUniversidade Federal de São João Del Rei - UFSJ
Universidade Federal de São João Del Rei - UFSJ Instituída pela Lei 0.45, de 9/04/00 - D.O.U. de /04/00 Pró-Reitoria de Ensino de Graduação - PROEN Disciplina: Cálculo Numérico Ano: 03 Prof: Natã Goulart
Leia maisEngenharia de Software II
Engenharia de Software II Aula 28 Revisão para a Prova 2 http://www.ic.uff.br/~bianca/engsoft2/ Aula 28-28/07/2006 1 Matéria para a Prova 2 Gestão de projetos de software Conceitos (Cap. 21) Métricas (Cap.
Leia maisGuia de utilização da notação BPMN
1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação
Leia maisTÉ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 maisREPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade
REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro Princípios Básicos de Arquitetura e Organização
Leia maisFalso: F = Low voltage: L = 0
Curso Técnico em Eletrotécnica Disciplina: Automação Predial e Industrial Professor: Ronimack Trajano 1 PORTAS LOGICAS 1.1 INTRODUÇÃO Em 1854, George Boole introduziu o formalismo que até hoje se usa para
Leia maisAutomação. Industrial. Prof. Alexandre Landim
Automação Industrial Prof. Alexandre Landim Automação Industrial Controladores Lógicos Programáveis Parte 1 1. Introdução O Controlador Lógico Programável, ou simplesmente CLP, tem revolucionado os comandos
Leia maisEngenharia de Software II
Engenharia de Software II Aula 14 Revisão http://www.ic.uff.br/~bianca/engsoft2/ Aula 14-07/05/2006 1 Processo de Software Qual é a diferença entre uma atividade de arcabouço e uma atividade guarda chuva?
Leia maisMODELAGEM E SIMULAÇÃO
MODELAGEM E SIMULAÇÃO Professor: Dr. Edwin B. Mitacc Meza edwin@engenharia-puro.com.br www.engenharia-puro.com.br/edwin Terminologia Básica Utilizada em de Sistemas Terminologia Básica Uma série de termos
Leia maisProbabilidade - aula I
e 27 de Fevereiro de 2015 e e Experimentos Aleatórios e Objetivos Ao final deste capítulo você deve ser capaz de: Entender e descrever espaços amostrais e eventos para experimentos aleatórios. Interpretar
Leia maisSISTEMAS DE INFORMAÇÃO GERENCIAIS
SISTEMAS DE INFORMAÇÃO GERENCIAIS Aluno: Luiza Cavalcanti Marques Orientador: Silvio Hamacher Introdução A modelagem e a utilização de bancos de dados em atividades gerenciais têm sofrido um aumento significativo
Leia maisTécnico/a de Refrigeração e Climatização
Técnico/a de Refrigeração e Climatização 1315 Eletricidade e eletrónica - programação de autómatos 2013/ 2014 Gamboa 1 Introdução Automação, estudo dos métodos e procedimentos que permitem a substituição
Leia maisnatureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues
Modelo De Desenvolvimento De Software É uma representação abstrata do processo de desenvolvimento que define como as etapas relativas ao desenvolvimento de software serão conduzidas e interrelacionadas
Leia maisManual do Usuário - ProJuris Web - Biblioteca Jurídica Página 1 de 20
As informações contidas neste documento estão sujeitas a alterações sem o prévio aviso, o que não representa um compromisso da Virtuem Informática. As pessoas, organizações ou empresas e eventos de exemplos
Leia maisProjeto de inovação do processo de monitoramento de safra da Conab
Projeto de inovação do processo de monitoramento de safra da Conab Projeto elaborado por Lorenzo Seguini lorenzo_seguini@yahoo.it Projeto Diálogos Setoriais União Europeia - Brasil 1 Sumário 1. Introdução...3
Leia maisCapítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1
Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de
Leia maisA NECESSIDADE DE UMA NOVA VISÃO DO PROJETO NOS CURSOS DE ENGENHARIA CIVIL, FRENTE À NOVA REALIDADE DO SETOR EM BUSCA DA QUALIDADE
A NECESSIDADE DE UMA NOVA VISÃO DO PROJETO NOS CURSOS DE ENGENHARIA CIVIL, FRENTE À NOVA REALIDADE DO SETOR EM BUSCA DA QUALIDADE ULRICH, Helen Departamento de Engenharia de Produção - Escola de Engenharia
Leia maisEngenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios
Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana
Leia maisFaculdade de Computação
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação Professora : Sandra Aparecida de Amo Lista de Exercícios n o 2 Exercícios sobre Modelos de Máquinas de Turing
Leia mais3.1 Definições Uma classe é a descrição de um tipo de objeto.
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:
Leia maisATIVIDADES PRÁTICAS SUPERVISIONADAS
ATIVIDADES PRÁTICAS SUPERVISIONADAS 10ª Série Automação Industrial Engenharia Elétrica A atividade prática supervisionada (ATPS) é um procedimento metodológico de ensino-aprendizagem desenvolvido por meio
Leia maisProcessos de gerenciamento de projetos em um projeto
Processos de gerenciamento de projetos em um projeto O gerenciamento de projetos é a aplicação de conhecimentos, habilidades, ferramentas e técnicas às atividades do projeto a fim de cumprir seus requisitos.
Leia maisCapítulo 4 Gerenciamento de Memória
Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição
Leia maisCAPÍTULO 3. Sistemas com Vários Componentes (Multicomponentes) em Modelos Markovianos de Decisão
CAPÍTULO 3 Sistemas com Vários Componentes (Multicomponentes) em Modelos Markovianos de Decisão 3.1 - Multicomponentes Conceitos Básicos: O conceito de multicomponente é utilizado em diversas áreas de
Leia maisEngenharia de Software III
Departamento de Informática Programa de Pós Graduação em Ciência da Computação Laboratório de Desenvolvimento Distribuído de Software Estágio de Docência Cronograma e Método de Avaliação Datas Atividades
Leia maisCircuitos Digitais 144L
Circuitos Digitais Notas de Aula - 02 INSTITUTO: CURSO: DISCIPLINA: Instituto de Ciências Exatas e Tecnologia Ciência da Computação e Sistemas de Informação Circuitos Digitais 144L 1.0 Circuitos Combinacionais.
Leia maisDesenvolvimento de Estratégia para Programação do Futebol de Robôs da Mauá
Desenvolvimento de Estratégia para Programação do Futebol de Robôs da Mauá Wânderson O. Assis, Alessandra D. Coelho, Marcelo M. Gomes, Cláudio G. Labate, Daniel F. Calasso, João Carlos G. C. Filho Escola
Leia mais1 CIRCUITOS COMBINACIONAIS
Curso Técnico em Eletrotécnica Disciplina: Automação Predial e Industrial Professor: Ronimack Trajano 1 CIRCUITOS COMBINACIONAIS Um circuito digital é dito combinacional quando em um dado instante de tempo
Leia maisDisciplina: Técnicas de Racionalização de Processos Líder da Disciplina: Rosely Gaeta NOTA DE AULA 04 O PROJETO DE MELHORIA DOS PROCESSOS
Disciplina: Técnicas de Racionalização de Processos Líder da Disciplina: Rosely Gaeta NOTA DE AULA 04 O PROJETO DE MELHORIA DOS PROCESSOS 3.4 O PROJETO DE MELHORIA DE PROCESSOS 3.4.1 - CONCEITO DE PROJETO
Leia maisPESQUISA EM INFORMÁTICA -ESTILOS DE PESQUISA EM COMPUTAÇÃO. Prof. Angelo Augusto Frozza, M.Sc.
PESQUISA EM INFORMÁTICA -ESTILOS DE PESQUISA EM COMPUTAÇÃO Prof. Angelo Augusto Frozza, M.Sc. O TRABALHO DE CONCLUSÃO Introdução O texto que segue resume os Capítulo 2 e 8, do livro Metodologia de Pesquisa
Leia maisIndústria de Cartões de Pagamento (PCI) Padrão de segurança de dados. Resumo de Alterações da Versão 2.0 para a 3.0 do PCI-DSS
Indústria de Cartões de Pagamento (PCI) Padrão de segurança de dados Resumo de Alterações da Versão 2.0 para a 3.0 do PCI-DSS Novembro de 2013 Introdução Este documento fornece um resumo de alterações
Leia maisINE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/59 2 - FUNDAMENTOS 2.1) Teoria dos Conjuntos 2.2) Números
Leia maisCOMPUTAÇÃO APLICADA. Porém, é necessário considerar que ninguém ensina ninguém a pensar, pois todas as pessoas normais tem este dom.
1- LÓGICA A maioria das pessoas gostam de falar ou julgar que possuem e sabem usar o raciocínio lógico, porém, quando questionadas direta ou indiretamente, perdem essa linha de raciocínio, pois ele depende
Leia maisIMPLEMENTAÇÃO DE UM SISTEMA DE SELEÇÃO DE PEÇA USANDO CONCEITOS DE PROGRAMAÇÃO DE SISTEMA DE AUTOMAÇÃO. João Alvarez Peixoto*
IMPLEMENTAÇÃO DE UM SISTEMA DE SELEÇÃO DE PEÇA USANDO CONCEITOS DE PROGRAMAÇÃO DE SISTEMA DE AUTOMAÇÃO João Alvarez Peixoto* * Mestrando do Programa de Pós-graduação em Engenharia Elétrica - UFRGS Porto
Leia maisRisco de projeto é um evento ou condição incerta que, se ocorrer, tem um efeito positivo ou um negativo no objetivo de um projeto.
Risco de projeto é um evento ou condição incerta que, se ocorrer, tem um efeito positivo ou um negativo no objetivo de um projeto. Um risco tem uma causa e, se ocorre, uma conseqüência. Se um ou outro
Leia maisAmbiente de Simulação Virtual para Capacitação e Treinamento na Manutenção de. Disjuntores de Subestações de Energia Elétrica,
Ambiente de Simulação Virtual para Capacitação e Treinamento na Manutenção de Disjuntores de Subestações de Energia Elétrica Prof. Dr. Lineu Belico dos Reis EPUSP Resumo: O informe técnico apresenta a
Leia maisExercícios Teóricos Resolvidos
Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Matemática Exercícios Teóricos Resolvidos O propósito deste texto é tentar mostrar aos alunos várias maneiras de raciocinar
Leia maisAbstrações e Tecnologias Computacionais. Professor: André Luis Meneses Silva E-mail/msn: andreluis.ms@gmail.com Página: orgearq20101.wordpress.
Abstrações e Tecnologias Computacionais Professor: André Luis Meneses Silva E-mail/msn: andreluis.ms@gmail.com Página: orgearq20101.wordpress.com Agenda Introdução Sistemas Computacionais Arquitetura X
Leia maisESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE
ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE Fabiana Gomes Marinho Faculdade Lourenço Filho Resumo: Na UML, a modelagem conceitual dos dados é descrita pelo diagrama de classes, que através
Leia maisFigura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001
47 5 Redes Neurais O trabalho em redes neurais artificiais, usualmente denominadas redes neurais ou RNA, tem sido motivado desde o começo pelo reconhecimento de que o cérebro humano processa informações
Leia maisUNIÃO EDUCACIONAL DO NORTE UNINORTE AUTOR (ES) AUTOR (ES) TÍTULO DO PROJETO
UNIÃO EDUCACIONAL DO NORTE UNINORTE AUTOR (ES) AUTOR (ES) TÍTULO DO PROJETO RIO BRANCO Ano AUTOR (ES) AUTOR (ES) TÍTULO DO PROJETO Pré-Projeto de Pesquisa apresentado como exigência no processo de seleção
Leia maisCinco restrições de desenvolvimento/teste que afetam a velocidade, o custo e a qualidade dos seus aplicativos
Série de ebooks sobre desenvolvimento em paralelo ágil: Capítulo 2 Cinco restrições de desenvolvimento/teste que afetam a velocidade, o custo e a qualidade dos seus aplicativos Novas pressões, mais restrições
Leia maisAlgoritmos e Programação Parte Teórica
Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte Teórica Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti
Leia maisGESTÃO DAS PERDAS EM ALIMENTADORES DA COPEL
COMISSÃO DE INTEGRAÇÃO ENERGÉTICA REGIONAL COMITÊ NACIONAL BRASILEIRO V CIERTEC - SEMINÁRIO INTERNACIONAL SOBRE GESTÃO DE PERDAS, EFICIENTIZAÇÃO ENERGÉTICA E PROTEÇÃO DA RECEITA NO SETOR ELÉTRICO Área
Leia maisEngenharia de Software
Conceitos básicos sobre E.S: Ambiência Caracterização do software Fases de desenvolvimento 1 Introdução Aspectos Introdutórios Crise do Software Definição de Engenharia do Software 2 Crise do Software
Leia maisComputador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.
Introdução Os principais elementos de um sistema de computação são a unidade central de processamento (central processing unit CPU), a memória principal, o subsistema de E/S (entrada e saída) e os mecanismos
Leia maisTRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 3-1. A CAMADA DE REDE (Parte 1) A camada de Rede está relacionada à transferência de pacotes da origem para o destino. No entanto, chegar ao destino pode envolver vários saltos em roteadores intermediários.
Leia maisARQUITETURA DE COMPUTADORES
1 ARQUITETURA DE COMPUTADORES U C P Prof. Leandro Coelho Plano de Aula 2 Aula Passada Definição Evolução dos Computadores Histórico Modelo de Von-Neumann Básico CPU Mémoria E/S Barramentos Plano de Aula
Leia maisObjetivo do trabalho 4
CC-226 Introdução à Análise de Padrões Prof. Carlos Henrique Q. Forster Instruções para Trabalho 4 Objetivo do trabalho 4 Relatar os resultados obtidos no trabalho 3 e estendidos na forma de escrita científica
Leia maisResumo Descritivo dos Conteúdos das Disciplinas de Ementa Aberta para 2012-1
Universidade Federal de Juiz de Fora Departamento de Ciência da Computação Resumo Descritivo dos Conteúdos das Disciplinas de Ementa Aberta para 2012-1 Disciplina: DCC089 - TOPICOS EM COMPUTACAO CIENTIFICA
Leia maisConceitos básicos da linguagem C
Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por
Leia maisUNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ UTFPR COORDENAÇÃO DE ENGENHARIA ELETRÔNICA - COELE ENGENHARIA ELETRÔNICA RENAN AUGUSTO TABORDA
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ UTFPR COORDENAÇÃO DE ENGENHARIA ELETRÔNICA - COELE ENGENHARIA ELETRÔNICA RENAN AUGUSTO TABORDA RELATÓRIO DE ESTÁGIO OBRIGATÓRIO TOLEDO 2013 i RENAN AUGUSTO TABORDA
Leia maisLISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE
Questionamento a alta direção: 1. Quais os objetivos e metas da organização? 2. quais os principais Produtos e/ou serviços da organização? 3. Qual o escopo da certificação? 4. qual é a Visão e Missão?
Leia maisO ENSINO DE CÁLCULO NUMÉRICO: UMA EXPERIÊNCIA COM ALUNOS DO CURSO DE CIÊNCIA DA COMPUTAÇÃO
O ENSINO DE CÁLCULO NUMÉRICO: UMA EXPERIÊNCIA COM ALUNOS DO CURSO DE CIÊNCIA DA COMPUTAÇÃO Prof. Leugim Corteze Romio Universidade Regional Integrada URI Campus Santiago-RS leugimcr@urisantiago.br Prof.
Leia maisPlanejamento - 7. Planejamento do Gerenciamento do Risco Identificação dos riscos. Mauricio Lyra, PMP
Planejamento - 7 Planejamento do Gerenciamento do Risco Identificação dos riscos 1 O que é risco? Evento que representa uma ameaça ou uma oportunidade em potencial Plano de gerenciamento do risco Especifica
Leia maisFAZEMOS MONOGRAFIA PARA TODO BRASIL, QUALQUER TEMA! ENTRE EM CONTATO CONOSCO!
FAZEMOS MONOGRAFIA PARA TODO BRASIL, QUALQUER TEMA! ENTRE EM CONTATO CONOSCO! DEFINIÇÃO A pesquisa experimental é composta por um conjunto de atividades e técnicas metódicas realizados para recolher as
Leia maisO Processo de Engenharia de Requisitos
UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA O Processo de Engenharia de Requisitos Engenharia de Software 2o.
Leia maisA01 Controle Linguagens: IL e LD
A01 Controle Linguagens: IL e LD Prof. Dr. Diolino J santos Filho Modelo Estrutural Interação entre os dispositivos A partir de agora adotaremos como modelo estrutural padrão o diagrama a seguir. Dispositivo
Leia mais3 Trabalhos relacionados
3 Trabalhos relacionados Neste capítulo são apresentados trabalhos relacionados ao apresentado nesta tese, separados pelas áreas de análise de modelos baseada em ontologias e de verificação de modelos.
Leia maisProf. Vitório Bruno Mazzola INE/CTC/UFSC 1. INTRODUÇÃO
Capítulo 6 ENGENHARIA DE SOFTWARE CONCEITOS BÁSICOS Prof. Vitório Bruno Mazzola INE/CTC/UFSC 1. INTRODUÇÃO Nos anos 40, quando se iniciou a evolução dos sistemas computadorizados, grande parte dos esforços,
Leia maisSolução de problemas por meio de busca (com Python) Luis Martí DEE/PUC-Rio http://lmarti.com
Solução de problemas por meio de busca (com Python) Luis Martí DEE/PUC-Rio http://lmarti.com Python e AI (Re)-introdução ao Python. Problemas de busca e principais abordagens. Exemplos em Python Por que
Leia maisBanco de Dados Orientado a Objetos
Banco de Dados Orientado a Objetos MODELAGEM, ANÁLISE, PROJETO e CLASSIFICAÇÃO Interação combinando lógica, através de objetos que contém os dados. Estes divididos conforme seus tipos e métodos (classe),
Leia maisEngenharia de Software Unidade I Visão Geral
Conteúdo programático Engenharia de Software Unidade I Visão Geral Prof. Francisco Gerson A. de Meneses O que é Produtos de Software Distribuição de Software Um sistema de Software O software em um cenário
Leia mais3 Qualidade de Software
3 Qualidade de Software Este capítulo tem como objetivo esclarecer conceitos relacionados à qualidade de software; conceitos estes muito importantes para o entendimento do presente trabalho, cujo objetivo
Leia maisProjeto de Banco de Dados. Disciplina: Banco de Dados I José Antônio da Cunha
Projeto de Banco de Dados Disciplina: Banco de Dados I José Antônio da Cunha Introdução Banco de Dados Esta aula apresenta os conceitos da área de banco de dados, que são necessários à compreensão do projeto
Leia maisGBD PROF. ANDREZA S. AREÃO
GBD PROF. ANDREZA S. AREÃO Dado, Informação e Conhecimento DADO: Estímulos captados pelos sentidos humanos; Símbolos gráficos ou sonoros; Ocorrências registradas (em memória, papel, etc.); Indica uma situação
Leia maisPreparação do Trabalho de Pesquisa
Preparação do Trabalho de Pesquisa Ricardo de Almeida Falbo Metodologia de Pesquisa Departamento de Informática Universidade Federal do Espírito Santo Pesquisa Bibliográfica Etapas do Trabalho de Pesquisa
Leia maisPROJETO DE REDES www.projetoderedes.com.br
PROJETO DE REDES www.projetoderedes.com.br Curso de Tecnologia em Redes de Computadores Disciplina: Tópicos Avançados II 5º período Professor: José Maurício S. Pinheiro AULA 3: Políticas e Declaração de
Leia maisA SEGUIR ALGUMAS DICAS PARA O DESENVOLVIMENTO DE UM PROJETO CIENTÍFICO
A SEGUIR ALGUMAS DICAS PARA O DESENVOLVIMENTO DE UM PROJETO CIENTÍFICO DESENVOLVENDO UM PROJETO 1. Pense em um tema de seu interesse ou um problema que você gostaria de resolver. 2. Obtenha um caderno
Leia maisUNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini priscila_pelegrini@unemat-net.br
UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini priscila_pelegrini@unemat-net.br SINOP MT 2015-1 COMO SÃO DESENVOLVIDOS OS SISTEMAS DE INFORMAÇÃO? São desenvolvimento como uma estrutura
Leia maisMetadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados
1. Introdução O governo é um dos maiores detentores de recursos da informação. Consequentemente, tem sido o responsável por assegurar que tais recursos estejam agregando valor para os cidadãos, as empresas,
Leia maisELABORAÇÃO DE PROJETOS
Unidade II ELABORAÇÃO DE PROJETOS DE PESQUISA Profa. Eliane Gomes Rocha Pesquisa em Serviço Social As metodologias qualitativas de pesquisa são utilizadas nas Ciências Sociais e também no Serviço Social,
Leia maisComputador Digital Circuitos de um computador (Hardware)
Computador Digital SIS17 - Arquitetura de Computadores (Parte I) Máquina que pode resolver problemas executando uma série de instruções que lhe são fornecidas. Executa Programas conjunto de instruções
Leia mais2 Fundamentação Conceitual
2 Fundamentação Conceitual 2.1 Computação Pervasiva Mark Weiser define pela primeira vez o termo Computação Ubíqua ou Computação Pervasiva (Ubiquitous Computing) em (10). O autor inicia o trabalho com
Leia mais6. Pronunciamento Técnico CPC 23 Políticas Contábeis, Mudança de Estimativa e Retificação de Erro
TÍTULO : PLANO CONTÁBIL DAS INSTITUIÇÕES DO SISTEMA FINANCEIRO NACIONAL - COSIF 1 6. Pronunciamento Técnico CPC 23 Políticas Contábeis, Mudança de Estimativa e Retificação de Erro 1. Aplicação 1- As instituições
Leia maisNORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO
NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO Referência: NT-AI.04.02.01 http://www.unesp.br/ai/pdf/nt-ai.04.02.01.pdf Data: 27/07/2000 STATUS: EM VIGOR A
Leia maisCapítulo 5: Aplicações da Derivada
Instituto de Ciências Exatas - Departamento de Matemática Cálculo I Profª Maria Julieta Ventura Carvalho de Araujo Capítulo 5: Aplicações da Derivada 5- Acréscimos e Diferenciais - Acréscimos Seja y f
Leia mais7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura 7.1 - Exemplo de um grafo linear.
CAPÍTULO 7 7 ANÁLISE DE REDES 7.1 Conceitos Básicos em Teoria dos Grafos Diversos problemas de programação linear, inclusive os problemas de transporte, podem ser modelados como problemas de fluxo de redes.
Leia maisProf. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior
Prof. Antonio Almeida de Barros Jr. Introdução Dados Informações Banco de Dados Conceitos Básicos em Bancos de Dados Definição BD - Banco de Dados SGBD - Sistema de Gerenciamento de BD Programa de Aplicação
Leia mais1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO
1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO Desde o seu surgimento, o manuseio da computação é baseado em linguagens de programação. Ela permite que sejam construídos aplicativos
Leia maisADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie
1 INTRODUÇÃO 1.1 ORGANIZAÇÃO E PROCESSOS A administração está diretamente ligada às organizações e aos processos existentes nas mesmas. Portanto, para a melhor compreensão da Administração e sua importância
Leia maisESTUDO DE VIABILIDADE. Santander, Victor - Unioeste Aula de Luiz Eduardo Guarino de Vasconcelos
ESTUDO DE VIABILIDADE Santander, Victor - Unioeste Aula de Luiz Eduardo Guarino de Vasconcelos Objetivos O que é um estudo de viabilidade? O que estudar e concluir? Benefícios e custos Análise de Custo/Benefício
Leia maisCURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 4º PERÍODO 7º MÓDULO AVALIAÇÃO A3 DATA 15/10/2009 ENGENHARIA DE SOFTWARE 2009/2 GABARITO COMENTADO QUESTÃO 1: Analise as afirmações
Leia maisAULA 6 Esquemas Elétricos Básicos das Subestações Elétricas
CONSIDERAÇÕES INICIAIS AULA 6 Esquemas Elétricos Básicos das Subestações Elétricas Quando planejamos construir uma subestação, o aspecto de maior importância está na escolha (e, conseqüentemente, da definição)
Leia maisAlgoritmos DCC 119. Introdução e Conceitos Básicos
Algoritmos DCC 119 Introdução e Conceitos Básicos Sumário Sistemas de Numeração Sistemas Computacionais Estrutura de um Computador Digital Sistemas Operacionais Algoritmo Introdução Formas de representação
Leia maisALGORITMOS E FLUXOGRAMAS
ALGORITMOS E FLUXOGRAMAS Prof. André Backes INTRODUÇÃO Computadores = cérebros eletrônicos? Computadores são máquinas e, por si sós, não podem ser inteligentes. Alguém as projetou e deu a ela todas as
Leia maisParte V Linguagem de Programação
www.spei.br Sociedade Paranaense de Ensino e Informática Parte V Linguagem de Programação 2 1 Linguagens de Programação de CLPs As linguagens de programação permitem aos usuários se comunicar com o CLP
Leia maisPrincípios do teste de software
Teste de Software Princípios do teste de software Conforme a Lei de Pareto, 80% dos erros podem ser localizados em 20% do projeto, geralmente nos módulos principais do sistema; A atividade de teste não
Leia maisTeste de Software Parte 1. Prof. Jonas Potros
Teste de Software Parte 1 Prof. Jonas Potros Cronograma Verificação e Validação Teste de Software: Definição e Conceitos Técnicas de Teste Fases de Teste Processo de Teste Automatização do Processo de
Leia mais