Você está na página 1de 11

1- O QUE É SOFTWARE ?

Conceito formal: “Instruções (programas de computador) que, quando executadas,


produzem a função e o desempenho desejados; estruturas de dados que
possibilitam que os programas manipulem adequadamente a informação; e
documentos que descrevem a operação e o uso dos programas” – Engenharia de
Software – Roger Pressman.

O software, por ser um elemento de sistema lógico, tem características diferentes


dos outros produtos “físicos” construídos pelo homem, como o hardware.

Características do software:

a) O software é desenvolvido ou projetado por engenharia, não manufaturado no


sentido clássico.
Alta qualidade  depende de um bom projeto
O trabalho executado pelas pessoas é inteiramente diferente do que numa fábrica
de hardware, por exemplo.
Os custos de software estão concentrados no trabalho de engenharia.

b) Software não se “desgasta”


Ao contrário do hardware, o software não sofre a ação do tempo, poeira, vibração,
abuso, temperaturas extremas, males ambientais.
O software, entretanto, está sujeito a manutenções, que podem introduzir falhas
não existentes anteriormente.

c) Ao contrário do hardware, ainda há pouco uso de componentes reutilizáveis na


construção do software.
Os componentes reutilizáveis compreendem dados e processamento sobre estes
dados empacotados de forma que possam ser utilizados em várias aplicações.

Uma outra definição de software: “Seqüência de instruções a serem seguidas e/ou


executadas, na manipulação, redirecionamento ou modificação de um
dado/informação ou acontecimento” – Wikipedia.

O software é construído usando uma linguagem de programação.


Esta linguagem tem como objetivo permitir que programadores tenham uma maior
produtividade, utilizando uma sintaxe de alto nível, ao invés de usar a linguagem
que o computador entende nativamente (código de máquina).
Estas linguagens também tornam os programas menos dependentes de
computadores ou ambientes computacionais específicos (PORTABILIDADE).

Uma linguagem de programação pode ser convertida em código de máquina por


COMPILAÇÃO ou INTERPRETAÇÃO.

COMPILAÇÃO – conversão de todo o texto do programa (código-fonte) para


linguagem de máquina, para ser executado posteriormente.
A versão compilada é armazenada, e é executada sempre que necessário, sem
necessidade de ser compilada novamente. Ex: Pascal, Delphi, C.

INTERPRETAÇÃO – o código-fonte é traduzido à medida que vai sendo


executado. Quem traduz o código-fonte é o INTERPRETADOR. São, em geral,
mais lentos que os compilados. Ex: Perl, Javascript, ASP, PHP.

Também existem os casos híbridos, como no caso do Java, onde o código-fonte é


“compilado” para um código de máquina (BYTECODE) de uma máquina virtual, e
esta máquina virtual atua como interpretador, traduzindo o BYTECODE para o
código de máquina específico.

O “produto” software, do ponto de vista do construtor (engenheiro de software), é


composto de programas, dados e documentos. Do ponto de vista do usuário,
pode ser considerado como sendo a informação resultante que facilita a vida do
usuário.

2- ÁREAS (CATEGORIAS) DE SOFTWARE:

2.1- Software Básico


- forte interação com o hardware
- intenso uso por múltiplos usuários
- operações concorrentes
- compartilhamento de recursos
Ex: compiladores, componentes do sistema operacional, drivers, etc.

2.2- Software de tempo real


- monitora / analisa / controla eventos do mundo real
Ex: sistemas de controle, equipamentos científicos, militares, etc.

2.3- Software comercial


- processamento de transações
- sistemas de apoio a decisão
Ex: folha de pagamento, contas a pagar e receber, estoques, etc.

2.4- Software científico e de engenharia


- algoritmos de processamento de números
Ex: CAD, aeroespaciais, balística, etc.

2.5- Software embutido


- produtos “inteligentes”
- mercados industriais e de consumo
Ex: teclado para forno de microondas, painel de controle de automóvel, etc.

2.6- Software de computador pessoal


Ex: processamento de texto, planilhas, bancos de dados desktop, jogos,
navegadores, etc.
2.7- Software de inteligência artificial
- “aprendem” com a experiência passada (redes neurais artificiais)
- sistemas especialistas
- sistemas baseados em conhecimento

3- EXEMPLOS DE SOFTWARE

3.1- SISTEMAS OPERACIONAIS


- Windows
- Linux
- Unix
- Mac OS
- OS / 2

3.2- APLICATIVOS
3.2.1- Automação de Escritório
- Microsoft Office
- Open Office

3.2.2- Navegadores
- Internet Explorer
-Mozilla Firefox
- Mozilla
- Netscape
- Opera

3.2.3- Correio Eletrônico


- Microsoft Outlook Express
- Microsoft Outlook
- Eudora
- Mozilla Thunderbird

3.2.4- Mensagens
- ICQ
- MSN Messenger (Microsoft)
- Yahoo Messenger
- Google Talk

3.2.5- Gráficos
- Photoshop
- Gimp

3.2.6- Utilitários
- Winzip
- Winrar
- McAfee Anti-Vírus
- Norton Anti-Vírus

3.2.7- Bancos de Dados


- Oracle
- Microsoft SQL Server
- MySQL
- PostgreSQL
- DB2
- Firebird
- Microsoft Access

3.2.8- Servidores Web


- Apache
- IIS (Microsoft)

3.3- SOFTWARE LIVRE E CÓDIGO ABERTO

Software livre tem a ver com a liberdade, não com o preço.


É a liberdade dos usuários executarem, copiarem, distribuírem, estudarem,
modificarem e aperfeiçoarem o software.
São 4 tipos de liberdade:
a) Liberdade de executar o programa, para qualquer propósito (liberdade 0).
b) LIberdade de estudar como o programa funciona, e adaptá-lo para suas
necessidades (liberdade 1). O acesso ao código-fonte é um pré-requisito para esta
liberdade
c) Liberdade de redistribuir cópias de modo a ajudar o próximo (liberdade 2).
d) Liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de
modo que toda a comunidade se beneficie (liberdade 3). Acesso ao código-fonte
é um pré-requisito para esta liberdade.

O idealizador do software livre, e fundados da FSF (Free Software Foundation) é


Richard Stallman, que, na década de 80 delineou os princípios éticos do
movimento e estabeleceu as quatro liberdades que fundamentam o movimento.

O principal projeto da FSF é o projeto GNU (GNU's Not Unix), que é um sistema
operacional livre baseado no Unix.
O projeto teve início no começo dos anos 80 e a Free Software Foundation foi
criada para levantar fundos para este projeto.
Em 1990, todos os componentes maiores do sistema operacional etavam prontos,
exceto o seu núcleo central – o kernel.
Linus Torvalds desenvolveu o Linux, um kernel baseado em Unix, que foi tornado
software livre em 1992. Combinando o Linux com o quase completo GNU surgiu o
GNU/Linux, sistema operacional hoje usado por mais de dez milhões de pessaos,
em suas várias distribuições.
Uma distribuição GNU/Linux nada mais é do que um empacotamento do kernel
Linux junto com os outros softwares que compõem o sistema operacional
(compiladores, editores, processadores de texto, software de e-mail, navegadores,
etc.), acrescidos ou não de manuais do sistema. Este empacotamento é
distribuído de forma gratuita, ou não.
Existem várias distribuições GNU/Linux, tais como Slackware, Mandrake, Red Hat,
Fedora, Debian, Suse, Kurumin, e outras. O que diferencia estas distribuições é a
quantidade de softwares que vêm junto com o kernel, os manuais e a gratuidade.

Você pode redistribuir as cópias de graça ou cobrando uma taxa pela distribuição,
para qualquer um em qualquer lugar.
Você pode também modificar a cópia para seu próprio uso, sem que seja
necessário comunicar o fato ao desenvolvedor ou quem quer que seja.

Os softwares livres são regidos por licenças do tipo GPL (General Public License),
aplicáveis às necessidades do software. O que não pode ser colocado nas
licenças GPL é algo que possa restringir as quatro liberdades fundamentais.

COPYLEFT – ao redistribuir um programa, você não pode adicionar restrições


para negar a outras pessoas as liberdades principais.

Software livre não significa “não-comercial”.

Open Source (código aberto) – software cujo código-fonte é público. Respeita as


quatro liberdades definidas pela Free Software Foundation.

No Open Source não é preciso seguir a licença GPL, mas, na prática, a maioria
dos softwares de código aberto é regida por licenças GPL.

Os defensores do código aberto têm, na verdade, uma preocupação mais técnica,


ou seja, com o fato do software poder ser "fiscalizado" por quem quiser,
garantindo sua qualidade, estabilidade e segurança.
Os defensores do software livre têm uma preocupação mais política, ideológica,
que tem a ver com a liberdade (as quatro liberdades que definem o software livre).
Vale dizer que, para ser open source, o código tem que estar aberto por completo,
e para todos que quiserem ver.
Iniciativas como, por exemplo, a da Microsoft que recentemente abriu parte do
código de um de seus produtos para uma comunidade de desenvolvedores não
faz deste produto um produto open source.

Na prática, todo software de código aberto é também software livre. As diferenças


são políticas e ideológicas.

Algumas vantagens do software livre / open source

- Confiabilidade

O cõdigo aberto permite a validação por profissionais do mundo inteiro,


aumentando sua estabilidade.
- Segurança

Pelo mesmo motivo, o código aberto acaba sendo mais seguro, porque com
tantos profissionais estudando o código, sabe-se exatamente o que ele faz.

- Velocidade

A velocidade de desenvolvimento é bem maior, já que, ao invés do produto


ter uma equipe alocada a ele, conta com uma comunidade imensa ao redor
do mundo "alocada" a ele.

- Proximidade do cliente

O código aberto permite que a equipe de desenvolvimento do cliente


participe do desenvolvimento do produto.

- Maior quantidade de plataformas

Por haver esta equipe mundial de desenvolvimento, o software é portado


para várias plataformas muito mais rapidamente.

Maneiras de ganhar dinheiro com software livre / código aberto

Como já foi dito, o fato do software ser livre não o impede de ser comercial.
Mas também existem outras formas de ganhar dinheiro com ele:

a) Suporte técnico

Como não há um vendedor por trás do software para dar suporte, é


lucrativo dar suporte técnico ao software para quem não tem este
conhecimento.

b) "Gancho" para versões maiores, com mais recursos, pagas.

O software livre pode ser um "gancho", ou atrativo, para que o consumidor


compre versões aumentadas, com mais recursos, do mesmo software.

c) Com software "embutido" em hardwares.

Neste caso, o objetivo é baratear o custo do hardware, como roteadores,


microcomputadores, etc, que já vêm com software instalado.

Do ponto de vista de quem é consumidor do software, uma das grandes


vantagens é que ele não precisa se preocupar em comprar licenças, ou
com o número delas, nem de estar usando software pirata (liberdade legal).
Outra vantagem é a independência de fabricante, ou seja, o consumidor
não fica nas mãos do fabricante.
Classificação de software segundo a propriedade:

A) Software livre – como já vimos, é o que possui as quatro liberdades


definidas pelo movimento de software livre.

B) Open Source – na prática, funciona como o software livre.

C) Software não-livre:
C.1) Software semi-livre – não é livre, mas vem com as mesmas
permissões do software livre, mas apenas para fins não-lucrativos.
C.2) Software proprietário – o uso, redistribuição e modificação são
proibidos. O código é fechado.

D) Freeware – software que permite redistribuição gratuita, mas não


modificação.

E) Shareware – não é possível modificar o programa. Código não é aberto.


Pode redistribuir, mas quem continuar usando tem que pagar pela licença.

Links úteis – o material desta aula pode ser encontrado, com uma
quantidade bem maior de detalhes em http://www.gnu.org e
http://www.opensource.org

4- SISTEMAS OPERACIONAIS

4.1- Windows x Linux

4.1.1 – Histórico do Windows

DESKTOP

1985 – Windows 1.0

. clicar ao invés da linha de comando.


. usuário podia permutar entre aplicações concorrentes.

1987 – Windows 2.0

. aproveitamento do aumento da velocidade dos processadores.

1990 – Windows 3.0

. melhoria de performance.
. gráficos de 16 cores
. program manager, file manager, print manager.
1993 – Windows NT 3.1

. “new technology”
. aumento da quantidade de aplicações de terceiros para Windows.

1993 – Windows for Workgroups 3.11

. redes locais

1994 – Windows NT Workstation 3.5

1995 – Windows 95

. protocolo TCP/IP integrado ao sistema operacional.


. suporte a Internet “built-in”.
. rede dial-up.
. plug and play.

1996 – Windows NT Workstation 4.0

. interface do Windows 95.

1998 – Windows 98

. upgrade do Windows 95.


. suporte a USB

1999 – Windows 98 Second Edition

. upgrade do Windows 98
. Internet Explorer 5.0

2000 – Windows Millenium Edition (ME)

. System Restore
. último baseado no Windows 95

2000 – Windows 2000 Professional

. baseado no Windows NT Workstation 4.0


. melhoria no plug and play
. maior estabilidade e confiabilidade

2001 – Windows XP Professional


. melhoria de performance, confiabilidade e segurança.
. criptografia do sistema de arquivos.
. System Restore.

2001 – Windows XP Home

. feito para usuários domésticos.

2001 – Windows XP 64-bit Edition

. para uso com o processador Intel Itanium 64-bit

2002 – Windows XP Media Center Edition

. para uso doméstico e entretenimento.


. todos os benefícios do Windows XP Professional.

2002 – Windows XP Tablet PC Edition

. para uso com tablets.

SERVER

1993 – Windows NT Adv anced Server 3.1

. escalabilidade.
. tolerância a falha.

1994 – Windows NT Server 3.5

. conectividade a outros sistemas (Novell, Unix).

1995 – Windows NT Server 3.5.1

1996 - Windows NT Server 4.0

. interface do Windows 95.


. melhoria de performance de rede.
. melhoria dos serviços de arquivo e impressão.
. servidor web integrado (IIS 2.0)

1997 – Windows NT Server 4.0, Enterprise Edition

. melhor performance e escalabilidade.

1998 – Windows NT Server 4.0, Terminal Server Edition


. conexão por terminais não-Windows.

2000 – Windows 2000 Server


Windows 2000 Advanced Server
Windows 2000 Datacenter Server

2003 – Windows Server 2003, Standard Edition


Windows Server 2003, Enterprise Edition
Windows Server 2003, Datacenter Edition
Windows Server 2003, Web Edition

4.1.2- Histórico do Linux

1991 – Linus Torvalds começou o trabalho no Linux na Universidade de Helsinki


(Finlândia)

1994 – Kernel 1.0 do Linux é lançado.

1996 – Kernel 2.0 do Linux é lançado. (suporte a multiprocessadores)

1999 – Kernel 2.2 do Linux é lançado.

2001 - Kernel 2.4 do Linux é lançado. (estabilidade, alta performance)

2004 – Kernel 2.6 do Linux é lançado.


. suporte a grandes quantidades de memória (64 GB).
. muitos terabytes (TB) de disco.

4.1.3 – Vantagens e desvantagens

WINDOWS

a) Vantagens:

- Facilidade de uso.
- Facilidade de instalação (plug and play – reconhecimento de hardware).
- Facilidade de manutenção
. grande número de profissionais com conhecimento do sistema operacional.
. mão-de-obra mais barata.
. grande quantidade de referências técnicas e bibliografia.
. facilidade de suporte técnico.
- Grande quantidade de software para Windows.
b) Desvantagens:

- Preço.
- Estabilidade.
- Código fechado.
- Falta de segurança.
- Grande quantidade de vírus.

LINUX

a) Vantagens:

- Preço (mesmo com distribuição paga).


- Código aberto.
- Segurança.
- Estabilidade.
- Poucos vírus.

b) Desvantagens:

- Uso mais complicado (resistência por parte do usuário comum).


- Instalação mais complicada (não reconhecimento de alguns hardwares).
- Dificuldade de manutenção.
. poucos profissionais com conhecimento.
. mão-de-obra cara.
. dificuldade de suporte técnico.
. menos softwares que para Windows (mas crescendo).

Você também pode gostar