Introdução a Informática Unidade III Software Prof. Luciano R. Coutinho © 2001,02,07 Tópicos O Computador O Software Esquema do Software Firmware Sistema Operacional Software Aplicativo Engenharia de Software Licenças de Software O Computador O Hardware A parte física, tangível Componentes • Mecânicos • Elétricos • Eletrônicos O Software A parte lógica, intangível O Software O software dá vida a máquina! Os software (programas de computador) são conjuntos de instruções lógicas que dão vida ao computador (hardware). São os software que gerenciam o computador e possibilitam a realização das mais diversas tarefas exigidas pelos usuários SOFTWARE Esquema do Software APLICATIVOS Software SISTEMA OPERACIONAL FIRMWARE Entrada Armazenamento CPU Memória Saída Firmware Software mais básico Funções Interface dispositivos entrada/saída e armazenamento Controlar inicialização do sistema Comumente armazenados em memória ROM com nome de BIOS Sistema Operacional É o conjunto de programas que gerenciam o funcionamento do computador, coordenando harmoniosamente todos os seus elementos. Quatro funções Gerenciar recursos de hardware (entrada/saida, armazenamento, memória, cpu) Controlar a execução de programas Prover uma máquina estendida mais fácil de programar que o hardware nu. Prover uma interface de usuário fácil de utilizar Recursos de Hardware Spooling Drivers de Dispositivos Entrada/ saída Sistemas de Arquivos cpu Mono/Multi • Processamento • Tarefa Segmentação Memória Virtual memória armazenamento secundário Execução de Programas Modelo de Processos Todo programa é executado como um processo Processos recebem recursos para executar Memória Tempo de CPU Arquivos ... Estados Pronto para executar Executando Bloqueado Morto Máquina estendida O hardware pode ser programado diretamente ... no entanto, é uma tarefa muito difícil! Imagine que você queira montar um enorme quebra cabeça cujas peças são extremamente pequenas ... Se várias dessas peças fossem agrupadas de forma coerente em peças maiores e montar o quebra cabeça partindo desses agrupamentos fosse agora o nosso desafio, este seria bem mais fácil de realizar. Pois bem, o SO pega varias instruções básicas de uma CPU e as agrupa em chamadas de sistemas (macro-instruções) Os programadores ao invés de comporem os programas partindo somente das instruções básicas podem também utilizar as chamadas de sistema para facilitar o trabalho. Interface com o usuário Dois tipos básicos interface de linha de comando A tela apresenta prompts ao usuário O usuário digita comandos Inteface gráfica (GUI) Icones, janelas, menus, caixas de diálogo, etc. Outra distinção Mono-usuário Multi-usuário Plataforma O conjunto hardware+ firmware+SO também é conhecido como plataforma Diz-se que aplicativos são feitos para rodar sobre uma dada plataforma ... SISTEMA OPERACIONAL Plataforma FIRMWARE Entrada Armazenamento CPU Memória Saída Aplicativos Software usado para solucionar um problema em particular ou realizar uma tarefa específica. APLICATIVOS SISTEMA OPERACIONAL FIRMWARE Entrada Armazenamento CPU Memória Saída Utilitários Ferr. Desenvolvimento ... Autom. de Escritório Autom. Bancária Autom. de Ensino ... Aplicações Científicas .... Engenharia de Software Técnicas de gerenciamento e realização de um projeto de desenvolvimento de software Várias etapas: Dentre elas, a programação ... A programação é feita utilizando uma linguagem de programação C Pascal Ada Java ... LP tem sintaxe definida por uma gramática livre de contexto (devida a Chomsky) Programação hello.c Código Fonte Compilador Análise Léxica Análise Sintática Geração Código Código máquina Tipos de Desenvolvimento Customizado Feito sob medida, especificamente para as necessidades de uma organização. A organização contrata programadores de computador para projetar, escrever, testar e implementar software. Empacotado Vendido em lojas, catálogos ou sites Web Licenças de Software Freeware Domínio Público Software de Fonte Aberta (Open Source) Shareware Freeware O autor fornece o software gratuitamente para ser usado por todos O autor detém o copyright Ele pode impor restrições ao uso O software não pode ser alterado ou redistribuído sem permissão Domínio Público Software que não tem copyright Pode ser usado e até mesmo alterado sem permissão Tipicamente, é desenvolvido por universidades e/ou instituições de pesquisa usando subvenções do governo Open Source Uma variação de freeware O código-fonte é disponibilizado Código-fonte: legível por seres humanos Outros programadores podem modificar e redistribuir os programas livremente Ajuda a identificar erros (bugs) e a criar melhorias mais facilmente. Shareware Software garantido por copyright, distribuído gratuitamente para um período experimental Se você gostar dele, deve registrá-lo, pagando uma taxa A maioria dos autores acrescenta documentação, ampliações, suporte e atualizações gratuitas para estimular as pessoas a fazer o registro Pirataria Pirataria a aquisição e uso ilegal de cópias de software Referencias Alcalde, E., Garcia, M. e Penuelas, S. Informática Básica. São Paulo: Makron Books, 1991. BEI. Tecnologia da informação para todos. São Paulo, 2002. http://pt.wikipedia.org/wiki/Software