Você está na página 1de 35

INF62: Informática no Ensino de Física 2 Aula 04

Revisão de Conceitos Básicos


Software

Eduardo Figueiredo

25 de Março de 2010
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. Portal de Ensino da UFU)
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 - Paris


1. 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
 Pouco espaço na memória
Celular  Grande variação em
características de aparelhos
Alguns Tipos de Software
Classificação de Software
Quanto 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 Ensino
 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, Mac OS, Solaris ...
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
Projeto
Implementaçã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
Projeto
Implementaçã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
Projeto
Implementação
Testes
Manutenção
Da Análise ao Projeto

 A partir do documento de análise de


requisitos, projeta-se o sistema

1ª Fase: Resolução do Problema


PROBLEMA

Encontrar
Solução
Programa de
Computador
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
Projeto
Implementaçã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 ou Java
Fases do Desenvolvimento

 Modelo Cascata
 Define atividades seqüenciais
 Outras abordagens são
baseadas nesta idéia

Especificação
de Requisitos
Projeto
Implementaçã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 de Programação
Um 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 ou Java
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
Evolução de uma Linguagem
 BCLP (1967) por Martin Richards

 Linguagem C (1972) por Dennis Ritchie

 C++ (1980) por Bjarne Stroustrup, Bell Labs

 Java (1995) pela Sun


Referências
 DEITEL, H. M.; DEITEL P. J. Java: Como
Programar, 6a. Edição. Pearson, 2005.
 Seção 1.6 a 1.10

 Ian Sommerville. Engenharia de


Softwawe, 8a. Edição. 2007.

Você também pode gostar