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.
- Tecnologia marcante:
- Linguagens Procedimentais => Hermes Neri
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:
- Redes Locais => Rodrigo Alves de Souza Neto
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
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:
- Computação vestível => Igor de Souza Silva
- Internet of Things => Iago de Souza Reis
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.