Correção de Software com Verificação de Modelos

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

Download "Correção de Software com Verificação de Modelos"

Transcrição

1 Correção de Software com Verificação de Modelos Aline Maria Santos Andrade Departamento de Ciência da Computação (DCC) Laboratório de Sistemas Distribuídos (LaSiD) Universidade Federal da Bahia (UFBA)

2 Sumário Motivação Correção de Software Conceito de Métodos Formais Técnicas de Verificação Formal Verificação de Modelos Conceitos A ferramenta SPIN

3 Engenharia? de Software Não existe um modelo universalmente aceito para desenvolver software As técnicas utilizadas normalmente são derivadas de uma abordagem informal adotada no processo, não incluem teorias e formalismos essenciais a um desenvolvimento científico Ambientes (ferramentas) existentes em geral não possuem uma fundamentação teórica. Difícil garantir a confiabilidade dos software Certificação e garantia? Aline Maria Santos Andrade (aline@ufba.br)

4 Engenharia de Software Incorporou novos paradigmas e metodologias sistematização do processo de desenvolvimento melhoria da confiabilidade do software produzido. Embora os processos sistemáticos de desenvolvimento de software aumentem o grau de confiabilidade, a validação de software é feita de maneira informal ou semi formal e não garantem com precisão que o software atende aos requisitos desejados. Em sistemas que envolvem riscos, como sistema de monitoração de pacientes, controle de tráfego aéreo, etc é necessário um processo de validação mais seguro de maneira que possamos garantir a correção do software gerado. Aline Maria Santos Andrade (aline@ufba.br)

5 O que são métodos formais Utilização de modelos matemáticos para representar o sistema Métodos matemáticos de prova para verificação Adicionar precisão, auxiliar no entendimento e raciocinar sobre propriedades de um projeto Certificação/Garantia! Engenharia Pode ser comparado à forma com que cálculo estrutural é usado no projeto de construções, mecânica computacional de fluídos é usada no projeto de aeronaves, etc

6 Validação de Software Simulação Teste Verificação

7 Correção de Software Aplicação Formal => Verificação Formal => Correção Requisitos Não Formal => Testes => Confiável Confiabilidade i = 0 Especificação i i= i+1 Refinamento Confiável / Correta Testes / Simulação / Verificação Máquina Virtual Testes Aline Maria Santos Andrade (aline@ufba.br)

8 Verificação Um passo de verificação pode cobrir todo possível comportamento do sistema Verificação antes da implementação diminui o custo $$!! É especialmente importante quando o comportamento é complexo. Aline Maria Santos Andrade (aline@ufba.br)

9 Especificação formal Linguagem formal Verificação Refinamento Geração automática de código Propriedades desejadas consistência correção completude Aline Maria Santos Andrade

10 Desenvolvimento formal de software Especificação formal do problema B, Z, VDM, CSP, LOTOS, Pi-Calculus, SPIN, SMV, UPPAAL... Validação Simulação Verificação Refinamento Geração automática de código Aline Maria Santos Andrade

11 Tipos de Sistemas Sequencial Concorrente Distribuído Móvel Transformacional Reativo Aline Maria Santos Andrade

12 Requisitos Sistemas seqüenciais funcionalidade Sistemas concorrentes concorrência funcionalidade Sistemas Reativos necessitam interagir com o ambiente frequentemente e frequentemente não terminam. Portanto, não podem ser modelados pelo seu comportamento de entrada/saída. Aline Maria Santos Andrade (aline@ufba.br)

13 Técnicas de verificação formal Provadores de teoremas Provam propriedades em uma teoria sobre o sistema Verificadores de modelos (Model checking) Verificam se certas propriedades valem em um modelo da aplicação Sistemas de estados finitos As abordagens se complementam Aline Maria Santos Andrade (aline@ufba.br)

14 Provador de Teoremas Especificar: O sistema (em algum nível adequado de abstração) Propriedades requeridas do sistema Suposições (restrições de ambiente, usuário, etc) Teorias sobre os tipos de dados envolvidos Provar: Teorias + Suposições + Sistema -- Requisitos Variação: Provar que a implementação é um refinamento da especificação Funciona melhor em sistemas com intenso tratamento de dados Aline Maria Santos Andrade (aline@ufba.br)

15 Verificador de Modelos Especificar Modelo do sistema Estrutura de Kripke Propriedades em uma linguagem lógica Lógica temporal Provar que as propriedades são válidas no modelo do sistema modelo do sistema = propriedades Algoritmo faz varredura no modelo do sistema (sistema de transição) Aline Maria Santos Andrade (aline@ufba.br)

16 Estrutura de Kripke Estado - é uma descrição instantânea do sistema que captura os valores das variáveis em um particular instante de tempo. Transições entre estados representam as ações do sistema. Estrutura de Kripke - conjunto de estados, conjunto de transições entre estados e uma função que rotula cada estado com um conjunto de propriedades que são verdadeiras naquele estado. Aline Maria Santos Andrade (aline@ufba.br)

17 Verificação de Modelos Dado uma estrutura de Kripke M = (S,R,L) que representa um sistema concorrente e uma fórmula na lógica temporal f que expressa alguma especificação desejada, encontre todos os estados em S que satisfaz f: {s S M, s = f} Aline Maria Santos Andrade (aline@ufba.br)

18 Verificação de modelos Estados definidos pelas variáveis do sistema, que assumem valores dentro de um conjunto finito de valores Um componente do sistema unfolding modelo de Kripke ----> sistema de transição Vários componentes produto síncrono (ou assíncrono) do sistema de transição de cada componente

19 1 ev1 C=true/act1 3 ev2 act2 2 C Kripke estendida (guardas) (Máquina de estados finita) Fonte: Prof E. H. Haeusler - PUC-Rio ev2 act2 2c act2 2c 3 1 act2 2c ev2 act1 ev2 3 act ev1 act2 2c ev2 3 ev2 act2 2c 3 act ev1 ev1 act2 2c ev2 ev2 3 act2 2c act1 3 ev1 act2 2c ev2 Sistema de transição (unfolding da estrutura de Kripke 3

20 Produto síncrono / assíncrono Combinar os modelos dos componentes do sistema ---> autômato global Produto cartesiano dos autômatos representando os componentes (estado global é um vetor construído a partir dos diferentes estados dos componentes) Componentes se sincronizam ---> produto síncrono ---> subconjunto de transições do produto cartesiano definido através de um conjunto de sincronização Explosão de estados!

21 Produto assíncrono X = Explosão de estados!!!

22 Otimizações Explosão de estados ocorre quando se resolve representar em memória todos os estados do autômato Symbolic Model Checking representa estados e transições simbolicamente ao invés de explicitamente BDD - Diagrama de decisões binárias utilizados para representar simbolicamente conjunto de estados de um autômato On the Fly Model Checking

23 Um Programa de Exclusão Mútua P = m: cobegin P 0 P 1 coend m S 0 (V,PC) pc = m pc 0 = pc 1 = Nenhuma restrição é imposta ao valor de turn P 0 :: l 0 : While True do NC 0 : wait(turn = 0) CR 0 : turn := 1; end while; l 0 P 1 :: l 1 : While True do NC 1 : wait(turn = 1) CR 1 : turn := 0; end while; l 1 Aline Maria Santos Andrade (aline@ufba.br)

24 Turn =0, Turn =0 l 0,l 1 Turn =1, Turn =1 l 0,l 1 Garantido exclusão mútua. Não garante ausência de starvation. Turn =0 l 0,NC 1 Turn =0 NC 0,l 1 Turn =1 l 0,NC 1 Turn =1 NC 0,l 1 Turn =0 NC 0,NC 1 Turn =0 CR 0,l 1 Turn =1 l 0,CR 1 Turn =1 NC 0,NC 1 Turn =0 CR 0,NC 1 Turn =1 NC 0,CR 1 Estados alcançáveis da estrutura de Kripke para o exemplo de exclusão mútua

25 Verificação de Modelos Usualmente não há necessidade de teorias auxiliares Normalmente, as únicas suposições dizem respeito às propriedades dinâmicas do sistema (safety, fairness, liveness) Funciona melhor com sistemas voltados ao controle e com um pequeno espaço de estados Aline Maria Santos Andrade (aline@ufba.br)

26 Lógica temporal Operadores modais de tempo (G) sempre (F) em algum tempo futuro Relativos a mundos possíveis (estrutura de kripke)

27 Mundos Possíveis (Kripke) - A verdade de uma proposição é verificada em relação a um mundo. - Os mundos estão relacionados ao tempo (lógica temporal) - Mundos podem ser vistos como estados locais/globais. - Estrutura ramificada, ou, linear de tempo. (obs: P P ) P P EP P,Q,Q P,Q,P P,Q,Q P,Q,P P,Q,P P,Q,P P,Q,P P,Q,P P,Q,P P,Q,EP P,Q,P P,Q P,Q P,Q P,Q P,Q P,Q P,Q P,Q P,Q P,Q P,Q P,Q Fonte: Prof E. H. Haeusler - PUC-Rio EP Eventualmente P P

28 Lógicas temporais Lógica temporal ramificada (CTL - Computational Tree Logic) CTL apresenta quantificação sobre caminhos e sobre estados AG(p) : p é verdade em todo estado ao longo de cada caminho AF(p) : p é verdade em algum estado ao longo de cada caminho EG(p) : p é verdade em todo estado ao longo de algum caminho EF(p) : p é verdade em algum estado ao longo de algum caminho Lógica temporal linear (LTL) único caminho de computação

29 TL Gp Fp GFp FGp p p p p p p p p p p p p p p p p p p p p TL p p AGp AFp AGAFp Não existe Existem também fórmulas em CTL que não são expressáveis em LTL

30 Sistemas concorrentes Safety - algo ruim nunca acontece ausência de deadlock exclusão mútua sempre a resposta dada é correta Liveness - algo bom acontece se um processo solicita um recurso eventualmente ele será atendido se uma resposta é solicitada então ela será fornecida Aline Maria Santos Andrade (aline@ufba.br)

31 Alarme de Cofre sound alarm count = = 3 /count = 0 count attempts enter code code entered check code invalid code/ count ++ delay timeout unlock door valid code/count = 0 Fonte: Prof E. H. Haeusler - PUC-Rio

32 - Verificando AG(enter_code & valid_code ===> AF(unlock_door)) resulta em verdade - Verificando AG(enter_code ===> AF(unlock_door)) resulta no seguinte caminho de computação como contra-exemplo enter code check code count attempts sound alarm 3 times enter code check code count attempts 3 times Fonte: Prof E. H. Haeusler - PUC-Rio

33 SPIN Ferramenta para analisar a consistência lógica de sistemas concorrentes, especialmente protocolos de comunicação de dados. (free) Linguagem Promela Permite criação dinâmica de processos concorrentes Comunicação via canal pode ser síncrona ou assíncrona Aline Maria Santos Andrade (aline@ufba.br)

34 SPIN Dado um modelo do sistema especificado em Promela, SPIN pode fazer: simulações verificação online de propriedades de correção do sistema verificação de ausência de deadlocks, código não executável, etc verificação de propriedades de correção (safety e liveness) expressas em lógica temporal linear (LTL) On the Fly Model Checking Aline Maria Santos Andrade (aline@ufba.br)

35 Verificação On the fly A propriedade verificada é traduzida em um autômato Este autômato é utilizado para guiar a criação do grafo de transição de estados (modelo do sistema) Isto evita a necessidade de se construir grandes pedaços ou todo o grafo de estados do modelo do sistema

36 Autômatos Finitos Sobre Palavras Infinitas Em muitos sistemas concorrentes a computação não pára durante uma execução normal Nestes casos, a computação é modelada como uma sequência infinita de estados Estas computações podem ser representadas através de autômatos finitos sobre palavras infinitas

37 Autômatos Büchi Um autômato Büchi tem a mesma estrutura que um autômato sobre palavras finitas Estados finais são chamados de estados de aceitação Considere inf(ρ) como o conjunto de estados que aparecem infinitamente freqüentemente em uma execução ρ Uma execução ρ de um autômato Büchi sobre uma palavra infinita é aceita se e somente se inf(ρ) F

38 Exemplo q1 b q2 b a a Se interpretamos o grafo acima como um autômato Büchi, a linguagem aceita será: (b*a) ω a palavra (ab)* (sequência infinita de a s e b s alternando, começando por a) é aceita

39 Verificação de Modelos usando Autômatos Autômatos finitos podem ser usados para modelar sistemas concorrentes de execução infinita Uma vantagem de se utilizar autômatos para verificação de modelos é a possibilidade de usar a mesma forma de representação para o sistema modelado e para as propriedades

40 Convertendo estruturas Kripkes em autômatos s 0 s 1 {p,q} i {p} {p},q} {p} s 0 s 1 s 2 {q} {p,q} {q} {p,q} s 2

41 Turn =0, 1 Turn =1, 2 Turn =0 l 0,l 1 Turn =1 l 0,l 1 4 Turn =0 l 0,NC 1 Turn =0 NC 0,l Turn =1 Turn =1 l 0,NC 1 NC 0,l 1 7 Turn =0 NC 0,NC 1 Turn =0 CR 0,l 1 5 Turn =1 l 0,CR 1 Turn =1 NC 0,NC 1 Turn =0 CR 0,NC 1 Turn =1 NC 0,CR 1 Estados alcançáveis da estrutura de Kripke para o exemplo de exclusão mútua

42 Turn=0,, i Turn=1,, 1 2 Turn=1, l 0,l 1 Turn=1, l 0, l Turn=0, CR 0, l Turn=1, l Turn=1, NC 0, l 1 1 0, NC Turn=1, NC 0, l 1

43 Especificações como autômatos Considere L(A) a linguagem do autômato A que representa a estrutura kripke A especificação pode ser dada como um autômato S sobre o mesmo alfabeto de A

44 Exemplo de Especificação como Autômato (CR 0 CR 1 ) (CR 0 CR 1 ) true Exclusão mútua CR 0 true CR 0 Liveness: o processo P 0 entrará na região crítica

45 Verificação de Modelos usando Autômatos Considere L(A) a linguagem do autômato A que representa a estrutura kripke Considere L(S) a linguagem do autômato que representa a especificação S O sistema A satisfaz S quando: L(A) L(S) L(A) L(S) =

46 Algoritmo de Verificação de Modelos O sistema modelado é convertido em um autômato Büchi A O autômato Büchi S é gerado a partir da negação da especificação ϕ Se a interseção A S é vazia a especificação é satisfeita Senão um contra-exemplo é exibido

47 Algoritmo de Verificação de Modelos On the Fly Constrói-se inicialmente o autômato de S Este autômato é usado para dinamicamente guiar a construção do autômato do sistema A, ao mesmo tempo em que a interseção é computada Desta forma é possível encontrar um contra-exemplo ou garantir a satisfatibilidade sem precisar construir todo autômato A

48 Promela PROMELA (PROcedural MEta LAnguage) é uma linguagem de especificação cuja sintaxe é baseada em: C CSP (canais para troca de mensagens) Comandos Guardados (controle de fluxo) Não determinismo Utilizada pelo SPIN para especificação do sistema Permite abstrações de protocolos (ou sistemas distribuídos em geral) suprimindo detalhes que não são relacionados para a interação entre processos

49 Promela Programas em Promela consistem de: Processos - são objetos globais que especificam comportamento Canais e variáveis - podem ser declaradas globalmente ou localmente dentro de um processo; canais podem ser síncronos ou assíncronos. Definem o ambiente em que o processo executa. Aline Maria Santos Andrade (aline@ufba.br)

50 Problema dos filósofos 5 filósofos Uma mesa circular com 5 cadeiras rotuladas cada uma com o nome do filósofo À esquerda de cada filósofo tem um garfo e no meio da mesa uma tigela de macarrão, que é constantemente preenchida Para comer o macarrão, o filósofo pega o garfo da esquerda e depois o da direita Após o filósofo comer o macarrão, ele deve deitar os dois garfos na mesa Aline Maria Santos Andrade (aline@ufba.br)

51 Aline Maria Santos Andrade

52 chan garfo[5] = [0] of {mtype}; mtype = {wait, signal}; proctype Garfo(int id){ do :: garfo[id]!wait -> proctype filosofo(int id){ pensando: do ::skip -> faminto: garfo[id]?wait; /*tenta adquirir garfo da esquerda fica bloqueado caso o garfo tenha sido adquirido*/ deadlock: garfo[(id+1)%5]?wait; /*tenta adquirir garfo da direita*/ comendo: skip; garfo[id]!signal; /*cede garfo da esquerda*/ garfo[(id+1)%5]!signal; /*cede garfo da direita*/ } garfo[id]?signal od } od Aline Maria Santos Andrade (aline@ufba.br)

53 init{ } atomic{ } run filosofo(0); run filosofo(1); run filosofo(2); run filosofo(3); run filosofo(4); run Garfo(0); run Garfo(1); run Garfo(2); run Garfo(3); run Garfo(4); Aline Maria Santos Andrade (aline@ufba.br)

54 #define f1 #define f2 #define f3 #define f4 #define f5 /* * Formula As Typed: <> (f1 && f2 && f3 && f4 && f5) */ never { /* (<> (f1 && f2 && f3 && f4 && f5)) */... pan: claim violated! (at depth 550)... A verificação aponta um erro indicando que a propriedade não é mantida, ou seja, existe a possibilidade do sistema entrar em deadlock. O Spin salva a seqüência na qual o erro foi detectado em arquivo.trail. É possível, então, realizar uma simulação desta seqüência na tentativa de identificar as possíveis causas para a violação da propriedade. Aline Maria Santos Andrade (aline@ufba.br)

55 Extensão de Promela Extensão de Promela para especificar sistemas de agentes móveis trabalho realizado no LaSiD/UFBA Permite a utilização do ambiente SPIN para a simulação e verificação de sistemas de agentes móveis

56 Ferramentas UPPAAL Verificador de modelos para sistemas de tempo real Especificação: autômato com tempo Lógica temporal: dialeto de CTL Outras ferramentas SMV KRONOS HYTECH

57 Casos famosos de software complexos que não funcionaram a contento Explosão do foguete Ariadne (projeto europeu) poucos segundos após seu lançamento devido a falha de programação. Sistema de triagem/controle de bagagem do aeroporto internacional de Denver (EUA) atrasou a inauguração do aeroporto. Custo do sistema (193 milhões $$ ) Inauguração estava prevista para Out/1993 Em Junho/1994 o sistema ainda não estava funcionando, mas custava $$!! No começo de 1995 um controle MANUAL de bagagem foi instalado para que o aeroporto pudesse ser inaugurado (com atraso de mais de um ano). O Therac-25, um equipamento de radioterapia controlado por computador, aplicou doses fatais de radiação em alguns pacientes de câncer. Quando decidiram testar o subsistema de desligamento de emergência da Sizewell-B, uma usina nuclear na Inglaterra, este falhou em mais de 50% das vezes. Não conseguiram encontrar a razão da falha nas linhas de código.

(Model Checking) Estes slides são baseados nas notas de aula da Profa. Corina

(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 mais

Sistemas Operacionais

Sistemas Operacionais AULA 09 Sincronização de Processos - II Monitores Conforme comentamos, o uso equivocado dos semáforos pode levar a uma situação de deadlock, por isso devemos tomar cuidado ao programar utilizando este

Leia mais

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sincronização e Comunicação entre Processos. Adão de Melo Neto Sincronização e Comunicação entre Processos Adão de Melo Neto 1 INTRODUÇÃO Em um sistema multitarefa os processos alternam sua execução segundo critérios de escalonamento estabelecidos pelo sistema operacional.

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

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

Sumário. Deadlock. Definição. Recursos. M. Sc. Luiz Alberto lasf.bel@gmail.com

Sumário. Deadlock. Definição. Recursos. M. Sc. Luiz Alberto lasf.bel@gmail.com Sumário Condições para Ocorrência de Modelagem de Evitando deadlock Algoritmo do banqueiro M. Sc. Luiz Alberto lasf.bel@gmail.com Aula - SO 1 Definição Um conjunto de N processos está em deadlock quando

Leia mais

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

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

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 11 Sincronização de Processos Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Tabela de roteamento

Tabela de roteamento Existem duas atividades que são básicas a um roteador. São elas: A determinação das melhores rotas Determinar a melhor rota é definir por qual enlace uma determinada mensagem deve ser enviada para chegar

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

Autómatos Finitos Determinísticos

Autómatos Finitos Determinísticos Ficha 2 Autómatos Finitos Determinísticos 2.1 Introdução Se olharmos, de forma simplificada, para um computador encontramos três componentes principais: a) A unidade de processamento central b) As unidades

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

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds

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

PLANOS DE CONTINGÊNCIAS

PLANOS DE CONTINGÊNCIAS PLANOS DE CONTINGÊNCIAS ARAÚJO GOMES Capitão SC PMSC ARAÚJO GOMES defesacivilgomes@yahoo.com.br PLANO DE CONTINGÊNCIA O planejamento para emergências é complexo por suas características intrínsecas. Como

Leia mais

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes Engenharia de Software: Introdução Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes Programa 1. O processo de engenharia de software 2. UML 3. O Processo Unificado 1. Captura de requisitos 2.

Leia mais

Programação de Sistemas para Tempo Real Capítulo 1. Luiz Affonso Guedes DCA-CT-UFRN 2003.1

Programação de Sistemas para Tempo Real Capítulo 1. Luiz Affonso Guedes DCA-CT-UFRN 2003.1 Programação de Sistemas para Tempo Real Capítulo 1 Luiz Affonso Guedes DCA-CT-UFRN 2003.1 Conteúdo Programático Capítulo 1: Introdução aos Sistemas de Tempo Real Definição, caracterização e classificaçã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

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

Extração de Requisitos

Extração de Requisitos Extração de Requisitos Extração de requisitos é o processo de transformação das idéias que estão na mente dos usuários (a entrada) em um documento formal (saída). Pode se entender também como o processo

Leia mais

Modelagemde Software Orientadaa Objetos com UML

Modelagemde Software Orientadaa Objetos com UML Modelagemde Software Orientadaa Objetos com UML André Maués Brabo Pereira Departamento de Engenharia Civil Universidade Federal Fluminense Colaborando para a disciplina CIV 2802 Sistemas Gráficos para

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas

Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.ufma.br

Leia mais

Engenharia de Sistemas Computacionais

Engenharia de Sistemas Computacionais Engenharia de Sistemas Detalhes no planejamento UNIVERSIDADE FEDERAL DE ALAGOAS Curso de Ciência da Computação Engenharia de Software I Prof. Rômulo Nunes de Oliveira Introdução Na aplicação de um sistema

Leia mais

Deadlocks. Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Deadlocks. Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Dispositivos e recursos são compartilhados a todo momento: impressora, disco, arquivos,

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2009 Profa. Dra. Itana Gimenes RUP: Artefatos de projeto Modelo de Projeto: Use-Case Realization-projeto

Leia mais

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com Engenharia de Software: conceitos e aplicações Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com 1 Objetivos da aula Apresentar os conceitos de Engenharia de Software e explicar a sua importância.

Leia mais

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Engenharia de Software Parte I Introdução Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Mitos do Desenvolvimento de Software A declaração de objetivos é suficiente para se construir um software.

Leia mais

Aula 2 Modelagem de Sistemas. Introdução Modelo de Base Lógica de 1ª Ordem. Concorrentes

Aula 2 Modelagem de Sistemas. Introdução Modelo de Base Lógica de 1ª Ordem. Concorrentes Aula 2 Modelagem de Sistemas Introdução Modelo de Base Lógica de 1ª Ordem Concorrentes 1 Aula 2 Modelagem de Sistemas Introdução Modelo de Base Lógica de 1ª Ordem Concorrentes 2 Constituição dos Sistemas

Leia mais

Resumo das Interpretações Oficiais do TC 176 / ISO

Resumo das Interpretações Oficiais do TC 176 / ISO Resumo das Interpretações Oficiais do TC 176 / ISO Referência RFI 011 Pergunta NBR ISO 9001:2000 cláusula: 2 Apenas os termos e definições da NBR ISO 9000:2000 constituem prescrições da NBR ISO 9001:2000,

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

Nomes e Endereçamento. Nomes e Endereçamento. Paradigmas em Sistemas Distribuídos. Paradigmas em Sistemas Distribuídos

Nomes e Endereçamento. Nomes e Endereçamento. Paradigmas em Sistemas Distribuídos. Paradigmas em Sistemas Distribuídos Paradigmas em Sistemas Distribuídos Paradigmas em Sistemas Distribuídos Nomes e Endereçamento Troca de Mensagens Operações emota Comunicação em Grupo Time e Clocks Sincronismo Ordenação Coordenação Consistência

Leia mais

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele

Leia mais

IA: Problemas de Satisfação de Restrições. Prof. Msc. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

IA: Problemas de Satisfação de Restrições. Prof. Msc. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br IA: Problemas de Satisfação de Restrições Prof. Msc. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br Introdução Um PSR é definido por um conjunto de variáveis X 1, X 2,..., X n, e por um conjunto de restrições,

Leia mais

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Requisitos de Software. Teresa Maciel DEINFO/UFRPE Requisitos de Software Teresa Maciel DEINFO/UFRPE 1 Requisito de Software Características que o produto de software deverá apresentar para atender às necessidades e expectativas do cliente. 2 Requisito

Leia mais

Engenharia de Software 01 - Introdução. Márcio Daniel Puntel marciopuntel@ulbra.edu.br

Engenharia de Software 01 - Introdução. Márcio Daniel Puntel marciopuntel@ulbra.edu.br Engenharia de Software 01 - Introdução Márcio Daniel Puntel marciopuntel@ulbra.edu.br Engenharia de Software Nações desenvolvidas dependem de software; Cada vez mais sistemas são controlados por software;

Leia mais

Registro e Acompanhamento de Chamados

Registro e Acompanhamento de Chamados Registro e Acompanhamento de Chamados Contatos da Central de Serviços de TI do TJPE Por telefone: (81) 2123-9500 Pela intranet: no link Central de Serviços de TI Web (www.tjpe.jus.br/intranet) APRESENTAÇÃO

Leia mais

Sistemas Distribuídos. Aleardo Manacero Jr.

Sistemas Distribuídos. Aleardo Manacero Jr. Sistemas Distribuídos Aleardo Manacero Jr. Conteúdo Conceitos fundamentais Estratégias de controle: relógios e algoritmos de sincronismo Serviços: arquivos e memória Corba Processamento distribuído Sistemas

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

Requisitos de Software

Requisitos de Software Requisitos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama kiev@cin.ufpe.br Slides originais elaborados por Ian Sommerville e adaptado pelos professores Márcio Cornélio,

Leia mais

Banco de Dados Orientado a Objetos

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

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS Elicitação Ciclo de Vida Clássico ou Convencional O Modelo Cascata Análise Ana Paula Terra Bacelo Blois Implementação Material Adaptado do Prof. Marcelo Yamaguti

Leia mais

Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br

Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Principais problemas programação concorrente Deadlocks (impasses) Starvation (inanição) Condições de corrida Erros de consistência na

Leia mais

Universidade Federal de Santa Catarina Departamento de Informática e Estatística Bacharelado em Ciências da Computação

Universidade Federal de Santa Catarina Departamento de Informática e Estatística Bacharelado em Ciências da Computação Universidade Federal de Santa Catarina Departamento de Informática e Estatística Bacharelado em Ciências da Computação INE5406 - Sistemas Digitais semestre 2011/1 Prof. José Luís Güntzel guntzel@inf.ufsc.br

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Softblue Logic IDE Guia de Instalação www.softblue.com.br Sumário 1 O Ensino da Lógica de Programação... 1 2 A Ferramenta... 1 3 Funcionalidades... 2 4 Instalação... 3 4.1 Windows...

Leia mais

Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste

Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste Unidade VI Validação e Verificação de Software Teste de Software Profa. Dra. Sandra Fabbri Conteúdo Técnicas de Teste Funcional Estrutural Baseada em Erros Estratégias de Teste Teste de Unidade Teste de

Leia mais

Projeto de Sistemas I

Projeto de Sistemas I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:kellypcsoares@ifsp.edu.br Requisitos: base para todo projeto, definindo o

Leia mais

Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores Organização e Arquitetura de Computadores Entrada e saída Alexandre Amory Edson Moreno Nas Aulas Anteriores Foco na Arquitetura e Organização internas da Cleo Modelo Von Neuman Circuito combinacional Circuito

Leia mais

Manual de Instalação... 2 RECURSOS DESTE RELÓGIO... 3 1 - REGISTRANDO O ACESSO... 4 1.1 Acesso através de cartão de código de barras:...

Manual de Instalação... 2 RECURSOS DESTE RELÓGIO... 3 1 - REGISTRANDO O ACESSO... 4 1.1 Acesso através de cartão de código de barras:... 0 Conteúdo Manual de Instalação... 2 RECURSOS DESTE RELÓGIO... 3 1 - REGISTRANDO O ACESSO... 4 1.1 Acesso através de cartão de código de barras:... 4 1.2 Acesso através do teclado (digitando a matrícula):...

Leia mais

Modelo Cascata ou Clássico

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

Leia mais

Dispositivo que de alguma maneira descreve o comportamento do sistema

Dispositivo que de alguma maneira descreve o comportamento do sistema Sistema: Conceito primitivo (intuitivo) Tentativas de definição: Agregação ou montagem de coisas, combinadas pelo homem ou pela natureza de modo a formar um todo unificado. Grupo de itens interdependente

Leia mais

Everson Scherrer Borges João Paulo de Brito Gonçalves

Everson Scherrer Borges João Paulo de Brito Gonçalves Everson Scherrer Borges João Paulo de Brito Gonçalves 1 Tipos de Sistemas Operacionais Os tipos de sistemas operacionais e sua evolução estão relacionados diretamente com a evolução do hardware e das

Leia mais

Sistemas Operacionais Introdução. Professora: Michelle Nery

Sistemas Operacionais Introdução. Professora: Michelle Nery Sistemas Operacionais Introdução Professora: Michelle Nery Área de Atuação do Sistema Operacional Composto de dois ou mais níveis: Tipo de Sistemas Operacionais Sistemas Operacionais Monotarefas Sistemas

Leia mais

ICC Introdução para JavaScript

ICC Introdução para JavaScript ICC Introdução para JavaScript Arquitetura Genérica de um Computador Máquina de Von Neumann Diagrama conhecido como Máquina de Von Neumann (grande nome da informática) A finalidade de um computador é receber,

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

3. Comunicação em Sistemas Distribuídos

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

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução Prof. Humberto Brandão humberto@dcc.ufmg.br aula disponível no site: http://www.bcc.unifal-mg.edu.br/~humberto/ Universidade Federal de

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

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

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto Capítulo 6. Autômatos com Pilha 6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto Nos exemplos da seção anterior, vimos que os autômatos com pilha existem para

Leia mais

Introdução à Programação de Computadores

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

Leia mais

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

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)?

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)? Roteiro BCC321 - Banco de Dados I Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto luizhenrique@iceb.ufop.br www.decom.ufop.br/luiz Conceitos Básicos Banco

Leia mais

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Requisitos de Software

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Requisitos de Software Ciência da Computação ENGENHARIA DE SOFTWARE Análise dos Requisitos de Software Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Roteiro Introdução Tipos de requisitos Atividades Princípios da

Leia mais

Engenharia de Requisitos Estudo de Caso

Engenharia de Requisitos Estudo de Caso Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software O que é a engenharia de software É um conjunto integrado de métodos e ferramentas utilizadas para especificar, projetar, implementar e manter um sistema. Método É uma prescrição

Leia mais

Lição 1 Introdução à programação de computadores

Lição 1 Introdução à programação de computadores Lição Introdução à programação de computadores Introdução à Programação I Objetivos Ao final desta lição, o estudante será capaz de: Identificar os diferentes componentes de um computador Conhecer linguagens

Leia mais

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto Conceitos de Linguagens de Roteiro: Apresentação do plano de ensino; Apresentação do plano de

Leia mais

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto ALGORITMOS PARTE 01 Fabricio de Sousa Pinto Algoritmos: Definição 2 É uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. Algoritmos 3

Leia mais

4 Plano de Recuperação

4 Plano de Recuperação 4 Plano de Recuperação Como pode ser observado na Seção 3.2, um projeto de um middleware para TVD deve considerar o fato que ele será embarcado em plataformas diversas e, portanto, que fará uso de diversas

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

EVENTO, COMUNICAÇÃO, ALFABETO, PROCESSO, E OPERADORES BÁSICOS PARA PROJETO DE PROCESSOS. Alexandre Mota

EVENTO, COMUNICAÇÃO, ALFABETO, PROCESSO, E OPERADORES BÁSICOS PARA PROJETO DE PROCESSOS. Alexandre Mota EVENTO, COMUNICAÇÃO, ALFABETO, PROCESSO, E OPERADORES BÁSICOS PARA PROJETO DE PROCESSOS Alexandre Mota CSP Concebida por Tony Hoare [85] Atualizada por Bill Roscoe [97] para fins de automação (Verificação

Leia mais

Circuitos Seqüenciais: Latches e Flip-Flops. Fabrício Noveletto

Circuitos Seqüenciais: Latches e Flip-Flops. Fabrício Noveletto Circuitos Seqüenciais: Latches e Flip-Flops Fabrício Noveletto Objetivos Usar portas lógicas para construir latches básicos Explicar a diferença entre um latch S-R e um latch D Reconhecer a diferença entre

Leia mais

Comunicação entre Processos

Comunicação entre Processos Comunicação entre Processos Comunicação entre Processos - Sistemas Operacionais fornecem mecanismos para comunicação entre processos (IPC), tal como filas de mensagens, semáfaros e memória compartilhada.

Leia mais

Introdução aos Computadores

Introdução aos Computadores Os Computadores revolucionaram as formas de processamento de Informação pela sua capacidade de tratar grandes quantidades de dados em curto espaço de tempo. Nos anos 60-80 os computadores eram máquinas

Leia mais

TriNMPC. Controlador Preditivo Multivariável Linear e Não-linear BENEFÍCIOS: APLICAÇÕES: CARACTERÍSTICAS:

TriNMPC. Controlador Preditivo Multivariável Linear e Não-linear BENEFÍCIOS: APLICAÇÕES: CARACTERÍSTICAS: TriNMPC Controlador Preditivo Multivariável Linear e Não-linear O software TriNMPC é um controlador preditivo multivariável que pode ser tanto linear como nãolinear, sendo extremamente versátil e de fácil

Leia mais

FMR Faculdade Marechal Rondon Gestão de Sistemas de Informação Prof. Ms. Elvio Gilberto da Silva http://www.elvio.pro.br elvio@fmr.edu.

FMR Faculdade Marechal Rondon Gestão de Sistemas de Informação Prof. Ms. Elvio Gilberto da Silva http://www.elvio.pro.br elvio@fmr.edu. ANÁLISE ORIENTADA À OBJETO UML FMR Faculdade Marechal Rondon Gestão de Sistemas de Informação Prof. Ms. Elvio Gilberto da Silva http://www.elvio.pro.br elvio@fmr.edu.br AULA Nº 1 A UML utiliza vários diagramas

Leia mais

Processos de Desenvolvimento de Software

Processos de Desenvolvimento de Software Processos de Desenvolvimento de Software Gerenciamento de Projetos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e

Leia mais

Objetivos. Requisitos de Software. Tipos de Requisitos. O que é um requisito? Requisitos Funcionais e Não- Funcionais. Requisitos Funcionais

Objetivos. Requisitos de Software. Tipos de Requisitos. O que é um requisito? Requisitos Funcionais e Não- Funcionais. Requisitos Funcionais Objetivos de Software Gidevaldo Novais (gidevaldo.vic@ftc.br) Introduzir os conceitos do usuário e do Descrever requisitos funcionais e nãofuncionais (domínio) Apresentar um esqueleto de documento e notas

Leia mais

Como melhorar a Qualidade de Software através s de testes e nua. Cláudio Antônio de Araújo 22/11/2008

Como melhorar a Qualidade de Software através s de testes e nua. Cláudio Antônio de Araújo 22/11/2008 Como melhorar a Qualidade de Software através s de testes e integração contínua. nua. Cláudio Antônio de Araújo 22/11/2008 Objetivos Fornecer uma visão geral da área de testes de software, com ênfase em

Leia mais

Gerenciamento de Clientes

Gerenciamento de Clientes Programação Orientada a Objetos Gerência de Objetos por Outro Objeto Programação de Computadores II Professor: Edwar Saliba Júnior Gerenciamento de Clientes Neste exemplo, veremos de forma bem simples

Leia mais

MC714 - Sistemas Distribuídos. Leandro Villas

MC714 - Sistemas Distribuídos. Leandro Villas MC714 - Sistemas Distribuídos Aula de Hoje Aula Passada Relógios Lógicos Relógios de Lamport Relógios Vetoriais Aula de Hoje Exclusão Mútua Algoritmos de Eleição Exclusão mútua Questão fundamental em SDs

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

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização Básica B de Computadores

Leia mais

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

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

Leia mais

OBJETIVO 2 APLICAÇÃO 3 ATRIBUIÇÕES E RESPONSABILIDADES 4 DOCUMENTOS DE REFERÊNCIA 5 TERMINOLOGIA 6 DESCRIÇÃO DO PROCESSO DE GESTÃO DE MUDANÇAS

OBJETIVO 2 APLICAÇÃO 3 ATRIBUIÇÕES E RESPONSABILIDADES 4 DOCUMENTOS DE REFERÊNCIA 5 TERMINOLOGIA 6 DESCRIÇÃO DO PROCESSO DE GESTÃO DE MUDANÇAS Impresso em 26/08/2015 10:31:18 (Sem título Aprovado ' Elaborado por Daniel Trindade/BRA/VERITAS em 01/11/2013 Verificado por Cintia Kikuchi em 04/11/2013 Aprovado por Americo Venturini/BRA/VERITAS em

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

A Linguagem Pascal e o Ambiente de Programação Dev-Pascal. Introdução à Ciência da Computação I

A Linguagem Pascal e o Ambiente de Programação Dev-Pascal. Introdução à Ciência da Computação I A Linguagem Pascal e o Ambiente de Programação Dev-Pascal Introdução à Ciência da Computação I Março/2004 Introdução (1 de 3) Homenagem a Blaise Pascal, filósofo e matemático do século XVII. Desenvolvida

Leia mais

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Resiliência de Processos Comunicação Confiável Cliente-Servidor Capítulo 8 Resiliência de Processos Idéia Básica: Replicar processos em grupos,

Leia mais

Modelagem de Processos. Prof.: Fernando Ascani

Modelagem de Processos. Prof.: Fernando Ascani Modelagem de Processos Prof.: Fernando Ascani Modelagem da arquitetura de negócios Arquitetura Definições Aurélio: Informática: Estrutura e organização lógica de funcionamento de um sistema computacional.

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais