Objetivo da aula


  • Identificar a relevância do software independente da área onde é usado
  • Mostrar a cronologia de evolução do software
  • Destacar inúmeras tecnologias que contribuíram para o Estado da Arte do software.


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


Eras do Software

1a. era

  • 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 mal funcionamento
    • Velocidade de processamento: ordem de milissegundos
    • Capacidade de memória: 2 a 4 kbytes
  • Software:
    • Usavam linguagem de máquina para executar operações e resolviam um problema de cada vez
    • Entrada de dados: Cartões ou fita de papel perfurados
    • Saída de dados: Impressoras ou Terminais monocromáticos
    • Sistema operacional: Inexistentes na fase inicial. Os programadores eram operadores e controlavam o computador por meio de chaves, fios e luzes de aviso
  • As aplicações eram pensadas após o hardware .., funcionar
  • Desenvolvimento destas aplicações: sem gerenciamento
  • Orientação: Batch (em lote) (uma tarefa após a outra)



2a. era

  • 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: Ordem de centenas de milissegundos
    • Memória: Dezenas de MBytes
    • Surgiram os primeiros armazenadores externos de informações: fitas magnéticas e discos
    • Ainda esquentavam e vibravam muito.
  • Software:
    • Linguagem: Mudança de máquina binária para simbólica: Assembler, FORTRAN e COBOL
    • Programadores: Passaram a escrever as instruções por meio de palavras
    • Entrada de dados: Cartões ou fita de papel perfurado
    • Saída de dados: Impressoras
    • Programa: 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)
    • Início das Software-Houses
    • Sistemas processando em tempo real
    • Primeira geração de Banco de Dados: System R, SQL/DS, DB2, ...
    • Software voltado a ampla distribuição no mundo
    • Manutenção dispendiosa e cara.




3a. era

  • Hardware:
    • Computadores passaram a ter circuitos integrados e transistores miniaturizados
    • Aumentaram em velocidade e eficiência reduzindo os custos
    • Teclados e monitores: substituíram os cartões e papel perfurados
    • Velocidade de processamento: Ordem de microssegundos
    • Capacidade de memória: Mbytes
    • Redes locais e globais
    • Poderosas estações de trabalho
    • PCs: Proliferação pelo mundo inteiro
  • Software:
    • Sistemas distribuídos: maior complexidade e equiptos diversificados
    • Demanda: Acesso instantâneo e global
    • Tornaram-se acessíveis para um grande número de pessoas
    • Novas aplicações: Desenvolvidos no mundo inteiro
    • Linguagens: C, Pascal, Basic, ...


  • Tecnologia marcante:


4a. era

  • Hardware:
    • Microprocessador com milhões de CIs em um único "chip" de silicone
    • Maior grau de miniaturização, confiabilidade e velocidade
    • Velocidade de processamento: Centenas de nanossegundos
    • Capacidades: Gbytes
    • Computação paralela
  • Software:
    • Início da era Internet
    • Interfaces gráficas: Evolução rápida => GUI (Graphical User Interface)
    • Baseada em símbolos visuais, como ícones, menus e janelas com maior interação com o usuário
    • Linguagens: Delphi, Clipper, Java, HTML
    • Modelagem de sistemas: Orientação a objetos
    • Sistemas especialistas e IA
    • Redes neurais
    • Linguagens de programação abertas
    • Sistemas para internet
    • Usuário Final: Podia desenvolver suas próprias aplicações



  • Tecnologia marcante:


5a. era

  • Hardware:
    • Altíssima velocidade de processamento
    • Grande capacidade de armazenamento de dados dos discos rígidos (TBytes, Peta, Exa, Zetta, YottaBytes)
    • Alto grau de interatividade: Reconhecimento de voz
    • Processamento baseado em supercondutores
    • CloudComputing
  • Software:
    • Inteligência artificial
    • Realidade Virtual e Realidade Aumentada
    • Linguagens: C++, JavaScript, Python, PERL
    • Desenvolvimento Ágil
    • Novos SOs: Android, Ginga
    • Virtualização
    • ...
  • Tecnologias marcantes:
    • Big Data => Mariana Korndörfer dos Santos
    • Smart Grid => Larissa Caroline Cardoso Campos
    • Domótica => Leonardo Ferreira Gonzalez
    • M2M => Júlia Tannús


6a. era

  • Hardware:
    • Clusterização
    • Capacidade cescente de dados dos discos rígidos (Peta, Exa, Zetta, YottaBytes)
    • IHM: Interface Homem-Máquina
    • All Software
    • ComputaçãoHolográfica
  • Software:
    • Inteligência artificial
    • Realidade Virtual e Realidade Aumentada
    • Linguagens: C++, JavaScript, Python, PERL
    • Novos SOs: Android, Ginga
    • Internet do Futuro
    • Virtualização de tudo
  • Tecnologias marcantes:


Preparação para Aula 07


  • Cadastrar no URI
  • Capturar Código no Perfil
  • Montar Turma 2015-2 no Academic
  • Disparar primeira batalha de exercícios


Questões



Higor Vinícius Coelho de Queiroz


  • 01. Cite 4 tipos de tecnologias de Redes Locais disponíveis atualmente.
    • PAN - Personal Area Network
    • LAN - Local Area Networks
    • MAN - Metropolitan Area Networks
    • WAN - Wide Area Networr


  • 02. O que é Domótica?
    • Domótica, a robótica doméstica é uma tecnologia que realiza a gestão de todos os recursos habitacionais, não só aqueles que dizem respeito ao conforto, mas também abrangendo conceitos como comunicação e segurança. Tudo isso de forma automatizada e de simples utilização, para que usuários comuns possam usufruir dos benefícios. O sistema pode ser manuseado de duas formas, o passivo, no qual ações só são tomadas através de uma ordem transmitida pelo usuário. E o automático, no qual um sistema mais avançado interpreta os acontecimentos e reage automaticamente à necessidade do ambiente, como uma janela se fechando assim que começa a chover ou um climatizador sendo ativado assim que o sistema detecta uma mudança indesejada de temperatura.


  • 03. Dê um exemplo de aplicação M2M?
    • Um exemplo é um sensor que detecta o fluxo de tráfego em um determinado local da cidade e envia informações à uma centra de controle para que um software adequado realize automaticamente as mudanças necessárias na sinalização de trânsito do local afim de melhorar a situação do tráfego.


  • 04. Interfaces: O que tem isso a ver com software?
    • Tem relação direta, pois uma interface nada mais é do que um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços.


  • 05. Na visão de softwares que processa I/O, os sensores são responsáveis pelo quê?
    • Por captar os dados do ambiente externo e informar ao sistema sendo portanto interfaces de entrada (Input).


  • 06. Dê um exemplo de Sistema Especialista.
    • Um exemplo é o sistema probabilístico para manejo nutricional de pacientes com diabetes, que auxilia no manejo nutricional do paciente com diabetes ,utilizando como terapia nutricional a contagem de carboidratos. Sua principal função é contribuir na otimização do atendimento do paciente diabético e no apoio à decisão do profissional nutricionista, que ao receber informações coerentes e rápidas, poderá desenvolver seu trabalho de maneira mais adequada.


  • 07. Qual a diferença básica entre Linguagens Procedimentais e Linguagens Lógicas ou Funcionais?
    • As linguagens lógicas baseiam-se puramente na lógica matemática enquanto as linguagens procedimentais baseiam-se na organização de rotinas, subrotinas, métodos ou funções, que podem ser chamadas a qualquer momento para a execução de um programa.