Importância do Software

  • As 3 primeiras décadas da era do computador:
    • Principal desafio: Hardware
    • Desenvolver equipamentos de baixo custo e alto desempenho.


  • Compõem o cenário atual:
    • Cinco décadas de evolução dos computadores
    • Hardware de grande desempenho
    • Hardware de menor custo
    • Hardware com grandes e rápidas modificações




Últimas décadas

  • Desafio:
    • Melhorar a qualidade
    • Reduzir os custos das soluções baseadas em software.


Para se fazer isso, exige-se:

  • Técnicas
  • Teorias
  • Estudos
  • Metodologias




Panorama Atual

  • A necessidade de aplicar novas técnicas e métodos são necessárias.


  • Surgiram novos desafios em função de novas tecnologias:
    • convergência de computadores
    • sistemas de comunicação
    • complexas interfaces com o usuário




Eras do Software

1a. era

  • 1940 a 1959
  • O profissional de TI era considerado um Deus
  • Hardware:
    • Os computadores eram lentos, enormes, ocupavam salas inteiras
    • Tinham metros e metros de fios
    • Eram equipadas com válvulas eletrônicas e gastavam muita energia
    • Sua operação era muito cara e esquentavam muito => causa de mau funcionamento
    • Velocidade de processamento na ordem de milissegundos e capacidade de memória de 2 a 4 kbytes
  • Software:
    • Usavam linguagem de máquina para executar operações e resolviam um problema de cada vez
    • Entrada de dados era feita por meio de cartões ou fita de papel perfurados
    • Saída de dados era feita por impressoras
    • Não existia sistema operacional. Os programadores eram operadores e controlavam o computador por meio de chaves, fios e luzes de aviso
  • As aplicações eram uma reflexão pós hardware
  • O desenvolvimento era feito sem gerenciamento
  • Orientação batch (em lote).





2a. era

  • 1960 a 1975
  • Hardware:
    • Substituição das válvulas/fios por transistores/circuitos impressos
    • Tornou os computadores mais rápidos, menores e com custos mais baixos
    • Velocidade de processamento na ordem de centenas de milissegundos e a memória em dezenas de MBytes
    • Surgiram os primeiros armazenadores externos de informações: fitas magnéticas e discos
    • Ainda esquentavam muito.


  • Software:
    • Mudança da linguagem de máquina binária para linguagens simbólica: Assembler, FORTRAN e COBOL
    • Programadores especificavam instruções em palavras
    • Entrada de dados era feita por cartões ou fita de papel perfurado
    • Saída de dados era feita por impressoras
    • Programa monitor usado para "enfileirar" as tarefas
    • Cada programa era escrito em cartão/fita e carregados por um operador, juntamente com seu compilador
    • O operador em geral utilizava uma linguagem de controle chamada JCL (Job Control Language)
    • Multi (programação/usuário)
    • Advento das Software-Houses
    • Sistemas em tempo real
    • Primeira geração de BD: System R, SQL/DS, DB2, ...
    • Software voltado a ampla distribuição
    • Manutenção dispendiosa e cara.





3a. era

  • 1976 a 1985
  • Hardware:
    • Computadores passaram a ter circuitos integrados e transistores miniaturizados
    • Aumentaram a velocidade e a eficiência das máquinas com redução dos custos
    • Teclados e monitores substituíram os cartões e papel perfurados
    • Velocidade de processamento na ordem de microssegundos
    • Redes locais e globais
    • Poderosas estações de trabalho
    • PCs proliferando pelo mundo inteiro


  • Software:
    • Sistemas distribuídos: maior complexidade e equiptos diversificados
    • Demanda por acesso instantâneo
    • Tornaram-se acessíveis para um grande número de pessoas
    • Programas aplicativos desenvolvidos no mundo inteiro
    • Linguagens como C, Pascal e Basic




4a. era

  • 1986 a 1999
  • Hardware:
    • Microprocessador com milhões de CIs em um único "chip" de silicone
    • Maior grau de miniaturização, confiabilidade e velocidade
    • Velocidade de processamento de centenas de nanossegundos
    • Computação paralela


  • Software:
    • Advento da Internet
    • Desenvolvimento de interfaces gráficas evoluídas - GUI (Graphical User Interface)
    • Baseada em símbolos visuais, como ícones, menus e janelas com maior interação com o usuário
    • Linguagens como Delphi, Clipper, Java
    • Orientação a objetos
    • Sistemas especialistas e IA
    • Redes neurais
    • Linguagens de programação abertas
    • Sistemas para internet
    • Usuário desenvolvedor.





5a. era

  • 2000 até ...
  • Hardware:
    • Altíssima velocidade de processamento
    • Grande capacidade de armazenamento de dados dos discos rígidos (TBytes)
    • Alto grau de interatividade (Reconhecimento de voz)
    • Processamento baseado em supercondutores
    • Cloud Computing
    • Computação Quântica
    • Computação Holográfica


  • Software:
    • Inteligência artificial
    • Realidade Virtual e Realidade Aumentada
    • Linguagens como C++, JavaScript, Phyton, PERL
    • Desenvolvimento Ágil
    • Novos SOs: Android, Ginga
    • Internet do Futuro
    • Virtualização
    • ...