Introdução a Informática
Software
Eduardo Figueiredo
12 de Março de 2010
INF30: Informática para Administração Aula 03
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...
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
Celular
Pouco espaço na memória
Grande variação em
características de aparelhos
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 Engenharia
Software de Tempo Real
Software de Inteligência Artificial, etc.
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
Tipos de Software
Tipos de Licenças
Software Proprietário (comercial)
Freeware
Domínio Público
Software de Fonte Aberta
Shareware
Freeware
O autor fornece-o gratuitamente para
ser usado por todos
O autor detém o copyright
Ele pode impor restrições ao uso
O software não pode ser alterado ou
redistribuído sem permissão
Domínio Público
Software que não tem copyright
Pode ser usado e até mesmo alterado
sem permissão
Tipicamente, é desenvolvido por
universidades e/ou instituições de
pesquisa usando subvenções do
governo
Software de Fonte Aberta
Uma variação de freeware
O código-fonte é disponibilizado
Código-fonte: legível por seres humanos
Pertence a empresa que desenvolveu
Outros programadores podem modificar
e redistribuir os programas livremente
Ajuda a identificar erros (bugs) e a criar
melhorias mais facilmente
Shareware
Software garantido por copyright,
distribuído gratuitamente para um
período experimental
Se você gostar dele, deve registrá-lo,
pagando uma taxa
A maioria das empresas acrescenta
documentação, ampliações, suporte e
atualizações gratuitas para estimular as
pessoas a fazer o registro
Como é o 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 ideia
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 ideia
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
PROBLEMAPROBLEMA
EncontrarEncontrar
SoluçãoSolução
Programa dePrograma de
ComputadorComputador
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
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
Exemplos: Linguagem C, Java, Pascal...
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
História das Linguagens de
Programação
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
Exemplo: Evolução de Linguagens
BCLP (1967) por Martin Richards
Linguagem C (1972) por Dennis Ritchie
C++ (1980) por Bjarne Stroustrup, Bell
Java (1995) pela Sun
Veremos nesta Disciplina
O que veremos?
Sistema Operacional
Internet / Navegadores
Editor de texto
Planilhas eletrônicas e Gráficos
Apresentações Eletrônicas
Banco de Dados
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
Internet e Navegadores
Navegadores permitem
acessar outros endereços
Tanto local
Como na Internet
Permite a comunicação
com outros computadores
Requer algum dispositivo
de rede
linha telefônica
Cabo de rede
Editores de Texto
Processamento de Texto
O software de computador
pessoal mais amplamente usado
Cria memorandos, relatórios,
artigos, etc.
Incorpora gráficos em
documentos
Editoração Eletrônica
Necessidades de editoração de alto nível
Boletins (newsletters)
Brochuras, materiais promocionais
Planilhas Eletrônicas e Gráficos
Compostas de linhas e
colunas de números
Realizam análise
“E se...?”
Alterar uma célula faz
com que a planilha
seja recalculada
Apresentam dados
graficamente
Exemplo: Exibe as
despesas como gráficos
de pizza.
Apresentações Eletrônicas
A apresentação gráfica cria
apresentações de slides:
Combine gráficos, áudio e vídeo
de alta qualidade
Permite que se discuta em
grupo mais facilmente
Prova visual mais efetiva
Banco de Dados
Encarrega-se do
gerenciamento de uma
coleção de fatos inter-
relacionados
O software pode armazenar,
recuperar, atualizar e
manipular dados.
Também pode apresentar
relatório de dados de muitas
maneiras e imprimi-los.
Transforma grandes
quantidades de dados
em informação.
Referência
H.L. Capron e J.A. Johnson.
Introdução à Informática:
Capítulo 2 Softwares Aplicativos.
Pearson Education, 2004.