Conceito e principais tipos de softwares Unidade 3 Software Conceito e principais tipos de softwares
Objetivo Apresentar os conceitos, uma análise das principais categorias de software e das tecnologias utilizadas em sua construção
Conceito Um software é um conjunto detalhado de instruções que controlam a operação dos dispositivos de processamento
Funções dos softwares Gerenciar os recursos de informática da organizaçã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 utilizado pelos 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 que compõem um software sã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 pelo programador em uma linguagem de programação é chamado de código fonte
Exemplo de código fonte procedure Cubo.Converte; {recalcula a nova projecao do cubo na 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 compreendido pelo dispositivo de processamento, o código fonte deve passar por um processo de tradução
Tradução O código fonte, ao ser 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ível pelos programadores Devido a isto, para permitir a modificação de um software é preciso ter acesso ao seu código fonte
Dispositivos de Entrada Dispositivos de Saída Memória Primária Execução de um software O usuário interage com o software utilizando sua interface Software Dispositivos de Entrada Dispositivos de Saída Memória Secundária Memória Ternária
Dispositivos de Entrada Os dados entrados pelo usuários são armazenados na memória primária, juntamente com o software Execução de um software Memória Primária Software Dispositivos de Entrada Dispositivos de Saída Memória Secundária Memória Ternária
Dispositivos de Entrada Memória Primária Execução de um software Dispositivos de Saída Software Dispositivos de Entrada O software é executado pelo processador, que carrega instrução a instrução do código executável, interpretando-as e executando-as Memória Secundária Memória Ternária
Dispositivos de Entrada Dispositivos de Saída Memória Primária Execução de um software Software Dispositivos de Entrada Dispositivos de Saída Memória Secundária Memória Ternária A interação compreende entrada e saída de dados
Dispositivos de Entrada Memória Primária Execução de um software Software Dispositivos de Entrada Dispositivos de Saída O software pode ler e gravar dados na memória secundária (banco de dados) Memória Ternária Memória Secundária
Execução de um software Memória Primária Software Dispositivos de Entrada Dispositivos de Saída O software é carregado para a memória primária (executado) Memória Secundária Memória Ternária
Categorias de softwares Os softwares dividem-se basicamente em duas categorias Software BÁSICO Software APLICATIVO
Software básico Os softwares básicos caracterizam-se por gerenciarem 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 aplicativos executam tarefas especí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 suas tarefas, os softwares aplicativos 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 aplicativo Software Aplicativo Software Básico
Sistema operacional (SO) Sistema operacional é o principal software bá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ápidas e organizadas aos recursos Exemplo: o conceito de “arquivo” existe devido ao sistema operacional, que organiza a memória secundária
Ambientes de janelas Grande parte dos sistemas operacionais atuais 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 os programadores, torna desnecessário conhecer as particularidades de cada dispositivo Exemplo: o comando que imprime é o mesmo para qualquer impressora, independente da marca, modelo, etc. Tira melhor proveito do 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 diversos sistemas 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 NT 1990 1993 1995 1996 1998 2000 Origem DOS 2002
SOs para computadores servidores Microsoft Windows 2000 Linux FreeBSD Novell Netware HP-UX SUN Solaris IBM AIX IBM VM e VSE
Windows para computadores servidores 1993 1995 1996 1997 1998 200? 1994 2000 Windows para computadores servidores
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 Desenvolvido originalmente em 1969, no Bell Labs, por Ken Tompson e Dennis Ritchie Deu origem a diversos sistemas operacionais
UNIX Originalmente não é acompanhado de ambiente de janelas, o que o restringiu a profissionais de informática
UNIX Considerado mais robusto e, em conseqüência, menos sujeito a falhas Devido à sua robustez, é utilizado largamente em computadores servidores
Linux Criado a partir do MINIX 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 do BSD 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 normalmente acompanhados 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 mais fácil de ser utilizado e administrado UNIX costuma ter um desempenho superior Windows e UNIX têm problemas de segurança
O que escolher? Não é uma decisão isolada 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 que fornecem serviços a outros 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 que têm a função de armazenar 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 e mantém mensagens de correio eletrônico Exemplos Microsoft Exchange IBM Notes UNIX sendmail
Servidores de aplicação Atualmente os servidores de aplicaçõ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 Executam processamento centralizado 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 principais softwares aplicativos destacam-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 http://www.microsoft.com/brasil/office Word Excel PowerPoint Access Outlook http://www.microsoft.com/brasil/office
SUN StarOffice Composto de http://www.sun.com/staroffice Writer Calc Impress ??? Base http://www.sun.com/staroffice
openoffice.org Derivado do StarOffice, tem a distribuição gratuita Inclui apenas algumas das melhorias do StarOffice Mantido por um grupo de usuários
StarOffice X openoffice.org A Sun resolveu iniciar a cobrança pela distribuição do StarOffice, mas permitiu a manutenção de uma versão gratuita por um grupo de usuários
Navegadores (browsers) Permitem o acesso a páginas HTML da Internet 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úmeras outras categorias de softwares 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 categoria especial de software aplicativo 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 e treinar 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 a contratação e formação da 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 com contratos de manutenção do sistema Alternativa: terceirização de mão de obra?
Formas de distribuição e comercialização Existem diversas formas de distribuição e comercialização de software As principais baseiam-se nos princípios de: Software Livre Software Proprietário
Software livre O conceito de software livre foi criado no início da década de 80 pelo pesquisador Richard Stallman, do MIT
Software livre Baseia-se na idéia de que software e seus có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 a liberdade e não à gratuidade Free Software = Software Livre Free Software ≠ Software Grátis
Liberdades previstas 1ª liberdade: 2ª 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: 4ª 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 liberdades concedidas permitem que 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 similar ao 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 que nã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 de domínio público pode ser convertido em um software proprietário por alguém ou alguma empresa
Freeware É um software que possui a distribuição liberada, ou seja, é gratuito, mas não pode ser modificado
Software copylefted Copyleft significa o oposto ao copyright Um software copylefted deve poder ser modificado
Software copylefted Um software copylefted pode ser distribuí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 not Unix Mantido pela Free Software Foundation – FSF – criada em 1984 por Richard Stallman
Modelo de Licenciamento GPL = GNU General Public License Define as características necessárias a um programa para que ele seja considerado software livre
Modelo de Licenciamento Pela GPL, todo programa que utilize fragmentos 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 modelo padrã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 software que não é livre, ou seja, sua redistribuição ou modificação é proibida ou somente pode ser feita sob autorização Copyright = proteção dos direitos autorais
Software Fechado É um software proprietário que não pode ser distribuído ou modificado É comercializado apenas pelos canais de venda do proprietário do software
Shareware É um software que pode ser distribuído livremente, mas aquele que quiser utilizá-lo deve pagar o valor do licenciamento
Formas de distribuição Software Livre Software Proprietário Software Aberto Domínio Público Software Fechado Freeware Copyleft GPL Shareware Download Livre
Barreiras ao software livre O conceito de software livre não foi considerado atraente pelas empresas, que visam o lucro e não o progresso da ciência
Avanço do software livre Atualmente as empresas vêem no software 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 pelo software, as margens de 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 um software 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 do sistema operacional UNIX Red Hat Caldera Mandrake etc.
Exemplos de softwares livres Todas estas empresas visam algum tipo de lucro 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 das grandes empresas: Microsoft Windows Office Oracle
Maiores informações Free Software Foundation www.fsf.org www.gnu.org
Questão O que aconteceu com o StarOffice, após a compra da StarDivision pela SUN?
ATIVIDADE: Software livre Os alunos deverão discutir sobre software livre na fórum de discussão criada na página da disciplina
ATIVIDADE: Software livre Grupos de 10 alunos com 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 ser respondidas, no mí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 software livre? Em que situações? Que papel pode ter o software livre na administração pública?