introdução a informática software eduardo figueiredo 12 de março de 2010 gem03: algoritmos e...
TRANSCRIPT
Introdução a InformáticaSoftware
Eduardo Figueiredo
12 de Março de 2010
GEM03: Algoritmos e Programação de Computadores Aula 03
Monitor CRT vs. LCD
Monitores CRT
Monitores LCD
O Problema da Radiação
Monitores CRT emitem radiação
Usuários mais preocupados com a saúde usam filtros anti-radiação
Problemas causados a saúde humana ainda não estão comprovados
Filtros Anti-Radiação em LCD
Também existem filtros para monitores LCD
Sistema Computacional
Pessoas
Sistema Computacional
Pessoas
Sistema Computacional: Software
Componente lógico de um sistema computacional Ponte entre os usuários e a máquina Séries de instruções Indicam passo a passo o que o computador deve
fazer Importância
Realizam tarefas rotineiras e/ou periódicas Aumentam a produtividade Reduzem os custos de uma organização
O que é software?
Programa de computador + Documentação
Classificação fundamental Produtos genéricos
(ex. Microsoft Office) Produtos encomendados
(ex. Locadora do Zé)
Crise do Software (1968)
Custos de hardware caindo Custos do software subindo
Avanços em hardware Permitem desenvolvimento de sistemas
cada vez mais complexos Resultado (software)
Custos altos, projetos atrasados, sistemas não confiáveis, desempenho insatisfatório, etc...
Software está em todo lugar
Sistemas Críticos
Equipamentos médicos Extremamente críticos Lidam com vidas
Caixas eletrônicos Prejuízos financeiros
Confiabilidade de Software
Exemplo: Vôo Air France Rio - Paris1. Dados conflitantes (falha nos sensores)
2. Sistema assume o controle (piloto automático)
3. Piloto tenta reiniciar o sistema (boot)
4. Em 4 minutos o avião mergulha no oceano
The Last Four Minutes of Air France Flight 447. http://www.spiegel.de/international/world/0,1518,679980,00.html
Preço e Desempenho
Celular Pouco espaço na memória Grande variação em
características de aparelhos
Alguns Tipos de Software
Classificação de SoftwareQuanto a Função
Infra-estrutura Básica do Sistema Sistema Operacional Utilitários de controle (BIOS, firmwares, drivers...)
Aplicativos Software Comercial Software Científico ou de Engenharia Software de Tempo Real Software de Inteligência Artificial, etc.
Sistema Operacional
Software Básico de um computador
Não existiam nos computadores antigos Exemplo: computadores construídos com
válvulas e painéis Os programadores deviam considerar as
características do hardware
Atualmente, estão presentes em todos os computadores pessoais E também em muitos computadores
pertencentes a outras categorias
Sistema Operacional
Cria um ambiente no qual os usuários podem construir e executar programas
Executam programas internos de controle do computador de forma transparente Sem que o usuário saiba ou precise se
preocupar em saber
Exemplos de Sistemas Operacionais Windows, Linux, Solaris, Mac OS
Tarefas do Sistema Operacional
Gerenciamento da memória do computador
Administração dos dados Acionamento dos dispositivos de
entrada e saída Teclado, mouse, disquetes, CDs, DVDs,
etc. Execução de programas utilitários ou
construídos pelo usuário
Aplicações Específicas
Negócios e Comércio Comércio eletrônico, bolsa de valores,
planejamento de gastos, etc.
Medicina Análise de imagens médicas como ultra-som Acompanhamento de atletas e pacientes Detecção de anomalias genéticas
Aplicações Específicas
Exército Simula estratégias de ataque/defesa Treinamento de soldados Calcula trajetórias de projéteis
E muito mais... Usinas nucleares e hidrelétricas Portos e aeroportos Previsões meteorológicas Atividades geológicas
Desenvolvimento de Software
Fases do Desenvolvimento
Modelo Cascata Define atividades seqüenciais Outras abordagens são
baseadas nesta idéia
Especificação de Requisitos
ProjetoImplementação
Testes
Manutenção
Fases do Desenvolvimento
Modelo Cascata Define atividades seqüenciais Outras abordagens são
baseadas nesta idéia
Especificação de Requisitos
ProjetoImplementação
Testes
Manutenção
Especificação de Requisitos
Um sistema de programação deve satisfazer as necessidades de seus usuários Tais necessidades são expressas na forma de
requisitos Requisito = ação que deve ser executada
pelo sistema Ex: registrar as notas dos alunos, calcular a
média final, etc.
Fases do Desenvolvimento
Modelo Cascata Define atividades seqüenciais Outras abordagens são
baseadas nesta idéia
Especificação de Requisitos
ProjetoImplementação
Testes
Manutenção
Da Análise ao Projeto
A partir do documento de análise de requisitos, projeta-se o sistema
PROBLEMAPROBLEMA
EncontrarEncontrarSoluçãoSolução
Programa dePrograma deComputadorComputador
1ª Fase: Resolução do Problema
2ª Fase: Implementação (codificação)
Projeto do Sistema
Dividido em duas etapas Projeto Preliminar define a estrutura
modular do software, as interfaces e as estruturas de dados utilizadas Saída: Diagramas
Projeto Detalhado descreve detalhadamente cada módulo definido no projeto preliminar Saída: algoritmos
Projeto de uma Casa
Projeto Preliminar de Software
Fases do Desenvolvimento
Modelo Cascata Define atividades seqüenciais Outras abordagens são
baseadas nesta idéia
Especificação de Requisitos
ProjetoImplementação
Testes
Manutenção
Implementação do Sistema
A implementação segue as definições do projeto preliminar
Transcreve as instruções do algoritmo para uma linguagem de programação Exemplo: Linguagem C
Fases do Desenvolvimento
Modelo Cascata Define atividades seqüenciais Outras abordagens são
baseadas nesta idéia
Especificação de Requisitos
ProjetoImplementação
Testes
Manutenção
Teste e Validação
Tem por objetivo garantir que o sistema satisfaça os requisitos
Consiste da realização de alguns tipos de testes para encontrar erros
A inexistência de erros não representa a adequação operacional do sistema Deve ser feita a validação com o cliente
Linguagem CUm Pouco de História
Evolução das Linguagens
Linguagens de Máquina +1300042774
(traduzido depois para 0 e 1) Linguagens Assembly
load basepay / add overpay / store grosspay Linguagens de Alto Nível
grosspay = basepay + overpay
Linguagens de Máquina
Definem instruções a serem executadas pelo computador São especificas para o hardware
Código de máquina: uma seqüência de números significa uma instrução a ser executada “+1300042774” significa “load basepay”
Atualmente, programar em linguagens de máquina é pouco comum São usadas linguagens de alto nível como C
Linguagens de Alto Nível
Programadores geralmente utilizam linguagens de alto nível Mais próximo da compreensão humana
Programas de alto nível são traduzidos para a linguagem da máquina por compiladores Arquivo .EXE é gerado
O programa compilado pode então ser executado pelo computador
De onde veio C?
BCLP (1967) por Martin Richards
Linguagem C (1972) por Dennis Ritchie
C++ (1980) por Bjarne Stroustrup Bell Labs
Sistema de NumeraçãoConceitos Básicos
O Sistemas de Numeração
Objetivos Prover símbolos e convenções para
representar quantidades Registrar processar informação
quantitativa
Tradicionalmente feita com números
Método Tradicional
Chamado numeração posicional
Inventado pelos chineses
O valor representado pelo algarismo no número depende da posição em que ele aparece na representação
Sistema Decimal (base 10)
A posição à esquerda altera seu valor de uma potência de 10
Exemplo 125 1 representa 100 (102) 2 representa 20 (2x101) 5 representa 5 (5x100) 125 = 1x102 + 2x101 + 5x100
Base em Sistemas de Numeração
Define a quantidade de algarismos disponível na representação
A base 10 é usualmente empregada Mas, não é a única Outros exemplos: pedimos uma dúzia de ovos (12),
marcamos o tempo em minutos e segundos (60), etc.
Computadores utilizam a base 2 Sistema binário
Exemplos de Bases
Algumas bases importantes na computação Base 2 0 e 1 Base 8 0 a 7 Base 10 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9 Base 16 0 a 9, A, B, C, D, E e F
Em geral, uma base b terá b algarismos Variando entre 0 e (b - 1)
A representação 125,38 (base 10) 1x102 + 2x101 + 5x100 + 3x10-1 + 8x10-2
Identificando a Base
Em qual base está o número 9B3? Resposta óbvia, pois o algarismo B só existe na
base 16 (hexadecimal)
Em qual base está o número 11? Pode estar em qualquer base conhecida Portanto, a base deve ser especificada
Para diferenciar as bases, utiliza-se um número situado à direita inferior Exemplo: 112
Representação de um Número
Representamos um número N (de n casas), numa dada base b, como segue Nb = an.bn + .... + a2.b2 + a1.b1 + a0.b0 + a-1.b-1 + a-
2.b-2 + .... + a-n.b-n
Parte inteira an.bn + .... + a2.b2 + a1.b1 + a0.b0
Parte fracionária a-1.b-1 + a-2.b-2 + .... + a-n.b-n
Quantidade de Algarismos
O maior número que pode ser representado na base 10 usando 3 algarismos é 999 103 - 1 = 999
O maior número que pode ser representado na base 2 usando 8 algarismos é 255 28 - 1 = 255
Generalizando, o maior número inteiro N que pode ser representado em uma dada base b com n algarismos é N = bn – 1
Resumo:Regras do Sistemas de Numeração
A base B indica à quantidade de algarismos distintos que podem ser utilizados
O algarismo mais a direita tem peso um O algarismo imediatamente a sua esquerda tem
peso B O seguinte B2, depois B3 ...
O valor de um número é determinado pela soma dos valores de cada algarismo multiplicado com seu peso
Representação Binária
Linguagem do Computador
Os computadores utilizam o sistema binário Todas as informações armazenadas ou
processadas no computador são representadas por 0 e 1
Dígito binário são chamados bit Do inglês, binary digit
Um bit pode assumir os valores 0 ou 1 Analogia à tensões elétricas / sinais
eletrônicos
Sistema do Computador
Um Byte é um conjunto de oito bits
Dados são armazenados na base binária, não na decimal 0 = 00000000 1 = 00000001 2 = 00000010 255 = 11111111
Na base 2, o número "10" vale dois 102 = 210
Representação Binária
Referências
Joseana Macêdo Fechine, Introdução à Computação, Departamento de Sistemas e Computação, Universidade Federal de Campina Grande
INFOWESTER, Mouses: funcionamento, tipos e principais características, disponível em http://www.infowester.com/mouse.php
Rui Mano, Organização de Computadoreshttp://wwwusers.rdc.puc-rio.br/rmano/index.html