INF30: Informática para Administração
Introdução a Informática
Software
Eduardo Figueiredo
12 de Março de 2010
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...
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

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


Especificação
de Requisitos
Define atividades seqüenciais
Outras abordagens são
baseadas nesta idéia
Projeto
Implementação
Testes
Manutenção
Fases do Desenvolvimento

Modelo Cascata


Especificação
de Requisitos
Define atividades seqüenciais
Outras abordagens são
baseadas nesta ideia
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


Especificação
de Requisitos
Define atividades seqüenciais
Outras abordagens são
baseadas nesta ideia
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


Especificação
de Requisitos
Define atividades seqüenciais
Outras abordagens são
baseadas nesta idéia
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


Especificação
de Requisitos
Define atividades seqüenciais
Outras abordagens são
baseadas nesta idéia
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


Linguagens Assembly


+1300042774
(traduzido depois para 0 e 1)
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


Código de máquina: uma seqüência de
números significa uma instrução a ser
executada


São especificas para o hardware
“+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


Programas de alto nível são traduzidos para
a linguagem da máquina por compiladores


Mais próximo da compreensão humana
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 interrelacionados



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.
Download

Aula 03