Software
UNIDADE II

Prof: Sérgio Souza Costa
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
O que é software ?
O que é software?

Resposta não é obvia,

segundo Pressman, em
1970 menos de 1% dos profissionais poderiam ter
definido o que é software.
O que é software?
Produto que os engenheiros de software projetam e
constroem.
O que é software?
Produto que os engenheiros de software projetam e
constroem. Englobando:
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.
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.
O que é software?
Produto que os engenheiros de software projetam e
constroem. Englobando:
3) Documentação que descrevem o uso dos
programas.
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.
Então, software é um produto do engenheiro de
software, como um hardware é um produto de um
engenheiro eletrônico ? O que diferencia estes
produtos?
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.
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.
CARACTERÍSTICAS DO SOFTWARE
Qual a diferença entre Hardware e
Software ?
1. Desenvolvido ou projetado por engenharia,
não manufaturado no sentido clássico.
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
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
2. Software não se desgasta como nos
hardware. Deve ser maleável, permitindo
mudanças durante seu ciclo de vida.
Como é a manutenção em um hardware ? e
em um software?
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
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.
Falha

Curva de falha do software

Mudança
Curva real
Curva idealizada
Temp
o
Falha

Curva de falha do software

Mudança
Curva real
Curva idealizada
Temp
o
Contraditorio ?
Curva de falha do software
Consegueriam

Falha

explicar ?

Mudança
Curva real
Curva idealizada
Temp
o
Curva de falha do software

Falha

Incremento
devido os efeitos
colaterais

Mudança
Curva real
Curva idealizada
Temp
o
Efeitos colaterais, o pesadelo de todo
desenvolvedor de software.
Correção de erros, tendem a gerar novos erros.
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.
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.
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.
3. A maioria é feita sob medida em vez de
ser montada a partir de componentes
existentes.
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.
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.
EVOLUÇÃO DO SOFTWARE
Evolução do Software

Os primeiros
anos
- ORIENTAÇÃO
BATCH
- DISTRIBUÍÇÃO
LIMITADA
- SOFTWARE
CUSTOMIZADO

1950

1960

1970

1980

2000
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
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
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
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
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.
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
●
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
●
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.
Tipos de Software
O software pode ser classificado hierarquicamente, em
software básico (também chamado software de sistema) e
software aplicativo,
Tipos de Software
O software pode ser classificado hierarquicamente, em
software básico (também chamado software de sistema) e
software aplicativo,
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
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
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.
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:
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:
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:
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
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
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.
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)
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
Tradução a partir de uma linguagem de
alto nível
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
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.
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.
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.
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.
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.
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.

Aula 06 softwares

  • 1.
  • 2.
    Referência Apostila - Introduçãoa 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.
    O que ésoftware ?
  • 4.
    O que ésoftware? Resposta não é obvia, segundo Pressman, em 1970 menos de 1% dos profissionais poderiam ter definido o que é software.
  • 5.
    O que ésoftware? Produto que os engenheiros de software projetam e constroem.
  • 6.
    O que ésoftware? Produto que os engenheiros de software projetam e constroem. Englobando:
  • 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.
    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.
    O que ésoftware? Produto que os engenheiros de software projetam e constroem. Englobando: 3) Documentação que descrevem o uso dos programas.
  • 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.
    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.
    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.
    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.
  • 15.
    Qual a diferençaentre Hardware e Software ?
  • 16.
    1. Desenvolvido ouprojetado por engenharia, não manufaturado no sentido clássico.
  • 17.
    1. Desenvolvido ouprojetado 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.
    1. Desenvolvido ouprojetado 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.
    2. Software nãose desgasta como nos hardware. Deve ser maleável, permitindo mudanças durante seu ciclo de vida.
  • 20.
    Como é amanutenção em um hardware ? e em um software?
  • 21.
    Curva de falhado 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.
    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.
    Falha Curva de falhado software Mudança Curva real Curva idealizada Temp o
  • 24.
    Falha Curva de falhado software Mudança Curva real Curva idealizada Temp o
  • 25.
    Contraditorio ? Curva defalha do software Consegueriam Falha explicar ? Mudança Curva real Curva idealizada Temp o
  • 26.
    Curva de falhado software Falha Incremento devido os efeitos colaterais Mudança Curva real Curva idealizada Temp o
  • 27.
    Efeitos colaterais, opesadelo de todo desenvolvedor de software. Correção de erros, tendem a gerar novos erros.
  • 28.
    Efeitos colaterais, opesadelo de todo desenvolvedor de software. Correção de erros, tendem a gerar novos erros. Desenvolvedores temem modificações, tentam a evitá-las.
  • 29.
    Efeitos colaterais, opesadelo 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.
    Efeitos colaterais, opesadelo 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.
    3. A maioriaé feita sob medida em vez de ser montada a partir de componentes existentes.
  • 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.
    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.
  • 35.
    Evolução do Software Osprimeiros anos - ORIENTAÇÃO BATCH - DISTRIBUÍÇÃO LIMITADA - SOFTWARE CUSTOMIZADO 1950 1960 1970 1980 2000
  • 36.
    Evolução do Software Osprimeiros 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.
    Evolução do Software Crisedo 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.
    Evolução do Software Crisedo 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.
    Evolução do Software Aquarta 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.
    A crise dosoftware + 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.
    A crise dosoftware 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.
    A programação A crisedo 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.
    Programas & Instruções Afaceta 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.
    Tipos de Software Osoftware pode ser classificado hierarquicamente, em software básico (também chamado software de sistema) e software aplicativo,
  • 45.
    Tipos de Software Osoftware pode ser classificado hierarquicamente, em software básico (também chamado software de sistema) e software aplicativo,
  • 46.
    Software básico Correspondem aosprogramas 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.
    Software básico Correspondem aosprogramas 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.
    Sistema operacional ● Osoftware é 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.
    Sistema operacional Um sistemaoperacional (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.
    Sistema operacional Um sistemaoperacional (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.
    Sistema operacional Um sistemaoperacional (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.
    Software básico Correspondem aosprogramas 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.
    Utilitários Programas que executamtarefas 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.
    Tradutores Tradutores: Programas responsáveispela 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.
    Hierarquia das linguagensem 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.
    Hierarquia das linguagensem 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.
    Tradução a partirde uma linguagem de alto nível
  • 58.
    Tradução a partirde 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.
    Interpretação ● O programa conversorrecebe 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.
    Compilação ● O programa conversorrecebe 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.
    Compilação ● VANTAGEM: Neste processoa 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.
    Compilação ● ● ● VANTAGEM: Neste processoa 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.
    Compilação São os programasvoltados 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.
    Exercício: ● ● ● ● Cite 20 softwaresaplicativos 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.