projeto e desenvolvimento de sistemas introdução

72
2008 @ Maria Salete Marcon Gomes Vaz Projeto e Desenvolvimento de Sistemas Introdução Profª. Drª. Maria Salete Marcon Gomes Vaz

Upload: liberty-preston

Post on 03-Jan-2016

25 views

Category:

Documents


3 download

DESCRIPTION

Projeto e Desenvolvimento de Sistemas Introdução. Profª. Drª. 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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

Projeto e Desenvolvimento de Sistemas

Introdução

Profª. Drª. Maria Salete Marcon Gomes Vaz

Page 2: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 3: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 4: Projeto e Desenvolvimento de Sistemas Introdução

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.

Page 5: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 6: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 7: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

Motivação

O que é este curso ?

Porque é importante saber Conceitos

Teóricos/Práticos de Informática

Page 8: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

Conceituação

Solução

Computador

Programa

Problema

Qual a linguagem que o computador entende?

O que é o computador?

Page 9: Projeto e Desenvolvimento de Sistemas Introdução

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 Processamento Resultado: Informação

Estoque Atualização Dados Atualizados

Produtos que atingiram a quantidade mínima em estoque?

Listagem de Produtos

Page 10: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 11: Projeto e Desenvolvimento de Sistemas Introdução

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

– 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

Software Básico

Hardware

Sistema de Computação

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

Page 12: Projeto e Desenvolvimento de Sistemas Introdução

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).

Page 13: Projeto e Desenvolvimento de Sistemas Introdução

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é.

Page 14: Projeto e Desenvolvimento de Sistemas Introdução

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.

Page 15: Projeto e Desenvolvimento de Sistemas Introdução

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?

Page 16: Projeto e Desenvolvimento de Sistemas Introdução

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)

Page 17: Projeto e Desenvolvimento de Sistemas Introdução

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.

Page 18: Projeto e Desenvolvimento de Sistemas Introdução

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.

Page 19: Projeto e Desenvolvimento de Sistemas Introdução

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”.

Page 20: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

Conceituação Comunicação Homem-Máquina

– Níveis distintos de abstração

swap(int v[], int k){int temp: temp = v[k]; v[k] = v[k+1]; v[k+1] = temp;}

00000000101000010000000000011000000000001000111000011000001000011000110001100010000000000000000010001100111100100000000000000100101011001111001000000000000000001010110001100010000000000000010000000011111000000000000000001000

Linguagem C

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

Linguagem Assembly

Código executável

Page 21: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

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

Conceituação

Page 22: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

Conceituação

Programa fonte Nível 1

Compilador Programa objeto Nível 0

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

Compilação

Page 23: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

Conceituação

Instrução Nível n

InterpretadorInstrução Nível n-1

• 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

Interpretação

Page 24: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

Interconexão

Componentes de um Sistema de Computação

CPU Memória

E/S

Computador

Periféricos

Estrutura de um computador

Page 25: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

Componentes de um Sistema de Computação

Vídeo

Teclado

CPU

Execução dasinstruções de um

programa

CPU

Execução dasinstruções de um

programa

Memória

Programas+

Dados

E/S

Buffers

Page 26: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

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

Page 27: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 28: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 29: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

Fichário

Mesa

Pastas

3timing & sizeInformation

2timing & sizeInformation

1

Disco MemóriaUnidade de Controle (CPU)

Memória

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 OBS: Memória é volátil e disco não (faxineira)

Page 30: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

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

Page 31: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

Dispositivos de E/S

Page 32: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

Dispositivos de RedeMainframeVMS

Rede localUnix

Rede localwindows NT

Estações de trabalho emulando terminal conectado remotamente ao Mainframe

Micro emulando terminal X

ETHERNET

Page 33: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 34: Projeto e Desenvolvimento de Sistemas Introdução

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)

Page 35: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 36: Projeto e Desenvolvimento de Sistemas Introduçã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

Page 37: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 38: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 39: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 40: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 41: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 42: Projeto e Desenvolvimento de Sistemas Introdução

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”

Page 43: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

Conversão de Bases e Aritmética Computacional

101101

+ 101011

1011000

10101

+ 11100

110001

100110

+ 011100

1000010

1001111

+ 1100111

10110110

Exemplos

Page 44: Projeto e Desenvolvimento de Sistemas Introdução

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

2

002

101101

100111

000110

Page 45: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

Conversão de Bases e Aritmética Computacional

1

02202

100101

- 011010

001011

1121

022022

11001001

- 10111011

00001110

1

02 022

100110001

- 010101101

010000100

Exemplos

Page 46: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

Conversão de Bases e Aritmética Computacional

11

443

+ 653

13168

88

6208

7312

- 3465

36258

111

3657

+ 1741

56208

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

Page 47: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

Conversão de Bases e Aritmética Computacional

16

3B16D16

4C7BE8

- 1E927A

2DE96E16

1 11

3A943B

+ 23B7D5

5E4C1016

Aritmética Hexadecimal– Segue as mesmas regras que qualquer base

Exemplos de Adição e Subtração

Page 48: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 49: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 50: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 51: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 52: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 53: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 54: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 55: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 56: Projeto e Desenvolvimento de Sistemas Introdução

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)

Page 57: Projeto e Desenvolvimento de Sistemas Introdução

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)

Page 58: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 59: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 60: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 61: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 62: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 63: Projeto e Desenvolvimento de Sistemas Introdução

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 Fabricados através da

– Memória Principal combinação de milhões

– Interfaces de E/S de circuito eletrônicos

– Outros

– Operação Lógica - realizada sobre um ou mais valores lógicos produz um certo resultado, conforme a regra definida

Page 64: Projeto e Desenvolvimento de Sistemas Introdução

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

Page 65: Projeto e Desenvolvimento de Sistemas Introdução

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 SaídaA B X=AB0 0 00 0 00 1 00 1 01 0 01 0 01 1 11 1 1

Page 66: Projeto e Desenvolvimento de Sistemas Introdução

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 SaídaA B X=A+B0 0 00 0 00 1 10 1 11 0 11 0 11 1 11 1 1

Page 67: Projeto e Desenvolvimento de Sistemas Introdução

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 Saída A X=A 0 10 1 1 01 0

Page 68: Projeto e Desenvolvimento de Sistemas Introdução

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 SaídaA B X=AB0 0 10 0 10 1 10 1 11 0 11 0 11 1 01 1 0

Page 69: Projeto e Desenvolvimento de Sistemas Introdução

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 SaídaA B X=A+B0 0 10 0 10 1 00 1 01 0 01 0 01 1 01 1 0

Page 70: Projeto e Desenvolvimento de Sistemas Introdução

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 SaídaA B X=AB0 0 00 0 00 1 10 1 11 0 11 0 11 1 01 1 0

Page 71: Projeto e Desenvolvimento de Sistemas Introdução

2008 @ Maria Salete Marcon Gomes Vaz

Aulas Práticas

Sistema Operacional Planilha Eletrônica Banco de Dados

Page 72: Projeto e Desenvolvimento de Sistemas Introdução

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...