computação: do ábaco aos dias atuais rodrigo assad
TRANSCRIPT
Computação: do Computação: do ábaco aos dias atuaisábaco aos dias atuais
Computação: do Computação: do ábaco aos dias atuaisábaco aos dias atuais
Rodrigo AssadRodrigo Assad
Agenda• Introdução• O Inicio• Grandes áreas• O que vem por ai ....
Introdução• Atualmente a sociedade não vive
mais sem a utilização de computadores e os seus sistemas de informação.
• Mas o que é um computador?
Introdução• Para muitos um computador simboliza o
futuro.• No cinema e na televisão vemos maquinas
grandes, complexas, cheias de luzes • Geralmente o computador tem
personalidade: frio, calculista, impessoal.• O operador do computador é visto como
gênio, misterioso uma pessoa diferente.
Introdução• Mas o que é verdade
Introdução• O cenário é bem teatral• O computador não é resultado de
um cientista maluco• Ele surgiu da necessidade
crescente de se fazer cálculos• Os ancestrais do computador tem
mais de 3000 anos
O Início• Se levarmos em conta que o termo
COMPUTAR, significa fazer cálculos, contar, efetuar operações aritméticas, COMPUTADOR seria então o mecanismo ou máquina que auxilia essa tarefa, com vantagens no tempo gasto e na precisão.
O Início• Inicialmente o homem utilizou
seus próprios dedos para essa tarefa, dando origem ao sistema DECIMAL e aos termos DIGITAL e DIGITO . Para auxílio deste método, eram usados gravetos, contas ou marcas na parede
O Início• Tábuas de argila foram desenterradas
por arqueólogos no Oriente Médio, próximo à Babilônia, contendo tabuadas de multiplicação e recíprocos, acredita-se que tenham sido escritas por volta de 1700 a.C. e usavam o sistema sexagesimal (base 60), dando origem às nossas atuais unidades de tempo
O Início
TimeLine
Grandes áreas• Engenharia de Software• Arquitetura de Computadores• Redes e Sistemas Distribuídos• Teoria da Computação• Inteligência Artificial
Grandes áreas• Engenharia de software
– Não mais aprendemos uma linguagem que atenda uma determinada necessidade
– Atualmente temos plataformas de desenvolvimento
– Uma briga enorme entre Java e .NET– Funcionam em quase qualquer dispositivo
Grandes áreas
Programação OO• OO significa orientada a objetos• Não vemos mais programas como
rotinas mas sim como objetos• O código fica mais fácil• A manutenção fica mais fácil• A reusabilidade fica mais fácil• É o paradigma mais utilizado atualmente• Java e VB são bons exemplos
Novos paradigmas• Temos a programação orientada a
agentes– Vemos o mundo como unidades que
podem interoperar
• Programação orientada a aspectos– Os aspectos do mundo são quem nos
interessam
Conceitos • Como vemos programar é a arte de
representar situações do mundo real dentro de um software
• Para isso o ferramental esta ai• Agora so basta escolher seu
compilador e começar????• Será so isso?
Linguagens• C : Para programação baixo nível• Assembler : Para programação baixo nível• Java : sistemas servidores e embarcados• .Net : sistemas servidores, sistemas em
descktop e embarcados (especialmente C#)• Delphi : sistemas em descktop• Visual Basic : sistemas em descktop• PHP: Web• Natural e Cobol: Para Mainframes
Frameworks • Inicialmente se escrevia código
em uma linguagem e este código so funcionava em uma plataforma
• As linguagens foram portadas para as plataformas mas parte dos códigos precisavam ser rescritos
• Isso é custoso mas já é bom
Frameworks • Os frameworks de desenvolvimento
estão facilitando as escrita de apenas um código que possa funcionar em qualquer tipo de dispositivo– Supercomputadores, servidores, PC’s,
palmtops, celulares, smart cards
Frameworks• Atualmente existe uma briga no mercado
– Java x .NET– Para celuares: Java x .NET x Brew x Symbian
• Cada uma tem seus pontos fortes e fracos mas sem dúvida serão as linguagens que terão mais espaço no mercado
Ferramentas• Compiladores: usados para
“compilar” o programa escrito em uma linguagem (Delphi, Visual C, Eclipse, JBuilder, WSAD, Visual Studio .NET, ...)
• Gerencia de configuração: CVS, Clercase, Subversion, ...
Ferramentas• Modelagem: Rose, together, visio,
Jude, Erwin, ...• Acompanhamento de projeto:
Bugzilla, Project, Xplanner, ... • Testes : Ant, JMeter, Wast, Junit, ...
Metodologias• RUP• XP
Processo• ProSCes, baseado no RUP• Define os entregáveis : modelos de
dados, arquitetura de aplicação, ...• Em caso de uma falha no sistema
entregue o processo auxilia a definir onde houve a falha e o que se deve fazer para que ela não ocorra mais
Cargos• Testador de software• Engenheiro de software• Arquiteto de software• Arquiteto de teste• Gerente de configuração• Engenheiro de testes• Analista de sistemas• Gerente de projetos
Componentes • Atualmente se quebra o software em
componentes que podem ser reutilizados
• Temos hoje componentes para a maioria das tarefas
• Existem empresas que apenas produzem e vendem componentes no mercado
Componentes• Sistemas operacionais se utilizam
muito deste conceito• Facilitam a reutilização de código• Facilitam o desenvolvimento de
grandes sistemas• Facilitam o desenvolvimento de
softwares por empresas diferentes
Grandes áreas• Arquitetura de computadores
– Será que vem ai o computador quantico?
– Novas tecnologias que permitam cada vez mais a miniatuarização e aumento da capacidade de processamento
– Clusters– Processamento paralelo
Grandes áreas• Redes e sistemas distribuídos
– Segurança da Informação– Protocolos de rede– Wireless– Topologias– Sistemas redundantes– Alta disponibilidade– Tolerância a falhas
Grandes áreas• Banco de Dados• Computadores são adequados para
armazenar e manipular dados rapidamente• O SGBD (Sistema de Gerenciamento de Banco
de Dados) é o software responsável por estas funcionalidades
• Existes SGBD para cada tipo de aplicações:– Pequeno volume e pequenos sistemas: Access,
FoxPro, Paradox, dBase IV, MySql, Postgres– Grande porte: Oracle, DB2, SQLServer, Ingres e
Informix
O SGBD• O SGBD é um programa que armazena os
dados e permite que eles sejam acessados qualquer momento
• SGBD’s podem armazenar vários Gb dados • Independente do tamanho dos arquivos de
dados o acesso aos dados deve ser rápido• Outra vantagem do SGBD é a existência
de uma linguagem de manipulação para os dados (SQL)
O SGBD• Assim como os sistemas
operacionais o SGBD pode ser acesso pelo usuário como por outro programa
• O SGBD também possui um núcleo que tem a responsabilidade de manipular com os arquivos.
Fundamentos de Bancos de Dados
• Toda informação em um SGBD fica armazenado em uma tabela
• Cada linha recebe o nome de registro• Cada coluna recebe o nome de
campo, cada campo possui um tipo que é definido pelo pessoa que criou a tabela
Fundamentos de Bancos de Dados
• Mas um sistema não é composto apenas por uma tabela. Então como os dados passam a ter sentido?
• Atualmente a maneira mais usual é a de se relacionar os dados utilizando funcionalidades do SGBD.
• Tais bancos de dados são chamados de bancos de dados relacionais
Fundamentos de Bancos de Dados
• Além dos sistemas relacionais existem ainda modelos hierárquicos e orientados a objetos
• Podemos relacionar os dados em uma tabela de várias maneiras:– Um pra um– Um pra muitos– Muitos para muitos
Linguagem de manipulação de dados
• SQL – É a linguagem que esta no coração
do SGBD– É semelhante a uma linguagem de
programação– Foi desenvolvida pela IBM
Considerações finais• Os bancos de dados podem ser
distribuídos– Permitem a utilização de dados
localizados em servidores geograficamente distantes
– Devido as limitações das redes geralmente esta distribuição e feita em servidores localizados na rede local
Considerações finais• A utilização de um servidor de
banco de dados favorece o modelo cliente servidor
• Nele temos um servidor central de banco de dados sendo acessado por diversos programas localizados na estações de trabalho
Grandes áreas• Inteligência Artificial
– Agentes inteligentes– Jogos– Sistemas especialistas– Tomada de decisão
O que vem por ai ...• O mercado esta cada vez mais saturado• Certificações são cada vez mais exigidas• Comprovação de experiência• Convergência , o que chamamos de NG• TV Digital• Sistemas estarão cada vez mais voltados a WEB• Centralização do processamento• Empresas de telefonia virando empresas de redes• ....