Projeto e Desenvolvimento de Sistemas Introdução Profª. Drª. Maria Salete Marcon Gomes Vaz 2008 @ Maria Salete Marcon Gomes Vaz Ementa Introdução a sistemas – Conceitos básicos – Evolução de um sistema – Tipos de abordagem no desenvolvimento de um sistema Análise de requisitos de sistemas Garantia de qualidade Análise estruturada Análise e projeto de sistemas orientados a objetos Ambientes de desenvolvimento de software 2008 @ Maria Salete Marcon Gomes Vaz Objetivos Gerais Reconhecer os aspectos principais que envolvem a atividade de análise e projeto de sistemas Adquirir conhecimento sobre as diferentes abordagens para desenvolvimento de sistemas Reconhecer a importância de aplicar métodos, técnicas e ferramentas para a construção de sistemas visando aumentar a qualidade do software Adquirir conhecimento sobre os ambientes de apoio para o desenvolvimento de softwares 2008 @ Maria Salete Marcon Gomes Vaz Objetivos Específicos Identificar as características de sistemas no contexto da Engenharia de Sistemas Identificar quando utilizar as diferentes abordagens para o desenvolvimento de sistemas Entender e utilizar as abordagens Estruturada e Orientada a Objetos para a Engenharia de Sistemas Diferenciar as atividades relacionadas à análise e ao projeto de sistemas Utilizar ambientes de apoio para o desenvolvimento de sistemas. 2008 @ Maria Salete Marcon Gomes Vaz Avaliação Trabalhos práticos = 3,0 Seminários = 2,0 Prova = 5,0 Nota = Trabalhos + Seminários + Prova 2008 @ Maria Salete Marcon Gomes Vaz Bibliografia Book, G.; Rumbaugh, J., Jacobson, I. UML: guia do usuário. Rio de Janeiro: Ed. Campus; 2000. Fowler, M. UML Distilled : a brief guide to the Standard Object Modeling Language. 2. ed. Addison Wesley; 2000. Furlan, J.D. Modelagem de Objetos através da UML. São Paulo: Makron-Books; 1999. Melo, A.C. Desenvolvimento de Aplicações com UML: do conceitual à implementação. Brasport; 2002. Pressman, R. S. Engenharia de Software. 5. ed. Rio de Janeiro: McGraw-Hill, 2001. Pressman, R. S. Software Engineering: a practitioner’s approach. 5. ed. Rio de Janeiro: McGraw-Hill. 2001. Rocha, A.R.C.; Maldonado, J. C.; Weber, K. C. Qualidade de Software: teoria e prática. Prentice-Hall, 2001. Somerville, I. Engenharia de Software. 6. ed. Addison Wesley, 2003 2008 @ Maria Salete Marcon Gomes Vaz Motivação O que é este curso ? Porque é importante saber Conceitos Teóricos/Práticos de Informática 2008 @ Maria Salete Marcon Gomes Vaz Conceituação Problema O que é o computador? Programa Computador Solução Qual a linguagem que o computador entende? 2008 @ Maria Salete Marcon Gomes Vaz Conceituação Dado e Informação – Dado e informação são sinônimos? – Dado - Matéria Prima – Informação - Dado processado Dados Estoque Processamento Resultado: Informação Atualização Dados Atualizados Produtos que atingiram a quantidade mínima em estoque? Listagem de Produtos 2008 @ Maria Salete Marcon Gomes Vaz Conceituação Sistemas – Conjunto de partes coordenadas que concorrem para a realização de um determinado objetivo – Conjunto de elementos identificáveis que tem entre si relações e que atuam segundo um objetivo Processamento de Dados – Série de Atividades ordenadamente realizadas, com o objetivo de produzir um arranjo determinado de informações a partir de outras obtidas inicialmente 2008 @ Maria Salete Marcon Gomes Vaz Conceituação Sistema de Processamento de Dados – Sistema de Computação • Computador + software básicos (SO, linguagens e aplicativos) • fornecido completo pelo fabricante Sistema de Computação Software Básico – Sistemas de Aplicação • Desenvolvidos pelo usuários ou de terceiros • Aplicação de interesse do usuário – Computador: Conjunto de circuitos eletrônicos e partes eletromecânicas - Hardware - parte física, visível do computador Hardware Software - Consiste de Programas, de qualquer tipo e em qualquer linguagem, que são introduzidos na máquina, para fazê-la trabalhar, passo a passo, e produzir algum resultado 2008 @ Maria Salete Marcon Gomes Vaz Conceitos Básicos Sistema de Computação – Programa - Conjunto de Instruções ou Formalização de um algoritmo em linguagem inteligível pelo computador – Algoritmo - conjunto de instruções que, obedecidos, resultam numa sucessão finita de “ações”. – Ação - um acontecimento que, a partir de um estado inicial, após um período de tempo finito produz um estado final previsível e bem definido. – A base de um algoritmo é o raciocínio lógico, o qual permite ordenar o pensamento. – Um algoritmo pode ser escrito por meio de: • • • • Linguagem natural; Linguagem algorítmica; Linguagem de programação; Notação diagramática (fluxogramas). 2008 @ Maria Salete Marcon Gomes Vaz Conceituação Raciocínio Lógico – Exemplo 1: • Todo mamífero é animal; • Todo cavalo é mamífero; • Portanto, todo cavalo é animal. – Exemplo 2: • A gaveta está fechada; • O papel está na gaveta; • Para pegar o papel, preciso primeiro abrir a gaveta. – Exemplo 3: • João é mais velho que Maria; • Maria é mais velha que José; • Portanto, João é mais velho que José. 2008 @ Maria Salete Marcon Gomes Vaz Conceituação Objetivo de um Algoritmo – Resolver um problema fixando um padrão de comportamento e um fluxo de execução lógica (ordem em que ações devem ser executadas). – Exemplos do Cotidiano • • • • • • Instruções para se usar um eletrodoméstico; Receita para preparo de algum prato; Instruções para preenchimento de formulários; Computação de funções matemáticas (ex: Y = X^2); Sistemas para controle de estoque; Outros. 2008 @ Maria Salete Marcon Gomes Vaz Conceituação Exemplo: Trocar uma lâmpada - 1a. Tentativa (estrutura seqüencial) – Algoritmo: • • • • • • Pegue uma escada; Posicione-a debaixo da lâmpada; Pegue uma lâmpada nova; Suba na escada; Retire a lâmpada velha; Coloque a lâmpada nova. – Problemas: • Qual o nível de detalhes ideal? Depende para quem é escrito; • O que acontece se a lâmpada velha não estiver queimada? • O que acontece se a lâmpada nova estiver queimada? 2008 @ Maria Salete Marcon Gomes Vaz Conceituação Exemplo: Trocar uma lâmpada 2a. Tentativa (estrutura condicional) – Algoritmo: • Pegue uma escada; • Posicione-a debaixo da lâmpada; • Pegue uma lâmpada nova; • Ligue o interruptor; • Se a lâmpada não acender então – Suba na escada; – Retire a lâmpada velha; – Coloque a lâmpada nova. Algoritmo Otimizado: Ligue o interruptor; Se a lâmpada não acender então Pegue uma escada; Posicione-a debaixo da lâmpada; Pegue uma caixa de lâmpadas novas; Suba na escada; Retire a lâmpada velha; Coloque a lâmpada nova; Se a lâmpada não acender então Retire a lâmpada; Coloque outra lâmpada; Se a lâmpada não acender então Retire a lâmpada; Coloque outra lâmpada; ... (até quando? Observe que um padrão se repete) 2008 @ Maria Salete Marcon Gomes Vaz Conceituação Exemplo: Trocar uma lâmpada - 3a. Tentativa (estrutura de repetição) – Algoritmo completo: • Ligue o interruptor; • Se a lâmpada não acender então – – – – – Pegue uma escada; Posicione-a debaixo da lâmpada; Pegue uma caixa de lâmpadas novas; Suba na escada; Enquanto a lâmpada não acender E ainda houver lâmpadas na caixa faça • Retire a lâmpada; • Coloque outra lâmpada. – O nível de detalhamento é adequado para uma pessoa porém não é adequado para um computador (talvez um robô sim, porém precisa ser mais detalhado), pois não tem conhecimento prévio e não adquire experiências. 2008 @ Maria Salete Marcon Gomes Vaz Conceituação Exercícios – Um homem precisa atravessar um rio com um barco que possui capacidade para carregar apenas ele próprio e mais uma de suas cargas, que são: um lobo, um bode e um maço de alfafa. O que o homem deve fazer para levar suas cargas intactas para a outra margem? – Elabore um algoritmo que mova três discos de uma Torre de Hanói, com três hastes (a, b, c), uma das quais é suporte para três discos de tamanhos diferentes (1, 2, 3), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco maior sobre o menor. O algoritmo deve transferir os três discos para outra haste. 2008 @ Maria Salete Marcon Gomes Vaz Conceituação Soluções – Leve o “bode”; – Leve a “alfafa”; – Traga o “bode”; – Leve o “lobo”; – Leve o “bode”. 2008 @ Maria Salete Marcon Gomes Vaz Conceituação Comunicação Homem-Máquina – Níveis distintos de abstração Linguagem C Linguagem Assembly swap: muli $2, $5, 4 add $2, $4, $2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31 swap(int v[], int k) {int temp: temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; } Código executável 00000000101000010000000000011000 00000000100011100001100000100001 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000 10101100011000100000000000000100 00000011111000000000000000001000 2008 @ Maria Salete Marcon Gomes Vaz Conceituação Comunicação Homem-Máquina – O computador só entende linguagem de máquina, então é preciso de um compilador/interpretador, que converta um programa escrito em uma linguagem de alto nível (o programa fonte) para um programa de linguagem de máquina (programa objeto) – Como transformar descrições em código executável? • Diferença entre as linguagens utilizadas • Métodos: – Compilação – Interpretação – Compilação-Interpretação 2008 @ Maria Salete Marcon Gomes Vaz Conceituação Compilação Converte todo o código fonte antes de executá-lo O programa objeto gerado pode ser re-executado quantas vezes seja necessário, sem a necessidade de re-compilação Programa fonte Nível 1 Compilador Programa objeto Nível 0 2008 @ Maria Salete Marcon Gomes Vaz Conceituação Instrução Nível n Interpretação Interpretador • Converte uma instrução e a executa imediatamente • O código objeto não é gerado • Facilita a correção de erros • Utiliza menos memória • Processo de execução mais lento 2008 @ Maria Salete Marcon Gomes Vaz Instrução Nível n-1 Componentes de um Sistema de Computação Periféricos Computador Estrutura de um computador Memória CPU Interconexão E/S 2008 @ Maria Salete Marcon Gomes Vaz Componentes de um Sistema de Computação Memória CPU Execução das instruções de um programa Programas + Dados Vídeo E/S Buffers 2008 @ Maria Salete Marcon Gomes Vaz Teclado Componentes de um Sistema de Computação Unidade Central de Processamento - Processador - UCP – Cérebro do Computador – É o motor, o coração do computador – O processador executa os programas – Sabe como somar e subtrais e realizar operações simples de lógica (verdadeiro/falso) – Em Mainframe, Unidade Central de Processamento ou CPU – Em microcomputadores, Microprocessador ou processador – ULA - Unidade Lógica e Aritmética • Executa as operações lógicas e aritméticas contidas nas instruções – Unidade de Controle • Controla as ações dos demais componentes 2008 @ Maria Salete Marcon Gomes Vaz Componentes de um Sistema de Computação Recursos do Processador – Capacidade de ler e gravar informações na memória do computador (temporariamente). Tanto as instruções quanto os dados – Capacidade de reconhecer e executar vários comandos ou instruções que são fornecidos pelos programas – Capacidade de dizer aos outros componentes o que fazer, de modo que o processador possa orquestrar a operação do computador 2008 @ Maria Salete Marcon Gomes Vaz Componentes de um Sistema de Computação Memória – Área de trabalho do computador – Local onde todas as atividades são realizadas – É o local em que o processador do computador localiza os programas e dados, quando está executando as tarefas que lhe são atribuídas – Os computadores costumam ser classificados pela área de memória que possuem – Principal (RAM - Random Access Memory) • Guarda temporariamente os softwares que estão sendo executados pelo computador, além dos dados que esses programas produzem ou recebem • Tudo se apaga quando o computador é desligado • Funciona mais rapidamente que a memória secundária – Secundária • Capaz de armazenar informações mesmo sem energia elétrica • Acesso lento e Grande capacidade de armazenamento 2008 @ Maria Salete Marcon Gomes Vaz Memória Fichário Disco Memória 2 3 1 timing & size size timing & Information Information Unidade de Controle (CPU) Mesa Pastas O fichário representa o disco rígido, com alta capacidade de armazenamento. A pasta sobre a mesa representa a memória, de acesso rápido e fácil Mesa e usuário são a CPU 2008 @ não Maria (faxineira) Salete Marcon Gomes Vaz OBS: Memória é volátil e disco Componentes de um Sistema de Computação Entrada e Saída – Consiste no modo como o computador recebe e envia dados – Abrange o que é digitado no teclado e o que o computador apresenta na tela do vídeo ou imprime na impressora – Sempre que o computador está recebendo ou enviando dados, ele está “desempenhando uma tarefa de E/S” através dos dispositivos de E/S (dispositivos periféricos) Armazenamento em Disco – Biblioteca de referência, o fichário de arquivos e a caixa de ferramentas do computador num só dispositivo – É onde o computador mantém os dados que não estão em uso na memória do computador 2008 @ Maria Salete Marcon Gomes Vaz Dispositivos de E/S 2008 @ Maria Salete Marcon Gomes Vaz Dispositivos de Rede Mainframe VMS Micro emulando terminal X Rede local windows NT ETHERNET Estações de trabalho emulando terminal conectado remotamente ao Mainframe Rede local Unix 2008 @ Maria Salete Marcon Gomes Vaz Componentes de um Sistema de Computação Programas – Dão vida ao computador – Fazem com que funcione e transforme um amontoado de partes decorativas em uma ferramenta de trabalho muito eficiente – São as instruções que dizem ao computador o que fazer – Programas ROM ou Firmware - armazenados em uma memória de leitura – ROM-BIOS ou BIOS (Basic Input/Output System) - programas de serviços – DOS do PC e Windows 95 da Microsoft - Sistemas Operacionais programas de sistemas de nível superior que não são criados dentro do computador – Sistema Operacional • gerencia alocação e compartilhamento de recursos do computador (Memória, arquivos, utilização da CPU, etc.) • armazenado na memória principal • programa que controla e coordena as operações do hardware • Age como uma interface entre os usuários do sistema de computação e o hardware 2008 @ Maria Salete Marcon Gomes Vaz Componentes de um Sistema de Computação Outros Componentes – Fonte de Alimentação • Dispositivo eletrônico que converte a corrente elétrica padrão em uma forma que possa ser utilziada pelo computador • Normalmente é uma caixinha prateada ou preta – Placa-Mãe • Estão instalados a maioria dos componentes que integram o computador propriamente dito – Chip do processador principal – Circuitos de apoio • Memória • Interface de E/S (portas serial e paralela, interface com o teclado, interface de disco, etc) • Barramento, que permite à CPU se comunicar com outros componentes que não estão integrados à placa-mãe) 2008 @ Maria Salete Marcon Gomes Vaz Componentes de um Sistema de Computação Outros Componentes – Dispositivos Periféricos • Impressora – Imprime em papel informações do computador – Matricial - impacto – Jato de tinta - que joga gotas de tinta sobre o papel – laser - toda página é armazenada na sua memória antes de ser impressa • Monitor – Permite a visualização na tela, as informações contidas no computador – Placas Periféricas • placa de expansão conectada a um dos conectores de barramento na placa-mãe • dispositivos que possam funcionar com o processador e outros Componentes de um Sistema de Computação 2008 @ Maria Salete Marcon Gomes Vaz Componentes de um Sistema de Computação Representação das Informações – Bit • Menor unidade de Informação armazenável • Algarismo binário ou dígito binário • Binary Digit • Possui somente dois valores: 0 e 1 – Caractere • Menor grupo ordenado de bits • Representa uma informação útil e inteligível para o ser humano • Qualquer caractere armazenado em um sistema de computação é convertido a um conjunto de bits • Empregado mais para fins comerciais 2008 @ Maria Salete Marcon Gomes Vaz Componentes de um Sistema de Computação Representação das Informações – – Byte • Definição formal atribuída a um grupo ordenado de bits • Instituída pela IBM • Grupo ordenado de 8 bits, tratados de forma individual, como unidade de armazenamento e transferência • Empregado mais para linguagem técnica • Computadores binários - indicações numéricas refere-se a potência de 2 – K representa 1024 unidades (210) – M (mega) representa 1.048.576 unidades – G (giga) representa 1024 M – T (tera) representa 1024 G – P (peta) representa 1024 teras Palavra • Conjunto de bits que representa uma informação útil 2008 @ Maria Salete Marcon Gomes Vaz Componentes de um Sistema de Computação Representação das Informações – Arquivos • É um conjunto formado por dados (ou informações) de um mesmo tipo ou para uma mesma aplicação • Exemplos: Arquivo de alunos e arquivo contendo instruções de um programa – Registros • Itens individuais de informação em arquivos • Exemplo: cada aluno em um arquivo de alunos • Obs.: Um programa é um arquivo, constituído de um único registro. Instruções não são consideradas registros individuais – Campos • As informações especificadas nos registros • Exemplo: nome do aluno, endereço, nota 2008 @ Maria Salete Marcon Gomes Vaz Componentes de um Sistema de Computação Classificação de Sistemas de Computação – Microcomputadores • Surgiram comercialmente em 1974 através do desenvolvimento de microcomputadores • Nome foi dado devido ao tamanho e à capacidade de processamento, e ainda ao tipo de usuário (uma única pessoa) • Computadores pessoais • Desktop, Laptops, Notebooks, sub-notebooks e Palmtops • Primeiro: Altais com microprocessador Intel 8080 – Estação de Trabalho • É um microcomputador projetado para realizar tarefas pesadas, nas áreas científica ou industrial (CAD, CAM, complexas computações matemáticas, entre outras) • Maior velocidade de processamento • Mais capacidade de memória (tamanho e velocidade) • Dispositivo de vídeo de mais alta qualidade 2008 @ Maria Salete Marcon Gomes Vaz Componentes de um Sistema de Computação Classificação de Sistemas de Computação – Minicomputadores • São máquinas projetadas para atender simultaneamente a demanda por execução de programas de vários usuários • Capacidade de dar suporte a múltiplos usuários • Velocidade de processamento • Capacidade/velocidade de memória • Extensa potencialidade para manipular diversos dispositivos de E/S • Requerem sofisticação maior de programas de controle – Computadores de Grande Porte • São sistemas projetados para manusear considerável volume de dados e executar simultaneamente programas de uma grande quantidade de usuários • Exemplo: Sistema de reservas de passagens aéreas • IBM 3090 2008 @ Maria Salete Marcon Gomes Vaz Componentes de um Sistema de Computação Classificação de Sistemas de Computação – Supercomputadores • Propósito: realizar grandes quantidades de cálculos matemáticos o mais rapidamente possível • Previsão de tempo, simulação e modelagem tridimensional • É capaz de realizar dois bilhões de operações matemáticas por segundo e manipular mais de um bilhão de células de memória 2008 @ Maria Salete Marcon Gomes Vaz Conversão de Bases e Aritmética Computacional Aritmética Binária – Soma Binária • A operação de soma de dois números em base 2 é efetuada de modo semelhante à soma decimal, levando-se em conta, apenas, que só há dois algarismos disponíveis (0 e 1). • 0+0 = 0 • 1+0 = 1 • 0+1=1 • 1 + 1 = 0, com “vai 1” 2008 @ Maria Salete Marcon Gomes Vaz Conversão de Bases e Aritmética Computacional E x 101101 e + 101011 m p 1011000 l o s 10101 + 11100 110001 1001111 100110 + 1100111 + 011100 10110110 1000010 2008 @ Maria Salete Marcon Gomes Vaz Conversão de Bases e Aritmética Computacional Subtração Binária – Da direita para a esquerda • 1 -1 = 0 • 0-1= não é possível, retira-se 1 da ordem a esquerda, que fica com 1-1=0 e passa-se para a ordem a direita, como 2, visto que 1 unidade de ordem à esquerda vale uma base de unidades (no caso, base= 2) da ordem a direita. Assim, 2-1 = 1 • 0-1 = 2-1 = 1 procedimento anterior repetido • 0-0=0 • 0-0=0 • 1-1=0 • Resultado:0001102 ou 1102 2008 @ Maria Salete Marcon Gomes Vaz 2 002 101101 100111 000110 Conversão de Bases e Aritmética Computacional Exemplos 1 1 1121 02 022 02202 022022 100110001 100101 11001001 - 010101101 - 011010 - 10111011 010000100 001011 00001110 2008 @ Maria Salete Marcon Gomes Vaz Conversão de Bases e Aritmética Computacional Aritmética Octal – Consiste em processo similar ao da aritmética binária, com exceção do fato de que, neste caso, tem-se 8 algarismos disponíveis. Ocorrerá “vai 1” quando a soma de dois algarismos for igual ou ultrapassar o valor da base, isto é, 8. Exemplos de Adição e Subtração 88 111 11 6208 3657 443 7312 + 1741 + 653 - 3465 56208 13168 2008 @ Maria Salete Marcon Gomes Vaz 36258 Conversão de Bases e Aritmética Computacional Aritmética Hexadecimal – Segue as mesmas regras que qualquer base Exemplos de Adição e Subtração 16 1 11 3B16D16 3A943B 4C7BE8 + 23B7D5 - 1E927A 5E4C1016 2DE96E16 2008 @ Maria Salete Marcon Gomes Vaz Conversão de Bases e Aritmética Computacional Notação Posicional – Base Decimal • 125310 ou 1253 • Número composto de quatro algarismo • Cada algarismo possui um valor correspondente a sua posição no número • 3 (algarismo mais a direita) representa 3 unidades – valor absoluto = 3; valor relativo = 3 (1a. Posição a direita) – 3 x 100 • 5 x 101 • 2 x 102 • 1 x 103 • O valor total do número = 3 + 50 + 200 + 1000 = 125310 2008 @ Maria Salete Marcon Gomes Vaz Conversão de Bases e Aritmética Computacional Notação Posicional – Generalização para um sistema qualquer de numeração • N = (dn-1 dn-2 dn-3 .... d1 d0)b – d indica cada algarismo do número N – n-1, n-2, 1, 0 indica a posição de cada algarismo – b indica a base de numeração – n indica o número de dígitos inteiros – O valor do número pode ser obtido pelo seguinte somatório • N = dn-1x bn-1 + dn-2 x bn-2 + dn-3 x bn-3 + ... + d1 x b1 + d0 x b0 – Exemplo • N = 1253 • N = 1 x 103 + 2 x 102 + 5 x 101 + 3 x 100 • N = 1000 + 200 + 50 + 3 = 125310 2008 @ Maria Salete Marcon Gomes Vaz Conversão de Bases e Aritmética Computacional Outras Bases de Numeração – Converter (1011)2 para Base 10 • 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 8 + 0 + 2 + 1 = (11)10 – Converter (1043)5 para Base 10 • 1 x 53 + 0 x 52 + 4 x 51 + 3 x 50 = 125 + 0 + 20 + 3 = (148)10 – Converter (257)8 para Base 10 • 2 x 82 + 5 x 81 + 7 x 80 = 128 + 40 + 7 = (175)10 – O número máximo de algarismos diferentes de uma base é igual ao valor da base • Na Base 10, temos 10 dígitos: de 0 a 9 dígitos • Na Base 2, temos dois dígitos: 0 e 1 • Na Base 5, temos 5 dígitos: de 0 a 4 2008 @ Maria Salete Marcon Gomes Vaz Conversão de Bases e Aritmética Computacional Base 16 ou Hexadecimal – Nesta base, os “algarismos” A, B, C, D, E, F representam, respectivamente, os valores (da base 10): 10, 11, 12, 13, 14 e 15 – 16 algarismos: 0, 1, 2, ... 9, A, B, C, D, E e F – Exemplo: (1A7B)16 • 1 x 163 + 10 x 162 + 7 x 161 + 11 x 160 = 4096 + 2560 + 112 + 11 = (6779)10 – Observações • Dígitos octais correspondem a combinação de 3 bits (algarismos binários) • Dígitos hexadecimais correspondem a combinação de 4 bits (algarismos binários) • Bases > Base 2 • Exemplo 1: (101111011101)2 = (5735)8 – 101 = 5; 111 = 7; 011 = 3; 101 = 5 • Exemplo 2: (101111011101)2 = (BDD)16 – 1011 = B; 1101 = D; 1101 = D 2008 @ Maria Salete Marcon Gomes Vaz Conversão de Bases e Aritmética Computacional Conversão entre Bases – Entre as Bases 2 e 8 • 8 = 23 , assim se um número binário for inteiro, basta dividi-lo, da direita para a esquerda, em grupos de 3 bits (o último grupo não sendo múltiplo de 3, preenche-se com zeros a esquerda • (111010111)2 = (727)8 – (111) = 7; (010) = 2; (111) = 7 • (1010011111)2 = (1237)8 – (001) = 1; (010) = 2; (011) = 3; (111) = 7 – Entre as Bases 8 e 2 • Processo inverso • (327)8 = (11010111)2 • 011 = 3; 010 = 2; 111= 7 2008 @ Maria Salete Marcon Gomes Vaz Conversão de Bases e Aritmética Computacional Conversão entre Bases – Entre as Bases 2 e 16 • 16 = 24 , assim se um número binário for inteiro, basta dividi-lo, da direita para a esquerda, em grupos de 4 bits (o último grupo não sendo múltiplo de 4, preenche-se com zero a esquerda) • (1011011011)2 = (2DB)16 – (0010) = 2; (1101) = D; (1011) = B – Entre as Bases 16 e 2 • Processo inverso • (306)16 = (1100000110)2 • 0011 = 3; 0000 = 0; 0110 = 6 2008 @ Maria Salete Marcon Gomes Vaz Conversão de Bases e Aritmética Computacional Conversão entre Bases – Entre as Bases 8 e 16 • Processo intermediário : converter para a base 2 • (3174)8 = (67C)16 – (011) = 3; (001) = 1; (111) = 7; (100) = 4 – (3174)8 = (011001111100)2 – (0110) = 6; (0111) = 7; (1100)= C – Entre as Bases 16 e 8 • Processo inverso • (3C7)16 = (1707)8 – 0011 = 3; 1100 = C; 0111 = 7 – (3C7)16 = (001111000111)2 – (001)=1; (111)=7; (000) = 0; (111)=7 2008 @ Maria Salete Marcon Gomes Vaz Conversão de Bases e Aritmética Computacional Conversão entre Bases – Entre as Bases B para Base 10 • (457)9 = (376)10 – 4x92 + 5x91 + 7x90 = – 324 + 45 + 7 = – (376)10 • (243)5 = (73)10 – 4x52 + 5x51 + 7x50 = – 50 + 20 + 3 = – (73)10 2008 @ Maria Salete Marcon Gomes Vaz Conversão de Bases e Aritmética Computacional Conversão entre Bases – Entre as Bases 10 para Base B • Dividir o número decimal pelo valor da base desejada • O resto encontrado é o algarismo menos significativo do valor da base B (mais a direita) • Dividir o quociente encontrado pela base B • O resto é o outro algarismo (à esquerda), e assim sucessivamente • (3964)10 = (7574)8 – 3964/8 = 495; resto = 4 (algarismo menos significativo) – 495/8 = 61; resto = 7 – 61/8 = 7; resto = 5 – 7/8 = 0; resto = 7 (algarismo mais significativo) 2008 @ Maria Salete Marcon Gomes Vaz Conversão de Bases e Aritmética Computacional Conversão entre Bases – Entre as Bases 10 para Base B (algoritmo de conversão) • Enquanto quociente for diferente de zero – dividir dividendo por divisor – extrair resto como algarismo e colocá-lo a esquerda do anterior • Enquanto dividendo for maior que divisor – dividir dividendo por divisor – extrair resto como algarismo e colocá-lo à esquerda do anterior Usar o dividendo que é menor que o divisor como último algarismo à esquerda (algarismo mais significativo) 2008 @ Maria Salete Marcon Gomes Vaz Conversão de Bases e Aritmética Computacional Conversão entre Bases 10 e B (Exemplos) – (483)10 = (743)8 • 483/8 = 60; resto = 3 • 60/8 = 7; resto = 4 • 7/8 = 0; resto = 7 – (45)10 = (101101)2 • 45/2 = 22; resto = 1 • 22/2 = 11; resto = 0 • 11/2 = 5; resto = 1 • 5/2 = 2; resto = 1 • 2/2 = 1; resto = 0 • 1/2 = 0; resto = 1 2008 @ Maria Salete Marcon Gomes Vaz Conversão de Bases e Aritmética Computacional Conversão entre Bases 10 e B (Exemplos) – (2754)10 = (AC2)16 • 2754/16 = 172; resto = 2 • 172/16 = 10; resto = 12; algarismo C • 10/16 = 0; resto = 10; algarismo A – (490)10 = (1EA)16 • 490/16 = 30; resto = 10; algarismo A • 30/16 = 1; resto = 14; algarismo E • 1/16 = 0; resto = 1 2008 @ Maria Salete Marcon Gomes Vaz Conceitos da Lógica Digital Introdução – Computador Digital é uma máquina projetada para armazenar e manipular informações representadas por algarismos ou dígitos e que só podem assumir dois valores distintos, 0 e 1 Informação Binária – Representada por quantidades físicas, sinais elétricos, os quais são gerados e mantidos internamente ou recebidos de elementos externos em dois níveis de intensidade, cada um correspondendo a um valor binário – Campo magnético e sinais óticos - outras formas de armazenamento 2008 @ Maria Salete Marcon Gomes Vaz Conceitos da Lógica Digital Circuitos Digitais – Circuitos eletrônicos, que armazenam os sinais binários e realizam certos tipos de operações com eles. – Formados de pequenos elementos (portas lógicas ou gates) capazes de manipular grandezas apenas binárias Portas Lógicas ou Gates – Permitem ou não a passagem dos sinais digitais – Elementos de hardware (circuito eletrônico) que recebe um ou mais sinais de entrada e produz um sinal de saída – O valor é dependente do tipo de regra lógica estabelecida para a construção do referido circuito – Circuitos Lógicos - Circuitos que contêm as portas lógicas 2008 @ Maria Salete Marcon Gomes Vaz Conceitos da Lógica Digital Utilidade de Portas Lógicas – Armazenamento de valores – Controle do fluxo de sinais entre os componentes – Realizar operações matemáticas Álgebra de Chaveamento ou Switching Algebra – Ramo da Álgebra Booleana ou Álgebra Moderna – Conceitos e Regras para projeto de circuitos digitais e a análise de seu comportamento 2008 @ Maria Salete Marcon Gomes Vaz Conceitos da Lógica Digital Portas e Operações Lógicas – Porta Lógica - um circuito eletrônico – – – – UCP Memória Principal Interfaces de E/S Outros Fabricados através da combinação de milhões de circuito eletrônicos – Operação Lógica - realizada sobre um ou mais valores lógicos produz um certo resultado, conforme a regra definida 2008 @ Maria Salete Marcon Gomes Vaz Conceitos da Lógica Digital Operação Lógica e Tabela Verdade – Produz um resultado que pode assumir dois valores, 0 (Falso) e 1 (Verdadeiro). – Tabela Verdade - Todos os possíveis valores de resultado de uma dada operação lógica • Possui tantas linhas de informação quantas são as possíveis combinações de valores de entrada • Entrada: 1 valor Saída: 0 ou 1(valores possíveis) • Entrada: 2 valores Saída: 00, 01, 10, 11(valores possíveis) • Entrada: n valores Saída: 2n combinações possíveis 2008 @ Maria Salete Marcon Gomes Vaz Conceitos da Lógica Digital Operação Lógica ou Porta AND (E) – Elemento ou operação lógica que produz um resultado verdade (=1) na saída, se e somente se todas as entrada forem verdade Entrada A B 0 0 0 1 1 0 1 1 Saída X=AB 0 0 0 1 2008 @ Maria Salete Marcon Gomes Vaz Conceitos da Lógica Digital Operação Lógica ou Porta OR (OU) – Elemento ou operação lógica que produz um resultado verdade (=1) na sua saída, se pelo menos uma das entradas for verdade Entrada A B 0 0 0 1 1 0 1 1 Saída X=A+B 0 1 1 1 2008 @ Maria Salete Marcon Gomes Vaz Conceitos da Lógica Digital Operação Lógica NOT (Inversor ou Função Complemento) – Inverte o valor de um sinal binário colocado em sua entrada, produzindo na saída o valor oposto Entrada A 0 1 Saída X=A 1 0 2008 @ Maria Salete Marcon Gomes Vaz Conceitos da Lógica Digital Operação Lógica NAND - NOT AND – Complemento da porta AND – A saída de um circuito lógico NAND é obtida ao se aplicar a regra da porta AND e inverter o resultado Entrada A B 0 0 0 1 1 0 1 1 Saída X=AB 1 1 1 0 2008 @ Maria Salete Marcon Gomes Vaz Conceitos da Lógica Digital Operação Lógica NOR - NOT OR – Complemento ou inverso da porta OR – A saída de um circuito lógico NOR é obtida ao se aplicar a regra da porta OR e inverter o resultado Entrada A B 0 0 0 1 1 0 1 1 Saída X=A+B 1 0 0 0 2008 @ Maria Salete Marcon Gomes Vaz Conceitos da Lógica Digital Operação Lógica XOR - EXCLUSIVE OR – Caso particular da função OR – A saída será verdade se exclusivamente uma ou outra entrada for verdade Entrada A B 0 0 0 1 1 0 1 1 Saída X=AB 0 1 1 0 2008 @ Maria Salete Marcon Gomes Vaz Aulas Práticas Sistema Operacional Planilha Eletrônica Banco de Dados 2008 @ Maria Salete Marcon Gomes Vaz Bibliografia MONTEIRO, M., Introdução à Organização de Computadores, 3o Edição, Editora Livros Técnicos e Científicos, 1996. TANENBAUM, A. S., Organização Estruturada de Computadores, Editora Campus, 1995. NORTON, P., Desvendando o PC, Editora Campus,1996. Entre outros... 2008 @ Maria Salete Marcon Gomes Vaz