CONCEITOS DE SOFTWARE Prof. Erion Monteiro PENSAMENTO DO DIA “Imagine uma nova história para a sua vida e acredite nela!” Paulo Coelho O QUE É SOFTWARE? É o produto que os engenheiros de software projetam e constroem. Abragem programas que executam em computadores de qualquer tamanho e arquitetura, documentos que incluem formas impressas e virtuais e dados que combinam números e texto, mas também incluem representações de informação em figuras, em vídeo e em áudio. APLICAÇÕES DE SOFTWARE ::. SOFTWARE DE SISTEMAS É uma coleção de programas escritos para servir outros programas. Alguns software de sistemas (p. ex.: compiladores, drivers de dispositivos, editores, e utilitários para gerenciamento de arquivos). APLICAÇÕES DE SOFTWARE ::. SOFTWARE DE TEMPO REAL Monitora / Analisa / Controla eventos do mundo real à medida que eles ocorrem. São capazes de atualizar a resposta de processamento dados em períodos muito pequenos, variando de 1 milissegundo a 1 segundo. APLICAÇÕES DE SOFTWARE ::. SOFTWARE COMERCIAL Processamento de informação comercial é a maior área de aplicação de software. P. Ex.: folha de pagamento, contas a pagar/receber, controle de estoque. Estes programas evoluíram para os chamados SGI – Sistemas de Gestão da Informação, muitas vezes tratados simplesmente como Sistemas de Informação. APLICAÇÕES DE SOFTWARE ::. SOFTWARE CIENTÍFICO E DE ENGENHARIA São aqueles usados em atividades tipicamente científica ou de simuladores para novos produtos. Sua aplicação vai desde a astronomia à vulcanologia, da análise de tensões, aerodinâmica veicular, dinâmica orbital de naves espaciais a da biologia molecular, etc. APLICAÇÕES DE SOFTWARE ::. SOFTWARE EMBUTIDO Produtos inteligentes tornaram-se comuns em praticamente todo o mercado consumidor e industrial. Software embutido reside situado nas memórias ROM. Podem realizar funções muito limitadas e particulares, por exemplo, controle de um forno micro-ondas, painel digital de um carro, ajustes de um aparelho televisor, inicialização de um microcomputador. APLICAÇÕES DE SOFTWARE ::. SOFTWARE PARA PC Esse mercado de software explodiu nas últimas duas décadas. Processadores de texto, planilhas eletrônicas, aplicações gráficas, multimídia, entretenimento, gestão de base de dados, aplicações financeiras pessoais e comerciais, rede são apenas algumas das centenas de aplicações possíveis APLICAÇÕES DE SOFTWARE ::. SOFTWARE PARA WEB As páginas Web apresentadas por um browser constituem software que incorpora instruções executáveis (p. ex. CGI, HTML, Peal ou Java) e dados de hipertexto, além de uma variedade de formatos visuais e de áudio. Em resumo, a rede mundial se transforma num grande computador que fornece recursos quase ilimitados de software que pode ser acessado por qualquer um que tenha um modem. APLICAÇÕES DE SOFTWARE ::. SOFTWARE PARA INTELIGÊNCIA ARTIFICIAL Sistemas que se propõe a elaborar dispositivos que simulem a capacidade humana de raciocinar, perceber, tomar decisões e resolver problemas, enfim, a capacidade de ser inteligente. São também chamados de sistemas baseados em conhecimento. Esses sistemas reconhecem, analisam, interpretam e reproduzem padrões de imagem e de voz. Algumas aplicações são as redes neurais artificiais, prova de teoremas e jogos. PROGRAMAÇÃO ::. DESENVOLVIMENTO DE SOFTWARE O programa é escrito em Linguagem de Programação ou diretamente em Linguagem de Máquina. São exemplos de linguagem de programação: Java, C, C++, Delphi, Python, PHP, C♯, Visual Basic, .NET, Perl, Ruby, Lisp, Kylix, Pascal, Cobol, Fortran, dentre centenas de outras. PROGRAMAÇÃO ::. DESENVOLVIMENTO DE SOFTWARE O programador escreve o Código Fonte e posteriormente este irá gerar um Código de Máquina (binário) que será executado pelo Processador. PROGRAMAÇÃO ::. DESENVOLVIMENTO DE SOFTWARE DISTRIBUIÇÃO ::. SOFTWARE LIVRE Segundo a definição criada pela FSF - Free Software Foundation é qualquer programa de computador que pode ser usado, copiado, estudado, modificado e redistribuído com algumas restrições. Conceito defendido pelo Governo Federal, divulgado pela Presidência da República no sítio www.softwarelivre.gov.br. PRINCÍPIOS BÁSICOS DO ::. SOFTWARE LIVRE 1. 2. 3. 4. A liberdade de executar o programa, para qualquer propósito; A liberdade de estudar como o programa funciona e adaptá-lo para as suas necessidades. O acesso ao código-fonte é um pré-requisito para esta liberdade; A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo; A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie deles. O acesso ao códigofonte é um pré-requisito para esta liberdade. PRINCÍPIOS BÁSICOS DO ::. SOFTWARE LIVRE CUIDADO! Ainda é muito difundido o conceito de que: Software livre é qualquer programa de computador que pode ser usado, copiado, estudado, modificado e redistribuído sem nenhuma restrição. DISTRIBUIÇÃO ::. SOFTWARE LIVRE DISTRIBUIÇÃO ::. FREEWARE São os softwares gratuitos. Você pode utilizálos livremente que não terá que pagar nada por isso. Mas, seu código fonte não é disponibilizado. Não podem ser classificados como Software Livre. DISTRIBUIÇÃO ::. SHAREWARE São disponibilizados para uso gratuito por um determinado período de tempo. Logo após esse período, o usuário deve decidir se realmente quer comprá-lo. Esse período de tempo chamase período de avaliação e após seu término o software perde suas funcionalidades. Gratuito para testar. DISTRIBUIÇÃO ::. DEMO Software distribuído como "demonstração“. Trata-se de uma fração de um produto maior, lançado com a intenção de dar a oportunidade de o produto ser avaliado por possíveis clientes. O termo é bastante usado nos contextos dos games. DISTRIBUIÇÃO ::. TRIAL São distribuídos a título de demonstração. Mas possui limitações, ou seja, parte de seus recursos não são disponibilizados. Por exemplo: podem não salvar, imprimir ou exportar os trabalhos realizados. DISTRIBUIÇÃO ::. ADWARE Abreviação para advertising-supported software – são programas suportados por propagandas, assim como sites. Ou seja, a condição para manter o programa em funcionamento é também manter a propaganda ativa (normalmente um banner no navegador de Internet). . DISTRIBUIÇÃO ::. PAYWARE O termo refere-se ao software desenvolvido por uma empresa com o objetivo de lucrar com sua utilização (Software Comercial). ::. SOFTWARE PROPRIETÁRIO É aquele cuja cópia, redistribuição ou modificação são em alguma medida proibidos pelo seu proprietário. Para usar, copiar ou redistribuir, deve-se solicitar permissão ao proprietário, ou pagar para poder fazê-lo. DISTRIBUIÇÃO ::. SOFTWARE EM DOMÍNIO PÚBLICO Oficialmente, um software é considerado de domínio público quando se passam os anos previstos nas leis de cada país de proteção dos direitos autorais e este se torna bem comum. Como estes anos pode significar várias décadas, tornando impraticável o uso do software, o que se vê na prática é que quando o autor relega seus direitos autorais, o software se torna de domínio público. Ou seja, é software sem copyright. DISTRIBUIÇÃO ::. SOFTWARE PÚBLICO BRASILEIRO O Software Público Brasileiro (SPB) é um conceito que há alguns anos vem sendo mencionado no âmbito do poder executivo federal, para se referir a um repositório de softwares livres cujas aplicações são de interesse público, mantido pelo Ministério do Planejamento. Geralmente são programas desenvolvidos na esfera pública ou paraestatal. LICENÇA Um acordo de licença de software é um contrato que define ações autorizadas (ou proibidas) no âmbito do direito de autor de um programador de software de computador concedidas (ou impostas) ao usuário deste software. Entende-se por usuário qualquer entidade legal, empresas ou um "usuário final (doméstico). LICENÇAS ::. EULA Acrônimo para End User License Agreement – é uma licença proprietária, usada em todos os produtos da Microsoft e também de outros fabricantes de software. LICENÇAS ::. COPYLEFT É uma forma de usar a legislação de proteção dos direitos autorais com o objetivo de retirar barreiras à utilização, difusão e modificação de uma obra. Copyleft é uma cláusula da licença de software livre que estabelece as condições para que o software possa ser modificado e como será redistribuído após essas modificações LICENÇAS ::. GPL A Licença Pública Geral é a licença que acompanha a maioria dos softwares livres, incluindo o núcleo do sistema operacional Linux. Ela foi criada para garantir que os programas licenciados por ela possam ser a qualquer momento modificados e redistribuídos, ao mesmo tempo em que garante que ninguém impessa que o código fonte seja disponibilizado nas cópias redistribuídas. LICENÇAS ::. BSD É uma licença considerada 'permissiva' porque impõe poucas restrições sobre a forma de uso, alterações e redistribuição do software licenciado. O software pode ser vendido e não há obrigações quanto a inclusão do código fonte, podendo o mesmo ser incluído em software proprietário. Esta licença garante o crédito aos autores do software mas não tenta garantir que trabalhos derivados permanecem como software livre. QUESTÕES (BADESC/2010) A respeito das características do software livre, analise as afirmativas a seguir. I. É disponibilizado com a permissão para qualquer um usá-lo, copiálo, e distribuí-lo, seja na sua forma original ou com modificações, seja gratuitamente ou com custo. II. É gratuito com a permissão para qualquer um usá-lo ou copiá-lo, exclusivamente na sua forma original, não podendo ser modificado. III.É freeware disponível com a permissão para qualquer pessoa usá-lo e modificá-lo, não podendo ser copiado ou distribuído. Assinale: a) se somente a afirmativa I estiver correta. b) se somente as afirmativas I e II estiverem corretas. c) se somente as afirmativas I e III estiverem corretas. d) se somente as afirmativas II e III estiverem corretas. e) se todas as afirmativas estiverem corretas. QUESTÕES (MEC/2009) É considerado software livre, aquele que atende à seguinte condição: a) software freeware disponível com a permissão para qualquer pessoa usá-lo, não podendo ser copiado ou distribuído. b) software shareware com licença gratuita de uso a órgãos de governo na sua forma original, não podendo ser copiado nem distribuído. c) software gratuito com a permissão para qualquer um usá-lo ou copiá-lo, exclusivamente na sua forma original, não podendo ser modificado. d) software licenciado pelo fornecedor, com custo reduzido e permissão exclusiva de uso, não podendo ser modificado e nem distribuído na sua forma original. e) software disponível com a permissão para qualquer um usá-lo, copiá-lo, e distribuí-lo, seja na sua forma original ou com modificações, seja gratuitamente ou com custo. QUESTÕES (ADAGRI-CE/2009) Freeware são software sem qualquer proteção de direitos autorais, que podem ser utilizados sem restrição de uso e de código fonte. (ADAGRI-CE/2009) De acordo com o disposto a respeito do direito de uso, os software utilizados nos computadores para diversas finalidades operacionais podem ser de vários tipos de função, como, por exemplo, software proprietários, software comerciais, sharewares e freewares. QUESTÕES (PRF/2008) Com relação a software livres, suas licenças de uso, distribuição modificação, assinale a opção correta, tendo como referência as definições e os conceitos atualmente empregados pela Free Software Foundation. a) Todo software livre deve ser desenvolvido para uso por pessoa física em ambiente com sistema operacional da família Linux, devendo haver restrições de uso a serem impostas por fornecedor no caso de outros sistemas operacionais. b) O código-fonte de um software livre pode ser adaptado ou aperfeiçoado pelo usuário, para necessidades próprias, e o resultado de aperfeiçoamentos desse software pode ser liberado e redistribuído para outros usuários, sem necessidade de permissão do fornecedor do código original. QUESTÕES (PERITO CRIMINAL/ 2007) Analise as afirmativas relacionadas ao uso de softwares livres e softwares de domínio público e assinale a alternativa correta. I – O software livre, quando utilizado em combinação com licenças típicas (como as licenças GPL e BSD), garante a autoria do desenvolvedor ou da organização. II – A liberdade de copiar, modificar e redistribuir software livre depende de que este seja gratuito. III – Um software de domínio público torna-se um bem disponível para toda a comunidade, garantindo a autoria da propriedade do programa. IV – Torna-se necessária a autorização do autor ou do distribuidor de software livre para que ele possa ser redistribuído. (A) Todas as afirmativas estão erradas. (B) Há apenas uma afirmativa certa. (C) Há apenas duas afirmativas certas. (D) Há apenas três afirmativas certas. (E) Todas as afirmativas estão certas. QUESTÕES (TÉCNICO PENITENCIÁRIO 2008) Assinale a alternativa correta de acordo com os conceitos relativos a softwares livres. (A) Softwares livres relacionam-se com a liberdade dos usuários de executar, copiar redistribuir e estudar os programas sem necessidade de receber permissão do fornecedor; mas, para modificar e melhorar, há necessidade de permissão. (B) Softwares livres relacionam-se com a liberdade dos usuários de executar e copiar redistribuir e estudar os programas sem necessidade de receber permissão do fornecedor; mas, para modificar e melhorar, há necessidade de permissão. (C) Softwares livres relacionam-se com a liberdade dos usuários de executar, copiar, redistribuir, estudar, modificar e melhorar os programas sem necessidade de receber permissão do fornecedor. QUESTÕES (D) Softwares livres relacionam-se com a liberdade dos usuários de executar e estudar os programas sem necessidade de receber permissão do fornecedor; mas, para copiar, redistribuir, modificar e melhorar, há necessidade de permissão. (E) Softwares livres relacionam-se com a liberdade dos usuários de executar, copiar e estudar os programas sem necessidade de receber permissão do fornecedor; mas, para modificar e melhorar, há necessidade de permissão. QUESTÕES (Auditor Fiscal do Trabalho/2009) A exemplo do Linux, um software é denominado livre, quando é possível usá-lo sem precisar pagar. Nesse tipo de software, não se tem acesso ao seu código fonte, não sendo possível alterá-lo ou simplesmente estudá-lo. Somente pode-se usá-lo, da forma como ele foi disponibilizado. QUESTÕES (PAPILOSCOPISTA 2007) A maioria das licenças usadas na publicação de software livre permite que os programas sejam modificados e redistribuídos. Estas práticas são geralmente proibidas pela legislação internacional, que tenta justamente impedir que alterações e cópias sejam efetuadas sem a autorização do(s) autor(es). Que nome se dá às licenças que acompanham o software livre e fazem uso da legislação para impedir utilização não-autorizada, definindo clara e explicitamente as condições sob as quais cópias, modificações, bem como garantindo as liberdades de modificar e redistribuir o software assim licenciado? (A) Licença de domínio público (B) copyleft. (C) copyright. (D) freeware. (E) EULA QUESTÕES (CAESB/2005) Sobre as modalidades de licenciamento de software, assinale a alternativa correta: a. Legalmente só é permitida a utilização de programas “freeware” para pessoas físicas ou instituições sem fins lucrativos. b. Grandes empresas, que adquirem programas pela modalidade de licenciamento “payware” podem fazer a instalação dos programas nas filiais da empresa com as mesmas licenças adquiras para a sede da matriz c. Programas da categoria “Open Source” são aqueles cujo autor libera aos usuários não só o direito de usar gratuitamente o programa, mas também seu estudo e modificação do código-fonte. d. Qualquer programa licenciado pela modalidade “Shareware” pode ser copiado e instalado em qualquer computador, sem que haja pagamento de licenças ao autor. e. Programas obtidos através de download da internet são considerados, automaticamente, programas “Open Source” e, por isso, de domínio público