Buscar

Guia de software

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Parte XXX
GT2.1 Noções básicas e tipos de software
GT2.2 Software de aplicação
GT2.3 Software de sistema
GT2.4 Linguagens de programação, desenvolvimento de software e 
ferramentas CASE
GT2.5 Questões e tendências de software
Guias de Tecnologia
1 Hardware
2 Software
3 Dados e Bancos de Dados
4 Telecomunicações
5 Visão Técnica da Análise e Projeto de Sistemas
Guia de Tecnologia
2
Software
GT2-2 Guias de Tecnologia
GT2.1 Noções básicas e tipos de software
O hardware do computador, redes e dispositivos móveis, como PDAs e iPhones, não funcio-
nam nem executam uma operação sem que recebam instruções. Essas instruções são conheci-
das como software ou programas, aplicações ou plug-ins de computador. O software permite 
que o usuário customize um computador ou dispositivo.
O software consiste em sequências de instruções que um computador, uma rede ou um dispo-
sitivo executa a fim de realizar uma tarefa. O processo de escrever um programa é chamado 
de programação, e os indivíduos que realizam essa tarefa são os programadores. Programas de 
software armazenados são acessados e suas instruções são executadas na CPU.
Programas de computador incluem uma documentação, que é a descrição, por escrito, das 
funções do programa. A documentação ajuda o usuário a operar o sistema computacional e 
ajuda outros programadores a entender o que o programa faz e como ele realiza suas tarefas. 
A documentação é vital ao negócio da organização. Sem ela, se um programador ou usuário 
abandona o projeto (ou se esquece dele), o conhecimento sobre como usar o programa ou 
sobre como foi desenvolvido pode se perder.
Todos os softwares são escritos em uma linguagem de programação, como Visual Basic, 
PHP, COBOL, C++ ou Java. Para uma lista das linguagens de programação mais populares, 
visite o site langpop.com (em inglês).
Existem dois tipos principais de software: software de aplicação e software de sistema. Ambos 
têm tarefas específicas a executar.
O software de aplicação é um conjunto de instruções de computador, escrito em uma 
linguagem de programação. As instruções orientam o hardware do computador a executar 
atividades de processamento de dados ou de processamento de informações que fornecem 
funcionalidade ao usuário. Essa funcionalidade pode ser ampla, como no caso de um proces-
sador de texto, ou restrita, como o programa de folha de pagamentos de uma organização.
Software de sistema agem principalmente como intermediários entre o hardware do com-
putador e programas de aplicação, e os usuários podem manipulá-los diretamente. Software 
de sistema, como, por exemplo, o sistema operacional (OS) Windows, possuem funções au-
torregulatórias importantes para os sistemas computacionais, como carregar (inicializar) a si 
mesmo quando o computador é ligado pela primeira vez.
Programas de aplicação manipulam dados ou texto para produzir ou fornecer informa-
ção. Programas de sistema manipulam os recursos de hardware de computador. O software 
de sistema instalado em um computador determina as capacidades e as limitações dentro das 
quais o software de aplicação opera. A Figura GT2.1 mostra que um software de sistema é um 
intermediário necessário entre o hardware e o software de aplicação; o software de aplicação 
não executa sem o software de sistema.
Tanto o software aplicativo quanto o software de sistema são escritos em linguagens de 
programação, as quais também são apresentadas neste guia.
NOÇÕES BÁSICAS 
DE SOFTWARE
TIPOS DE SOFTWARE
Sof
tware
 de aplicação
So
ftw
are de sistema
Hardware
Figura GT2.1 O soft-
ware de sistema é um 
intermediário necessário 
entre o hardware e o soft-
ware aplicativo
2 • Software GT2-3
GT2.2 Software de aplicação
Um software de aplicação é um programa que executa tarefas específicas. Todos nós já usa-
mos muitos tipos diferentes de aplicações. Eis alguns deles:
 • Aplicações de planilha para criar documentos que gerenciam e organizam dados numé-
ricos.
 • Aplicações de processamento de texto para criar documentos que são formatados e orga-
nizados para leitura.
 • Aplicações de bancos de dados para desenvolver bancos de dados que organizam e recu-
peram grandes quantidades de informação.
 • Aplicações contábeis para gerenciamento de finanças pessoais ou para a contabilidade de 
empresas.
 • Aplicações gerenciadoras de atividades, como calendários e agendas de endereços.
 • Aplicações de apresentações para a confecção de slides.
 • Aplicações gráficas para a criação de imagens.
 • Programas de comunicação como programas de e-mail, mensagens de texto e fax para 
enviar e receber mensagens.
 • Aplicações multimídia para a criação de vídeos e músicas.
 • Utilitários ou programas de serviço para executar várias tarefas de manutenção ou melho-
ria do sistema operacional do computador.
A Tabela GT 2.1 mostra pacotes de software de produtividade mais populares para três 
tipos diferentes de software: proprietários, de código aberto e baseados na Web.
Algumas dessas ferramentas genéricas são, na verdade, ferramentas de desenvolvimento. 
Ou seja, são ferramentas usadas para construir aplicações. Por exemplo, é possível usar o Ex-
cel para criar aplicações de suporte à tomada de decisão, como alocação de recursos, sincro-
nização ou controle de inventário. É possível usar pacotes semelhantes para realizar análises 
estatísticas, para executar análises financeiras e para conduzir pesquisas de marketing.
O software de aplicação de prateleira pode ser comprado ou alugado de um fornecedor 
que desenvolve e vende programas para várias organizações. Software de prateleira pode ser 
TABELA GT 2.1 Software de produtividade populares: proprietário, de código aberto e baseado na Web
Proprietário
Microsoft Office
Código aberto
Open Office
Baseado na Web
Google Docs
Preço Varia; a partir de US$ 59,95 (ver-
são para estudantes)
Openoffice.org gratuito; Oracle 
Open Office a partir de US$ 
49,95 por licença
Gratuito para uso pessoal; 
Google Apps for Business 
custa US$ 50,00 anuais por 
conta de usuário
Sistemas 
operacionais supor-
tados
Windows; há uma versão para 
o OS X da Apple
Windows, OS X, Linux, Sola-
ris e vários outros sistemas 
operacionais
Roda em qualquer sistema 
operacional que ofereça um 
navegador Web como IE, Fi-
refox, Chrome ou Safari
Online e offline Principalmente offline; a ver-
são 2010 oferece aplicativos 
online
Apenas offline O Google Gears permite que 
o Google Docs seja usado 
offline
Processador de texto Word Writer Documentos
Planilha Excel Calc Planilhas
Apresentação PowerPoint Impress Apresentações
Banco de dados Access Base Não tem software de banco de 
dados
Outro software OneNote, Outlook, Publisher, 
Groove, Communicator, In-
foPath
Math, Draw Desenho, Formulários
GT2-4 Guias de Tecnologia
um pacote padrão ou personalizáveis. Programas de uso especial, ou “pacotes”, podem ser 
criados para fins específicos, como controle de estoque ou folha de pagamento. A palavra 
pacote é comumente utilizada para designar um programa (ou conjunto de programas) desen-
volvido por um fornecedor e está disponível para compra em um formato pré-configurado.
Muitas aplicações de suporte à tomada de decisão e aplicações comerciais são construídas 
com linguagens de programação em vez de com programas de aplicação de uso geral. Isso é o 
que acontece especialmente com problemas complexos e não estruturados. Aplicações de sis-
temas de informação também podem ser criadas a partir de uma mistura de programas de uso 
geral e/ou com várias ferramentas de desenvolvimento, desde editores a geradores de números 
aleatórios. Conjuntos de software como, por exemplo, o Microsoft Office, o Open Office ou o 
Google Docs são de especial interesse, pois podem acelerar o desenvolvimento de aplicações. 
Também de especial interessesão as ferramentas CASE e os softwares corporativos integra-
dos, descritos mais adiante.
Outras aplicações. Existem centenas de outros softwares de aplicação. Os mais interessantes 
para a gestão de negócios são os seguintes:
 1. Middleware. Aplicações de Internet criadas para permitir a interação de uma empre-
sa com outras são complexas em função da variedade de componentes de hardware e 
software com os quais essas aplicações precisam trabalhar. Essa complexidade aumenta 
quando dispositivos móveis sem fio passam a acessar as redes da empresa pela Internet. 
O middleware é um software que conecta módulos de aplicações desenvolvidos em dife-
rentes linguagens de computador e que roda em plataformas heterogêneas, seja em uma 
única máquina ou em uma rede. O middleware mantém um registro da localização dos 
módulos de software que precisam ser conectados uns aos outros através de um sistema 
distribuído e gerencia a troca de informações.
 2. Aplicações corporativas. Um software empresarial consiste em programas que gerenciam 
operações vitais de uma organização, como gestão da cadeia de suprimentos (movimento 
desde a obtenção de matérias-primas de fornecedores à entrega de produtos finais aos 
clientes), reposição de estoque, encomendas, coordenação logística, gestão de recursos 
humanos, fabricação, operações, contabilidade e gestão financeira. Alguns módulos co-
muns de software de aplicações corporativas são a folha de pagamento, o processamento 
do pedido de vendas, contas a pagar/receber e contabilidade fiscal.
 Fornecedores de software empresarial têm produzido software mais barato, baseado em 
padrões da indústria, compatível com os produtos de outros fornecedores e mais fácil de 
configurar e instalar. Os maiores fornecedores – SAP, Oracle, PeopleSoft e Computer 
Associates – oferecem programas que facilitam o trabalho de usuários comerciais e de 
profissionais de TI.
 3. Software de presença. A tecnologia de presença pode detectar quando você está online 
e que tipo de dispositivo está usando. Tem origem no sistema de mensagens instantâneas 
(instant messaging – IM). Quando você se conecta a um serviço de IM, sua chegada é ime-
diatamente anunciada a uma lista de usuários que você selecionou para serem alertados 
sobre a sua presença online.
GT2.3 Software de sistema
O software de sistema controla e suporta o hardware de computador e suas atividades de 
processamento de informações. O software de sistema também facilita a programação, o teste 
e a depuração de programas de computador. Ele é mais genérico que o software de aplicação 
e costuma não depender de qualquer tipo específico de aplicação. Programas de software de 
sistema suportam software de aplicação direcionando as funções básicas do computador. Por 
exemplo, quando o computador é ligado, o programa de inicialização (um programa do siste-
ma) prepara e prontifica todos os dispositivos para processamento. Outras tarefas comuns de 
sistemas operacionais são as seguintes:
 • Monitorar o desempenho
 • Corrigir erros
 • Fornecer e manter a interface com o usuário
2 • Software GT2-5
 • Iniciar (“inicializar”) o computador
 • Carregar programas na memória
 • Gerenciar alocação de memória para esses programas
 • Colocar arquivos e programas no armazenamento secundário
 • Criar e manter diretórios
 • Formatar disquetes
 • Controlar o monitor do computador
 • Enviar trabalhos à impressora
 • Manter a segurança e limitar o acesso
 • Localizar arquivos
 • Detectar vírus
 • Compactar dados
O software de sistema pode ser agrupado em três importantes categorias funcionais:
 1. Programas de controle de sistema são programas que controlam o uso de hardware, soft-
ware e recursos de dados de um sistema de computador durante sua execução do trabalho 
de processamento de informações de um usuário. Um sistema operacional é o principal 
exemplo de um programa de controle de sistema.
 2. Programas de suporte ao sistema suportam as operações, o gerenciamento e os usuários 
de um sistema de computador por meio de uma série de serviços. Programas utilitários de 
sistema, monitores de desempenho e monitores de segurança são exemplos de programas 
de suporte ao sistema.
 3. Programas de desenvolvimento de sistemas ajudam os usuários a desenvolver programas 
e procedimentos de processamento de informações e a preparar aplicações de usuário. Os 
principais programas de desenvolvimento são compiladores de linguagem, interpretado-
res e tradutores.
Eis os programas de controle de sistema mais importantes.
Sistemas operacionais. O componente principal de software de sistema é um conjunto de 
programas coletivamente conhecido como sistema operacional. O sistema operacional super-
visiona a operação global do computador, incluindo o monitoramento do status do computa-
dor, o tratamento de interrupções de programas executáveis e o agendamento de operações, o 
que inclui o controle de processos de entrada e de saída.
Computadores com apenas uma CPU parecem executar múltiplas tarefas ao mesmo tem-
po. Nesses casos, o sistema operacional controla que tarefa em particular terá acesso aos vá-
rios recursos do computador. Ao mesmo tempo, o sistema operacional controla o fluxo total 
de informações dentro do computador.
Em um microcomputador, o sistema operacional controla a comunicação do computador 
com seu monitor, com a impressora e com os dispositivos de armazenamento. Ele também rece-
be e direciona entradas de teclado e outras fontes de entrada de dados. O sistema operacional é 
projetado para maximizar a quantidade útil de trabalho que o hardware do computador realiza.
Os programas que executam no computador usam diversos recursos controlados pelo sis-
tema operacional. Esses recursos incluem tempo de CPU, armazenamento primário ou memó-
ria e dispositivos de entrada/saída. O sistema operacional tenta alocar o uso desses recursos da 
maneira mais eficiente possível.
O sistema operacional também é responsável pela interface entre o usuário e o hardware. 
Ao mascarar muitas das características do hardware, tanto o programador profissional quanto 
o usuário final dispõem de um sistema fácil de usar.
A portabilidade, uma característica desejável do sistema operacional, significa que o mes-
mo software de SO pode ser executado em diferentes computadores. Um exemplo de sistema 
operacional com portabilidade é o UNIX e sistemas semelhantes a ele. Versões desses siste-
mas operacionais podem ser executadas em hardwares produzidos por vários fornecedores 
diferentes. Alguns exemplos incluem o Linux, o NetBSD, o AIX, da IBM, e o Solaris, da Ora-
cle. Entretanto, não há uma única versão padrão do UNIX que execute em todas as máquinas.
Funções do sistema operacional. O sistema operacional realiza quatro funções principais 
na operação de um sistema de computador: gerenciamento de tarefas, gerenciamento de re-
cursos, consolidação de servidor e gerenciamento de dados.
PROGRAMAS DE 
CONTROLE DE 
SISTEMA
GT2-6 Guias de Tecnologia
 1. O gerenciamento de tarefas é a preparação, o agendamento e o monitoramento de ta-
refas para processamento contínuo pelo sistema de computador. Job Control Language 
(JLC) é uma linguagem de computador especial encontrada no ambiente de computação 
de mainframe que permite que o programador se comunique com o sistema operacional.
 2. O gerenciamento de recursos é o controle do uso de recursos de sistemas de computador 
empregados por outros produtos de software de sistema e programas de software de apli-
cação sendo executados no computador. Esses recursos incluem o armazenamento primá-
rio, o armazenamento secundário, o tempo de processamento da CPU e os dispositivos de 
entrada/saída.
 3. A consolidação de servidor diz respeito à criação de uma infraestrutura mais simples, mais 
racional e gerenciável. Existem quatro estratégias de consolidação possíveis: consolidaçãológica, consolidação física, consolidação da carga de trabalho e consolidação de aplicação. 
A consolidação leva também a um uso mais flexível, consistente e eficiente de recursos do 
que no caso de servidores distribuídos, pois permitem que os clientes encontrem o equilí-
brio certo dentro de cada um dos servidores.
 4. O gerenciamento de dados é o controle de entrada e saída de dados, bem como de sua 
localização, armazenamento e recuperação. Programas de gerenciamento de dados con-
trolam a alocação de dispositivos de armazenamento secundários, o formato físico e a 
catalogação do armazenamento de dados.
Sistemas operacionais de computador desktop e notebooks. O Microsoft Windows li-
dera a série de sistemas operacionais para desktops. O MS-DOS (Microsoft Disk Operating 
System) foi um dos sistemas operacionais originais para o PC da IBM e seus clones.
O Windows 95, lançado em 1995, foi o primeiro de uma série de produtos no sistema 
operacional Windows a fornecer ícones através de uma interface GUI (graphic user interface) 
para fornecer acesso instantâneo às tarefas mais comuns. Produtos subsequentes no sistema 
operacional do Microsoft Windows são os seguintes:
 • O Windows 98 não foi uma atualização importante do Windows 95, mas ofereceu alguns 
refinamentos, reparou alguns bugs e apresentou algumas melhorias.
 • O Windows NT é um sistema operacional para desktops de alta performance, estações de 
trabalho e servidores. O Windows NT suporta software escrito para DOS e Windows e ofe-
rece excelente capacidade de computação para aplicações novas com requisitos de arquivo 
e uso intenso de memória. Além disso, foi criado para estabelecer conexões simples e con-
fiáveis com redes e outros mecanismos de computação e é popular em sistemas em rede.
 • O Windows 2000 é a versão renomeada do Windows NT 5.0. Esse sistema operacional 
adicionou dispositivos de segurança e executa em computadores com vários processadores.
 • O Windows XP foi a primeira atualização do Windows 2000 e teve três versões: uma ver-
são de 32 bits para o público em geral, uma versão profissional de 32 bits e uma versão de 
64 bits, também profissional.
 • O Windows Vista foi o próximo grande lançamento do sistema operacional Windows. O 
Vista supostamente melhoraria a produtividade do usuário de forma considerável, ofere-
ceria novos recursos para desenvolvedores de software e traria avanços significativos em 
segurança, implementação e confiança.
 • O Windows 7 apresenta melhorias em relação ao desempenho, à estabilidade e à segu-
rança em relação ao Windows Vista. O Windows Touch otimiza o Windows 7 para ser 
usado com telas sensíveis ao toque. Isso melhora bastante a experiência do usuário que 
usa o Windows em um dispositivo com tela sensível ao toque. O Windows 7 Professional 
e o Ultimate incluem o modo Windows XP, que roda uma instalação virtual do Windows 
XP que permite aos usuários rodar softwares compatíveis apenas com esse sistema ope-
racional. Novas funcionalidades de interface incluem o Snap, que redimensiona a janela 
dependendo de para onde ela é movida na tela.
O UNIX é outro sistema operacional que oferece recursos sofisticados, incluindo multipro-
cessamento e multitarefas. O UNIX é de grande valor para organizações porque pode ser usado 
em muitas plataformas diferentes, suporta vários dispositivos de hardware (p.ex., impressoras, 
plotters, etc.) e há um grande número de aplicações escritas que é compatível com ele. O UNIX 
tem várias versões. A maioria dos fornecedores desse sistema operacional tem concentrado seus 
esforços no desenvolvimento de servidores, em detrimento de desktops, e alguns, como a IBM, 
2 • Software GT2-7
promovem o Linux para o uso em desktops. Entretanto, a versão mais popular do UNIX em 
computadores pessoais é o OS X, da Apple.
O Linux foi originalmente escrito por Linus Torvalds na Universidade de Helsinque, na 
Finlândia, em 1991. Ele então liberou o código-fonte para o mundo (chamado de software de 
código-fonte aberto). Desde aquela época, muitos programadores ao redor do globo traba-
lhavam em Linux e em componentes de software escritos para ele. O resultado é que, como 
o UNIX, o Linux roda em diversas plataformas de hardware, suporta vários dispositivos de 
hardware e há um grande número de aplicações que executa nele.
O Linux (algumas vezes chamado de GNU/Linux) é um sistema operacional do tipo 
UNIX criado para oferecer aos usuários de computadores pessoais um sistema operacional 
gratuito ou de baixíssimo custo, em comparação aos sistemas UNIX tradicionais, mais caros. 
O Linux é um sistema operacional consideravelmente completo, que inclui uma interface grá-
fica, um X Window System, multitarefas, gerenciamento de memória virtual, TCP/IP, o editor 
Emacs e outros componentes que costumam ser incluídos em sistemas UNIX completos.
O Linux foi criado para computadores pessoais, mas obteve grande parte de seu sucesso 
em servidores. Na verdade, a maioria dos servidores Web e dos supercomputadores roda o 
Linux. O Linux de fato é usado em computadores pessoais, mas tem no máximo 3% do mer-
cado de sistemas operacionais desse segmento. Algumas estatísticas afirmam que o Linux tem 
apenas 1% do mercado. Como resultado, a maioria das empresas desenvolvedoras de Linux, 
como a Red Hat, concentra-se no mercado de servidores. Entretanto, a Canonical oferece um 
sistema operacional Linux para desktop fácil de usar chamado Ubuntu (ubuntu.com).
O sistema operacional Macintosh, o Mac OS X, para microcomputadores da Apple, atual-
mente é um sistema operacional UNIX de 64 bits que roda em CPUs Intel X86_64. O OS X só 
pode rodar legalmente em um “computador da Apple”, de acordo com os termos de licença 
para o usuário final (end-user license agreement, ou EULA). O OS X dá suporte à integração 
com a Internet, a gerenciamento de memória virtual e à rede AppleTalk. O Mac OS X oferece 
uma interface com o usuário (chamada de Aqua), gráficos avançados, gerenciamento de me-
mória virtual e multitarefas.
Sistemas operacionais para netbooks. Atualmente, a maioria dos netbooks vem com o 
Windows 7 Starter, que é a versão mais simples do Windows 7. No entanto, ainda há alguns 
netbooks sendo distribuídos com Windows XP ou sistemas operacionais baseados em Linux. 
Outra opção que talvez esteja disponível no futuro é o SO Google Chromium, comumente 
chamado de Chromium. É um sistema operacional de código aberto para netbooks baseado 
em Linux. O código foi liberado sob licença BSD, mas é um trabalho ainda não concluído. Ne-
nhum fabricante de peso distribuiu netbooks que executem o SO Chromium. A característica 
mais notável do Chromium é que ele executa somente o navegador Chrome, então só pode ser 
usado quando conectado à Internet.
Smartphones têm sistemas operacionais próprios, como mostra a Tabela GT2.2.
Sistemas operacionais de mainframe. Computadores mainframe em geral requerem siste-
mas operacionais especializados que possam lidar com grandes cargas e que tenham recursos 
avançados de segurança. Os principais sistemas operacionais de servidor são o Linux, o Win-
dows Server 2008, o UNIX, o HP NonStop e o z/OS da IBM. Apesar de alguns deles também 
serem sistemas operacionais desktops, todos podem ser usados como sistemas operacionais 
de servidor departamentais, por causa de sua flexibilidade, confiabilidade, capacidade de res-
tauração, segurança, tolerância a falhas, multiprocessamento, rede TCP/IP (integração com a 
Internet), gerenciamento de rede e serviços de diretório.
Sistemas operacionais de servidor corporativo. Sistemas operacionais para servidores cor-
porativos (p.ex., o RHES, da Red Hat, o SLES, da Novell, e o z/OS, da IBM) geralmente exe-
cutam em mainframes e em sistemas de médio porte. Sistemas operacionais corporativos ofe-
recem maior capacidade de gerenciamento, segurança e estabilidade e também maior suporte 
a aplicações online,comércio eletrônico seguro, múltiplos usuários ao mesmo tempo, grandes 
bancos de dados (terabytes) e milhões de transações por dia. Sistemas operacionais para ser-
vidores corporativos também oferecem particionamento, um método de segmentação dos re-
cursos do servidor que permite o processamento de diversas aplicações em um único sistema.
Sistemas operacionais para supercomputadores. Sistemas operacionais para supercomputa-
dores visam atender o mercado de hardware para supercomputadores. A maioria desses sistemas 
GT2-8 Guias de Tecnologia
TA
B
E
LA
 G
T2
.2
Si
st
em
as
 O
p
er
ac
io
na
is
 d
e 
Sm
ar
tp
ho
ne
s
Si
st
em
a 
o
p
er
ac
io
na
l
Sy
m
b
ia
n
B
la
ck
B
er
ry
 O
S
W
in
d
o
w
s 
P
ho
ne
 7
iO
S
A
nd
ro
id
W
eb
O
S
Fa
b
ri
ca
nt
e
N
o
ki
a 
co
m
 a
 S
ym
-
b
ia
n 
Fo
un
d
at
io
n
R
IM
 (R
es
ea
rc
h 
In
 M
o
tio
n)
M
ic
ro
so
ft
A
p
p
le
G
o
o
g
le
 c
o
m
 o
 
O
p
en
 H
an
d
se
t 
A
lli
an
ce
Pa
lm
 (a
g
o
ra
 d
a 
H
P)
C
o
m
en
tá
ri
o
s
Si
st
em
a 
o
p
er
ac
io
-
na
l d
e 
te
le
fo
ne
s 
m
ai
s 
p
o
p
ul
ar
 d
o
 
m
un
d
o
Sm
ar
tp
ho
ne
 m
ai
s 
p
o
p
ul
ar
 
no
s 
E
st
ad
o
s 
U
ni
d
o
s
O
 W
in
d
o
w
s 
Ph
o
ne
 7
 é
 
um
a 
re
vi
sã
o
 c
o
m
p
le
ta
 
d
o
 S
is
te
m
a 
O
p
er
ac
io
na
l 
p
ar
a 
Sm
ar
tp
ho
ne
s 
d
a 
M
ic
ro
so
ft
M
ud
o
u 
a 
m
an
ei
ra
 
co
m
o
 o
s 
am
er
i-
ca
no
s 
en
ca
ra
m
 
te
le
fo
ne
s 
ce
lu
la
re
s 
q
ua
nd
o
 fo
i l
an
ça
d
o
 
em
 1
9/
06
/2
00
7
C
ó
d
ig
o
 a
b
er
to
 s
o
b
 
a 
lic
en
ça
 A
p
ac
he
 
2.
0,
 a
in
d
a 
fo
rt
e-
m
en
te
 c
o
nt
ro
la
d
o
 
p
el
a 
G
o
o
g
le
A
p
ó
s 
um
a 
su
ce
ss
ão
 
d
e 
d
ec
is
õ
es
 ru
in
s 
d
a 
Pa
lm
, a
 H
P 
co
m
-
p
ro
u 
a 
Pa
lm
 p
rin
-
ci
p
al
m
en
te
 p
el
o
 
W
eb
O
S
Q
ue
m
 p
o
d
e 
us
ar
 o
 
si
st
em
a 
o
p
er
ac
io
na
l 
em
 s
eu
s 
d
is
p
o
si
ti
-
vo
s?
O
 S
ym
b
ia
n 
v3
 te
m
 
có
d
ig
o
 a
b
er
to
, 
q
ua
lq
ue
r u
m
 
p
o
d
e 
us
á-
lo
; v
er
-
sõ
es
 a
nt
er
io
re
s,
 
no
 e
nt
an
to
, e
ra
m
 
p
ro
p
rie
tá
ria
s
A
p
en
as
 R
IM
Li
ce
nc
ia
d
o
s 
p
ar
a 
fa
b
ri-
ca
nt
es
 d
e 
ha
rd
w
ar
e 
p
el
a 
M
ic
ro
so
ft
A
p
en
as
 A
p
p
le
C
ó
d
ig
o
 a
b
er
to
, 
m
as
 fo
rt
em
en
te
 
co
nt
ro
la
d
o
 p
el
a 
G
o
o
g
le
Ta
nt
o
 c
o
m
p
o
ne
nt
es
 
d
e 
có
d
ig
o
 a
b
er
to
 
q
ua
nt
o
 p
ro
p
rie
tá
-
rio
. A
 P
al
m
 c
o
g
ito
u 
lic
en
ci
ar
 o
 W
eb
O
S 
an
te
s 
d
e 
se
r c
o
m
-
p
ra
d
a 
p
el
a 
H
P
Lo
ja
 o
fi
ci
al
 d
e 
ap
li-
ca
çõ
es
H
á 
vá
ria
s 
lo
ja
s 
d
ife
re
nt
es
. A
l-
g
un
s 
ex
em
p
lo
s 
sã
o
 a
 lo
ja
 O
vi
, 
d
a 
N
o
ki
a,
 a
 
Sa
m
su
ng
 A
p
p
li-
ca
tio
ns
 S
to
re
 e
 a
 
A
T&
T 
M
ed
ia
 M
al
l
A
 A
pp
 W
or
ld
 fo
i c
ria
da
 p
ar
a 
co
m
pe
tir
 c
om
 a
 lo
ja
 d
e 
ap
lic
aç
õe
s 
do
 iP
ho
ne
; a
s 
ap
lic
aç
õe
s 
po
de
m
 s
er
 a
d-
qu
iri
da
s 
de
 o
ut
ra
s 
fo
nt
es
, 
as
si
m
 c
om
o 
co
st
um
av
a 
se
r f
ei
to
 a
nt
es
 d
o 
la
nç
a-
m
en
to
 d
a 
A
pp
 W
or
ld
M
o
b
ile
 M
ar
ke
tp
la
ce
Te
m
 a
 m
ai
o
r l
o
ja
 d
e 
ap
lic
aç
õ
es
 e
 q
ue
 
m
ai
s 
cr
es
ce
, c
o
m
 
m
ai
s 
d
e 
20
0 
m
il 
ap
lic
aç
õ
es
; t
o
d
as
 
as
 a
p
lic
aç
õ
es
 p
re
ci
-
sa
m
 s
er
 a
p
ro
va
d
as
 
p
el
a 
A
p
p
le
O
 m
er
ca
d
o
 A
nd
ro
id
 
te
m
 a
 s
eg
un
d
a 
m
ai
o
r l
o
ja
 d
e 
ap
lic
aç
õ
es
 e
 a
 
se
g
un
d
a 
q
ue
 m
ai
s 
cr
es
ce
, c
o
m
 m
ai
s 
d
e 
38
.0
00
 a
p
lic
a-
çõ
es
C
at
ál
o
g
o
 d
e 
ap
lic
a-
çõ
es
 P
al
m
P
ri
m
ei
ro
 t
el
ef
o
ne
E
ric
ss
o
n 
R
38
0
B
la
ck
B
er
ry
 6
71
0 
e 
67
20
A
in
d
a 
nã
o
 a
nu
nc
ia
d
o
iP
ho
ne
 o
rig
in
al
G
1
Pa
lm
 P
re
P
le
na
 c
ap
ac
id
ad
e 
m
ul
ti
ta
re
fa
s;
 e
xe
cu
-
ta
 v
ár
ia
s 
ap
lic
aç
õ
es
 
ao
 m
es
m
o
 t
em
p
o
Si
m
Si
m
A
o 
co
nt
rá
rio
 d
o 
W
in
d
ow
s 
M
ob
ile
, o
 W
in
d
ow
s 
Ph
o-
ne
 7
 n
ão
 p
os
su
i m
ul
tit
a-
re
fa
s 
p
ar
a 
ap
lic
aç
õe
s 
d
e 
te
rc
ei
ro
s;
 e
m
 v
ez
 d
is
so
, 
as
 a
p
lic
aç
õe
s 
sã
o 
p
au
sa
-
d
as
 q
ua
nd
o 
tr
oc
ad
as
A
 p
ar
tir
 d
o
 4
.0
, o
 iO
S 
te
rá
 c
ap
ac
id
ad
e 
m
ul
tit
ar
ef
as
 p
le
na
Si
m
Si
m
Ta
m
b
ém
 u
sa
d
o
 e
m
O
 S
ym
b
ia
n 
p
ro
-
va
ve
lm
en
te
 s
er
á 
us
ad
o
 e
m
 ta
b
le
ts
Fo
i u
sa
d
o
 o
rig
in
al
m
en
te
 
em
 p
ag
er
s 
b
id
ire
ci
o
na
is
A
tu
al
m
en
te
, n
ão
 h
á 
d
is
p
o
si
tiv
o
 a
lg
um
 q
ue
 
ro
d
e 
W
in
d
o
w
s 
Ph
o
ne
 7
 
d
is
p
o
ní
ve
l a
o
 p
úb
lic
o
iP
o
d
 T
o
uc
h 
e 
ve
rs
ão
 
m
o
d
ifi
ca
d
a 
no
 iP
ad
N
et
b
o
o
ks
, t
ab
le
ts
, 
le
ito
re
s 
d
e 
e-
b
o
o
k,
 
to
ca
d
o
r d
e 
m
íd
ia
 
p
o
rt
át
il
A
 H
P 
te
m
 p
la
no
s 
d
e 
us
ar
 o
 W
eb
O
S 
em
 
ta
b
le
ts
2 • Software GT2-9
é baseada em Linux, como o CNK/SLES 9 e o Red Hat Enterprise Linux 4. No entanto, sistemas 
operacionais de supercomputadores não se limitam a Linux. Alguns exemplos de sistemas não 
baseados em Linux incluem o Unicos, para o Cray X1, o 2000 K/S/X, da HP, e o AIX, da IBM 
(ambos tipos de UNIX). Outros fabricantes são a Sun, a NEC, a Silicon Graphics e a Fujitsu. 
Esses sistemas operacionais gerenciam ambientes multiprocessador e multiusuário altamente pa-
ralelos.
Sistemas operacionais de interface gráfica com o usuário. Um sistema operacional de inter-
face gráfica com o usuário (graphical user interface, ou GUI) é um sistema no qual os usuários 
têm controledireto sobre objetos visíveis (como ícones e ponteiros) e ações que substituem a 
complexa sintaxe de comandos. O próximo passo na evolução das interfaces gráficas são as inter-
faces sociais. Uma interface social é uma interface com o usuário que orienta o usuário por aplica-
ções de computador usando personagens do tipo cartoon gráficos, animações e comandos de voz.
Tarefas de processamento. Sistemas operacionais gerenciam as atividades de processamen-
to com recursos de gerenciamento de tarefas que alocam recursos de computador para otimi-
zar os ativos de cada sistema. Os recursos mais importantes são descritos a seguir.
Multiprogramação e multiprocessamento. Multiprogramação envolve dois ou mais mó-
dulos de aplicações ou programas colocados na memória principal ao mesmo tempo. O pri-
meiro módulo executa na CPU até que ocorra uma interrupção, como uma solicitação de 
entrada. A solicitação de entrada é iniciada e executada enquanto um segundo módulo de 
aplicação é iniciado. A execução do segundo módulo continua até que outra interrupção 
ocorra, quando a execução de um terceiro módulo começa. Quando o processamento da 
interrupção é completado, o controle é devolvido ao programa que foi interrompido. Uma 
vez que a troca entre programas ocorre rapidamente, todos os programas parecem estar em 
execução ao mesmo tempo.
Em um sistema de multiprocessamento, mais de um processador está envolvido. Os pro-
cessadores podem compartilhar dispositivos de entrada/saída, ainda que cada processador 
possa controlar alguns dispositivos exclusivamente. Em alguns casos, todos os processadores 
compartilham a memória principal. Como resultado, mais de uma operação de CPU pode ser 
realizada exatamente ao mesmo tempo; ou seja, cada processador pode executar um módulo 
de aplicação ou uma parte dele simultaneamente com outro. A multiprogramação é imple-
mentada inteiramente por software, ao passo que o multiprocessamento é, antes de qualquer 
coisa, uma implementação de hardware, com o auxílio de software sofisticado.
Compartilhamento de tempo (time-sharing). O compartilhamento de tempo é uma exten-
são da multiprogramação. Nesse modo, um determinado número de usuários opera online a 
mesma CPU, mas cada um usa um terminal diferente de entrada/saída. Um módulo de apli-
cação de um usuário é colocado em uma partição (uma parte reservada do armazenamento 
primário). A execução é realizada por um certo período ou até que seja feita uma requisição 
de entrada/saída. Como na multiprogramação, os módulos de outros usuários também são co-
locados no armazenamento primário de outras partições. A execução passa adiante para outro 
módulo de aplicação no final do período determinado e alterna-se entre todos os usuários.
Memória virtual. A memória virtual permite ao usuário escrever um programa como se 
a memória principal fosse maior do que realmente é. Os usuários recebem “praticamente” 
todo o armazenamento primário de que necessitam. Com a memória virtual, as páginas de 
um módulo de aplicação não precisam ser todas carregadas na memória principal ao mesmo 
tempo. Enquanto o programa é executado, o controle passa de uma página para outra. Se a 
página subsequente já está na memória principal, a execução prossegue. Se a página subse-
quente não está na memória principal, a página demora para ser carregada. Na verdade, a 
memória principal é estendida em um dispositivo de armazenamento secundário.
Sistema operacional de máquina virtual. Uma máquina virtual é um sistema de computa-
dor que parece um computador real para o usuário mas, na realidade, foi criado pelo sistema 
operacional. Um sistema operacional de máquina virtual faz com que uma única máquina 
simule múltiplas máquinas aos usuários, cada uma com seu próprio sistema operacional. Cada 
usuário pode escolher um sistema operacional diferente para sua máquina virtual. Como re-
sultado, diversos sistemas operacionais podem existir na máquina real ao mesmo tempo.
GT2-10 Guias de Tecnologia
Programas de suporte ao sistema. Utilitários de sistema são programas criados para de-
sempenhar tarefas comuns como classificar registros, mesclar conjuntos de dados, verificar a 
integridade de discos magnéticos, criar diretórios e subdiretórios, restaurar arquivos deletados 
acidentalmente, localizar arquivos dentro da estrutura do diretório, gerenciar o uso de me-
mória e redirecionar saídas. Essas são as tarefas básicas da maioria dos sistemas operacionais 
e programas de aplicação. O TestDrive, por exemplo, permite que você baixe um software; 
você testa o programa e o TestDrive o ajuda na compra ou na remoção do aplicativo. Alguns 
softwares de limpeza de disco, como o Desfragmentador de Disco da Microsoft, também co-
nhecidos como desfragmentadores ou ferramentas de diagnóstico e reparo, ajudam a organi-
zar o disco rígido ordenando arquivos a fim de liberar espaços contínuos para novos arquivos, 
localizam arquivos pouco usados, arquivos temporários e outros arquivos que desperdiçam 
espaço. O Norton Utilities realiza tarefas de manutenção de rotina em discos rígidos e em 
dispositivos de armazenamento secundário.
Monitores de desempenho do sistema. Monitores de desempenho do sistema monitoram 
o desempenho do sistema de computador e produzem relatórios com estatísticas detalhadas 
sobre o uso de recursos do sistema, como tempo de processamento, espaço de memória, dispo-
sitivos de entrada/saída e programas de sistema e de aplicação.
Monitores de segurança de sistema. Monitores de segurança de sistema são programas que 
monitoram o uso de um sistema de computador para proteger o computador e seus recursos 
contra usos não autorizados, fraudes ou destruição. Esses programas oferecem ao computa-
dor a segurança necessária para permitir apenas acessos autorizados ao sistema. Monitores 
de segurança de sistema controlam o uso de recursos de hardware, software e dados de um 
computador. Por fim, esses programas monitoram o uso do computador e coletam estatísticas 
de tentativas de uso impróprio.
Programas de desenvolvimento de sistema. Traduzir programas de computador voltados 
ao usuário escritos em código-fonte para código de objeto ou máquina requer o uso de com-
piladores ou intérpretes, os quais são exemplos de programas de desenvolvimento de siste-
ma. Outro exemplo são os programas de engenharia de software auxiliada por computador 
(computer-aided software engineering).
GT2.4 Linguagens de programação, desenvolvimento 
de software e ferramentas CASE
Linguagens de programação oferecem os componentes básicos para a construção de todos os 
softwares de sistema e de aplicação. Linguagens de programação são um conjunto de símbolos e 
regras para escrever o código do programa. Cada linguagem usa um conjunto diferente de regras 
e a sintaxe, que determina como os símbolos devem ser combinados para que façam sentido.
As características das linguagens dependem de seu propósito. Por exemplo, se os progra-
mas têm o objetivo de rodar processamentos de lote, eles serão diferentes de programas com o 
objetivo de rodar processamentos em tempo real. Linguagens para programas de Internet são 
diferentes de programas destinados a rodar aplicações de mainframe.
Os diferentes estágios das linguagens de programação são chamados de gerações. O termo 
geração pode ser mal interpretado. Na geração de hardware, as gerações mais antigas estão se 
tornando obsoletas e caindo em desuso. Já todas as gerações de software ainda estão em uso. 
Elas são descritas na Figura GT2.2 e discutidas a seguir.
Linguagem de máquina. Primeira geração (1G). A linguagem de máquina é a linguagem de 
computador de mais baixo nível e consiste na representação interna de instruções e dados. O 
código de máquina – as instruções entendidas e diretamente executáveis pela CPU – é com-
posto de dígitos binários. Um programa que usa esse nível de codificação é chamado de pro-
grama delinguagem de máquina e representa a primeira geração de linguagens de programa-
ção. A CPU de um computador executa somente programas em linguagem de máquina, que 
são dependentes da máquina. Ou seja, a linguagem de máquina para um tipo de processador 
central pode não rodar em outros tipos.
A EVOLUÇÃO DAS 
LINGUAGENS DE 
PROGRAMAÇÃO
2 • Software GT2-11
Entender e usar a linguagem de máquina é extremamente difícil para os programadores. 
Como resultado, cada vez mais linguagens orientadas ao usuário têm sido desenvolvidas. 
Essas linguagens facilitam a programação, mas não são executáveis pelo computador sem 
antes traduzir o programa para linguagem de máquina. O conjunto de instruções escritas em 
uma linguagem orientada ao usuário é conhecido como programa-fonte.
Linguagem assembly. Segunda geração (2G). Uma linguagem assembly é uma linguagem 
mais orientada ao usuário que representa instruções e localizações de dados utilizando mne-
mônica, ou auxílios de memória, que são mais fáceis de usar. As linguagens assembly são 
consideradas a segunda geração de linguagens de computador. Comparada à linguagem de 
máquina, a linguagem assembly facilita consideravelmente o trabalho do programador. No 
entanto, uma instrução em linguagem assembly precisa ser traduzida em uma instrução na 
linguagem de máquina. Uma vez que a linguagem de máquina depende do hardware e que 
programas de linguagem assembly são traduzidos um a um, as linguagens assembly também 
dependem de hardware.
Um programa de software de sistemas chamado de assembler realiza a tradução de um 
programa de linguagem assembly em linguagem de máquina. Um assembler aceita um progra-
ma-fonte como entrada e produz um programa-objeto como saída. O programa-objeto é então 
processado em dados, como mostra a Figura GT2.3.
As linguagens de alto nível são o próximo passo na evolução de linguagens de programação 
orientadas ao usuário. Elas são muito mais parecidas com a linguagem natural e, portanto, são 
mais fáceis de escrever, ler e alterar. Além disso, uma instrução em uma linguagem de alto 
nível é traduzida em várias instruções de linguagem de máquina, tornando a programação 
mais produtiva.
LINGUAGENS DE 
ALTO NÍVEL
Programa- 
-fonte
CPU
Escrito por um 
programador
(a)
Convertida por 
um tradutor
Pronto para 
executar como 
código de máquina
Dados CPU
Os dados são 
inseridos
(b)
O programa é 
executado
Os resultados 
são produzidos
Programa 
objeto
Saída
Programa 
objeto
Tradutor
Figura GT2.3 O pro-
cesso de tradução de 
linguagem.
Linguagem 
de máquina
0–1
Programação 
longa e difícil
Linguagem 
assembly
Montam 
instruções 
repetitivas, 
código mais 
curto
Progresso
Gerações
Máquina
Humano
Linguagem 
natural
Incluem 
comandos, 
código mais 
curto
Linguagens 
procedurais
Linguagens
 não procedurais
Geradores de 
aplicações, 
comandos 
especificam
resultados 
Linguagens 
inteligentes
Processamento 
de linguagem 
natural
1a 2a 3a 4a 5a
Figura GT2.2 A evo-
lução das linguagens de 
programação. A cada 
geração são feitos pro-
gressos em direção à 
linguagem natural.
GT2-12 Guias de Tecnologia
Linguagens procedurais. Terceira geração (3G). As linguagens procedurais são o próxi-
mo passo na evolução de linguagens de programação orientadas ao usuário. São conheci-
das também como linguagens de terceira geração, ou 3GLs. Elas são muito mais parecidas 
com a linguagem natural (a maneira como falamos) e, portanto, são mais fáceis de escre-
ver, ler e alterar. Além disso, uma instrução em uma linguagem procedural é traduzida em 
várias instruções de linguagem de máquina, tornando a programação mais produtiva. Em 
geral, as linguagens procedurais são mais parecidas com a linguagem natural do que as 
linguagens assembly. Além disso, usam palavras comuns em vez de mnemônica abreviada. 
Por causa disso, as linguagens procedurais são consideradas a primeira geração de lingua-
gens de alto nível.
As linguagens procedurais exigem que o programador especifique, passo a passo, exata-
mente como o computador realizará uma tarefa. Uma linguagem procedural é orientada fo-
cando como um resultado deve ser produzido. Uma vez que computadores entendem apenas 
linguagem de máquina (i.e., 0s e 1s), linguagens de alto nível precisam ser traduzidas em lin-
guagem de máquina antes da execução. A tradução é feita por softwares de sistema chamados 
de tradutores de linguagem. Um tradutor de linguagem converte o programa de alto nível, 
chamado de código-fonte, em código de linguagem de máquina, chamado de código-objeto. 
Existem dois tipos de tradutores: compiladores e interpretadores.
 • Compiladores. A tradução de um programa de linguagem de alto nível para código-ob-
jeto é realizada por um programa de software chamado de compilador. O processo de 
tradução é conhecido como compilação.
 • Interpretadores. Um interpretador é um compilador que traduz e executa uma instrução 
de um programa-fonte por vez. Desse modo, interpretadores tendem a ser mais simples 
do que compiladores. Essa simplicidade permite que a depuração seja mais extensa e que 
a assistência ao diagnóstico esteja disponível em interpretadores.
 • Exemplos de linguagens procedurais. A FORTRAN (Formula Translator) é uma lingua-
gem procedural algébrica do tipo fórmula. Ela foi desenvolvida para atender a requisitos 
de processamento científicos.
A COBOL (Common Business-Oriented Language) foi desenvolvida como uma lingua-
gem de programação para a comunidade de negócios. A intenção era fazer com que as ins-
truções em COBOL fossem semelhantes ao modo como seriam expressas em inglês. Como 
resultado, os programas seriam “autodocumentáveis”. Há hoje em uso mais programas em 
COBOL do que em qualquer outra linguagem de computador.
O Microsoft Visual BASIC é a extensão da linguagem de programação BASIC. Essa lin-
guagem é famosa por sua interface gráfica com o usuário e é ideal para criar protótipos. Em 
2002, a Microsoft lançou a plataforma .NET, para que todas suas linguagens, incluindo a Vi-
sual BASIC, suportassem essa poderosa plataforma.
A linguagem de programação C foi a linguagem que mais cresceu nos anos 1990. A C é 
considerada mais transportável do que outras linguagens, o que significa que um programa 
escrito em C para um tipo de computador em geral executa em outros tipos de computador 
com poucas modificações, ou até mesmo sem modificação alguma. Além disso, a linguagem C 
é facilmente modificável.
Linguagens não procedurais. Quarta geração (4G). Outro tipo de linguagem de alto nível, 
conhecida como não procedural ou de quarta geração (4GL), permite que o usuário especifi-
que os resultados desejados sem ter que especificar os procedimentos detalhados necessários 
para atingir os resultados. Uma linguagem não procedural é orientada para aquilo que é re-
querido. As 4GLs, também referidas como linguagens de comando, simplificam e aceleram o 
processo de programação e reduzem o número de erros de codificação.
Linguagens de programação naturais. Quinta geração. As linguagens de programação de 
linguagem natural (natural language programming language – NLPs) são o próximo passo evo-
lutivo. São algumas vezes conhecidas como linguagens de quinta geração ou linguagens inte-
ligentes. Os programas de tradução para traduzir linguagens naturais de forma estruturada 
e legível pela máquina são extremamente complexos e requerem uma grande quantidade de 
recursos de computador. Exemplos incluem a INTELLECT e a ELF. Esses são em geral front-
-ends (como a linguagem FOCUS) que melhoram a interface do usuário com as 4GLs. Diversas 
linguagens procedurais de inteligência artificial (como as LISP) são chamadas por alguns de 
5GLs.
2 • Software GT2-13
Linguagens de programação objeto. Linguagens objeto foram criadas para se ajustar ano-
vas tecnologias como multimídia, hipermídia, gerenciamento de documentos e Internet. Essas 
linguagens são descritas a seguir.
Linguagens de programação orientada a objetos. A programação orientada a objetos 
(POO, ou object-oriented programming – OOP) modela um sistema como um conjunto de 
objetos. Como a programação estruturada, a POO tenta gerenciar a complexidade com-
portamental de um sistema, mas também tenta gerenciar a complexidade de informações 
de um sistema. A abordagem orientada a objetos (OO) envolve programação, ambientes 
de sistemas operacionais, bancos de dados orientados a objetos e um novo modo de abor-
dar aplicações de negócios.
Conceitos da abordagem orientada a objetos. Os conceitos básicos da abordagem OO são 
objetos, classes, transmissão de mensagens, encapsulamento, herança e polimorfismo. Como 
esses conceitos parecem complexos e técnicos demais à primeira vista, talvez seja útil relacio-
ná-los a aspectos das interfaces gráficas com o usuário em sistemas operacionais populares, 
como Windows e o Mac OS X da Apple. Essas interfaces foram desenvolvidas por meio da 
programação orientada a objetos e incorporam recursos orientados a objetos.
Sistemas orientados a objetos enxergam o software como uma coleção de objetos que 
interagem entre si. Um objeto modela coisas do mundo real. Essas coisas podem ser entidades 
físicas, como carros, alunos ou eventos. Ou podem ser coisas abstratas, como contas em ban-
cos, ou aspectos de uma interface, como um botão ou uma caixa para entrada de texto.
Quando nos referimos a um objeto, podemos ter dois sentidos: uma classe ou uma instân-
cia. Uma classe é um modelo ou uma estrutura geral que define os métodos e atributos a serem 
incluídos em um tipo particular de objeto. Um objeto é uma instância específica de uma classe, 
capaz de realizar serviços e armazenar dados. Por exemplo, “aluno” pode ser uma classe em 
sistema de matrícula de alunos. Um aluno em particular, por exemplo, John Kim, é uma ins-
tância dessa classe e, portanto, um objeto.
Objetos têm dados associados a eles. Os elementos de dados são referidos como atributos 
ou variáveis porque seus valores podem mudar. Por exemplo, o objeto John Kim pode ar-
mazenar os dados que o identificam como formando, graduando em sistemas de informação, 
matriculado no último semestre do curso.
Os objetos exibem comportamentos, que são as atividades que eles executam. O pro-
gramador implementa esses comportamentos ao escrever seções de código que realizam os 
métodos de cada objeto. Métodos são os procedimentos ou comportamentos de um objeto que 
modificarão os valores de atributo daquele objeto. Os métodos são algumas vezes chamados 
de operações que manipulam o objeto. Comportamentos comuns incluem modificar os dados 
em um objeto e comunicar informações em valores de dados. Ao clicar em uma caixa de sele-
ção em um sistema Windows, o usuário inicia o comportamento que modifica o atributo para 
“selecionado” e mostra um X ou uma marca de seleção na caixa.
Os objetos interagem entre si utilizando mensagens. Essas mensagens representam so-
licitações para exibir os comportamentos desejados. O objeto que inicia uma mensagem é o 
remetente, e o objeto que recebe a mensagem é o receptor. Quando interagimos com objetos, 
enviamos mensagens a eles e eles também podem enviar mensagens para nós. Clicar em um 
botão, selecionar um item de um menu e arrastar e soltar um ícone são maneiras de enviar 
mensagens aos objetos. Essas mensagens podem ativar métodos no objeto destinatário e, as-
sim, novas mensagens são geradas.
Transmitir mensagens é o único meio de obter informações de um objeto, porque os atri-
butos não são diretamente acessíveis. A falta de acessibilidade aos dados de um objeto é cha-
mada de encapsulamento ou ocultamento de informação. Ao ocultar suas variáveis, um objeto 
protege outros objetos de complicações derivadas da dependência em sua estrutura interna. 
Os outros objetos não precisam conhecer o nome de cada variável, o tipo de informação que 
ela contém nem o formato de armazenamento físico da informação. Eles só precisam saber 
solicitar informações ao objeto.
Com a herança, uma classe de objetos é definida como um caso especial de uma classe 
mais geral, incluindo automaticamente o método e as definições variáveis da classe geral. 
Classes especiais de uma classe são subclasses, e a classe mais geral é uma superclasse. Por 
exemplo, a classe aluno é uma subclasse de ser humano, que é uma superclasse. A classe 
aluno pode ser dividida ainda em alunos do estado, alunos de fora do estado ou alunos com 
GT2-14 Guias de Tecnologia
bolsa, que seriam subclasses da classe aluno. Essa organização resulta em uma hierarquia 
de classes.
A herança é particularmente valiosa, porque os analistas podem procurar em hierarquias 
de classes predefinidas, conhecidas como bibliotecas de classes, tratar por aquelas que sejam 
semelhantes às classes de que precisam em um novo sistema. Esse processo economiza muito 
tempo. Por exemplo, se o usuário final precisa tratar alunos como uma classe de objetos, o 
analista pode encontrar uma classe geral que seja similar à classe aluno, como vista pelo usuá-
rio final. Assim, o analista reutiliza informações de uma classe existente em vez de partir do 
começo para definir a classe aluno. A relação entre classes e subclasses é mostrada na Figura 
GT2.4.
Polimorfismo é a habilidade de enviar a mesma mensagem a vários receptores dife-
rentes (objetos) e fazer com que a mensagem desencadeie a ação desejada. Por exemplo, 
suponha que existam três classes de objetos em um sistema de ensino particular: alunos do 
estado, alunos de fora do estado e alunos com bolsa de estudos. Precisamos calcular a ma-
trícula para cada tipo de aluno (classes), levando em conta que as matrículas serão diferen-
tes para as três classes. O polimorfismo nos permite enviar a mesma mensagem “calcular 
matrícula” às três classes e obter a matrícula correta para cada uma.
Programação com OO. Criar programas e aplicações usando linguagens de programação 
orientada a objetos é semelhante a construir um prédio usando partes pré-fabricadas. O objeto 
contendo os dados e os procedimentos é um bloco de construção de programação. Os mesmo 
objetos são usados repetidamente, um processo conhecido como reusabilidade, ou capacidade 
de reutilização. Ao reutilizar o código do programa, os programadores escrevem programas 
com muito mais eficiência e com muito menos erros. Linguagens de programação orientadas a 
objetos oferecem vantagens como código reutilizável, custos baixos, menor incidência de erros 
e quantidade de testes, e implementação mais rápida. Linguagens populares de programação 
orientadas a objetos incluem Smalltalk, C++, Java e C#.
Smalltalk. A Smalltalk é uma linguagem orientada a objetos pura desenvolvida pelo Xerox 
Palo Alto Research. A sintaxe é razoavelmente fácil de aprender, sendo bem menos compli-
cada que a da C e a da C++.
C++. A C++ é uma extensão direta da linguagem C, com 80 a 90 por cento da C++ permane-
cendo C puro.
Employee (Classe)
Name (Variáveis de classe)
Title
Print (Methods)
Contractor (Subclasse de funcionário)
Name
Title
Contract_number
Dollar_amount
Print
Paid weekly (Subclasse de funcionário)
Name
Title
Print
Make_weekly_paycheck
Horista (Subclasse de funcionários pagos
 por semana)
Name
Title
Hourly_wage
Hours_per_week
Print
Make_weekly_paycheck - Redefinição
Salaried (Subclasse de funcionários pagos
 por semana)
Name
Title
Salary
Print - Redefinição
Make_weekly_paycheck - Redefinição
Figura GT2.4 Classes, subclasses, herança e redefinição de objetos. (Fonte: © Cortesia da Apple Corporation. Usada com 
permissão.)
2 • Software GT2-15
Unified Modeling Language, (UML). Desenvolver um modelo para sistemas de softwarecomplexos é tão essencial quanto ter a planta para a construção de um edifício. A UML é uma 
linguagem para especificar, visualizar, construir e documentar os artefatos (como as classes, 
objetos, etc.) em sistemas de software orientados a objetos. Ela torna a reutilização desses 
artefatos mais fácil, porque a linguagem fornece um conjunto comum de notações que podem 
ser usadas para todos os tipos de projetos de software.
Linguagem de Programação Visual. Linguagens de programação usadas em um ambiente 
gráfico costumam ser chamadas de linguagens de programação visuais. A programação visual 
permite aos desenvolvedores criar aplicações por meio da manipulação direta de imagens, em 
vez de especificar as características visuais no código. Essas linguagens usam mouses, ícones, 
símbolos na tela ou menus suspensos para facilitar a programação e torná-la mais intuitiva. A 
Visual Basic e o Visual C++ são exemplos de linguagens de programação visuais.
Várias linguagens existem especificamente para a Internet. A mais conhecida é a HTML.
Hypertext Markup Language. A linguagem padrão que a Web usa para criar e reconhecer 
documentos hipermídia é a Hypertext Markup Language (HTML). A linguagem HTML 
relaciona-se fracamente com a Standard Generalized Markup Language (SGML), que é 
um método de representar linguagens de formatação de documentos. Linguagens como a 
HTML que seguem o formato SGML permitem que editores de documentos separem as 
informações da apresentação do documento. Ou seja, documentos com as mesmas informa-
ções podem ser apresentados de diversas maneiras. Os usuários têm a opção de controlar 
elementos visuais como fontes, tamanho da fonte e espaçamento entre parágrafos sem alte-
rar as informações originais.
A HTML é fácil de usar. Documentos na Web costumam ser escritos em HTML e são 
nomeados com o sufixo .html ou .htm. Documentos em HTML são arquivos ASCII de 7 ou 
8 bits padrão com códigos de formatação que contêm informações sobre layout (estilos de 
texto, títulos, parágrafos, listas) e hiperlinks. A HTML padrão suporta a criação e o layout de 
documentos simples em hipertexto, bem como formas interativas e “pontos ativos” definidos 
em imagens.
O hipertexto é uma abordagem para gerenciamento de dados na qual os dados são arma-
zenados em uma rede de nós conectada por links (chamados de hiperlinks). Os usuários aces-
sam os dados por um sistema de navegação interativo. A combinação de nós, links e índices 
de ajuda para qualquer tópico é um documento em hipertexto. Um documento em hipertexto 
pode conter textos, imagens e outros tipos de informação como arquivos de dados, áudio, ví-
deo e programas de computador executáveis.
A rede mundial de computadores usa Uniform Resource Locators (URLs) para repre-
sentar links de hipermídia e links para serviços de rede dentro de documentos em HTML. A 
primeira parte do URL (antes das duas barras) especifica o método de acesso. A segunda cos-
tuma ser o endereço do computador em que os dados ou serviços estão localizados. Um URL 
é sempre uma linha contínua sem espaços.
A Dynamic HTML é o próximo passo, além da HTML. A Dynamic HTML oferece avan-
ços como estes:
 • Oferece uma experiência mais agradável e dinâmica ao usuário na Web, tornando as pági-
nas mais parecidas com aplicações dinâmicas, com menos conteúdo estático. Permite que 
o usuário interaja com o conteúdo das páginas sem precisar baixar conteúdo adicional do 
servidor. Isso significa que páginas Web que usam Dynamic HTML oferecem informa-
ções mais animadoras e úteis.
 • A Dynamic HTML dá aos desenvolvedores controle preciso sobre a formatação, as fon-
tes e o layout, o que oferece um modelo de objeto aprimorado para tornar as páginas 
interativas.
 • Serve como base para crossware, uma nova classe de aplicações sob demanda, indepen-
dente de plataforma, construída com Dynamic HTML, Java e JavaScript. O Netscape Ne-
tcaster, um componente do Netscape Communicator, foi a primeira aplicação crossware 
do Netscape.
Aprimoramentos e variações de HTML tornam possíveis novos layouts e recursos designs 
em páginas Web. Por exemplo, as folhas de estilo em cascata (cascading style sheets – CSSs) 
LINGUAGENS DE 
PROGRAMAÇÃO 
WEB E SOFTWARE
GT2-16 Guias de Tecnologia
são um complemento da HTML que atua como um modelo, definindo aparência ou estilo 
(como tamanho, cor e fonte) de um elemento de uma página Web, como uma caixa.
XML. A XML (eXtensible Markup Language) é otimizada para distribuição de documen-
tos pela rede. É construída com base na SGML. A XML é uma linguagem para definição, 
validação e compartilhamento de formatos de documentos. Ela permite que autores criem, 
gerenciem e acessem conteúdos dinâmicos, personalizados e customizados na Web sem in-
troduzir extensões de HTML proprietárias. A XML é especialmente indicada para aplica-
ções de comércio eletrônico. A XQuery é uma linguagem de consulta XML desenvolvida e 
padronizada pelo World Wide Web Consortium (W3C). A XQuery é uma linguagem po-
derosa e conveniente criada para o processamento de dados em XML: não apenas arquivos 
em XML, mas também outros dados, incluindo bancos de dados com estrutura similar à da 
XML. O objetivo da XQuery é localizar, recuperar e reorganizar dados vistos pelas lentes 
da XML.
Java. Java é uma linguagem de programação orientada a objetos desenvolvida pela Sun Mi-
crosystems. Essa linguagem possibilita aos programadores desenvolver aplicações que funcio-
nem na Internet. O Java é usado para desenvolver aplicações pequenas, chamadas de miniapli-
cações, que podem ser incluídas em uma página HTML na Internet. Quando o usuário usa um 
navegador compatível com Java para abrir uma página que contém uma miniaplicação Java, 
o código da miniaplicação é transferido ao sistema do usuário e executado pelo navegador.
JavaScript. JavaScript é uma linguagem de criação de scripts orientada a objetos desenvolvi-
da pela Netscape Communications para aplicações cliente/servidor. Ele permite que usuários 
tornem páginas Web mais interativas. Muitas pessoas confundem JavaScript com Java. Não há 
relação alguma entre essas duas linguagens. O JavaScript é uma linguagem bem básica e não 
tem semelhanças com a linguagem Java, que é sofisticada e complexa.
JavaBeans. JavaBeans é a arquitetura de componente neutra em relação à plataforma do 
Java. É usado para desenvolver ou montar soluções cientes de rede para ambientes de hard-
ware e sistemas operacionais heterogêneos, dentro da empresa ou na Internet. O JavaBeans 
estende a capacidade “escreva uma vez, execute em qualquer lugar”, para desenvolvimento 
de componentes reutilizáveis. O JavaBeans executa em qualquer sistema operacional e em 
qualquer ambiente de aplicação.
ActiveX. O ActiveX é um conjunto de tecnologias da Microsoft que combina diferentes lin-
guagens de programação em um site exclusivo e integrado. Antes do ActiveX, o conteúdo 
Web era constituído de textos e imagens estáticas bidimensionais. Com o ActiveX, os sites ga-
nharam vida usando efeitos multimídia, objetos interativos e aplicações sofisticadas que criam 
uma experiência de usuário comparável à títulos de CD-ROM de alta qualidade. O ActiveX 
não é propriamente uma linguagem de programação, mas um conjunto de regras para compar-
tilhamento de informações entre aplicações.
ASP. ASP (Active Server Pages) é uma tecnologia do tipo CGI (Common Gateway Interface)
da Microsoft que permite criar páginas Web geradas dinamicamente no lado do servidor usan-
do uma linguagem de criação de scripts. Como o ASP comunica-se com controles ActiveX e 
com outros programas OLE, os usuários podem aproveitar diversos geradores de relatório, 
controles gráficos e todos os controles ActiveX para os quais podem ser utilizados. O ASP 
também pode ser programado em VBScript ou JavaScript, permitindo que os usuários traba-
lhem na linguagem de sua preferência.
Software baseadona Web é um software que é instalado e executa em servidores e depois 
é acessado por um computador pessoal em rede. O computador pessoal costuma usar um 
navegador Web para acessar o software hospedado em um servidor. Um exemplo disso é o 
Google Docs.
A CASE (computer-aided software engineering) é uma ferramenta para programadores, ana-
listas de sistemas, analistas de negócio e desenvolvedores de sistema que ajuda a automatizar 
o desenvolvimento de software e ao mesmo tempo melhorar a qualidade de software.
Ela é uma combinação de ferramentas de software e métodos estruturados de desen-
volvimento de software. As ferramentas automatizam o processo de desenvolvimento de 
software, ao passo que as metodologias ajudam a identificar os processos a serem automa-
FERRAMENTAS CASE
2 • Software GT2-17
tizados com ferramentas. Ferramentas CASE costumam usar elementos gráficos ou dia-
gramas para ajudar a descrever e documentar sistemas e deixar mais claras as interfaces ou 
interconexões entre os componentes (ver Figura GT2.5). Elas em geral estão integradas, 
permitindo que os dados sejam transmitidos de ferramenta para ferramenta.
Categorias de ferramentas CASE. Ferramentas CASE suportam aspectos individuais ou 
estágios do processo de desenvolvimento de sistemas, grupos ou aspectos relacionados, ou 
o processo como um todo. Ferramentas Upper CASE (U-CASE) concentram-se principal-
mente em aspectos de projeto de desenvolvimento de sistemas, por exemplo, ferramentas que 
criam diagramas de fluxo de dados ou de relacionamento de entidades. As ferramentas lower 
CASE (L-CASE) auxiliam a programação e atividades relacionadas, como testes, em estágios 
avançados do ciclo de vida. Ferramentas Integrated CASE (I-CASE) incorporam a funcionali-
dade das ferramentas U-CASE e L-CASE e oferecem suporte a várias tarefas por todo o ciclo 
de desenvolvimento de software.
Ferramentas CASE são subdivididas em duas categorias: conjunto de ferramentas e 
workbenches. Um conjunto de ferramentas é uma coleção de ferramentas de software que 
automatiza um tipo de tarefa de software ou uma fase do processo de desenvolvimento de 
software. A subcategoria CASE workbench é uma coleção de ferramentas de software que se 
inter-relacionam com base em pressupostos comuns sobre a metodologia de desenvolvimento 
empregada. Um workbench também usa o repositório de dados que contém todas as infor-
mações técnicas e de gestão necessárias para construir o sistema de software. De modo ideal, 
workbenches oferecem suporte durante todo o processo de desenvolvimento de software e 
ajudam a produzir um sistema documentado e executável.
Como a maioria das ferramentas CASE tem natureza gráfica e a habilidade de construir 
protótipos funcionais rapidamente, usuários sem treinamento técnico podem participar mais 
ativamente do processo de desenvolvimento. Eles podem ver como o sistema completo ficará 
antes que seja construído, o que resulta em menos mal-entendidos e erros de design.
O uso de ferramentas CASE ajuda a tornar mais fácil a revisão de uma aplicação. Quando 
revisões são necessárias, só é preciso modificar especificações no repositório de dados, e não 
no código-fonte. Isso também permite que sistemas protótipos sejam desenvolvidos com mais 
Figura GT2.5 Tela de 
uma ferramenta CASE.
GT2-18 Guias de Tecnologia
rapidez e facilidade. Algumas ferramentas CASE ajudam a gerar códigos-fonte diretamente, 
com benefícios significativos.
Mas elas também têm algumas desvantagens. A falta de suporte à gestão de ferramen-
tas CASE dentro das organizações pode ser um problema. As CASE são caras para instalar, 
e o custo de treinamento de desenvolvedores é alto, o que torna seu uso adequado custoso 
também. Muitas empresas não sabem como medir a qualidade ou a produtividade no desen-
volvimento de software e, por isso, acham difícil justificar as despesas de implementação de 
ferramentas CASE. Além disso, a receptividade de programadores profissionais pode influen-
ciar bastante a eficiência dessas ferramentas. Muitos programadores que já dominam uma 
abordagem de desenvolvimento hesitam em adotar um novo método.
GT2.5 Questões e tendências de software
A importância do software em sistemas de computador trouxe novas questões e tendên-
cias para os gerentes organizacionais. Entre elas, avaliação e seleção de softwares, licença 
de software, atualizações e defeitos de software, malware, sistemas abertos, softwares de 
código-fonte aberto, shareware, pirataria de software, arquitetura orientada a serviços e 
computação autônoma.
Há dúzias ou até mesmo centenas de pacotes de software para praticamente qualquer função. 
A avaliação e a seleção do software é uma decisão difícil e sofre a influência de diversos fa-
tores. A primeira parte do processo seletivo envolve entender as necessidades de software da 
organização e identificar o critério que será usado na tomada de decisão. Uma vez que os re-
quisitos de software são estabelecidos, produtos de software específicos devem ser avaliados. 
Uma equipe de avaliação, composta por representantes de cada um dos grupos que terá um 
papel na construção e no uso do software, deve ser escolhida. A equipe irá estudar as alter-
nativas propostas e encontrar o software que prometa ser a melhor opção para aquilo que a 
organização precisa e o que ele oferece.
Licença proprietária. Fornecedores gastam tempo e dinheiro desenvolvendo produtos. Para 
proteger esse investimento, eles precisam impedir que o software seja copiado e distribuído 
por indivíduos e outras empresas de desenvolvimento de software. Uma empresa pode ad-
quirir os direitos autorais do software que produz, o que significa que o Copyright Office dos 
Estados Unidos garante às empresas o direito legal exclusivo de reproduzir, publicar e vender 
o software.
Licença de código-fonte aberto. Existem também licenças de software de código-fonte 
aberto. Software de código-fonte aberto pode ser distribuído e vendido livremente. Alguns 
exemplos de software de código-fonte aberto populares incluem GNU General Public License 
(licença pública geral), BSD e Licença Apache 2.0.
Software licenciado sob licença de código-fonte aberto precisa ser livre para ser redistri-
buídos por qualquer pessoa, e o software precisa ser distribuído com o código-fonte junto com 
o direito de modificar o código-fonte e de produzir trabalhos derivados sob os mesmos termos 
da mesma licença. Para mais informações, ver Open Source Initiatives “Open Source Defini-
tion” em http://www.opensource.org/docs/osd.
Outra questão de interesse para a gestão organizacional são as atualizações de software (o que 
também é conhecido como manutenção de software). Fornecedores de software costumam 
revisar seus programas e vender novas versões. O software revisado pode oferecer melhorias 
importantes ou, por outro lado, oferecer pouco em termos de capacidades adicionais. Além 
disso, o software revisado pode apresentar erros (bugs).
Decidir comprar ou não o software mais novo é um problema para empresas e adminis-
tradores de SI. É também difícil decidir ser ou não uma das primeiras empresas a comprar e 
obter vantagens estratégicas de novo software antes dos competidores, arriscando encontrar 
bugs que não haviam sido descobertos.
AVALIAÇÃO E 
SELEÇÃO DE 
SOFTWARE
LICENÇA DE 
SOFTWARE
ATUALIZAÇÕES DE 
SOFTWARE
2 • Software GT2-19
Um software de qualidade é usável, confiável, sem defeitos, tem bom custo-benefício e é 
passível de manutenção. Entretanto, é muito frequente que o código do programa seja ine-
ficiente, mal projetado e repleto de erros. Defeitos de software arruinaram o lançamento 
de um satélite europeu, atrasaram a abertura do Aeroporto Internacional de Denver por 
um ano e destruíram uma missão da NASA a Marte. Em outro exemplo, no mesmo dia em 
que a Microsoft lançou o Windows XP, a empresa postou 18 megabytesde patches em seu 
site: correção de bugs, atualizações de compatibilidade e aprimoramentos.
Com nossa dependência de computadores e redes, os riscos ficam cada vez maiores. 
De acordo com o Software Engineering Institute (SEI), programadores profissionais co-
metem em média 100 a 150 erros a cada mil linhas de código escritas. Usando a média do 
SEI, o Windows XP, com 41 milhões de linhas de código, teria mais de 4 milhões de bugs. 
A indústria reconhece o problema, mas ele é tão grande que apenas passos iniciais estão 
sendo dados. Um deles é melhorar o design e o planejamento no início do processo de 
desenvolvimento.
O conceito de sistemas abertos refere-se a um modelo de produtos de computador que tra-
balham em conjunto. Atingir esse objetivo é possível pelo uso do mesmo sistema operacional 
com software compatível em todos os diferentes computadores que irão interagir uns com os 
outros em uma organização. Uma abordagem complementar é produzir aplicativos que rodem 
em todas as plataformas. Se hardware, sistema operacional e software de aplicações forem 
projetados como sistemas abertos, o usuário poderá comprar o melhor software para aquilo 
que precisa sem se preocupar se irá rodar em um tipo específico de hardware. Como exemplo, 
a maioria dos pacotes de software de aplicação da Apple Macintosh não roda em computa-
dores Wintel (Windows-Intel). No entanto, o Windows roda em computadores Apple mais 
novos com processadores Intel. Nenhum deles roda em mainframes.
Certos sistemas operacionais, como o UNIX, rodam em quase todos os tipos de máqui-
nas. Assim, para atingir o objetivo de sistemas abertos, as organizações costumam usar UNIX 
nos desktops e em máquinas maiores para que os softwares produzidos para UNIX opere em 
todas as máquinas. Avanços recentes em direção a sistemas abertos envolvem o uso da lingua-
gem Java, que pode ser executada em vários tipos de computadores, no lugar de um sistema 
operacional tradicional.
Sistemas abertos não devem ser confundidos com software de código-fonte aberto. O soft-
ware de código-fonte aberto está disponível na forma de código-fonte sem custos para os 
desenvolvedores. Há muitos exemplos desse tipo de software, incluindo GNU (GNU’s NOT 
UNIX) (gnu.org/), desenvolvido pela Free Software Foundation (fsf.org/), o Linux kernel 
(kernel.org/), o servidor Web Apache (apache.org/), o servidor de e-mail sendmail SMTP 
(Send Mail Transport Protocol) (sendmail.org/), a linguagem de programação Perl (perl.
com), o navegador Mozilla Firefox (mozilla.org/), o Oracle Open Office (oracle.com), o An-
droid OS da Google e o Symbian v3.
Software de código-fonte aberto é, em muitos casos, mais confiável que software pro-
prietário. Como o código está disponível para muitos desenvolvedores, vários bugs são des-
cobertos – mais cedo e rapidamente, sendo corrigidos de imediato. O suporte para software 
de código-fonte aberto também está disponível a partir de empresas que fornecem produtos 
derivados do software, como, por exemplo, Red Hat para Linux (redhat.com/). Essas empre-
sas oferecem serviços pagos de treinamento e assistência técnica.
O Linux foi usado para criar os impressionantes efeitos da trilogia O Senhor dos Anéis. 
Mais de 200 estações de trabalho e 450 servidores de processador duplo rodaram o Red Hat 
Linux 7.3 para identificar os recursos do sistema e distribuir tarefas de renderizações, como 
sombras e reflexos, através de processadores ociosos para acelerar a criação de cenas.
Em termos de segurança e estabilidade, o código-fonte aberto é melhor porque várias 
pessoas podem encontrar problemas ocultos e erradicá-los mais cedo. Além disso, alguns em-
presários têm receio de ser bloqueados por software proprietário.
Software de código-fonte aberto algumas vezes é produzido por fornecedores, mas cos-
tuma ser produzido por grupos de voluntários. Ele normalmente é distribuído a custo baixo 
DEFEITOS DE 
SOFTWARE
SISTEMAS ABERTOS
SOFTWARE DE 
CÓDIGO-FONTE 
ABERTO
GT2-20 Guias de Tecnologia
ou sem custo algum por distribuidores que esperam ganhar dinheiro com treinamento, con-
sultoria, produtos complementares e software personalizado. Inicialmente, isso não foi consi-
derado confiável nem uma alternativa viável para o uso de software proprietário produzido 
por grandes empresas com reputação e recursos financeiros significativos. O Linux mudou 
essa percepção por meio do uso de software de código-fonte aberto; as empresas economizam 
muito sem comprometer qualidade, assistência e aprimoramentos futuros.
Shareware é um tipo de software cujo autor espera que o usuário pague uma quantia modesta 
pelo privilégio de usar o programa. Freeware é gratuito. Ambos ajudam a manter os custos 
de software baixos. Shareware e freeware costumam não ser tão poderosos quanto as versões 
profissionais (não têm o conjunto completo de funcionalidades), mas a maioria dos usuários 
consegue o que precisa a um custo baixo. Eles estão disponíveis na Internet em grande quan-
tidade (download.com). Um problema comum desse tipo de software é a eventual introdução 
de vírus ou de spyware. Alguns pacotes populares são o WinZip, o Adobe Reader, o Mozilla, 
o Zero Pop-up e o KaZaa.
SHAREWARE E 
FREEWARE

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes