380 likes | 543 Views
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
E N D
INF62: Informática no Ensino de Física 2 Aula 04 Revisão de Conceitos BásicosSoftware 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...
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 • Dados conflitantes (falha nos sensores) • Sistema assume o controle (piloto automático) • Piloto tenta reiniciar o sistema (boot) • 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 • Grande variação em características de aparelhos Celular
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.
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
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
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
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ívelcomo 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.