Software Conceito e principais tipos de softwares Unidade 3.

Post on 07-Apr-2016

225 views 3 download

Transcript of Software Conceito e principais tipos de softwares Unidade 3.

Software

Conceito e principais tipos de softwares

Unidade 3

Objetivo

• Apresentar osconceitos,uma análise dasprincipais categorias de software e das tecnologias utilizadas em sua construção

Conceito

• Um software é umconjunto detalhado deinstruções que controlam a operação dos dispositivos de processamento

Funções dos softwares• Gerenciar os recursos

de informática daorganização

• Prover ferramentas para que as pessoas interajam com estes recursos

• Agir como um intermediário entre a organização e as informações armazenadas

Desenvolvimento de software• Antes de um software

poder ser utilizadopelos usuários, ele deve ser desenvolvido

• Desenvolver um software consiste em escrever as instruções que ele deverá executar durante o processamento dos dados

• As instruções quecompõem um softwaresão redigidas por um programador

• O programador utiliza uma linguagem de programação

• Exemplos: Java, Object Pascal (Delphi), Visual Basic, PL/SQL, COBOL, NATURAL, C, C++, C#, etc.

Código fonte

• O código escrito peloprogramador em umalinguagem de programação é chamado de código fonte

Exemplo de código fonte

procedure Cubo.Converte;{recalcula a novaprojecao do cubona tela apos a movimentacao}

var n, m : integer;begin Inic_posicao; for n:=1 to 27 do for m:=1 to 8 do Tela (self[n].Ponto_tela [m], self[n].Ponto_univ [m]);

end;

Tradução do código fonte

• Para ser compreendidopelo dispositivo deprocessamento, o código fonte deve passar por um processo de tradução

Tradução

• O código fonte, aoser traduzido, irágerar um código executável, em linguagem binária, compreendida pelo dispositivo

• O processo de tradução pode ser por compilação (mais comum) ou interpretação

Utilização dos códigos

• O código executávelé incompreensívelpelos programadores

• Devido a isto, para permitir a modificação de um software é preciso ter acesso ao seu código fonte

Dispositivos deEntrada

Software

MemóriaPrimária

MemóriaSecundária

MemóriaTernária

Dispositivos deSaída

Execução de um softwareO usuário interage com o

software utilizando sua

interface

Dispositivos deEntrada

Software

MemóriaPrimária

MemóriaSecundária

MemóriaTernária

Dispositivos deSaída

Execução de um software Os dados entrados pelo usuários são

armazenados na memória primária, juntamente com o

software

Dispositivos deEntrada

Software

MemóriaPrimária

MemóriaSecundária

MemóriaTernária

Dispositivos deSaída

Execução de um software

O software é executado pelo processador, que carrega instrução a instrução do

código executável, interpretando-as e

executando-as

Dispositivos deEntrada

Software

MemóriaPrimária

MemóriaSecundária

MemóriaTernária

Dispositivos deSaída

Execução de um software

A interação compreende entrada e

saída de dados

Dispositivos deEntrada

Software

MemóriaPrimária

MemóriaSecundária

MemóriaTernária

Dispositivos deSaída

Execução de um software

O software pode ler e gravar dados na

memória secundária (banco de dados)

Execução de um software

Software

MemóriaPrimária

Dispositivos deEntrada

MemóriaSecundária

MemóriaTernária

O software é carregado para a memória primária

(executado)

Dispositivos deSaída

Categorias de softwares

• Os softwaresdividem-sebasicamente em duas categorias– Software BÁSICO– Software APLICATIVO

Software básico

• Os softwares básicoscaracterizam-se porgerenciarem recursos dos dispositivos de processamento (hardware), como processador, memória primária, memória secundária, comunicação de dados, dispositivos de entrada e saída

Software aplicativo

• Softwares aplicativosexecutam tarefasespecíficas, como edição de textos, edição de planilhas, gestão de recursos humanos, controle de estoque, etc.

Relação entre software básico e aplicativo

• Para executar suastarefas, os softwaresaplicativos utilizam os softwares básicos

• Por exemplo: para imprimir, um software aplicativo envia os dados para um software básico, que se comunica com a impressora e controla a impressão

Relação entre software básico

e aplicativoSoftware Aplicativo

Software Básico

Sistema operacional (SO)

• Sistema operacionalé o principal softwarebásico de um computador

• Ao sistema operacional cabe ocultar a complexidade dos dispositivo, tornando sua utilização mais fácil e rápida

Vantagens para os usuários

• Provê formas rápidase organizadas aosrecursos

• Exemplo: o conceito de “arquivo” existe devido ao sistema operacional, que organiza a memória secundária

Ambientes de janelas

• Grande parte dossistemas operacionaisatuais possui um ambiente de janelas, que pode ser operado com dispositivos de apontamento (mouse, trackball, etc.) sobre janelas, botões e outros componentes gráficos

Vantagens para os usuários

• Para osprogramadores,torna desnecessárioconhecer as particularidades de cada dispositivo

• Exemplo: o comando que imprime é o mesmo para qualquer impressora, independente da marca, modelo, etc.

• Tira melhor proveitodo hardware,permitindo,por exemplo, que sejam executados diversos programas “ao mesmo tempo”

Funções dos sistemas operacionais• Execução de

softwares• Controle da utilização da memória primária• Controle da utilização da memória secundária (sistema de

arquivos)• Controle dos dispositivos de entrada saída• Estas quatro primeiras funções formam o núcleo (kernel)

do sistema operacional• Controle de segurança

– Validação de usuários(login e senha)

– Controle de acesso a arquivos, pastas, impressoras, computadores, etc.

• Manutenção de informações gerenciais (logs) e estatísticas

Exemplos de sistemas operacionais

• Existem diversossistemas operacionais,para diferentes tipos de dispositivos de processamento

SOs para computadores pessoais

• Microsoft DOS(obsoleto)

• Microsoft Windows XP• Linux• IBM OS/2 Warp

Windows para computadores pessoais

Windows NT199019931995199619982000

Origem DOS

2002

SOs para computadores servidores

• Microsoft Windows2000

• Linux• FreeBSD• Novell Netware• HP-UX

• SUN Solaris• IBM AIX• IBM VM e VSE

Windows para computadores

servidores

1993

1995199619971998

200?

1994

2000

SOs para dispositivos de computação móvel

• Palm OS• Microsoft Windows CE

– Pocket PC, Handheld PC, Smartphone, Automotive, etc.

• Microsoft Windows XP Tablet PC• Symbian OS

UNIX

• Desenvolvidooriginalmente em 1969,no Bell Labs, por Ken Tompson e Dennis Ritchie

• Deu origem a diversos sistemas operacionais

UNIX

• Originalmente não éacompanhado deambiente de janelas, o que o restringiu a profissionais de informática

UNIX

• Considerado maisrobusto e, emconseqüência, menos sujeito a falhas

• Devido à sua robustez, é utilizado largamente em computadores servidores

Linux

• Criado a partir doMINIX e do BSD 4.3

• Teve o Kernel (núcleo) customizado por Linus Torvalds

• É o mais conhecido e mais utilizado dos “softwares livres”

Distribuições Linux

• Possui diversas“distribuições”

• Uma distribuição Linux é criada por um grupo de usuários ou por uma empresa

• A maioria das distribuição é gratuita, mas começam a surgir as primeiras distribuições pagas

Exemplos de distribuições Linux

• Red Hat• Mandrake• Debian• SuSe• Conectiva• O site www.linux.org contabiliza 167

distribuições

FreeBSD

• Criado a partir doBSD 4.4

• Teve o kernel customizado por um grupo de usuários

• Ao contrário do UNIX, tem uma única distribuição, mantida por um grupo de usuários

Ambientes de janelas• Por não serem

normalmenteacompanhados de ambiente de janelas, devem ser instalados pacotes adicionais

• Existem diversos ambientes de janelas– GNOME– KDS– WindowMaker

Outras versões de UNIX

• HP-UX• SUN Solaris• IBM AIX• SCO UNIX

UNIX versus Windows 2000 Server

• Windows é Microsoft• UNIX é “gratuito”• Windows é mais completo, mas também

costumam identificar mais problemas• UNIX dispõe de diversas ferramentas

gratuitas na Internet e costuma ser mais robusto

UNIX versus Windows 2000 Server

• Windows é muito maisfácil de ser utilizado eadministrado

• UNIX costuma ter um desempenho superior

• Windows e UNIX têm problemas de segurança

O que escolher?

• Não é uma decisãoisolada

• Dependente da estratégia da empresa• Tendência de mercado:

– Adoção de UNIX (FreeBSD e Linux) nos computadores servidores

– Adoção de Windows nos computadores de mesa

Softwares servidores

• São softwares quefornecem serviços aoutros softwares

• Exemplos– Armazenamento e recuperação de dados– Envio e recebimento de correio eletrônico– Acesso a páginas da Internet

Sistemas de gerência de bancos de dados

• São softwares quetêm a função dearmazenar e recuperar, com segurança e agilidade, informações armazenadas em bancos de dados

• Exemplos– Oracle– Microsoft SQL Server– IBM DB2

Servidores de correio eletrônico

• Recebem, enviam emantém mensagens decorreio eletrônico

• Exemplos– Microsoft Exchange– IBM Notes– UNIX sendmail

Servidores de aplicação

• Atualmente osservidores deaplicações estão voltados para a Internet

• Provém acesso a páginas HTML• Montam páginas HTML dinamicamente, a

partir de bancos de dados

Servidores de aplicação

• Executamprocessamentocentralizado

• Controlam acesso, segurança, etc.

Servidores de aplicação

• Exemplos– Microsoft Internet

Information Server (IIS)– Sun iPlanet– IBM WebSphere– Apache– TomCat

Softwares aplicativos

• Entre os principaissoftwares aplicativosdestacam-se os pacotes de automação de escritórios e os navegadores da Internet

Pacotes de automação de escritório

• Incluem, normalmente– Editor de textos– Editor de planilhas eletrônicas– Editor de apresentações– Sistema de bancos de dados pessoais– Cliente de correio eletrônico

Microsoft Office

• Composto de– Word– Excel– PowerPoint– Access– Outlook

• http://www.microsoft.com/brasil/office

SUN StarOffice

• Composto de– Writer– Calc– Impress– ???– Base

• http://www.sun.com/staroffice

openoffice.org

• Derivado do StarOffice,tem a distribuiçãogratuita

• Inclui apenas algumas das melhorias do StarOffice

• Mantido por um grupo de usuários

StarOffice X openoffice.org

• A Sun resolveu iniciara cobrança peladistribuição do StarOffice, mas permitiu a manutenção de uma versão gratuita por um grupo de usuários

Navegadores (browsers)

• Permitem o acesso apáginas HTML daInternet e Intranet

• Normalmente vêm acompanhados de outros softwares adicionais

• Exemplos

Navegadores (browsers)

• Exemplos– Microsoft Internet

Explorer– AOL Netscape– Opera

Outros exemplos de softwares de aplicação

• Existem inúmerasoutras categorias desoftwares aplicativos

• Utilitários são pequenos softwares aplicativos que executam funções bem específicas

Exemplos de utilitários

• Compactadores– WinZIP– PowerArchiver

• Aceleradores de downloads• Tocadores de música• Etc.

Sistemas de Informação

• São uma categoriaespecial de softwareaplicativo

• Automatizam os processos de negócio da empresa

• Podem ser desenvolvidos pela própria organização ou adquiridos

Desenvolvimento X aquisição

• A escolha entre desenvolver internamente ou adquirir de terceiros os sistemas de informação é uma etapa fundamental do planejamento de TI

• O desenvolvimento interno exige um investimento inicial e uma verba de custeio

Desenvolvimento

• Contratar, manter etreinar equipe própria

• Desenvolvimento bastante específico para as necessidades da organização

• Criar cultura interna de sistema de informação

Aquisição

• Não há o custo com acontratação e formaçãoda equipe própria

• O sistema normalmente tem que ser customizado às necessidades da empresa

• Reduz a cultura interna de sistema de informação

Aquisição

• Pode-se gastar comcontratos demanutenção do sistema

• Alternativa: terceirização de mão de obra?

Formas de distribuição e comercialização

• Existem diversasformas de distribuiçãoe comercialização de software

• As principais baseiam-se nos princípios de:– Software Livre– Software Proprietário

Software livre

• O conceito desoftware livre foicriado no início da década de 80 pelo pesquisador Richard Stallman, do MIT

Software livre

• Baseia-se na idéia deque software e seuscódigos-fonte são conhecimentos científicos e, como os teoremas, não podem ser guardados e comercializados

• A ciência em prol da evolução da própria ciência

Free = Liberdade

• Free refere-se aliberdade e não àgratuidade

• Free Software = Software Livre• Free Software ≠ Software Grátis

Liberdades previstas

• 1ª liberdade: – A liberdade de

executar o software, para qualquer uso• 2ª liberdade:

– A liberdade de estudar o funcionamento de um programa e adaptá-lo às suas necessidades

Liberdades previstas

• 3ª liberdade: – A liberdade de

redistribuir cópias• 4ª liberdade:

– A liberdade de melhorar o programa e de tornar as modificações públicas de modo que a comunidade inteira se beneficie da melhoria

Distribuição

• As liberdadesconcedidas permitemque um software livre possa ser distribuído de graça ou cobrando alguma taxa pela distribuição

• Para permitir as modificações, as distribuições devem incluir código-fonte

Software Aberto

• É um modelo similarao do software livre,criado em 1997 por Eric Raymond, Tim O'Reilly e Larry Augustin

• Mais atraente do ponto de vista comercial• Permite até mesmo a inclusão de software

comercial no código de software livre

Software de domínio público

• É um software quenão possui copyright,ou seja, que pode ser copiado e distribuído livremente

• No entanto, para ser considerado software livre, deve estar acompanhado do código-fonte

Software de domínio público

• Um software dedomínio público podeser convertido em um software proprietário por alguém ou alguma empresa

Freeware

• É um software quepossui a distribuiçãoliberada, ou seja, é gratuito, mas não pode ser modificado

Software copylefted

• Copyleft significa ooposto ao copyright

• Um software copylefted deve poder ser modificado

Software copylefted

• Um softwarecopylefted pode serdistribuído livremente e quem recebe uma cópia, modificando-a ou não, deve redistribuí-la também sob as mesmas condições

Projeto GNU

• GNU = GNU is notUnix

• Mantido pela Free Software Foundation – FSF – criada em 1984 por Richard Stallman

Modelo de Licenciamento

• GPL = GNU GeneralPublic License

• Define as características necessárias a um programa para que ele seja considerado software livre

Modelo de Licenciamento

• Pela GPL, todoprograma que utilizefragmentos de software livre licenciados pela GPL, também deve ganhar o status de GPL, ou seja, software livre

• Estimula o desenvolvimento pela reutilização de código

Modelo de Licenciamento

• Existe um modelopadrão de GPL,publicado pela Free Software Foundation

• Este modelo deve ser incluído na distribuição de qualquer software GPL

• É um formalismo

Software Proprietário

• É um softwareque não é livre, ouseja, sua redistribuição ou modificação é proibida ou somente pode ser feita sob autorização

• Copyright = proteção dos direitos autorais

Software Fechado

• É um softwareproprietário que nãopode ser distribuído ou modificado

• É comercializado apenas pelos canais de venda do proprietário do software

Shareware

• É um software quepode ser distribuídolivremente, mas aquele que quiser utilizá-lo deve pagar o valor do licenciamento

Formas de distribuição

Software Livre

Software Aberto

Domínio Público

Copyleft

GPL

Software Proprietário

Software Fechado

Shareware

Download Livre

Freeware

Barreiras ao software livre

• O conceito desoftware livre não foiconsideradoatraente pelas empresas, que visam o lucro e não o progresso da ciência

Avanço do software livre

• Atualmente asempresas vêem nosoftware livre uma oportunidade de venderem não só produtos, mas serviços e conhecimento, agregando valor aos produtos

Avanço do software livre

• Não pagando pelosoftware, as margensde lucro obtidas pelos profissionais de informática na condução de projetos para empresas tendem a ser maiores

• Muitos profissionais passaram a recomendar o software livre

Software proprietário X software comercial

• Logo, se umsoftware livre estásendo utilizado para fins comerciais, ele pode ser considerado um software comercial, embora seja um software livre

• Software comercial ≠ software proprietário

Exemplos de softwares livres

• Distribuições dosistema operacionalUNIX– Red Hat– Caldera– Mandrake– etc.

Exemplos de softwares livres

• Todas estas empresasvisam algum tipo delucro com a distribuição ou suporte ao software

• São softwares comerciais

Exemplos de softwares livres

• Outros exemplos:– GNU/Linux– Debian Linux– FreeBSD– openoffice.org– etc.

Exemplos de software proprietários

• Os softwares dasgrandes empresas:– Microsoft

• Windows• Office

– Oracle

Maiores informações

• Free SoftwareFoundation

www.fsf.orgwww.gnu.org

Questão

• O que aconteceu como StarOffice, após acompra da StarDivision pela SUN?

ATIVIDADE: Software livre

• Os alunos deverãodiscutir sobre softwarelivre na fórum de discussão criada na página da disciplina

ATIVIDADE: Software livre

• Grupos de 10 alunoscom 1 moderador– Passar a nominata dos grupos, indicando o

moderador, para o professor, via e-mail• Ao final de uma semana de discussão,

o grupo deverá entregar um relatório, via e-mail, com suas conclusões

ATIVIDADE: Software livre

• Deverão serrespondidas, nomínimo, as seguintes questões:– Minha empresa usa software livre? Quais?– Que vantagens e desvantagens existem na

adoção do software livre?– Que vantagens e desvantagens existem na

adoção do software proprietário?

ATIVIDADE: Software livre– Você recomendaria

a adoção de softwarelivre? Em que situações?

– Que papel pode ter o software livre na administração pública?