1.0- INTRODUÇÃO. 1 API é a sigla em inglês para Interface de Programação de Aplicativos.

Tamanho: px
Começar a partir da página:

Download "1.0- INTRODUÇÃO. 1 API é a sigla em inglês para Interface de Programação de Aplicativos."

Transcrição

1 1.0- INTRODUÇÃO No início dos anos 60, surgiram os primeiros grandes projetos de software, como os sistemas operacionais: CTSS, desenvolvido pelo MIT, e o OS 360 para a família de computadores IBM 360. Atualmente o software é o principal componente de um sistema de computação. O software está cada vez mais integrado à sociedade, sendo usado para controlar sistemas críticos como: sistemas financeiros, gerenciamento de comércio eletrônico, controle de tráfego aéreo, controle de sistemas telefônicos, equipamentos médicos etc. A construção de sistemas de software desenvolveu-se com a produção de programas voltados para o ambiente empresarial. Inicialmente, para proporcionar à empresa o controle de todos os seus dados operacionais, surgiram os sistemas de banco de dados. Hoje em dia, esses sistemas evoluíram ao ponto de aproveitarem a tecnologia da Internet para se tornarem poderosos servidores de aplicações e de arquivos que aprenderam a "falar" Java e XML. Portanto, os bancos de dados além de guardar e gerenciar um enorme volume de informações, permitem que os dados sejam acessados a partir de um browser e trazem recursos que ajudam as empresas a criar aplicações para a Web, sejam simples sites corporativos ou complexas operações de comércio eletrônico. O ponto inicial para se pensar em aplicações orientadas a Web foi a possibilidade de atingir acessibilidade praticamente ilimitada. Exemplificando: um sistema, desenvolvido sob medida para uma empresa, visando disponibilizar o acesso a todos os seus fornecedores, parceiros e clientes. Para ampliar as capacidades de desenvolvimento de software foi projetada a plataforma.net. Esta plataforma foi lançada em julho de 2001, como a primeira atualização importante da plataforma de desenvolvimento de software da Microsoft desde que a API 1 Win32 apareceu no Windows NT 3.0 em julho de 1 API é a sigla em inglês para Interface de Programação de Aplicativos. 9

2 1993. Ao contrário da Win32, que oferecia APIs mais poderosas do que a Win16, mas não mudava ferramentas ou técnicas, a plataforma.net faz alterações fundamentais nas ferramentas e técnicas usadas pelos desenvolvedores para criar aplicativos [CHERRY, 2001]. A Microsoft garante que a.net foi construída sobre três pilares: Segurança: a plataforma Microsoft.NET atende aos padrões mais modernos de segurança. Através de um ambiente de execução seguro e desenhado tendo em mente a hostilidade natural de ambientes de computação altamente distribuídos. As ferramentas de desenvolvimento da plataforma Microsoft.NET induzem a adoção de práticas melhores de programação, resultando em software com menos erros. Finalmente, a plataforma Microsoft.NET inclui ferramentas e serviços que dão a indivíduos e organizações controle total sobre como e quando suas informações podem ser acessadas e utilizadas. Padrões de mercado: a Microsoft tem o firme compromisso de agir em parceria com o resto da indústria de tecnologia para assegurar que os padrões usados para a criação e fornecimento de Web Services XML permaneçam íntegros e abertos a todas as empresas, inclusive suas concorrentes, submetendose a entidades de padronização como o World Wide Web Consortium (W3C) e a European Manufactures Association (ECMA). Isso assegurará que todos os Web Services XML serão compatíveis, independentemente de que ferramentas tenham sido utilizadas para criá-los e que empresas as forneceu. Tudo conectado: os produtos e serviços da plataforma.net transformam as ilhas de informação isoladas e fechadas em sistemas proprietários ou inadequados à colaboração em um mundo em que tudo é conectado. PCs, PDAs, telefones celulares, consoles de videogame, sites Internet, aplicativos e serviços podem ser compartilhados através de protocolos comuns, de maneira transparente e segura. 10

3 Com a plataforma.net, o desenvolvedor pode criar aplicativos Web para executar no servidor Internet Information Server (IIS) com mais facilidade. Ela também facilita a criação de aplicativos estáveis, confiáveis e seguros para Windows desktop. A plataforma de desenvolvimento.net contém: O.NET Framework, que inclui o Common Language Runtime (CLR), um componente de software para carregar e executar aplicativos; e novas bibliotecas de classe, coleções de código organizadas hierarquicamente e usadas pelos desenvolvedores em seus aplicativos para criar interfaces gráficas com usuário, acessar bancos de dados e arquivos e comunicar-se através da Web. As ferramentas de desenvolvimento.net, incluindo o ambiente integrado de desenvolvimento (IDE) do Visual Studio.NET para desenvolver e testar aplicativos, as linguagens de programação.net (como Visual Basic.NET e o novo Visual C#) que executam sob o CLR e usam as bibliotecas de classe. ASP.NET, uma biblioteca de classe especializada que substitui o antigo Active Server Pages (ASP) para criar tanto conteúdo Web dinâmico quanto aplicativos para servidores Web que usam protocolos da Internet e formatos de dados como HTML, XML e Simple Object Access Protocol (SOAP). A plataforma.net proporciona o desenvolvimento de software com base na tecnologia de objetos e componentes. Esta abordagem tem se revelado com inúmeros benefícios. Dentre estes, pode-se destacar a modularidade, a flexibilidade e a reusabilidade, características essenciais para a qualidade e a produtividade do desenvolvimento de software. 11

4 O principal objetivo deste trabalho é apresentar esta plataforma através de seus principais componentes, seu novo modelo de programação e execução de aplicativos e principais vantagens e problemas. Além de mostrar uma visão geral da estratégia de mercado da Microsoft para a plataforma.net. Faz-se também uma comparação com a plataforma concorrente da Sun Microsystems Java Enterprise Edition: a J2EE. 12

5 2.0- REVISÃO DE LITERATURA 2.1- Computador digital: a evolução das engrenagens mecânicas Em 1642, o francês Blase Pascal construiu uma máquina de calcular, o ábaco, que utilizava engrenagens mecânicas. Esta máquina podia apenas somar e subtrair, mas pelo seu impacto na computação o nome Pascal foi dado a uma moderna linguagem de programação. Passados 30 anos, o matemático alemão Leibniz construiu uma máquina mecânica que podia, além de somar e subtrair, multiplicar e dividir. Podemos dizer que Leibniz construiu uma máquina equivalente a uma calculadora de bolso com quatro funções, três séculos atrás. Passaram-se 150 anos até que, em 1822, o matemático Charles Babbage, na Universidade de Cambridge, construiu uma máquina de calcular que perfurava os resultados em uma placa de metal. Essa forma de escrita foi a precursora da escrita em cartões perfurados e em discos ópticos. A coroa inglesa investiu no projeto dessa máquina e Babbage construiu a máquina analítica. Como esta era programável em uma linguagem, ela precisava de um software. Nesse ponto da história Ada Lovelace construiu a primeira linguagem de programação, além de ser a primeira pessoa a programar uma máquina. A moderna linguagem de programação Ada foi assim chamada em sua homenagem. Nos anos de 1930, John Atanasoff e George Stibbitz, no Bell Labs, construíram uma máquina com relês eletromagnéticos surpreendentemente avançada para sua época: com aritmética binária e circuitos de memória. E em 1944, na Universidade de Harvard, Aiken apresentou o primeiro computador eletrônico: o Mark II. Na Segunda Guerra Mundial, as mensagens enviadas pelos alemães aos seus submarinos eram captadas pelos ingleses. Como essas mensagens eram 13

6 criptografadas, o ex-presidente dos Estados Unidos Thomas Jefferson construiu o Enigma, um computador eletrônico para descriptografar essas mensagens. Os Estados Unidos então resolveram investir em computadores eletrônicos e em 1946 surgiu o ENIAC (Eletronic Numerical, Integrator Calculator). Ocupava uma sala inteira e tinha centenas de botões e cabos entrelaçados. John Von Neumann, um dos projetistas do ENIAC, organizou uma equipe que projetou um novo computador: composto por memória, processador e unidades de entrada e saída. Os computadores atuais são baseados na arquitetura de Von Neumann. O prêmio Nobel de Física de 1956 foi dado aos inventores dos transitores. Esta invenção do Bell Labs proporcionou um avanço aos computadores, tanto que no final dos anos 60 surgiam os projetos voltados para o software. Nesta época foi desenvolvida a linguagem Algol 60, precursora da linguagem Pascal. No início dos anos 60 os circuitos integrados possibilitaram a produção de computadores muito mais rápidos e menores a um custo muito menor. A tecnologia dos computadores foi incrementada com a multiprogramação e com o time-sharing, que proporciona a execução de múltiplas tarefas simultaneamente. Nessa época, o MIT desenvolveu sistemas operacionais que permitiam que terminais remotos fossem conectados a um computador central por meio de linhas telefônicas. A partir de 1980 a VLSI (Very Large Scale Integration) possibilitou a colocação de centenas de milhares de transistores em uma pastilha (circuito integrado). Os minicomputadores, com capacidade de processamento superior aos primeiros mainframes se tornaram amplamente utilizados em escritórios, escolas e até em ambientes domésticos. Informações detalhadas sobre a evolução dos computadores podem ser vistas em [TANEMBAU, 1995]. 14

7 2.2 A história do software Nas décadas de 1940 a 1970 o principal objetivo da computação era desenvolver um hardware que ampliasse as capacidades de processamento e memória. Nos anos 80, avanços na microeletrônica proporcionaram computadores digitais com altíssimo poder computacional a um custo relativamente baixo. No início dos anos 90 a computação passou o foco para soluções implementadas em software. Afinal, a capacidade de processamento de um mainframe lançado no mercado em 1980 estava disponível em nossas casas. No início da computação os problemas implementados pelos programadores eram simples: por exemplo: calcular uma equação diferencial. Não eram problemas surpreendentes como implementar um sistema de tempo real para controle de vôos ou sistemas de segurança para Internet Bankings. Os problemas se relacionavam com o usuário e o programador; não haviam pessoas envolvidas. Mas os computadores eram cada vez mais utilizados e mais pessoas estavam envolvidas. As linguagens de alto nível começavam a ser inventadas no início dos anos 50 para facilitar a comunicação com a máquina. Mas os programas eram desenvolvidos para tarefas bem definidas. A partir da década de 1970, a multiprogramação e os sistemas multiusuários foram a base para a implementação de aplicações muito mais sofisticadas; como sistemas de tempo real controlando grandes quantidades de dados em milisegundos e sistemas sistemas de gerenciamento de banco de dados com suporte a transações on-line. No final dos anos 70 surgiram também novas empresas da área de informática: as software houses, que se concentravam na produção de software em escala. Nessa época universidades e empresas alocavam seus recursos para pesquisa e desenvolvimento de pacotes de software. Em meados dos anos 80, sistemas distribuídos em que múltiplos 15

8 computadores executavam tarefas de forma concorrente e comunicavam-se entre si ampliaram a complexidade dos sistemas de computação. Também nessa época o microprocessador permitiu o lançamento de produtos inteligentes: do automóvel aos fornos de microondas, de robôs no chão de fábrica a equipamentos hospitalares. O software estava sendo integrado ao hardware. Em 1990 o conceito de redes de computadores se tornou popular e começava o sucesso do computador pessoal. Em 1994 algumas pessoas falavam em Internet e em 1999 centenas de milhões de pessoas navegavam na Web diariamente, esse fenômeno social implicou no crescimento, em escala exponencial, da demanda mundial por software. Na perspectiva industrial, [PAULA FILHO, 2001] explica que se voltássemos em 1969, veríamos que a grande maioria dos profissionais de informática trabalhava em computadores de grande porte. Equipamentos de milhões de dólares! Seguindo sua linha de raciocínio, o custo de desenvolvimento dos aplicativos possíveis com a tecnologia da época era relativamente pequeno, se comparado com o custo do hardware. Surpreendentemente, o projeto de desenvolvimento de um sistema de telefonia móvel, sob a coordenação da UFMG, há poucos anos, foi implementado em uma plataforma de hardware que custou alguns milhares de dólares. A plataforma de software custou algumas centenas de milhares de dólares. A economia que esse sistema trouxe para o cliente foi de alguns milhares de dólares. Em três décadas houve uma inversão radical na economia da informática: o software se tornou o ponto principal no projeto de sistemas de computação. Tanto que atualmente, o software é a chave para sistemas de computação e, mais ainda, é um fator de diferenciação para uma empresa em relação às suas concorrentes. 2.3 Engenharia de Software: projeto e análise de software No início dos anos 60, surgiram os grandes projetos de software 16

9 desenvolvidos pelos pioneiros da computação. Por exemplo, o Sistema Operacional CTSS desenvolvido pelo MIT foi um grande projeto desenvolvido em equipe. Já em 1965, foram lançados os primeiros softwares comerciais. O melhor exemplo é o Sistema Operacional OS 360 para a família de computadores IBM 360. Nesta época as equipes de desenvolvimento começavam a questionar os problemas relacionados a construção dos softwares. Já se começava a perceber que projetos de software exigem previsão de custos e um plano de produção. Mas na grande maioria das vezes o software era desenvolvido como uma arte. As estimativas feitas pela equipe de desenvolvimento freqüentemente estavam incorretas. Os programas tinham muitos erros e a tentativa de correção desses erros produzia mais erros. Em 1979, uma pesquisa realizada nos Estados Unidos revelou que 2% dos softwares atingiam a funcionalidade exigida pelo cliente. Essa estatística se explicava pela inexistência ou a não aplicação de métodos, técnicas e ferramentas para auxiliar e padronizar o processo de desenvolvimento de software. Então foi inventado o termo: Crise de Software para sintetizar os problemas: softwares grandes não funcionavam adequadamente; estimativas de custo e tempo de desenvolvimento eram imprecisas; os computadores se tornavam cada vez mais rápidos, fáceis de usar e acessíveis. Isto implicava em uma demanda crescente por software cada vez maior e mais complexo, enquanto a capacidade de produção não estava tão acelerada quanto esta demanda. Informações detalhadas sobre a crise de software podem ser encontradas em [PRESSMAN, 1995]. No contexto da crise do software e do declínio dos custos de hardware paralelo a ampliação dos custos de software (ampliação causada pela demanda crescente) foi inventada a Engenharia de Software. [PRESSMAN, 1995] usa a definição de [BAUER, 1969] que explica: a Engenharia de Software é a aplicação de metodologias e técnicas de engenharia 17

10 visando obter economicamente softwares confiáveis e que funcionem com eficiência em máquinas reais. Segundo [VASCONCELOS, 1999]: a Engenharia de Software é a aplicação de ciência e matemática visando tornar as capacidades do equipamento úteis para o ser humano através de programas, procedimentos e documentação. O principal objetivo da Engenharia de Software é construir software de qualidade com a mínima alocação de recursos possível. É fácil notar que o software está se integrando à sociedade. Cada vez mais, o software é usado para controlar sistemas críticos como: sistemas financeiros, gerenciamento de comércio eletrônico, controle de tráfego aéreo, controle de sistemas telefônicos, equipamentos médicos etc. Isto garante o interesse crescente da sociedade em depender de software e, principalmente, mostra a importância crescente em se aprender a construir um software melhor. A Engenharia de Software define as fases de desenvolvimento de software: 1. Concepção: entrevista com o cliente/usário para se criar uma lista de atividades e/ou tarefas realizadas diariamente, semanalmente, mensalmente, anualmente e esporadicamente pelo cliente/usuário. Depois de listadas as atividades é essencial dividi-las em grupos e escrever um documento que mostre como a empresa funciona, quais as atividades e serviços realizados por ela. Este documento é chamado escopo. Nesta fase de concepção também se faz a modelagem. Um modelo é uma simplificação da realidade. Modelos são construídos para se entender o problema e as necessidades do cliente e servir como base para projetar o que ele realmente precisa. Além disso, auxiliam no planejamento e na determinação do produto final a ser desenvolvido; das fases, etapas e tarefas; de um planejamento e um cronograma de 18

11 execução; das ferramentas e matéria prima; das equipes de desenvolvimento. A modelagem é uma parte central de todas as atividades que levam à implantação de um bom software e à criação de uma documentação completa. É importante destacar os problemas relacionados à modelagem que se refletem na qualidade final do software: alocar os profissionais ideais para uma determinada tarefa não é uma tarefa trivial, visto que a limitação financeira se contrapõe ao fato de esses profissionais serem mais caros; o cliente muda de idéia ao longo do tempo de desenvolvimento; os desenvolvedores nem sempre tem conhecimento e iniciativa suficientes para resolver problemas inesperados; o cronograma não é cumprido porque o problema se mostra mais complexo do que o esperado; o cliente não consegue definir exatamente as suas necessidades e expectativas. 2. Análise: nesta fase são construídos os diagramas de Caso de Uso, de Sequencia e de Classe. Informações detalhadas sobre esses diagramas podem ser encontradas em [PAULA FILHO, 2001]. Além de determinar as informações que serão guardadas no computador e como elas serão agrupadas de forma que o software possa realizar corretamente suas tarefas com eficiência. 3. Projeto: nesta fase faz-se um dicionário de dados e diagramas extras que podem ser necessários dependendo dos objetivos e da complexidade da aplicação. 4. Implementação: com base no projeto, os programadores implementam as estruturas de dados, as funções e os procedimentos concretizando o que se tem a nível abstrato e conceitual. 5. Teste: é matematicamente impossível testar um sistema por completo então nesta fase aplicam-se técnicas para se construir uma base de dados para testar a maior parte do sistema possível. 19

12 6. Manutenção: esta fase é iniciada com a implantação do sistema em ambientes organizados. A manutenção pode ser de correção, adaptação e atualização. Do ponto de vista de [VASCONCELOS, 1999], é comun ouvirmos falar em "crise de software". Mas nem todos os projetos são exemplos de falhas de gerenciamento ou de engenharia. Existem produtos com sucesso espetacular. Sem sucessos tão grandes, o software não seria integrado à sociedade. Na verdade estes sucessos é que tem causado a explosiva demanda por software. Além disso, o crescimento rápido na demanda por software, combinado com os esforços requeridos na manutenção do software existente, cria um grande backlog entre as aplicações de software que precisam ser desenvolvidas e a capacidade de desenvolvimento. Isto é, graficamente a curva que descreve o crescimento da demanda é muito mais acentuada que a curva que descreve a capacidade de produção de software. Este é um problema que está bloqueando o sucesso de muitas empresas: novos produtos não podem ser lançados no mercado, e às vezes não saem das pranchetas dos projetistas, e novos serviços não podem ser oferecidos porque o software que é necessário não pode ser desenvolvido com a rapidez suficiente. Nesse contexto, [VASCONCELOS, 1999] destaca que a reutilização é um fator essencial na produção de software. A reutilização do conhecimento e de projetos anteriores é uma prática padrão em outras engenharias e está se tornando cada vez mais utilizada em projetos de software desenvolvidos em ambientes organizados. Existe uma demanda crescente por software que exige que se encontre o melhor caminho para se desenvolver software rápido, confiável e seguro com a mínima alocação de recursos possível. Essa é exatamente a meta da Engenharia de Software. 20

13 2.4 Processos: a produção do software O ciclo de vida do software Um processo é um conjunto de passos parcialmente ordenados, constituídos por atividades, métodos, práticas e transformações, usado para atingir uma meta. Esta meta geralmente está associada a um ou mais resultados concretos finais, que são os produtos da execução do processo [PAULA FILHO, 2001]. Do ponto de vista deste mesmo autor, o software é visto como um produto e como todo produto industrial, o software tem um ciclo de vida. Além disso, em um processo de desenvolvimento de software, o ponto de partida é a escolha de um modelo de ciclo de vida. O autor define os modelos: 1. Modelo de ciclo de vida em Cascata: são executados passos sequenciais que podem ser demarcados como pontos de controle que podem facilitar a gestão dos projetos. A primeira vista esse modelo parece totalmente confiável e utilizável em projetos de qualquer escala. Por outro lado, pode se visto como um modelo rígido e inflexível, em que as atividades de análise e projeto tem que ser muito bem dominadas. Isso porque erros nessas fases serão refletidos no produto final. Um outro ponto negativo é que o modelo em cascata puro é de baixa visibilidade para o cliente, que vê exclusivamente o resultado final do projeto. 2. Modelo de ciclo de vida em Sashimi: na prática é essencial permitir que, em fases posteriores, haja revisão e alteração de resultados das fases anteriores. Por exemplo, os modelos e documentos de análise e projeto podem ser alterados durante a fase 21

14 de implementação, na medida em que os problemas surgem. Este modelo é uma variação do modelo em cascata que permite a superposição entre as fases e a realimentação de correções. O ponto negativo é que esta superposição das fases é difícil de se gerenciar. 3. Modelo de ciclo de vida em Espiral: nesse modelo o produto é desenvolvido em uma série de iterações. Cada nova iteração corresponde a uma volta na espiral. Isso permite construir produtos em prazos curtos, com novas características e recursos que são acrescentados na medida em que a experiência descobre sua necessidade. As atividades de manutenção são usadas para identificar problemas; seus registros fornecem dados para definir os requisitos das próximas iterações. O principal problema do ciclo de vida em espiral é que ele exige gerenciamento sofsticado para garantir sua precisão e confiabilidade. 4. Modelo de ciclo de vida de Prototipagem Evolutiva: variação do modelo em espiral é usado para desenvolver o produto completo, mas construindo uma série de versões provisórias chamadas protótipos. Esses protótipos cobrem cada vez mais requisitos, até que se atinja o produto desejado. A Prototipagem Evolutiva permite que os requisitos sejam definidos progressivamente, e apresenta alta flexibilidade e visibilidade para os clientes. Os pontos negativos: gerenciamento sofisticado e a análise e o projeto devem ter excelente precisão para que o produto não se degenere ao longo dos protótipos. 5. Modelo de ciclo de vida por Estágios: uma variação do modelo em cascata em que o cliente recebe entregas de liberações parciais do produto. Isso amplia a visibilidade do projeto para o cliente. Mas continua com os outros pontos negativos do modelo em cascata puro. 6. Modelo de ciclo de vida de Entrega Evolutiva: combinação dos 22

15 modelos em Cascata e Prototipagem Evolutiva que permite que, em pontos bem definidos, os usuários possam avaliar partes do produto e fornecer realimentação quanto às decisões tomadas. Facilita também o acompanhamento do progresso de cada projeto, tanto por parte de seus gerentes como dos clientes. O ponto negativo continua fixado na análise e no projeto: devem produzir uma arquitetura robusta que mantenha a integridade ao longo dos ciclos de desenvolvimento. 7. Modelo de ciclo de vida Dirigido por Prazo: o produto é aquele desenvolvido em um prazo pré-determinado. Esse modelo é razoável quando se consegue definir um conjunto de requisitos em que se tem certeza que o prazo estabelecido é suficiente e as folgas são usadas para implementar requisitos opcionais. 8. Modelo de ciclo de vida Dirigido por Ferramenta: as ferramentas CASE (Engenharia de Software Auxiliada por Computador) impõe processos rígidos, que podem ser adequados para tipos bem específicos de produtos. A qualidade destes processos depende de forma fundamental da qualidade da ferramenta e do fato do uso do processo ser restrito ao domínio da aplicação. Uma solução alternativa ao desenvolvimento de software é comprá-lo. Quando se encontra um pacote de software que atende aos requisitos desejados, essa pode ser uma solução. [PAULA FILHO, 2001] explica que nesse caso, não há processo de desenvolvimento, mas processos de compra, de implantação e, possivelmente, de adaptação e integração com outros sistemas. E alerta que, dependendo do caso, isso pode ser mais complexo e caro que um processo de desenvolvimento. 23

16 2.4.2 A produção industrial de software Inicialmente um produto é construído por uma pessoa ou por uma equipe, mas na medida em que atinge sucesso no mercado, passa a evoluir. A partir daí, um número crescente de pessoas participa de sua manutenção e evolução. Por isso, quase todas as atividades de produção de software são empreendidas por organizações. Essa linha de raciocínio é de [PAULA FILHO, 2001]. Continuando nessa mesma linha, a maturidade de uma organização mede o grau de competência técnica e gerencial na produção de produtos de boa qualidade, dentro de prazos e custos razoáveis e previsíveis. A existência de processos definidos proporciona um nível operacional padronizado e reprodutível. Isso viabiliza a capacitação das pessoas de forma que se dependa menos de determinados indivíduos. A medida do êxito dos processos de produção é a medida de quanto eles contribuem para que os produtos sejam entregues aos clientes e usuários com melhor qualidade, pelo menor custo e no menor prazo possíveis. Diversas organizações no mundo conseguiram propor paradigmas do tipo modelos de capacitação. Em síntese, um modelo de capacitação tem o objetivo de avaliar a maturidade dos processos de produção. Um modelo de capacitação particularmente importante para a área de software é o CMM (Capability Maturity Model), do Software Engineering Institute. O CMM é patrocinado pelo Departamento de Defesa Americano, que o utiliza para a avaliação da capacidade de seus fornecedores de software. Esse modelo é amplamente aplicado na indústria americana de software, além de indústrias em todo o planeta. Partindo do princípio de que, para atingir os níveis superiores de maturidade, era necessário melhorar a prática dos processos em nível dos desenvolvedores individuais, Watts Humphrey propôs, em 1995, uma série de processos pessoais chamada de PSP, do inglês Personal Software Process 24

17 (Processo Pessoal de Software). Como conseqüência natural do PSP, Humphrey lançou uma publicação em 1999 com o TSP, do inglês Team Software Process (Processo de Software para times). O TSP usa um modelo em espiral. Os participantes do "time" de desenvolvedores são organizados de tal forma que cada desenvolvedor desenpenhe um ou dois papéis gerenciais bem definidos, além de dividir a carga de desenvolvimento. Os papéis suportados pelo processo são os de gerente de desenvolvimento, gerente de planejamento, gerente de qualidade, gerente de processos e gerente de suporte, além do líder do "time" Copyleft: a nova perspectiva para o software 2 No Instituto de Ciências Nucleares da Universidade Nacional Autônoma do México, o administrador de rede Miguel de Icaza em suas horas vagas coordena o projeto Gnome. Esse projeto mundial é um esforço mundial para desenvolver um sistema operacional para desktop que supere as múltiplas versões do Windows, a base do império Microsoft. Os programadores do Gnome dizem que este sistema será mais rápido, mais poderoso e terá menos probabilidades de quedas do que qualquer outro sistema criado em Redmond (cidade americana onde está instalada a matriz da Microsoft). É importante destacar que o Gnome é grátis, poderá ser obtido a custo zero da Internet. O objetivo principal do Gnome é reconquistar o comando dos sistemas operacionais das mãos da Microsoft. Eric S. Raymond, um defensor do software livre e editor do New Hacker's Dictionary diz: "o Gnome tem a chance de levar o mundo do software a um lugar muito diferente e melhor". Por que o Gnome obteria sucesso onde companhias maiores e mais ricas, como a Apple, fracassaram? Por dois motivos, de acordo com os defensores do 25

18 sistema. Primeiro: o Gnome foi criado para operar junto com o sistema operacional Linux. Famoso por sua velocidade, confiabilidade e eficiência, o Linux é operado em cerca de 17 milhões de sistemas de computadores em todo o mundo (estatística vista em de redes pequenas nos setores de computação de universidades a provedores de acesso à Internet e laboratórios de computação, passando por empresas de porte imenso como o Correio dos Estados Unidos. Com sua base de usuários crescendo à razão estimada de 40% ao ano (estatística: o Linux é o único sistema não criado pela Microsoft a expandir sua fatia de mercado. Os defensores do Linux dizem ainda que este sistema oferece, às pessoas, a oportunidade de conhecer o que é um "bom software" e estas, então, jamais voltarão a usar o Windows. A segunda e mais importante razão para que o Gnome tenha sucesso é que, como o Linux trata-se de um produto do movimento conhecido como software livre, ou de código fonte aberto. Não só o Gnome pode ser obtido grátis, como seu código fonte (as instruções básicas que a maior parte das empresas de software encara como as jóias de sua coroa) estará disponível para cópia e modificação. Ao liberar os códigos fonte do controle de uma única companhia, projetos como o Gnome podem contar com a contribuição de milhares de programadores. Porque nem mesmo a gigante Microsoft tem a capacidade de sobrepujar o talento unido de todo o mundo, alegam os defensores do software livre, o software de código fonte aberto sempre supera a competição. O Gnome, o Linux e o movimento do software livre têm uma origem única em 1979, quando a Xerox doou uma das primeiras impressoras a laser ao Laboratório de Inteligência Artificial do MIT. A máquina parava todo hora, o que induziu o programador Richard Stallman, do laboratório, a pedir à Xerox o código que controlava a máquina. Stallman planejava modificar o programa para 2 Da MIT'S MAGAZINE OF INNOVATION TECHNOLOGY REVIEW. 26

19 que ele respondesse a defeitos com a emissão de um alerta que chegaria às telas de todas as pessoas que estivessem esperando por impressão. Ou seja, todos teriam um incentivo para consertar a impressora imediatamente. Para fazer essa modificação, Stallman precisava do código fonte para o programa da impressora. Para ele tratava-se de um pedido corriqueiro. Na atmosfera de liberdade acadêmica do laboratório, os programadores trabalhavam em conjunto uns com os outros. Além do mais, a Xerox havia dado a Stallman o código fonte de uma impressora anterior, também problemática. Dessa vez, porém, a Xerox se recusou, pois adquiria copyright sobre o código fonte. Stallman achava que o copyright o impedia de melhorar o programa. A Xerox não estava sozinha. À medida que o software se transforma em um negócio de grande porte, o Vale do Silício começou a atrair muitos dos melhores programadores do laboratório de Inteligência Artificial. Quando esses programadores começaram a trabalhar para essas empresas de software, descobriu Stallman, os códigos que escreviam tornavam-se exclusivos e não mais podiam ser melhorados ou compartilhados. Copyright, conclui o idealista Stallman, estava destruindo a comunidade do software. Em 1984, Stallman fundou a Free Software Foundation. Sua meta principal era desenvolver um sistema operacional melhorado que fosse parecido com o Unix, mas que não usasse seu código fonte. Inventado em 1969 por dois pesquisadores do Bell Labs, o Unix agora está disponível em muitas versões diferentes, criadas por companhias com IBM, Compaq e Sun. Stallman batizou sua versão de GNU, um acrônimo para "GNU não é Unix". Numa espécie de homenagem a Stallman, o Gnome, quer dizer GNU Network Object Model Environment. O desafio GNU era enorme. Um sistema operacional define que tarefas os programadores podem solicitar de um computador (adicionar dois números, transferir dados a um disco rígido etc) e dirige os pedidos ao hardware (teclado, monitor, processador, e assim por diante). Mas o sistema é inútil sem centenas 27

20 de programas subsidiários para executar tarefas específicas, como administração de janelas e comunicação com impressora e outros periféricos. Para produzir um sistema funcional, o projeto GNU tinha de criar todos esses programas. Miguel de Icaza brincava: "É como construir um avião a jato a partir do zero em sua garagem". Em 1990, dezenas de programas haviam sido criados e estavam em uso em todo o mundo, mas o coração do sistema operacional GNU ainda não havia sido produzido. Parte da razão era que Stallman optara por não duplicar o kernel do Unix, mas basear o sistema GNU num kernel avançado e experimental desenvolvido pela Universidade Carnegie Mellon. Único programador a receber um fellowship MacArthur, láurea reservada a gênios, Stallman era uma das poucas pessoas no mundo com a capacidade de enfrentar a tarefa de desenvolver um kernel radicalmente novo, e possivelmente a única com a capacidade de fazê-lo por conta própria. Mas então suas mãos, esgotadas com a digitação de tantos códigos, começaram a lhe dar problemas e a dor o impedia de trabalhar com o teclado. Depois de Stallman, foi a vez de Linus Torvalds, que tinha 21 anos e estudava na Universidade de Helsink em Torvalds estava longe de ser um especialista em programação. Mas detestava o MS-DOS e ao comprar um 386 com 4 MB de memória percebeu que era uma máquina muito pequena para operar em Unix. Ignorando o DOS e classificando-o como software de "máqualidade", Torvalds mudou o kernel do projeto GNU para poder usá-lo. Eis que ele havia criado um sistema operacional completo. Pela primeira vez a potência do Unix estava disponível para pequenos computadores em um sistema operacional batizado pelos seus amigos de Linux. Torvalds registrou o Linux com o copyleft de Stallman e permitiu que quem o quisesse o obtivesse on-line; quando as pessoas melhoravam o código, ele colocava as versões aperfeiçoadas à disposição na Internet. Isso foi viabilizado porque como os preços dos 28

- Aula 2 ESTÁGIOS DA EVOLUÇÃO DA ARQUITETURA DOS COMPUTADORES

- Aula 2 ESTÁGIOS DA EVOLUÇÃO DA ARQUITETURA DOS COMPUTADORES - Aula 2 ESTÁGIOS DA EVOLUÇÃO DA ARQUITETURA DOS COMPUTADORES 1. INTRODUÇÃO Centenas de tipos diferentes de computadores foram projetados e construídos ao longo do ciclo evolutivo dos computadores digitais.

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 1 Introdução: Um computador é uma máquina (conjunto de partes eletrônicas e eletromecânicas) capaz de sistematicamente coletar, manipular e fornecer resultados da manipulação de dados para um ou mais objetivos.

Leia mais

Cursos de Computação. Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 01 - História e Funções dos Sistemas Operacionais

Cursos de Computação. Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 01 - História e Funções dos Sistemas Operacionais Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 01 - História e Funções dos Sistemas Operacionais Visão do Sistema Operacional programadores e analistas usuários programas,

Leia mais

Histórico dos Computadores

Histórico dos Computadores Histórico dos Computadores O mais antigo equipamento para cálculo foi o ábaco (Fig. 1), que era um quadro com arruelas móveis, dispostas em arames paralelos, tendo, portanto, um mecanismo simples. Surgido

Leia mais

Análise e Projeto de. Aula 01. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br

Análise e Projeto de. Aula 01. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Análise e Projeto de Sistemas I Aula 01 Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Análise e Projeto de Sistemas I Horário das Aulas: 2as feiras das 10h10 às 11h40 e 5as feiras das 08h25

Leia mais

Softwares de Sistemas e de Aplicação

Softwares de Sistemas e de Aplicação Fundamentos dos Sistemas de Informação Softwares de Sistemas e de Aplicação Profª. Esp. Milena Resende - milenaresende@fimes.edu.br Visão Geral de Software O que é um software? Qual a função do software?

Leia mais

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE Capítulo 6 ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 6.1 2003 by Prentice Hall OBJETIVOS Qual é a capacidade de processamento e armazenagem que sua organização precisa para administrar suas informações

Leia mais

Engenharia de Software

Engenharia de Software CENTRO UNIVERSITÁRIO NOVE DE JULHO Profº. Edson T. França edson.franca@uninove.br Software Sistemas Conjunto de elementos, entre os quais haja alguma relação Disposição das partes ou dos elementos de um

Leia mais

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 1 OBJETIVOS 1. Qual é a capacidade de processamento e armazenagem que sua organização precisa para administrar suas informações e transações empresariais?

Leia mais

Introdução à Computação

Introdução à Computação Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Introdução à Computação DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Informática x Computação

Leia mais

Características do Software

Características do Software Questionamentos Por que tanta demora para entregar? Por que os prazos se atrasam? Por que os custos são altos? Por que não achar todos os erros antes de entregar? Por que dificuldade em medir o progresso

Leia mais

Sistema Operacional. História Sistema Operacional 1. QI Escolas e Faculdades Apostila de Linux

Sistema Operacional. História Sistema Operacional 1. QI Escolas e Faculdades Apostila de Linux 4 Capítulo 1 Sistema Operacional É uma coleção de programas que inicializa hardwares, fornece rotinas básicas para controle de dispositivos, mantém a integridade de um sistema. Um sistema operacional de

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Aula 01 Tecnologias e Perspectiva Histórica Edgar Noda Pré-história Em 1642, Blaise Pascal (1633-1662) construiu uma máquina de calcular mecânica que podia somar

Leia mais

Laudon & Laudon Essentials of MIS, 5th Edition. Pg. 6.1

Laudon & Laudon Essentials of MIS, 5th Edition. Pg. 6.1 Laudon & Laudon Essentials of MIS, 5th Edition. Pg. 6.1 6 OBJETIVOS OBJETIVOS ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 6.1 2003 by Prentice Hall Qual é a capacidade de processamento e armazenagem

Leia mais

Fundamentos da Informática

Fundamentos da Informática 1 PROCESSAMENTO DE DADOS I - FUNDAMENTOS A) CONCEITO DE INFORMÁTICA - é a ciência que estuda o tratamento automático e racional da informação. B) PROCESSAMENTO DE DADOS 1) Conceito Processamento de dados

Leia mais

Ambientes Visuais. Ambientes Visuais

Ambientes Visuais. Ambientes Visuais Ambientes Visuais Inicialmente, apenas especialistas utilizavam os computadores, sendo que os primeiros desenvolvidos ocupavam grandes áreas e tinham um poder de processamento reduzido. Porém, a contínua

Leia mais

PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE 1. VISÃO GERAL 1.1. PROCESSOS EM GERAL

PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE 1. VISÃO GERAL 1.1. PROCESSOS EM GERAL PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE 1. VISÃO GERAL 1.1. PROCESSOS EM GERAL Um processo é um conjunto de passos parcialmente ordenados, constituídos por atividades, métodos, práticas e transformações,

Leia mais

Prof. Antonio Torres antonioctorres@gmail.com @_antonioctorres. Fundamentos de Sistemas Operacionais UNIP/2015

Prof. Antonio Torres antonioctorres@gmail.com @_antonioctorres. Fundamentos de Sistemas Operacionais UNIP/2015 Prof. Antonio Torres antonioctorres@gmail.com @_antonioctorres Fundamentos de Sistemas Operacionais UNIP/2015 Disciplinas FUNDAMENTOS DE SISTEMAS OPERACIONAIS Horários Quarta-feira Fundamentos de Sistemas

Leia mais

Informática I. Aula 19. http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1

Informática I. Aula 19. http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1 Informática I Aula 19 http://www.ic.uff.br/~bianca/informatica1/ Aula 19-20/11/06 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Calculadoras Mecânicas

Calculadoras Mecânicas ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES Evolução e Desempenho de Computadores 1ª Calculadora - séc. V a.c Muitos povos da antiguidade utilizavam o ábaco para a realização de cálculos do dia a dia, principalmente

Leia mais

História e Organização Básica de Computadores

História e Organização Básica de Computadores História e Organização Básica de Computadores Arquitetura de Computadores Introdução Durante a evolução do computador digital moderno foram projetadas e construídas centenas de diferentes tipos de computadores.

Leia mais

Introdução à Computação: História dos computadores

Introdução à Computação: História dos computadores Introdução à Computação: História dos computadores Ricardo de Sousa Bri.o rbri.o@ufpi.edu.br DIE- UFPI 2004 by Pearson Education Objetivos Aprender sobre a história dos computadores. 2004 by Pearson Education

Leia mais

A Evolução dos Sistemas Operacionais

A Evolução dos Sistemas Operacionais Capítulo 3 A Evolução dos Sistemas Operacionais Neste capítulo, continuaremos a tratar dos conceitos básicos com a intensão de construirmos, agora em um nível mais elevado de abstração, o entendimento

Leia mais

Disciplina de Informática. Profª. Me. Valéria Espíndola Lessa lessavaleria@gmail.com Valeria-lessa@uergs.edu.br

Disciplina de Informática. Profª. Me. Valéria Espíndola Lessa lessavaleria@gmail.com Valeria-lessa@uergs.edu.br Disciplina de Informática Profª. Me. Valéria Espíndola Lessa lessavaleria@gmail.com Valeria-lessa@uergs.edu.br 1 O que é Informática? Informática A Informática nasceu da ideia de auxiliar o homem nos trabalhos

Leia mais

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br MARCOS DA ARQUITERURA DE COMPUTADORES Geração Zero

Leia mais

A história dos sistemas operacionais

A história dos sistemas operacionais A história dos sistemas operacionais Atualmente, os sistemas operacionais (SO) estão cada vez mais fáceis de usar, possuindo interfaces muito simples e bonitas. Contudo, todas estas funcionalidades não

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 01 - Introdução Edirlei Soares de Lima O que é um sistema operacional? Um computador moderno consiste em: Um ou mais processadores; Memória principal;

Leia mais

EVOLUÇÃO DOS SIST. DE COMPUTAÇÃO DÉC. DE 50 E 60

EVOLUÇÃO DOS SIST. DE COMPUTAÇÃO DÉC. DE 50 E 60 INTRODUÇÃO REDES EVOLUÇÃO DOS SIST. DE COMPUTAÇÃO DÉC. DE 50 E 60 Computadores eram máquinas grandes e complexas, operadas por pessoas altamente especializadas; Não havia interação direta entre usuários

Leia mais

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Engenharia de Software Introdução Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Tópicos Apresentação da Disciplina A importância do Software Software Aplicações de Software Paradigmas

Leia mais

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Engenharia de Software Introdução Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Tópicos Apresentação da Disciplina A importância do Software Software Aplicações de Software Paradigmas

Leia mais

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software O que é software? Software e Engenharia de Software Programas de computador Entidade abstrata. Ferramentas (mecanismos) pelas quais: exploramos os recursos do hardware. executamos determinadas tarefas

Leia mais

Fundamentos e Suporte de Computadores. Professora Monalize

Fundamentos e Suporte de Computadores. Professora Monalize Fundamentos e Suporte de Computadores Professora Monalize COMPUTADOR DIGITAL é um equipamento eletrônico que processa dados usando programas, podendo ser dividido em: HARDWARE : parte "física, é o equipamento

Leia mais

Fundamentos de Programação I

Fundamentos de Programação I 1 Universidade Tecnológica Federal do Paraná UTFPR Campus: Campo Mourão Professor: Rafael Henrique Dalegrave Zottesso E-mail: rafaelzottesso@utfpr.edu.br Material cedido por: Prof. Luiz Arthur Sumário:

Leia mais

Ferramentas Web para controle e supervisão: o que está por vir

Ferramentas Web para controle e supervisão: o que está por vir Artigos Técnicos Ferramentas Web para controle e supervisão: o que está por vir Marcelo Salvador, Diretor de Negócios da Elipse Software Ltda. Já faz algum tempo que ouvimos falar do controle e supervisão

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Atividade Capitulo 6 - GABARITO

Atividade Capitulo 6 - GABARITO Atividade Capitulo 6 - GABARITO 1. A Internet é uma força motriz subjacente aos progressos em telecomunicações, redes e outras tecnologias da informação. Você concorda ou discorda? Por quê? Por todos os

Leia mais

16/09/2012. Agenda. Introdução. Introdução. Tipos de Software (Básico) Tipos de Software. Curso Conexão Noções de Informática

16/09/2012. Agenda. Introdução. Introdução. Tipos de Software (Básico) Tipos de Software. Curso Conexão Noções de Informática Curso Conexão Noções de Informática Aula 2 Arquitetura de Computadores (Software) Agenda Introdução; Tipos de Software; Básico; Aplicativo; Livre; Proprietário. Pirataria de Software; Demos, Freewares

Leia mais

Software de sistema Software aplicativo

Software de sistema Software aplicativo SOFTWARE O que é Software? Software, logicial ou programa de computador é uma sequência de instruções a serem seguidas e/ou executadas, na manipulação, redireccionamento ou modificação de um dado/informação

Leia mais

Microsoft.NET. Desenvolvimento Baseado em Componentes

Microsoft.NET. Desenvolvimento Baseado em Componentes Microsoft.NET Lirisnei Gomes de Sousa lirisnei@hotmail.com Jair C Leite jair@dimap.ufrn.br Desenvolvimento Baseado em Componentes Resolução de problemas específicos, mas que podem ser re-utilizados em

Leia mais

Introdução a Computação. A Primeira Geração. A Segunda Geração. Geração dos Computadores. Geração dos Computadores. Geração de Computadores

Introdução a Computação. A Primeira Geração. A Segunda Geração. Geração dos Computadores. Geração dos Computadores. Geração de Computadores Introdução a Computação Geração de Computadores 1ª Geração: 1950 Circuitos eletrônicos a Válvulas Operações Internas em Milissegundos Programados em Linguagem de Máquina 1 2 A Primeira Geração O UNIVAC

Leia mais

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software Análise e Projeto de Sistemas Análise e Projeto de Sistemas Contextualização ENGENHARIA DE SOFTWARE ANÁLISE E PROJETO DE SISTEMAS ENGENHARIA DA INFORMAÇÃO Perspectiva Histórica Engenharia de Software 1940:

Leia mais

Prof. Gregorio Perez gregorio@uninove.br 2007

Prof. Gregorio Perez gregorio@uninove.br 2007 Sistemas Operacionais I Parte I Introdução Roteiro Prof. Gregorio Perez gregorio@uninove.br 2007 1 Introdução 1.1 O que é um Sistema Operacional? 1.2 Motivações 2 Breve História 2.1 Décadas de 1940s e

Leia mais

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 03

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 03 INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 03 fevereiro/2011 Surgimento, desenvolvimento e evolução dos sistemas operacionais até os sistemas modernos. 1 - Introdução A evolução dos sistemas operacionais

Leia mais

ENIAC. Introdução aos Computadores e à Programação (Noções Básicas)

ENIAC. Introdução aos Computadores e à Programação (Noções Básicas) ENIAC Introdução aos Computadores e à ção (Noções Básicas) Introdução aos Computadores e à ção (Noções Básicas) 1 Introdução aos Computadores e à ção (Noções Básicas) 2 O transistor foi inventado em 1947

Leia mais

1. Histórico e Evolução dos Computadores

1. Histórico e Evolução dos Computadores Faculdade UNIREAL Centro Educacional de Ensino Superior de Brasília 1. Histórico e Evolução dos Computadores A evolução da Informática O computador que conhecemos hoje é uma máquina programável que processa

Leia mais

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 6 ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE OBJETIVOS Qual é a capacidade de processamento e armazenagem que sua organização precisa para administrar suas informações e transações empresariais?

Leia mais

Engenharia de Software-2003

Engenharia de Software-2003 Engenharia de Software-2003 Mestrado em Ciência da Computação Departamento de Informática - UEM Profa. Dra. Elisa H. M. Huzita eng. de software-2003 Elisa Huzita Produto de Software Conceitos Software

Leia mais

Introdução INTRODUÇÃO À COMPUTAÇÃO M. Sistema Computacional. Máquina Virtual. Solução 8/10/10. O problema de comunicação humanocomputador

Introdução INTRODUÇÃO À COMPUTAÇÃO M. Sistema Computacional. Máquina Virtual. Solução 8/10/10. O problema de comunicação humanocomputador Introdução INTRODUÇÃO À COMPUTAÇÃO M M.Sc. Ricardo de Sousa Britto (rbritto@ufpi.edu.br) Computador: Máquina programável, de propósito geral, que processa informação. Programa: Seqüência de instruções

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 2 Computação em Nuvem Desafios e Oportunidades A Computação em Nuvem

Leia mais

Resumo cap. 4. Tecnologia de rede e telecomunicações - Proporciona a conectividade de dados, voz e vídeo a funcionários, clientes e fornecedores

Resumo cap. 4. Tecnologia de rede e telecomunicações - Proporciona a conectividade de dados, voz e vídeo a funcionários, clientes e fornecedores Resumo cap. 4 4.1) Infra-estrutura de TI: hardware As empresas contemporâneas exigem uma ampla variedade de equipamentos computacionais, software e recusos de comunicação apenas para funcionar e resolver

Leia mais

SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL

SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL 1 O ábaco romano O ábaco chinês Dispositivo de calcular frequentemente construído como um quadro de madeira com contas que deslizam sobre fios. Esteve em uso séculos antes da adoção do sistema de numeração

Leia mais

Planejamento de TI usando Cenários Prospectivos: Tecnologias de Desenvolvimento de Sistemas

Planejamento de TI usando Cenários Prospectivos: Tecnologias de Desenvolvimento de Sistemas Planejamento de TI usando Cenários Prospectivos: Tecnologias de Desenvolvimento de Sistemas Sidnei da Silva 11 de julho de 2007 1 Sumário 1 Dados Fundamentais 3 2 Definição do Problema 3 2.1 Questão...............................

Leia mais

UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Curso de Introdução à Informática Prof: Anilton Joaquim da Silva / Ezequiel Roberto Zorzal

UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Curso de Introdução à Informática Prof: Anilton Joaquim da Silva / Ezequiel Roberto Zorzal UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Curso de Introdução à Informática Prof: Anilton Joaquim da Silva / Ezequiel Roberto Zorzal AULA Informática: Aplicações e Benefícios Advocacia

Leia mais

Disciplina: Introdução à informática Profª Érica Barcelos

Disciplina: Introdução à informática Profª Érica Barcelos Disciplina: Introdução à informática Profª Érica Barcelos CAPÍTULO 3 1. ARQUITETURA DO COMPUTAÇÃO- SOFTWARE Vimos nos capítulos anteriores que durante muitas décadas vários projetos foram realizados para

Leia mais

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS

Leia mais

Thin Clients : aumentando o potencial dos sistemas SCADA

Thin Clients : aumentando o potencial dos sistemas SCADA Artigos Técnicos Thin Clients : aumentando o potencial dos sistemas SCADA Tarcísio Romero de Oliveira, Engenheiro de Vendas e Aplicações da Intellution/Aquarius Automação Industrial Ltda. Um diagnóstico

Leia mais

EVOLUÇÃO DAS TECNOLOGIAS

EVOLUÇÃO DAS TECNOLOGIAS A ERA DA COMPUTAÇÃO EVOLUÇÃO DAS TECNOLOGIAS Wagner de Oliveira Década de 40 1946: Konrad Zuze desenvolve a Plankalkul: a primeira linguagem de programação de alto nível, não foi usada. 1949: Aparece a

Leia mais

Fundamentos da Informática. História dos Computadores Prof. Hélder Almeida www.helderalmeida.com.br

Fundamentos da Informática. História dos Computadores Prof. Hélder Almeida www.helderalmeida.com.br Fundamentos da Informática História dos Computadores Prof. Hélder Almeida www.helderalmeida.com.br História da Computação Hoje em dia, os computadores estão presentes em nossa vida de uma forma nunca vista

Leia mais

Programação para Dispositivos Móveis

Programação para Dispositivos Móveis Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 02 História do desenvolvimento de software para dispositivos móveis Dalton Martins dmartins@gmail.com São

Leia mais

Conteúdo SOFTWARE LIVRE. Terminologia. Histórico de Software Livre. Terminologia: Software livre. Terminologia: Software livre

Conteúdo SOFTWARE LIVRE. Terminologia. Histórico de Software Livre. Terminologia: Software livre. Terminologia: Software livre Conteúdo SOFTWARE LIVRE SCE 186 - Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestre de 2002 Histórico de Software Livre Terminologia Fases do Licença de Software Livre

Leia mais

André Aziz (andreaziz@deinfo.ufrpe.br) Francielle Santos (francielle@deinfo.ufrpe.br)

André Aziz (andreaziz@deinfo.ufrpe.br) Francielle Santos (francielle@deinfo.ufrpe.br) André Aziz (andreaziz@deinfo.ufrpe.br) Francielle Santos (francielle@deinfo.ufrpe.br) Apresentações; A disciplina: Objetivos; Cronograma; Avaliação; O que é Computação; Breve histórico. DEINFO/UFRPE 2

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com O que veremos hoje... Evolução Histórica Motivação Conceitos Características

Leia mais

Informática Instrumental Aula 1. Prof. Msc. Fernando Nakayama de Queiroz

Informática Instrumental Aula 1. Prof. Msc. Fernando Nakayama de Queiroz Informática Instrumental Aula 1 Prof. Msc. Fernando Nakayama de Queiroz Ementa da disciplina 1. Apresentação do sistema operacional windows e linux; 2. Aprendendo a operar o teclado e principais teclas

Leia mais

AULA 01 CONCEITOS BÁSICOS DE PROGRAMAÇÃO. Eduardo Camargo de Siqueira INFORMÁTICA APLICADA TÉCNICO EM ELETRÔNICA

AULA 01 CONCEITOS BÁSICOS DE PROGRAMAÇÃO. Eduardo Camargo de Siqueira INFORMÁTICA APLICADA TÉCNICO EM ELETRÔNICA AULA 01 CONCEITOS BÁSICOS DE PROGRAMAÇÃO Eduardo Camargo de Siqueira INFORMÁTICA APLICADA TÉCNICO EM ELETRÔNICA CURIOSIDADE 2 O COMPUTADOR O homem sempre procurou máquinas que o auxiliassem em seu trabalho.

Leia mais

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc. Implementar servidores de Web/FTP e DFS Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.br Conteúdo programático Introdução ao protocolo HTTP Serviço web

Leia mais

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos:

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos: Estruturas de Sistemas Operacionais Podemos analisar um sistema operacional sob diversos aspectos: Os serviços que o sistema operacional oferece. A interface que o sistema operacional torna disponível

Leia mais

Sistemas Operacionais. (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto

Sistemas Operacionais. (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto Sistemas Operacionais (Capítulo 3) INTRODUÇÃO À ENGENHARIA DA COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Definições 2. Classificações 3. CPU 4. Memória 5. Utilitários O que se

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Computadores: Ferramentas para a Era da Informação Material Didático do Livro: Introdução à Informática Capron,, H. L. e Johnson, J. A Pearson Education Componentes de um Sistema

Leia mais

Capítulo 1 Introdução

Capítulo 1 Introdução Capítulo 1 Introdução Programa: Seqüência de instruções descrevendo como executar uma determinada tarefa. Computador: Conjunto do hardware + Software Os circuitos eletrônicos de um determinado computador

Leia mais

Gerenciamento unificado para milhares de ativos por toda a vida útil

Gerenciamento unificado para milhares de ativos por toda a vida útil Gerenciamento unificado milhares de ativos por toda a vida útil O Endpoint Manager da IBM, construído com tecnologia BigFix, oferece gerenciamento mais rápido e inteligente Destaques Gerencie milhares

Leia mais

IBM Cognos Business Intelligence Scorecarding

IBM Cognos Business Intelligence Scorecarding IBM Cognos Business Intelligence Scorecarding Unindo a estratégia às operações com sucesso Visão Geral O Scorecarding oferece uma abordagem comprovada para comunicar a estratégia de negócios por toda a

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Aula 04: Sistema Operacional Material Didático do Livro: Introdução à Informática Capron,, H. L. e Johnson, J. A Pearson Education Sistemas Operacionais: Software Oculto Serve

Leia mais

CURSO TECNOLÓGICO 2008/01 1º SEMESTRE. Programação e Estruturas de Dados Fundamentais

CURSO TECNOLÓGICO 2008/01 1º SEMESTRE. Programação e Estruturas de Dados Fundamentais 1º SEMESTRE Programação e Estruturas de Dados Fundamentais 8 Créditos Desenvolver a lógica de programação através da construção de algoritmos utilizando português estruturado Representar a solução de problemas

Leia mais

Virtualização de Desktops NComputing

Virtualização de Desktops NComputing NComputing Resumo Todos já nos acostumamos ao formato do PC, que permite que cada usuário tenha sua própria CPU, seu próprio disco rígido e sua própria memória para rodar seus aplicativos. Mas os computadores

Leia mais

Estudo comparativo entre tecnologias Java: Applet e JWS.

Estudo comparativo entre tecnologias Java: Applet e JWS. Estudo comparativo entre tecnologias Java: Applet e JWS. Clara Aben-Athar B. Fernandes¹, Carlos Alberto P. Araújo¹ 1 Centro Universitário Luterano de Santarém Comunidade Evangélica Luterana (CEULS/ULBRA)

Leia mais

Noções de Software. André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com)

Noções de Software. André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com) Noções de Software André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com) Noções de Software; Sistemas Operacionais: Evolução; Conceitos Básicos; Tipos; Exemplos. DEINFO/UFRPE

Leia mais

Tópicos. Engenharia de Software: Uma Visão Geral

Tópicos. Engenharia de Software: Uma Visão Geral Tópicos 2 3 Engenharia de Software: Uma Visão Geral SCE 186 - Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestre de 2002 A importância do Software Software Aplicações

Leia mais

Autoria Web Apresentação e Visão Geral sobre a Web

Autoria Web Apresentação e Visão Geral sobre a Web Apresentação e Visão Geral sobre a Web Apresentação Thiago Miranda Email: mirandathiago@gmail.com Site: www.thiagomiranda.net Objetivos da Disciplina Conhecer os limites de atuação profissional em Web

Leia mais

01/04/2012. Voltar. Voltar

01/04/2012. Voltar. Voltar Introdução à Informática Capítulo 3 Sistemas Operacionais: Software em Segundo Plano Objetivos Descrever as funções de um sistema operacional. Explicar os fundamentos do sistema operacional de um computador.

Leia mais

ICE INSTITUTO CUIABADO DE EDUCAÇÃO CURSO DE CIÊNCIA DA COMPUTAÇÃO 4º SEMESTRE RECURSOS HUMANOS CARLOS EDUARDO JULIANI

ICE INSTITUTO CUIABADO DE EDUCAÇÃO CURSO DE CIÊNCIA DA COMPUTAÇÃO 4º SEMESTRE RECURSOS HUMANOS CARLOS EDUARDO JULIANI ICE INSTITUTO CUIABADO DE EDUCAÇÃO CURSO DE CIÊNCIA DA COMPUTAÇÃO 4º SEMESTRE RECURSOS HUMANOS CARLOS EDUARDO JULIANI SOFTWARE LIVRE E SOFTWARE PROPRIETARIO Software Livre. O software livre foi desenvolvido,

Leia mais

Introdução ao C# . Visão geral do.net Framework

Introdução ao C# . Visão geral do.net Framework Introdução ao C# Microsoft.NET (comumente conhecido por.net Framework - em inglês: dotnet) é uma iniciativa da empresa Microsoft, que visa uma plataforma única para desenvolvimento e execução de sistemas

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 5 Servidores de Aplicação

Leia mais

CC Montagem e manutenção de hardware Docente: Nataniel Vieira 1 sem Técnico em Informática Roteiro 06: Atividade sobre o Documentário RevolutionOS

CC Montagem e manutenção de hardware Docente: Nataniel Vieira 1 sem Técnico em Informática Roteiro 06: Atividade sobre o Documentário RevolutionOS SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS CC Montagem e manutenção de hardware Docente: Nataniel Vieira 1 sem Técnico em Informática Roteiro 06: Atividade sobre o

Leia mais

CA Nimsoft Monitor para servidores

CA Nimsoft Monitor para servidores DOCUMENTAÇÃO TÉCNICA Setembro de 2012 CA Nimsoft Monitor para servidores agility made possible CA Nimsoft para monitoramento de servidores sumário CA Nimsoft Monitor para servidores 3 visão geral da solução

Leia mais

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Introdução à Programação Orientada a Objetos Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Fev/2014 Histórico das linguagens de programação ENIAC (1944) Programação

Leia mais

AUTOMAÇÃO DE ESCRITÓRIOS ADE

AUTOMAÇÃO DE ESCRITÓRIOS ADE Curso: TÉCNICO EM INFORMÁTICA com Habilitação em Programação e Desenvolvimento de Sistemas. AUTOMAÇÃO DE ESCRITÓRIOS ADE NOTA DE AULA 01 Assunto: Introdução a informática. Histórico do computador. Conceitos

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Evolução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Introdução Componentes de um sistema computacional Conceituação Características desejáveis Organização

Leia mais

Introdução a Computação

Introdução a Computação Sistemas Operacionais: Software Oculto Introdução a Computação Sistemas Operacionais Serve como um intermediário entre o hardware e os softwares aplicativos. Sistema Operacional Software de sistemas Kernel

Leia mais

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

Leia mais

Princípios de TI - Computadores. Sistema Operacional. CECOMP Colegiado de Engenharia da Computação. Prof. Fábio Nelson. Slide 1

Princípios de TI - Computadores. Sistema Operacional. CECOMP Colegiado de Engenharia da Computação. Prof. Fábio Nelson. Slide 1 Sistema Operacional Slide 1 Sistema Operacional Um conjunto de programas que se situa entre os softwares aplicativos e o hardware: Gerencia os recursos do computador (CPU, dispositivos periféricos). Estabelece

Leia mais

2 Conceitos relativos a Web services e sua composição

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

Leia mais

CC Montagem e manutenção de hardware Docente: Nataniel Vieira 1 sem Técnico em Informática Roteiro 06: Atividade sobre o Documentário RevolutionOS

CC Montagem e manutenção de hardware Docente: Nataniel Vieira 1 sem Técnico em Informática Roteiro 06: Atividade sobre o Documentário RevolutionOS SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS CC Montagem e manutenção de hardware Docente: Nataniel Vieira 1 sem Técnico em Informática Roteiro 06: Atividade sobre o

Leia mais

Figura 1: Ábaco: considerado a primeira ferramenta em computação.

Figura 1: Ábaco: considerado a primeira ferramenta em computação. Introdução à ciência da computação Aula 1: A maioria dos autores considera que, a primeira ferramenta para a computação foi o ábaco. Este instrumento, que hoje conhecemos como pedras polidas enfileiradas

Leia mais

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE CMP1280/CMP1250 Prof. Me. Fábio Assunção Introdução à Engenharia de Software SOFTWARE Programa de computador acompanhado dos dados de documentação e configuração

Leia mais

INTERNET HOST CONNECTOR

INTERNET HOST CONNECTOR INTERNET HOST CONNECTOR INTERNET HOST CONNECTOR IHC: INTEGRAÇÃO TOTAL COM PRESERVAÇÃO DE INVESTIMENTOS Ao longo das últimas décadas, as organizações investiram milhões de reais em sistemas e aplicativos

Leia mais

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional O conteúdo deste documento tem por objetivo apresentar uma visão geral

Leia mais

Professor: Roberto Franciscatto. Curso: Engenharia de Alimentos 01/2010 Aula 3 Sistemas Operacionais

Professor: Roberto Franciscatto. Curso: Engenharia de Alimentos 01/2010 Aula 3 Sistemas Operacionais Professor: Roberto Franciscatto Curso: Engenharia de Alimentos 01/2010 Aula 3 Sistemas Operacionais Um conjunto de programas que se situa entre os softwares aplicativos e o hardware: Gerencia os recursos

Leia mais

Introdução. Sistemas Computacionais Classificação. Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Introdução. Sistemas Computacionais Classificação. Universidade Federal de Campina Grande Departamento de Sistemas e Computação Universidade Federal de Campina Grande Departamento de Sistemas e Computação Introdução à Computação Sistemas Computacionais Prof. a Joseana Macêdo Fechine Régis de Araújo joseana@computacao.ufcg.edu.br

Leia mais