Aula 06 softwares

553 visualizações

Publicada em

INTRODUÇÃO A COMPUTAÇÃO

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
553
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
7
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula 06 softwares

  1. 1. Software UNIDADE II Prof: Sérgio Souza Costa
  2. 2. Referência Apostila - Introdução a Ciência da Computação https://www.dropbox. com/s/om6nklz39dt7if4/Introducao%20Ciencia% 20da%20Computacao%20-%20Jose%20Garcia% 20Rosa.pdf Cápitulo 5 - Softwares
  3. 3. O que é software ?
  4. 4. O que é software? Resposta não é obvia, segundo Pressman, em 1970 menos de 1% dos profissionais poderiam ter definido o que é software.
  5. 5. O que é software? Produto que os engenheiros de software projetam e constroem.
  6. 6. O que é software? Produto que os engenheiros de software projetam e constroem. Englobando:
  7. 7. O que é software? Produto que os engenheiros de software projetam e constroem. Englobando: 1) Instruções (programas de computadores, código executável) que produzem algum resultado desejado.
  8. 8. O que é software? Produto que os engenheiros de software projetam e constroem. Englobando: 2) Estruturas de dados que permitem que os programas manipulem adequadamente a informação.
  9. 9. O que é software? Produto que os engenheiros de software projetam e constroem. Englobando: 3) Documentação que descrevem o uso dos programas.
  10. 10. O que é software? SIM. Documentação, aquela projetam Produto que os engenheiros de softwareparte que ose programadores não constroem. Englobando: morrem de amor. 3) Documentação que descrevem o uso dos programas.
  11. 11. Então, software é um produto do engenheiro de software, como um hardware é um produto de um engenheiro eletrônico ? O que diferencia estes produtos?
  12. 12. Então, software é um produto do engenheiro de software, como um hardware é um produto de um engenheiro eletrônico ? O que diferencia estes produtos? Software é lógico. Hardware é físico.
  13. 13. Então, software é um produto do engenheiro de software, como um hardware é um produto de um engenheiro eletrônico ? O que diferencia estes produtos? Software é lógico. Vamos ver melhor estas diferenças, e como isto reflete na sua construção. Hardware é físico.
  14. 14. CARACTERÍSTICAS DO SOFTWARE
  15. 15. Qual a diferença entre Hardware e Software ?
  16. 16. 1. Desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico.
  17. 17. 1. Desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico. Hardware - manufaturado Projeto (modelo conceitual) Mundo Lógico Artefatos (esquemas, plantas, mapas ... ) Fabricação (manufaturado) Mundo físico
  18. 18. 1. Desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico. Software Modelos Alto nível Baixo nível Projeto (modelo conceitual) Artefatos (diagramas, documentos ..) Programa – modelo de implementação Mundo Lógico
  19. 19. 2. Software não se desgasta como nos hardware. Deve ser maleável, permitindo mudanças durante seu ciclo de vida.
  20. 20. Como é a manutenção em um hardware ? e em um software?
  21. 21. Curva de falha do hardware Mortalidade infantil Desgaste Associada a falhas de fabricação e ou projeto. Desgaste Falha Mortalidade infantil Males ambientais, poeiras, vibrações. Todo hardware tem um tempo de vida. Temp o
  22. 22. E no software, como vocês acham que é esta curva ? Lembrem-se de que no software não existe uma processo manufaturado, não existem peças que se desgastam.
  23. 23. Falha Curva de falha do software Mudança Curva real Curva idealizada Temp o
  24. 24. Falha Curva de falha do software Mudança Curva real Curva idealizada Temp o
  25. 25. Contraditorio ? Curva de falha do software Consegueriam Falha explicar ? Mudança Curva real Curva idealizada Temp o
  26. 26. Curva de falha do software Falha Incremento devido os efeitos colaterais Mudança Curva real Curva idealizada Temp o
  27. 27. Efeitos colaterais, o pesadelo de todo desenvolvedor de software. Correção de erros, tendem a gerar novos erros.
  28. 28. Efeitos colaterais, o pesadelo de todo desenvolvedor de software. Correção de erros, tendem a gerar novos erros. Desenvolvedores temem modificações, tentam a evitá-las.
  29. 29. Efeitos colaterais, o pesadelo de todo desenvolvedor de software. Correção de erros, tendem a gerar novos erros. Desenvolvedores temem modificações, tentam a evitá-las. Porém, mudanças são inevitáveis e temos que lidar com isso.
  30. 30. Efeitos colaterais, o pesadelo de todo Requisitos de softwares desenvolvedor de software. sempre mudam. Correção de erros, tendem a gerar novos erros. Desenvolvedores temem modificações, tentam a evitá-las. Porém, mudanças são inevitáveis e temos que lidar com isso.
  31. 31. 3. A maioria é feita sob medida em vez de ser montada a partir de componentes existentes.
  32. 32. 3. A maioria é feita sob medida em vez de ser montada a partir de componentes existentes. O reuso de “componentes de software” ainda não é equivalente a outras engenharias, como no hardware. Padrões ainda estão sendo desenvolvidos.
  33. 33. 3. A maioria é feita sob medida em vez de ser montada a partir de componentes existentes. O reuso de “componentes de software” ainda não é equivalente a outras engenharias, como no hardware. Padrões ainda estão sendo desenvolvidos. Existem diversos componentes padronizado para a montagem de um hardware, parafusos, placas, transistores, diodos, etc.
  34. 34. EVOLUÇÃO DO SOFTWARE
  35. 35. Evolução do Software Os primeiros anos - ORIENTAÇÃO BATCH - DISTRIBUÍÇÃO LIMITADA - SOFTWARE CUSTOMIZADO 1950 1960 1970 1980 2000
  36. 36. Evolução do Software Os primeiros anos - ORIENTAÇÃO BATCH - DISTRIBUÍÇÃO LIMITADA - SOFTWARE CUSTOMIZADO 1950 A segunda era - MULTIUSUÁRIO - TEMPO REAL - BANCO DE DADOS - PRODUTOS DE SOFTWARE 1960 1970 1980 2000
  37. 37. Evolução do Software Crise do software Os primeiros anos - ORIENTAÇÃO BATCH - DISTRIBUÍÇÃO LIMITADA - SOFTWARE CUSTOMIZADO 1950 A segunda era - MULTIUSUÁRIO - TEMPO REAL - BANCO DE DADOS - PRODUTOS DE SOFTWARE 1960 1970 1980 2000
  38. 38. Evolução do Software Crise do software Os primeiros anos - ORIENTAÇÃO BATCH - DISTRIBUÍÇÃO LIMITADA - SOFTWARE CUSTOMIZADO 1950 A terceira era A segunda era - MULTIUSUÁRIO - TEMPO REAL - BANCO DE DADOS - PRODUTOS DE SOFTWARE 1960 1970 -SISTEMAS DISTRIBUÍDOS -INTELIGÊNCIA EMBUTIDA -HARDWARE DE BAIXO CUSTO -IMPACTO DE CONSUMO 1980 2000
  39. 39. Evolução do Software A quarta era Crise do software Os primeiros anos - ORIENTAÇÃO BATCH - DISTRIBUÍÇÃO LIMITADA - SOFTWARE CUSTOMIZADO 1950 A terceira era A segunda era - MULTIUSUÁRIO - TEMPO REAL - BANCO DE DADOS - PRODUTOS DE SOFTWARE 1960 1970 -SISTEMAS DISTRIBUÍDOS -INTELIGÊNCIA EMBUTIDA -HARDWARE DE BAIXO CUSTO -IMPACTO DE CONSUMO - SISTEMAS DE DESKTOP PODEROSOS - TECNOLOGIAS ORIENTADAS A OBJETOS - SISTEMAS ESPECIALISTAS - REDES NEURAIS ARTIFICIAIS - COMPUTAÇÃO PARALELA 1980 2000
  40. 40. A crise do software + Complexidade - Confiabilidade Aumento crescente por sistemas de Informação Mais dependência do software nos procedimentos normais do cotidiano Sistemas mais e mais sofisticados exigem mais recursos (humanos e máquinas) Sistemas devem ser mais e mais seguros.
  41. 41. A crise do software Manutenabilidade Imprecisão nas especificações iniciais do projeto ●Muitas modificações exigidas pelo cliente ●Rotatividade acentuada da equipe de projeto ●Informações não muito bem documentadas ●Custo elevado nos estágios finais de projeto ●
  42. 42. A programação A crise do software estuturada(que Manutenabilidade iremos aprender) foi uma resposta a esta crise . Imprecisão nas especificações iniciais do projeto ●Muitas modificações exigidas pelo cliente ●Rotatividade acentuada da equipe de projeto ●Informações não muito bem documentadas ●Custo elevado nos estágios finais de projeto ●
  43. 43. Programas & Instruções A faceta mais conhecida do software são os programas. Um programa é uma lista ordenada de instruções que causa um comportamento pré-determinado no computador ao ser executada. Uma instrução é composta de uma operação elementar que possa ser executada pelo processador, e dos dados associados a esta operação.
  44. 44. Tipos de Software O software pode ser classificado hierarquicamente, em software básico (também chamado software de sistema) e software aplicativo,
  45. 45. Tipos de Software O software pode ser classificado hierarquicamente, em software básico (também chamado software de sistema) e software aplicativo,
  46. 46. Software básico Correspondem aos programas que geram programas executáveis, ou que se comunicam diretamente com o hardware, executando funções de controle deste, permitindo seu uso pelos programas aplicativos. Os tipos básicos são: Software básico Sistema operacional Interpretador Tradutores Montador Utilitários Compilador
  47. 47. Software básico Correspondem aos programas que geram programas executáveis, ou que se comunicam diretamente com o hardware, executando funções de controle deste, permitindo seu uso pelos programas aplicativos. Os tipos básicos são: Software básico Sistema operacional Interpretador Tradutores Montador Utilitários Compilador
  48. 48. Sistema operacional ● O software é o que permite os computadores executarem essas mais distintas tarefas. Porém, existem algumas tarefas fundamentais a todos os sistemas computacionais. ○ Por exemplo armazenar e recuperar dados em um dispositivo de armazenamento, como disco magnético, lazer ou memoria flash. ● Tratar as peculiaridades de cada dispositivo, tornaria o desenvolvimento de software algo extremamente complexo. ● Portanto, torna-se desejável oferecer uma forma de acesso homogêneo aos dispositivos físicos, abstraindo as diferenças tecnológicas.
  49. 49. Sistema operacional Um sistema operacional (SO) pode ser visto então como um software que abstrai o acesso aos recursos por softwares aplicativos, ou seja, aqueles acessados diretamente pelo usuário. Esta é uma visão top-down onde o sistema operacional é visto como uma maquina estendida (interfaces homogêneas e simplificadas) para o desenvolvimento de software aplicativo. Fonte:
  50. 50. Sistema operacional Um sistema operacional (SO) pode ser visto então como um software que abstrai o acesso aos recursos por softwares aplicativos, ou seja, aqueles acessados diretamente pelo usuário. Esta é uma visão top-down onde o sistema operacional é visto como uma maquina estendida (interfaces homogêneas e simplificadas) para o desenvolvimento de software aplicativo. Porém, existe uma visão alternativa, bottom-up, onde o sistema operacional é um software responsável por gerenciar todas as partes de um sistema complexo, incluindo, hardware, software e peopleware (usuários). Fonte:
  51. 51. Sistema operacional Um sistema operacional (SO) pode ser visto então como um software que abstrai o acesso aos recursos por softwares aplicativos, ou seja, aqueles acessados diretamenteapelo usuário. Esta é uma visão top-down onde o Abram seguinte sistema operacionaldevisto como uma maquina estendida (interfaces nota é aula: homogêneas e simplificadas) para o desenvolvimento de software aplicativo. Porém, existe uma visão https://sites.google. alternativa, bottom-up, onde com/site/profsergioco o sistema operacional é um sta/posts/fundamento software responsável por gerenciar todas as partes de sdesistemasoperacion um aissistema complexo, incluindo, hardware, software e peopleware (usuários). Fonte:
  52. 52. Software básico Correspondem aos programas que geram programas executáveis, ou que se comunicam diretamente com o hardware, executando funções de controle deste, permitindo seu uso pelos programas aplicativos. Os tipos básicos são: Software básico Sistema operacional Interpretador Tradutores Montador Utilitários Compilador
  53. 53. Utilitários Programas que executam tarefas envolvendo a gerência dos recursos em um computador, sendo normalmente parte ou atuando conjugados ao sistema operacional. Exemplos de utilitários são os programas de controle do acesso ao disco, vídeo, etc
  54. 54. Tradutores Tradutores: Programas responsáveis pela transformação de uma linguagem de programação em linguagem de máquina. Linguagem de Programação: É um conjunto de símbolos (vocabulário) e regras (gramática) que especificam como transmitir informações entre usuários e computador.
  55. 55. Hierarquia das linguagens em um computador (tradutores) ● Linguagem de máquina: É baseada em código binário, em 0s e 1s. É utilizada diretamente pelo computador. ● Linguagem de baixo nível: É uma simplificação da linguagem de máquina. Permite que os programas utilizem abreviações simples de instruções de programa (mnemônicos) Exemplo: Ling. Assembly. Compare A,B ● Linguagem de alto nível: Utiliza combinação de um conjunto de símbolos de acordo com certas regras de sintaxe para expressar uma seqüência de operações de máquina. É uma linguagem que não exige conhecimento do código de máquina. São mais fáceis de ler, escrever e manter. Instruções são escritas em inglês (PRINT, Display)
  56. 56. Hierarquia das linguagens em um computador (tradutores) LOAD R1, val1 2GL LBN – Linguagem de Baixo Nível Montadores 0010 0001 1110 1GL LM – Linguagem de Máquina val2 = val1 + val2 3GL LAN – Linguagem de Alto Nível Compiladores Interpretadores
  57. 57. Tradução a partir de uma linguagem de alto nível
  58. 58. Tradução a partir de uma linguagem de alto nível ● Existem 2 métodos básicos de abordagem na tradução de linguagem de alto nível para linguagem de máquina: ● ● Interpretação Compilação
  59. 59. Interpretação ● O programa conversor recebe a primeira instrução do programa fonte, confere para ver se está escrita corretamente, converte-a em linguagem de máquina e então ordena ao computador que execute esta instrução. ● Depois repete o processo para a segunda instrução, e assim sucessivamente, até a última instrução do programa fonte. Quando a segunda instrução é trabalhada, a primeira é perdida, isto é, apenas uma instrução fica na memória em cada instante. ● Se este programa fonte for executado uma segunda vez, novamente haverá uma nova tradução, comando por comando, pois os comandos em linguagem de máquina não ficam armazenados para futuras execuções. Neste método, o programa conversor recebe o nome de INTERPRETADOR.
  60. 60. Compilação ● O programa conversor recebe a primeira instrução do programa fonte, confere-a para ver se está escrita corretamente, converte-a para linguagem de máquina em caso afirmativo e passa para a próxima instrução, repetindo o processo sucessivamente até a última instrução do programa fonte. ● Caso tenha terminado a transformação da última instrução do programa fonte e nenhum erro tenha sido detectado, o computador volta à primeira instrução, já transformada para linguagem de máquina e executa-a. Passa à instrução seguinte, executa-a, etc., até a última. ● Se este programa for executado uma segunda vez, não haverá necessidade de uma nova tradução, uma vez que todos os comandos em linguagem binária foram memorizados em um novo programa completo. Neste método, o programa conversor recebe o nome de COMPILADOR.
  61. 61. Compilação ● VANTAGEM: Neste processo a execução fica mais rápida em relação à anterior, pois se economiza o tempo de retradução de cada instrução a cada nova execução. ● DESVANTAGEM: A cada modificação introduzida no programa fonte é necessária uma nova tradução completa para obter um novo programa objeto, o que torna o processo mais dificultoso na fase de desenvolvimento, quando muitas modificações são feitas. ● Geralmente o COMPILADOR exige mais memória que o INTERPRETADOR, razão pela qual aquele é mais usado em computadores maiores e este em micros pessoais. Mas com a tendência dos micros pessoais de terem memórias maiores, mesmo neles, os COMPILADORES são os programas conversores preferidos.
  62. 62. Compilação ● ● ● VANTAGEM: Neste processo a execução fica mais rápida em relação à anterior, pois se economiza o tempo de retradução de cada instrução a cada nova execução. m Java usa uma abordage e híbrid A cada rama font DESVANTAGEM:a. O progmodificação introduzida no programa fonte é é “compilado” para umcompleta para obter um novo programa necessária uma novarmediario que é tradução código inte objeto, o que ecutado por uma mais dificultoso na fase de torna o processo ex desenvolvimento, quando muitas modificações são feitas. máquina virtual (e não diretamente pelo processador) Geralmente o COMPILADOR exige mais memória que o INTERPRETADOR, razão pela qual aquele é mais usado em computadores maiores e este em micros pessoais. Mas com a tendência dos micros pessoais de terem memórias maiores, mesmo neles, os COMPILADORES são os programas conversores preferidos.
  63. 63. Compilação São os programas voltados para a solução de problemas do usuário. Podem ser de: ■ uso geral: são programas que podem ser utilizados em vários tipos de aplicações. Exemplos: editores de texto, gráficos, planilhas, gerenciadores de banco de dados, etc. ■ uso específico: se destinam exclusivamente a um único tipo de aplicação. Exemplos: folha de pagamento, crediário, imposto de renda, cadastro, contas a pagar e receber, etc.
  64. 64. Exercício: ● ● ● ● Cite 20 softwares aplicativos de uso geral e específico para diferentes finalidades. Cite 5 nomes de soft. antivírus. Cite 5 linguagens de programação de alto nível. Cite 6 tipos de softwares utilitários. Diga qual sua finalidade.

×