Revisão de Conceitos Básicos Software

35
Revisão de Conceitos Básicos Software Eduardo Figueiredo 25 de Março de 2010 INF62: Informática no Ensino de Física 2 Aula 04

description

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 - PowerPoint PPT Presentation

Transcript of Revisão de Conceitos Básicos Software

Page 1: Revisão de Conceitos Básicos Software

Revisão de Conceitos BásicosSoftware

Eduardo Figueiredo

25 de Março de 2010

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

Page 2: Revisão de Conceitos Básicos Software

Sistema Computacional

Pessoas

Page 3: Revisão de Conceitos Básicos Software

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

Page 4: Revisão de Conceitos Básicos Software

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)

Page 5: Revisão de Conceitos Básicos Software

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

Page 6: Revisão de Conceitos Básicos Software

Software está em todo lugar

Page 7: Revisão de Conceitos Básicos Software

Sistemas Críticos

Equipamentos médicos Extremamente críticos Lidam com vidas

Caixas eletrônicos Prejuízos financeiros

Page 8: Revisão de Conceitos Básicos Software

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

Page 9: Revisão de Conceitos Básicos Software

Preço e Desempenho

Celular Pouco espaço na memória Grande variação em

características de aparelhos

Page 10: Revisão de Conceitos Básicos Software

Alguns Tipos de Software

Page 11: Revisão de Conceitos Básicos 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 Ensino Software de Tempo Real Software de Inteligência Artificial, etc.

Page 12: Revisão de Conceitos Básicos Software

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

Page 13: Revisão de Conceitos Básicos Software

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

Page 14: Revisão de Conceitos Básicos Software

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

Page 15: Revisão de Conceitos Básicos Software

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

Page 16: Revisão de Conceitos Básicos Software

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

Page 17: Revisão de Conceitos Básicos Software

Desenvolvimento de Software

Page 18: Revisão de Conceitos Básicos 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

Page 19: Revisão de Conceitos Básicos 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

Page 20: Revisão de Conceitos Básicos Software

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.

Page 21: Revisão de Conceitos Básicos 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

Page 22: Revisão de Conceitos Básicos Software

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)

Page 23: Revisão de Conceitos Básicos Software

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

Page 24: Revisão de Conceitos Básicos Software

Projeto de uma Casa

Page 25: Revisão de Conceitos Básicos Software

Projeto Preliminar de Software

Page 26: Revisão de Conceitos Básicos 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

Page 27: Revisão de Conceitos Básicos Software

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

Page 28: Revisão de Conceitos Básicos 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

Page 29: Revisão de Conceitos Básicos Software

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

Page 30: Revisão de Conceitos Básicos Software

Linguagem de ProgramaçãoUm Pouco de História

Page 31: Revisão de Conceitos Básicos Software

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

Page 32: Revisão de Conceitos Básicos Software

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

Page 33: Revisão de Conceitos Básicos Software

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

Page 34: Revisão de Conceitos Básicos Software

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

Page 35: Revisão de Conceitos Básicos Software

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.