56
FAAP - FACULDADE DE ENGENHARIA Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 1 Parte 1 - Processamento Digital de Sinais 1. Introdução ao Processamento Digital de Sinais 1.1Breve Histórico. Por que utilizar processamento digital de sinais? 1.2Alguns Exemplos - Modems operando em linhas telefnicas - filtragem atØ 1960 e depois de 1960. Filtragem digital adaptativa - Filtragem do Sinal de ECG e outras aplicaıes biomØdicas - Compensaªo de Canais de Comunicaªo sem fio. Como funciona na Telefonia Celular, entre assinantes e ERBs - Tratamento de Imagens e de Sinais emitidos por Sondas Espaciais - Filtragem Autodidata ou Cega - Aplicaıes para levantamentos geolgicos 1.3 Características desejáveis na abordagem "Digital" de Sistemas 1.4 Um Exemplo de Sistema Analógico e o Discreto e Digital equivalente: um Circuito RC

Engenharia de Software e Processamento Digital de Sinais

Embed Size (px)

DESCRIPTION

Notas de aula utilizadas para fundamentar o Curso-Disciplina de PDS e Eng. de SW na FAAP, Curso de Engenharia Eletrica. O material oferece uma base teórico pratica de processamento digital de sinais, bem como o material de difnições claras usadas em Eng. de Software.

Citation preview

Page 1: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 1

Parte 1 - Processamento Digital de Sinais

1. Introdução ao Processamento Digital de Sinais

1.1 Breve Histórico. Por que utilizar processamento digital de sinais?

1.2 Alguns Exemplos

- Modems operando em linhas telefônicas - filtragem até 1960 e depois de 1960.Filtragem digital adaptativa

- Filtragem do Sinal de ECG e outras aplicações biomédicas

- Compensação de Canais de Comunicação sem fio. Como funciona na TelefoniaCelular, entre assinantes e ERBs

- Tratamento de Imagens e de Sinais emitidos por Sondas Espaciais - FiltragemAutodidata ou Cega

- Aplicações para levantamentos geológicos

1.3 Características desejáveis na abordagem "Digital" de Sistemas

1.4 Um Exemplo de Sistema Analógico e o Discreto e Digital equivalente: um CircuitoRC

Page 2: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 2

- Sistema Analógico

- Discretização das Equações do Sistema

- Duas abordagens de Implementação: utilizando somente componentes de hardware(somadores, subtratores, multiplicadores, divisores e elementos de atraso) ouhardware e software

2. Caracterização de Sinais

Em aplicações em PDS uma sequência discreta ]}n[x{ no tempo é gerada pelaamostragem periódica de um sinal contínuo no tempo )t(x , em intervalos de tempouniformes:

nTt)t(x]n[x == ,...2,1,0,1,2....,n −−= (2.1)

Frequência de amostragem T/1f = , respeitando Nyquist xf2f ≥ , frequênciacomponente limite do sinal )t(x .

Page 3: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 3

2.1 Tipos de Sequência

2.1.1 Quanto a duração

Sequência Finita

21 NnN ≤≤ em que ∞−>1N e ∞<2N (2.2)

1NNN 12 +−= , duração da sequência

Sequência Infinita

21 NnN ≤≤ em que −∞→1N e, ou ∞→2N (2.3)

Sequência limitada a direita

21 NnN ≤≤ em que −∞→1N e ∞<2N (2.4)

Sequência limitada a esquerda

21 NnN ≤≤ em que ∞−>1N e ∞→2N (2.5)

2.1.2 Quanto a Simetria

Sequência Par

]n[x]n[x * −= , (2.6)

sendo que *α denota o conjugado de α .

Ex.: )100/ncos(]n[x =

Sequência Impar

]n[x]n[x * −−= (2.7)

Ex.: )100/nsen(]n[x =

Page 4: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 4

Exercício

2n]n[x =3n]n[x =

2.1.3 Quanto a Peridiocidade

Uma sequência é dita periódica quando

]KNn[x]n[x += , (2.8)

em N é o período (inteiro positivo) e K é qualquer inteiro.

Exercício

)10/ncos(]n[x π= Se periódica, qual o período?2n]n[x = Se periódica, qual o período?

Exercício/Laboratório

- Apresentação da Ferramenta/Software de Simulação a ser usado no Curso de PDS esuas funcionalidades- Geração de gráficos contínuos e amostrados a partir de sequências estabelecidas

2.1.4 Outros Tipos de Classificação

Uma sequência é dita limitada quando

∞<≤ x]n[x β (2.9)

Uma sequência é dita absolutamente somável quando

∞<∑∞

−∞=n]n[x (2.10)

Page 5: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 5

Uma sequência é dita quadraticamente somável quando

∞<∑∞

−∞=

2

n]n[x (2.11)

A energia de uma sequência discreta é definida como

2

n]n[x∑

−∞==ε (2.12)

Exercício

n)2/(1]n[x = para 0n ≥ (0, para os demais casos)

Exercício/Laboratório

- Verificação da construção de arquivos de Som no padrão .WAV em computadores.- Ferramentas para manipulação de arquivos de Som- Revisão do teorema de Nyquist e aplicação em audio- Verificação dos efeitos de alteração da frequência de amostragem e deslocamento

em frequência das amostras- Sistema de Superposição de Amostras- Construção de um Sistema para transformar uma amostra de Som Estéreo em

Amostra de Som Mono.

2.1.5 Normalização da Potência de Sinais

Considere duas sequências ]n[a e ]n[b , de comprimento finito M e quadraticamentesomáveis no intervalo em que estão definidas.

Desta forma pode-se definir como Potência Média, ,Ρ das amostras ou energia Média poramostra:

M/]n[aM/2

naa ∑

−∞=== εΡ (2.13)

e

M/]n[bM/2

nbb ∑

−∞=== εΡ (2.14)

Page 6: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 6

Definem-se como as sequências de potência normalizadas das sequências ]n[a e]n[b respectivamente,

Pa/]n[a]n[a' = (2.15) e

Pb/]n[b]n[b' = (2.16)

Observe que as duas novas sequências assim definidas possuem Energia,

aaa

2

n

2

n

'a P/P/]n[a]n[a/ εε === ∑∑

−∞=

−∞= (2.17)

e

bbb

2

n

2

n

'b P/P/]n[b]n[b/ εε === ∑∑

−∞=

−∞=, (2.18)

e potência média por amostra,

1P/P)MP/(M/P aaaaaa // ==== εε (2.19)

e

1P/P)MP/(M/P bbbbbb // ==== εε (2.20)

Desta forma, as novas sequ6encias assim definidas possuem potência média por amostraunitária.

Uma maneira de criar uma sequência ]n[b" de mesma potência média que a sequência]n[a é então definir a mesma como,

ba"

PP]n[b]n[b = (2.21)

Este ultimo processo é utilizado para a construção de sistemas de equalização ounormalização de potência e ainda sistemas de controle automático de ganho (GAC)digitais, definindo um tamanho de bloco representativo dos sinais (M).

Page 7: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 7

2.2 Algumas Sequências Básicas

Impulso Unitário

==

0n,0

0n,1]n[δ (2.22)

Degrau Unitário

<

≥=

0n,0

0n,1]n[µ (2.23)

Exercício

∑−∞=

=n

k]k[]n[ δµ

]1n[]n[]n[ −−= µµδ

Exercício

Esboçar o gráfico da sequência ]6n[3]4n[]2n[]n[]n[x −−−+−+= µµµµRepresentar como Soma de Impulsos - vide próximo conceito!

Qual a Energia da Sequência?Qual o comprimento, se limitada?

Ela é absolutamente e quadraticamente somável?

Representação de uma Sequência Arbitrária

]1n[3]n[2]2n[]n[x −−++= δδδ

Page 8: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 8

Exercício

Considerando as sequências

]6n[4]4n[2]2n[]n[]n[a −−−+−+= µµµµ e]6n[5]3n[2]1n[2]n[]n[b −−−+−+= µµµµ

Representar como Soma de ImpulsosQual a Energia das Sequências?

Qual o comprimento, se limitadas?Qual a Potência Média/

Encontre as sequências normalizadas (em potência média) respectivamente.Calcule a Energia e Potência Média das sequências normalizadas.

Exercício/Laboratório

- Construção e testes de um sistema Equalizador de Potência de Som, baseado emarquivos .WAV

- Construção e testes de um Sistema de GAC- Verificação do funcionamento do sistema de GAC, quando o sinal a ser recuperado

está adicionado de ruído branco gaussino ou ruído rosa, de potência constante.

3. Sistemas de Tempo Discreto

Média Móvel

∑−

=−=

1M

0k M]kn[x]n[y (3.1)

Page 9: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 9

Exercício

Dada a sequência ]6n[3]4n[]2n[]n[]n[x −−−+−+= µµµµ

Esboçar o gráfico da média móvel ∑=

−=2

0k3]kn[x]n[y

Representar como Soma de ImpulsosQual a Energia da Sequência?

Qual o comprimento, se limitada?Ela é absolutamente e quadraticamente somável?

Desenhar o Gráfico nx]n[x e nx]n[yVerificar o efeito Passa baixa provocado pelo Filtro

Exercício/Laboratório

Projetar com o apoio do Software de Simulação um sistema de Dolby Digital. Testarcom amostras de som digitalizadas em arquivos .WAV e ruído rosa na faixa [0, 22 K]hz. Verificar a eficiência quando se aumenta e diminui a relação S/R, bem como onúmero de amostras da média móvel.

Acumulador

∑−∞=

=n

k]k[x]n[y (3.2)

3.1 Classificação

Linearidade

Considere as respostas ]n[y1 resposta do sistema a sequência de entrada ]n[x1 e]n[y2 resposta do sistema a sequência de entrada ]n[x2 . O sistema é dito linear, se

para uma entrada ]n[x]n[x]n[x 21 βα += , em que α e β são constantes a respostado mesmo será ]n[y]n[y]n[y 21 βα +=

Page 10: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 10

Exercício

Verifique se a média móvel do exercício anterior repreenta um Sistema LinearIdem para 2])n[x(]n[y =

Idem para o sistema de ECO ]2n[x1.0]n[x]n[y −+=

Exercício/Laboratório

Implemente um programa de simulação que seja capaz de introduzir o efeito deECO em arquivos de som, com tempo de retardo e intensidade a especificar.

Invariância no Tempo

Considere as respostas ]n[y1 resposta do sistema a sequência de entrada ]n[x1 e]n[y resposta do sistema a sequência de entrada ]n[x . O sistema é dito invariante

no tempo, se para uma entrada ]nn[x]n[x 01 −= , a resposta do mesmo será]nn[y]n[y 01 −=

Exercício

Verifique a invari6ancia no tempo para o sistema,...L2,L,0,L,L2...,n],L/n[x]n[y −−== e 0]n[y = para os demais valores de n.

Causalidade

Um sistema é dito causal se simplesmente as alterações ou reflexos em sua sequênciasáida não precedem nunca uma alteração em sua sequência de entrada.

Estabilidade "BIBO" (bounded input, bounded output)

Um sistema é dito estável (do tipo "BIBO") se xB|]n[x| < para todos os valores de nimplica em yB|]n[y| < , em que xB e yB são constantes finitas.

Page 11: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 11

Passividade

Um sistema é dito passivo se,

∞<=≤= ∑∑∞

−∞=

−∞=

2

nx

2

ny ]n[x]n[y εε (3.3)

Resposta Impulsiva e Relacionamento Entrada-Saída

A resposta impulsiva de um sistema resulta em uma sequência ]n[h . Para o caso deum sistema acumulador tem-se,

∑−∞=

=n

l)l(]n[h δ

Para sistemas LTI (Linear Time Invariant) - lineares e invariantes no tempo, é possívelescrever,

∑ ∑∞

−∞=

−∞=−=−=

k k]k[h]kn[x]kn[h]k[x]n[y (3.4)

A resposta impulsiva de um sistema resulta em uma sequência ]n[h . Para o caso deum sistema acumulador tem-se,

Exercício Orientado em Sala de Aula

Sistemas LTI em cascasta e em ParaleloCondição de Estabailidade do Sistema LTI

Condição de CausalidadeSistemas FIR e IIR

Page 12: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 12

4. Estudo de Sinais e Sistemas Discretos no Domínio da Frequência

4.1 Transformada Discreta de Fourier

4.1.1 Definição

A Transformada Discreta de Fourier, )e(X jw , de uma sequência ]n[x é definida como,

∑∞

−∞=

−=n

jwnjw e]n[x)e(X (4.1)

Em geral )e(X jw é uma função complexa da variável real w e pode ser escrita como,

)e(jX)e(X)e(X jwim

jwre

jw += , (4.2)

em que )e(X jwre e )e(X jw

im é a parte real e imaginária de )e(X jw respectivamente.

É bastante usual representar )e(X jw na forma polar, a partir do módulo e do argumento damesma,

)w(jjwjw e|)e(X|)e(X θ= (4.3)

em que )w(θ ,

πθπ ≤≤− (4.4)

Exercício

Calcular a transformada da sequência ]n[x definida como,

]n[)4,0(]n[x n µ=

4.1.2 Definição da Transformada Inversa

ππ

π2dwe)e(X]n[x jwnjw∫

−= (4.5)

4.1.3 Condição de Convergência

∞<∑∞

−∞=|]n[x|

n (4.5)

Page 13: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 13

4.1.4 Transformações de Funções Básicas e Propriedades

Sequência Transformada de Fourier]n[δ 1]n[µ

∑∞

−∞=− ++

− kjw )k2w(

e11 ππδ

njw0e ∑∞

−∞=+−

k0 )k2ww( ππδ

]n[nµα , ( 1|| <α )jwe1

1−−α

Tabela 4.1 - Transformações de Funções básicas

Propriedade Sequência Transformada]n[g )e(G jw

]n[h )e(H jw

Linearidade ]n[h]n[g βα + )e(H)e(G jwjw βα +Deslocamento no Tempo ]nn[g 0− )e(Ge jwjwn0−

Deslocamento em Frequência ]n[ge njw0− )e(G )ww(j 0−

Diferenciação em Frequência n ]n[g dw/)e(dG jw

Convolução ]n[h]n[g ⊗ )e(H)e(G jwjw

Modulação ]n[h]n[gπθθθ

π

π2d)e(H)e(G )w(jj −

−∫

Relação de Perseval=∑

−∞=]n[h]n[g *

n ππ

π2dw)e(H)e(G jw*jw∫

−=

Tabela 4.2 - Propriedades básicas

Page 14: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 14

4.2 Transformada Z

4.2.1 Definição

A Transformada Discreta de Fourier, )z(X , de uma sequência ]n[x é definida como,

∑∞

−∞=

−==n

nz]n[x]}n[x{Z)z(X (4.6)

Se considerarmos jwrez = na forma polar,

∑∞

−∞=

−−− ===n

njwnnjw )r]n[x(DTFTer]n[x]}n[x{Z)re(X , (4.7)

que pode ser interpretada como a transformada de Fourier da sequência modificada nr]n[x − .

em que )e(X jwre e )e(X jw

im é a parte real e imaginária de )e(X jw respectivamente.

Exercício

Calcular a transformada Z da sequência ]n[x definida como,

]n[)4,0(]n[x n µ=

4.2.2 Definição da Transformada Inversa

j2dzz)z(X]n[xC

1nπ∫ −= (4.8)

em que C' é o contorno no sentido horário definido por r|z| = .

Usando o teorema dos resíduos de Cauchy,

]Cdentropolosdosz)z(Xderesiduos[]n[x 1n−∑=

Outra maneira de calcular a transformada inversa é a expansão em frações parciais, da mesmaforma que foi estudado no 3.o ano em Circuitos Elétricos.

Page 15: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 15

4.2.3 Condição de Convergência

∞<−∞

−∞=∑ |r]n[x| n

n (4.9)

4.2.4 Transformações de Funções Básicas e Propriedades

Sequência Transformada de Fourier]n[δ 1]n[µ

1z11

−−, 1|z| >

]n[nµα , ( 1|| <α )1z1

1−−α

, |||z| α>

Tabela 4.3 - Transformações de Funções básicas

Propriedade Sequência Transformada]n[g )z(G]n[h )z(H

Linearidade ]n[h]n[g βα + )z(H)z(G βα +Deslocamento no Tempo ]nn[g 0− )z(Gz 0n−

Multiplicação por umasequência exponencial

]n[gnα )/z(G α

Diferenciação em z n ]n[g dz/)z(zdG−Convolução ]n[h]n[g ⊗ )z(H)z(GModulação ]n[h]n[g

j2dvv)v/z(H)v(G 1

−∫

Relação de Perseval=∑

−∞=]n[h]n[g *

nj2dvv)v/1(H)v(G 1**

−∫=

Tabela 4.4 - Propriedades básicas

Exercício Orientado em Sala de Aula

Análise de exemplos de Filtros digitais

Page 16: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 16

5. Teoria da Informação

5.1 Introdução

A evolução atual dos Sistemas Digitais exige a disponibilização de enlaces decomunicação com Capacidade de transmissão cada vez maiores, capacidade esta usualmentemedida em bits por segundo (bps), através de meios cada vez mais confiáveis (com baixastaxas de erro de bit). Para isto, tão importante como o desenvolvimento de técnicas queviabilizem o melhor aproveitamento de meios de Comunicação existentes é o estudo da formaeficiente de codificar digitalmente fontes de informação.

Durante a Segunda Guerra mundial é observado o desenvolvimento de uma série de novastécnicas e dispositivos de Telecomunicações, como o radar por exemplo. Todavia, não haviamferramentas que indicassem de forma clara como medir a capacidade de sistemas decomunicação e até que limite se pode otimizar um certo sistema do ponto de vista dequantidade informações que e mesmo pode transmitir e receber. Este tema foi endereçadopelo primeira vez por Claude Shannon e Warren Weaver em 1949 com o publicação de doisartigos condensados no livro "The Mathematical Theory of Communication", que deu origema "Teoria da Informação".

A Teoria da Informação estuda, como enfoque central, a maneira que mensagens produzidaspor uma fonte de informação devem ser representadas para que as mesmas possam sertransmitidas de forma realizável sobre um canal com suas inerentes limitações físicas. Porlimitações físicas entenda como a figura de ruído do canal, sua realizabilidade, sua potênciade transmissão e largura de faixa características (vide Figura 5.1).

Fonte

Emissora

Codificador

da Fonte

Canal (Digital)

Equivalente

Decodificador

da FonteReceptor

Limitações Físicas do Canal:

�Realizabilidade

�Largura de Faixa Característica

�Potência de Transmissão

�Figura de Ruído

Nota: dizemos Canal Equivalente - Canal com Cod/Decod de Canalacoplado com a missão de reduzir/eliminar os efeitos provocados peloruído na Comunicação

MENSAGENS

OU

SÍMBOLOS

BINITS

(SÍMBOLOSBINÁRIOS)

BINITS MENSAGENS

OU

SÍMBOLOS

Figura 5.1 - Sistema de Comunicação e a Codificação da Fonte para Transmissão Digital

A maneira através da qual codificamos mensagens emitidas por uma fonte influênciaentão a realizabilidade e eficiência com que se envia informações em um canal de

Page 17: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 17

comunicações. A Teoria da Informação oferece o conjunto de ferramentas matemáticasnecessário que permite melhor caracterizar este processo e o estudar. Na seqüência sãoapresentados e desenvolvidos os conceitos desta Teoria que são trabalhados para entendere medir os processos de Codificação Digital de Fontes de Informação.

5.2. Conceitos Preparatórios

5.2.1 Como Medir Informação de uma Mensagem

Considere uma fonte que emite um conjunto de mensagens possíveis. Para que seja viávelmaximizar a taxa de emissão de informações por esta fonte é necessário inicialmente medira quantidade de informação contida em cada das mensagens da fonte. Para tal, considere o exemplo do conjunto de mensagens a seguir, emitida por uma fonterelevante a um Curso de uma Escola:

- mensagem 1:"O Professor dá aula"- mensagem 2:"O Professor virá amanhã"- mensagem 3:"O Professor não virá amanhã"

Observa-se, de forma intuitiva, que a primeira mensagem praticamente não possui outransmite pouca quantidade de informação, visto que todos esperam em um Curso, queprofessores lecionem suas aulas. Já a Segunda mensagem possui uma quantidade deinformação associada maior que a primeira, tendo em vista que já se saberá comantecipação que o professor irá lecionar amanhã, fato que não é tão comum quanto aoaspecto de saber-se que professores lecionam, de forma que um estudante, ao tomarconhecimento desta mensagem, saberá programar melhor o seu próximo dia. A Terceiramensagem já possui ou transmite uma quantidade de informação ainda maior que aSegunda, visto que é comumente esperado que o professor venha as suas aulas e faltepouco. Observe que para esta fonte que emite estes três tipos de mensagens de um Cursoem uma Escola, a freqüência de ocorrência da mensagem 1 (um) ou evento 1 (um) é maiorque a da mensagem 2 (dois), sendo que a freqüência de emissão da mensagem 3 (três) deveser ainda menor que a do evento 2 (dois). Desta maneira, pode-se observar que aquantidade de informação que uma mensagem possui é inversamente proporcional afreqüência de ocorrência desta, emitida por uma fonte de informação. Considerando então duas mensagens, seja P(1) a freqüência ou probabilidade da primeiraocorrer e seja P(2) a probabilidade da segunda ocorrer. Seja I a quantidade de informaçãoassociada a uma certa mensagem. Então podemos dizer que:

- I é inversamente proporcional a P;- P(1) > P(2) ! I(2) > I(1);- P E [0,1] ! I >= 0;- Se as duas mensagens são estatisticamente independentes, então a quantidade de

informação associada a ocorrência ou emissão da mensagem 1 e da mensagem 2I(12) será: I(12)= I(1)+I(2). Observe que neste caso P(12)=P(1).P(2).

É possível demonstrar que a única função matemática que satisfaz as condições acimasimultaneamente é a função logaritmo.

Então, a quantidade de informação transmitida por uma mensagem será:

Page 18: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 18

I=logb(1/P) (5.1)

Na Eq. (5.1) observamos b depende da escolha da unidade que desejamos medir aquantidade de informações. Por ex.: para b=2 (*), a unidade será bits, contração usual de"binary digits"; para b=10, a unidade será dígitos decimais.

(*) Obs.: Considerando o caso mais trivial de fonte binária que emite mensagens deforma equiprovável (P(1)=P(2)=0,5), I(1) = I(2) = log2(1/0,5) = 1 bit. Isto é, aquantidade de informações transmitida por uma mensagem de uma fonte bináriaequiprovável é de um bit.

Embora seja necessário caracterizar individualmente a quantidade de informações associada amensagem de uma fonte, este conceito não é tão relevante quando se pensa em caracterizaruma fonte, que normalmente emite um conjunto de mensagens ou símbolos. Para tanto,desenvolveu-se o Conceito de Entropia de Fontes de Informação que é apresentado a seguir.

5.2.2 Entropia de Fontes de Comunicação

Considere uma fonte capaz de emitir um conjunto M símbolos ou mensagens distintos, {X1,X2, X3, .... Xm} e seja P(1), P(2), ... P(M) a freqüência de emissão associada a cada um dossímbolos, supondo inicialmente que a fonte tenha uma característica estacionária. Se sãotomadas N amostras de emissão de mensagens, observa-se que a quantidade total deinformação transmitida pela fonte será:

Q.Total = N(1).I(1) + N(2).I(2) + ... + N(M).I(M) [bits] (5.2)

Na Eq. (5.2), N(i) é igual ao número de ocorrências ou emissões da mensagem "i " em Namostras.

O quantidade média de informação por símbolo emitido (medido em [bits/simb.]) nestaamostra de N emissões é obtida dividindo a Eq. (5.2) por N:

Q.Médio = N(1).I(1)/N + N(2).I(2)/N + ... + N(M).I(M)/N [bits/simb.] (5.3)

Se na Eq. (5.3) o número de amostras é grande, pela "Teoria dos Grandes Números" observa-se que N(i)/N ! P(i), probabilidade de ocorrência da emissão da mensagem "i". Neste casopassa-se a chamar a quantidade média de informações medida de "Entropia da Fonte deInformação" ou simplesmente H(X).

H(X) = P(1).I(1) + P(2).I(2) + ... + P(M).I(M) [bits/simb.] (5.4)

∑=

=M

1i

P(i).I(i)H(X) [bits/simb.] (5.5)

Na Eq. (5.5), lembrando a relação (5.1) tem-se que,

Page 19: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 19

∑=

=M

1i2 (1/P(i))P(i).LogH(X) [bits/simb.] (5.6)

O nome "Entropia da Fonte" foi dado em função de uma série de analogias, exploradas pordiversos autores sobre o tema, entre esta função e a função de mesmo nome daTermodinâmica.

Caso de particular interesse para este estudo, que descreve na sequência do texto aCodificação digital, é a Entropia associada a uma fonte binária de comunicação. Para evitarconfusão neste texto, cada um dos símbolos físicos emitidos por uma fonte binária é chamadode "binit" (ao invés de "bit", que é a unidade de medida de informação).

Para uma fonte binária, seja P(1)=p (probabilidade de emissão do binit "Zero") e P(2)= 1-p(probabilidade de emissão do binit "Um"), teremos então a partir da Eq. (5.6),

H.Bin = H(X) = p.Log2(1/p) + (1-p).Log2(1/(1-p)) [bits/binit] (5.7)

A Figura 5.2. a seguir traz o gráfico de H.Bin versus p. Observe que quanto mais p seaproxima de 0 (zero) ou 1 (um), significando que a fonte binária emite quase que na totalidadedos eventos o binit "Um" ou o binit "Zero", a quantidade média de informação emitida H.Bintende a zero. Este resultado é esperado, visto que se temos certeza de que a fonte sempreemitirá um certo binit, não há informação transmitida na emissão de símbolos. Da mesmaforma, observa-se que quanto mais equiprovável for a emissão do binit "Zero" e do binit"Um" (p=0,5), a Entropia tenderá a seu valor máximo (1 bit/binit). De outra maneira pode-sedizer que quando aumenta o grau de "bagunça" de emissão de símbolos (passam a serequiprováveis) a Entropia da Fonte atinge o seu máximo. Esta última acertiva serve parajustificar o nome "Entropia" a H(X), se é considerado que em um sistema termodinâmico,quanto maior a Entropia, maior será o "grau de bagunça deste".

Figura 5.2 - Evolução da Entropia de uma Fonte Binária

Page 20: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 20

É possível demonstrar, generalizando o estudo de fontes binárias, que a função entropia,

)(MLogH(X)0 2≤≤ (5.8)

A relação (5.8) é válida para uma fonte M-ária qualquer.

5.3. Codificação de Fontes Discretas sem Memória

Neste item são apresentadas as relações que regem a codificação digital de fontes deinformação. O nome "fontes discretas" foi dado ao título pelo fato de que são trabalhadasfontes capazes de emitir um número finito de símbolos. As fontes que são trabalhadastambém são supostas "sem memória". Isto significa que a emissão de um próximo símbolopela mesma não depende da emissão de símbolos que já ocorreram (independênciaestatística). As fontes são consideradas "sem memória" pelo fato de que para as que oefeito de memorização é muito relevante, normalmente a utilização de preditoresassociados a codificadores de corrida geram uma melhor otimização da taxa detransferência de informações, através da compressão de informações por eliminação deredundâncias na transmissão simbólica, do que a codificação eficiente abordada nestematerial. A utilização de codificadores eficientes ainda reduzem a performance dospreditores, se estes últimos são usados em cascata aos primeiros, em sistemas queapresentam fontes com memória. As fontes de informação geradas ou associadas diretamente a seres humanos (como atransmissão de arquivos de textos codificados por exemplo) costumam apresentar umefeito de memorização ou dependência de emissão simbólica acentuada. Todavia, como aconstrução de circuitos e algoritmos preditores é bem mais custosa que a de circuitos ealgoritmos codificadores eficientes, normalmente estes últimos são utilizados em casospráticos de Eng. de Telecomunicações ou de Eng. de Computação para tais fontes.

A Figura 5.3 ilustra o esquema geral do codificador que é estudado. A saída de uma fonteM-ária, que emite símbolos do alfabeto {X1, X2, X3, .... Xm}, é acoplada a um codificadorbinário, para que seus símbolos possam ser corretamente codificados e enviados aocanal/sistema digital de transmissão. A saída do canal de comunicação deve estar ligada aodecodificador binário que irá reconstituir os símbolos M-ários para o Receptor.

Page 21: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 21

Codificador

BinárioCanal (Digital)

Decodificador

BinárioReceptor

MENSAGENS

{X1, X2, ..., XM}

R = r.H(X) [bits/s]

BINITS

(SÍMBOLOSBINÁRIOS: �0�, �1�)

rb.H.bin <= rb [bits/s]

BINITS MENSAGENS

OU

SÍMBOLOS

Fonte

Discreta

M-ária

Canal - possui certa Capacidade de envio de Binits por intervalo de tempo

[binits/s]

Devemos maximizar o possibilidade de envio de informações [bits/s] através doCanal com uma Codificação Eficiente

Cod/Decod - não podem nem criar, nem destruir informações

R = r.H(x) = rb.H.bin <= rb [bits/s]

Nmed ( = rb/r) >= H(X)

Figura 5.3 - Diagrama de Blocos da Codificação Digital de Fontes Discretas

Considerando que a fonte emita símbolos a uma taxa de r [simb./s], então a taxa R deemissão de informações será,

R = r. H(X) [bits/s] (5.9)

Considerando que o codificador binário emita binits a uma taxa rb [binits/s], então a taxaRb de emissão de informações pelo codificador será,

Rb = rb. H.Bin [bits/s] (5.10)

Como o codificador deve trabalhar sem criar ou destruir informações, pode-se dizer que aquantidade de informações que entram no codificar em um certo intervalo de tempo "T"tem que ser igual a quantidade de informações que saem neste mesmo intervalo,

r. H(X).T = rb.H.Bin.T [bits] (/T) r. H(X) = rb. H.Bin [bits/s] (5.11)

Da Figura 5.2 observamos que H.Bin é sempre menor ou igual a 1 (um), o que permiterescrever a Eq. (5.11) como,

rbrb.H.Binr.H(X) ≤= [bits/s] (5.12)

Dividindo a Eq. (5.12) por r, o observando que rb/r [binits/simb.] eqüivale a quantidademédia de binits codificados pelo codificador para cada símbolo emitido pela fonte, ousimplesmente Nmed, podemos escrever,

Nmed H(X) ≤ (5.13)

Page 22: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 22

A Eq. (5.13) diz que a entropia da fonte emissora do alfabeto simbólico "X" é sempre olimite inferior para o tamanho médio em binits (Nmed) dos símbolos gerados pelo blococodificador para cada símbolo emitido. Por outro lado, observe que, dado um canal digitalque possui uma certa capacidade de transmissão medida em binits/s, o quanto menor for oNmed do codificador, mais este otimizará a emissão de informação ou a emissão desímbolos da fonte através deste canal. Diz-se nestas condições que o codificador é"eficiente". Dividindo a Eq. (5.13) por Nmed, podemos definir então a eficiência de uma certacodificação,

1 R/rb H(X)/Nmed Ef.cod ≤== (5.14)

Observe na Eq. (5.14), que quanto mais Nmed ! H(X), maior será a eficiência decodificação (Ef.cod ! 1) e mais R ! rb, maximizando a taxa de envio de informaçõescomo explicado anteriormente.

O Nmed pode ainda ser calculado através da quantidade de binits que o codificador utilizapara cada símbolo emitido pelo fonte (N(1) para X1, N(2) para X2, etc.).

Então,

∑=

=+++=M

1i

N(i).P(i) N(m).P(m) ... N(2).P(2) N(1).P(1)Nmed [binits/simb.] (5.15)

A busca de códigos eficientes é trabalhada pelo "Teorema da Codificação das Fontes deShannon", que afirma que dado um certo ε é sempre possível encontrar um códigounicamente dicifrável, isto é, que não crie e nem destrua informações geradas pela fonte,que satisfaça a relação,

ε H(X)Nmed H(X) +≤≤ (5.16)

Para que seja possível adquirir algum sentimento sobre a Eq. (5.16), basta rescrever amesma observando as Eq.s (5.15) e (5.6),

εI(i).P(i)N(i).P(i) I(i).P(i) M

1i

M

1i

M

1i+≤≤ ∑∑∑

=== (5.17)

Observe que se considerarmos ε =1, admitindo que é possível escolher para cada símboloXi um código N(i) (com um número inteiro de binits) entre I(i) e I(i)+1 (observe que aquantidade de informação em bits de um certo símbolo não é necessariamente um númerointeiro) e tomando a somatória para os M símbolos, chegaremos a inequação (5.16).Simplificadamente eqüivale a dizer que símbolos que ocorrem com freqüência elevada (ouI baixo) em uma fonte devem ser codificados com um número de binits menor (N menor)do que aqueles símbolos que ocorrem com uma freqüência mais baixa, se quisermosotimizar a capacidade de transmissão de informação do canal de comunicação. Esteconceito foi utilizado por Samuel Morse para gerar a codificação que levou o seu nome(código Morse) e foi obtida pelo mesmo através da contagem de ocorrência (freqüência) de

Page 23: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 23

letras em uma folha escrita em inglês, escolhida aleatoriamente numa pilha de papel. Osexemplos de casos que são desenvolvidos na seqüência deste material ajudam a solidificaros conceitos apresentados nesta seção.

Outro aspecto de igual importância é garantir que os códigos construídos pelo codificadorsejam unicamente decifráveis, para que a informação possa ser recuperada corretamentepelo decodificador. Um dos testes utilizados para tal é a desigualdade de Kraft, que écondição necessária a ser obedecida pelos codificadores para que exista a decifrabilidadeúnica.

1 2 K M

1i

)( ≤=∑=

− iN (5.18)

A Tabela 5.1 abaixo oferece um exemplo de teste da desigualdade de Kraft.

Símbolo Código 1 Código 2A 1 000B 0 001C 10 010D 11 011E 100 100

Kcódigo 1,625 0,625Tabela 5.1 - Exemplo de aplicação de desigualdade de Kraft

Neste exemplo observa-se que o código 1, embora possua códigos de tamanho menor doque o código 2 para símbolos respectivos, não respeita a desigualdade de Kraft, não sendounicamente dicifrável portanto. Basta também observar que a codificação de um D, poderáser interpretada pelo decodificador como AA ou D, não existindo unicidade no processo decodificação e decodificação.

A seguir são apresentados os processos construtivos dos Códigos eficientes de Shannon-Fano e de Huffman, bastante usados na prática.

5.4 Codificação eficiente de Shannon-Fano e de Huffman

5.4.1 Códigos Fonte com comprimento variável

A motivação para códigos fontes de comprimento variável baseia-se na intuição de quecompressão de dados pode ser alcançada pelo mapeamento de letras de probabilidadesmaiores com seqüências de bits menores, mesmo que letras com menores probabilidadesdevam ser mapeadas com seqüências de bits mais longas. Não há necessidade de ummodelo probabilístico da fonte muito preciso para haver tanta motivação; por exemplo, ovelho código Morse da telegrafia foi elaborado com esta motivação, tendo-se apenas umacerta idéia das freqüências das letras na Língua Inglesa.

Page 24: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 24

Um código fonte de comprimento variável C mapeia cada letra fonte x de um alfabetofonte X em uma string C(x), chamada de palavra código, de comprimento l(x). Porexemplo, um código para o alfabeto X = {a, b, c} pode ser dado por,

C (a) = 0 C (b) = 10 C (c) = 11

Assume-se que as palavras código de um código fonte de comprimento variável sãotransmitidas como uma seqüência continua de bits sem nenhuma demarcação de início efim de cada uma (i.e. sem vírgulas). O decodificador da fonte deve determinar onde estão os limites ou fronteiras; isto édenominado "parsing" (do Inglês).

5.4.2 Unicidade de Decodificação

Para um código fonte C de comprimento variável sem ruído requer-se que C sejaunicamente decifrável, significando que a seqüência de letras da fonte de entrada podesempre ser reconstruída sem ambigüidade a partir da seqüência de bits codificada da fonte.

Nota: sincronização inicial é assumida: o decodificador da fonte sabe qual é o primeirobit da seqüência codificada.

Claramente, um código fonte C é unicamente decodificável, se e somente, o mapa decodificação da fonte é de 'um para um'.

Exemplo: o código C para o alfabeto X = {a, b, c} dado acima é dito "prefix-free" (livre deprefixo) e assim unicamente decodificável, como veremos a seguir. No entanto, o códigoC' definido por,

C' (a) = 0C' (b) = 1

C' (c) = 01

não é unicamente decifrável. Por exemplo, se o decodificador fonte observa "01", ele nãopode determinar se a fonte emitiu (a, b) ou (c). O problema observado aqui é fundamental eestá relacionado com os comprimento das palavras códigos, 1 (um), 1 (um) e 2 (dois), enenhum código unicamente decodificável pode ter este conjunto de palavras código comestes comprimentos.

Page 25: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 25

5.4.3 Códigos "prefix-free"

Verificar se um código é unicamente decodificável pode ser bem complicado. No entanto,existe um boa classe de códigos unicamente decodificáveis chamados de códigos "prefix-free", que possuem inúmeras vantagens. É muito simples checar se um código é "prefix-free" e assim unicamente decodificável. Códigos "prefix-free" tem a vantagem adicionalque o decodificador da fonte pode ser implementado com delay mínimo. Pode serdemonstrado que se existe um código unicamente decifrável com um certo conjunto decomprimentos de palavras, então existe também um código "prefix-free" com o mesmoconjunto de comprimentos.

Definição: Um código é "prefix-free" se nenhuma palavra código for um prefixo deoutra palavra código.

Por exemplo, o código C é "prefix-free", mas o C' não é. Qualquer código decomprimento fixo é "prefix-free".

É examinado a seguir que todo código "prefix-free" é unicamente decodificável. A prova éconstrutiva, e mostra como o decodificador da fonte consegue unicamente determinar oslimites da palavra código.

Dado um código C "prefix-free", é construída uma árvore de código bináriocorrespondente, que cresce de uma raiz da esquerda para folhas na direita representando aspalavras código. Por exemplo, a árvore abaixo ilustra a árvore binária para o códigomostrado. A árvore binária é estendida suficientemente para a representação das palavrascódigo.

Figura 5.4: Árvore de códigos binários para um código "prefix-free".

10

10

10

a

b

ca ! 0b ! 11c ! 101

Page 26: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 26

A condição "livre de prefixo" garante que cada palavra código corresponda a um ramo,porque um ramo intermediário representa um "prefix" para qualquer ramo saindo dele. Note que a árvore da Figura 5.4 tem um ramo, correspondente à string "100" que nãorepresenta uma palavra código. A árvore nos mostra que a palavra código para "c" pode serdiminuída para "10" sem destruir a propriedade de "prefix-free", como mostrado na Figura5.5.

Figura 5.5: Árvore de códigos binários para um código "prefix-free" mais eficiente.

A árvore do código de "prefix-free" será denominada "full", ou cheia, se todos os ramoscorrespondem a palavras de código. Assim, a árvore da Figura 5.4 não é cheia, mas a daFigura 5.5 é. Como é visto neste exemplo, uma árvore que não é cheia pode sempre serencurtada para uma árvore cheia mais eficiente.

Figura 5.6: Árvore de códigos binários para duas palavras código.

Para ver intuitivamente porque a condição de "prefix-free" garante decifrabilidade única,considere a árvore para a concatenação de duas palavras código. Utilizando a árvore daFigura 5.5, obtém-se a esquematizada na Figura 5.6. A nova árvore foi formadasimplesmente pelo transplante de uma cópia da árvore original para cada ramo destaoriginal. Alguém poderia imaginar que transplantes subsequentes para os ramos da Figura5.6 para se obter uma árvore representando ainda mais palavras código juntamenteconcatenadas. Está claro desta construção que cada seqüência de palavras código encontra-se em um nó diferente na árvore e assim será codificada em uma seqüência bináriadiferente, não importando quão longo o processo continue.

1 0

a

1 0

b

c

a ! 0b ! 11c ! 10

a

aaac

abc

cacc

cb

bb

bcb ba

Page 27: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 27

Assim, todos os códigos "prefix-free" são unicamente decifráveis.

5.4.4 Codificação de Shannon-Fano

A codificação de Shannon-Fano gera uma codificação eficiente na qual o comprimentodas palavras aumenta conforme as probabilidades dos símbolos diminuem, mas nãonecessariamente em estrito acordo com a equação,

11log1log +<≤i

ii P

NP

(5.19)

O algoritmo provê uma estrutura de árvore de codificação para assegurar decifrabilidadeúnica. É aplicado o algoritmo para a fonte com M = 8 e H(X) = 2,15, cujas estatísticasestão listadas na Tabela 5.2.

xi Pi 1 2 3 4 5 6 CodificaçãoA 0,50 0 0B 0,15 1 0 0 100C 0,15 1 0 1 101D 0,08 1 1 0 110E 0,08 1 1 1 0 1110F 0,02 1 1 1 1 0 11110G 0,01 1 1 1 1 1 0 111110H 0,01 1 1 1 1 1 1 111111H(X) = 2,15 18,2=N

Tabela 5.2: Codificação de Shannon-Fano

O algoritmo de Shannon-Fano envolve uma sucessão de passos de "dividir" e"conquistar". Para o primeiro passo, desenha-se uma linha que divide os símbolos emgrupos de dois, tais que as probabilidades dentro dos grupos sejam as mais aproximadaspossíveis; então designa-se o dígito "0" para cada símbolo do grupo acima da linha e odígito "1" para cada símbolo do grupo abaixo da linha. Para todos os passos subseqüentes,deve-se subdividir cada grupo em subgrupos e novamente designar dígitos seguindo aregra anterior. Sempre que um grupo tiver somente um símbolo, como acontece nos passosprimeiro e terceiro na Tabela, não dá para seguir adiante com subdivisões e a codificaçãopara aquele símbolo estará completa. Quando todos os grupos tiverem sido reduzidos a umsímbolo, as codificações serão dadas pelos dígitos designados lendo da esquerda para adireita. Um exame cuidadoso da Tabela 5.2 deve clarificar este algoritmo.

A codificação de Shannon-Fano resultante neste caso tem 18,2=N , então a eficiência éde 2,15/2,18 ≈ 99%. Assim, se a taxa de símbolo é r = 1000, então rb = rN = 2180binits/seg � um pouco maior que R = rH(X) = 2150 bits/seg. Como comparação, umcódigo de comprimento fixo necessitaria de N = log 8 = 3 e rb = 3000 binits/seg.

Passos da Codificação

Page 28: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 28

5.4.5 Codificação de Huffman

É interessante saber a codificação ótima da fonte que minimiza L médio (L é o número debits codificados) para uma dada fonte. A resposta é a codificação de Huffman.

Por conveniência todos os símbolos são listados verticalmente em ordem decrescente deprobabilidade. Supõe-se que os símbolos são as oito palavras Inglesas "the", "man", "to","runs", "house", "likes", "horse", "sells", que ocorrem independentemente comprobabilidades de terem sido escolhidas, ou de aparecer, como listado na Tabela 5.3.

Palavra / Mensagem ProbabilidadeThe 0,50Man 0,15To 0,12

Runs 0,10House 0,04Likes 0,04Horse 0,03Sells 0,02

Tabela 5.3: Palavras escolhidas e suas Probabilidades

A Figura 5.7 mostra como se pode construir a codificação eficiente palavra por palavra.As palavras são listadas à esquerda, e as probabilidades estão entre parênteses. Aoconstruir o código, primeiro encontram-se as duas menores probabilidades, 0,02 (sells) e0,03 (horse), e desenham-se linhas ao ponto marcado 0,05, a probabilidade de se ter ou"horse" ou "sells". Então passa-se a desconsiderar as probabilidades individuais conectadaspelas linhas e procuram-se pelas duas menores probabilidades, que são 0,04 (like) e 0,04(house). Desenham-se linhas para a direita ao ponto marcado com 0,08, que é a soma de0,04 e 0,04. As duas menores probabilidades restantes são agora 0,05 e 0,08, então umalinha para a direita é desenhada conectando a elas, para dar um ponto marcado 0,13.Procede-se assim até que as linhas formem caminhos de saindo de cada palavra até umponto em comum à direita, o ponto marcado 1,00. Agora cada trilha da parte de cima indopara a esquerda de um ponto é rotulada de "1" e cada uma da parte de baixo, de "0". Ocódigo para uma dada palavra é então a seqüência de dígitos encontrados caminhando paraa esquerda do ponto em comum 1,00 até a palavra em questão. Os códigos estão listados naTabela 5.4.

Page 29: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 29

Palavra /Mensagem

Probabilidadep

Código No. de dígitosno Código, N

Np

The 0,50 1 1 0,50Man 0,15 001 3 0,45To 0,12 011 3 0,36

Runs 0,10 010 3 0,30House 0,04 00011 5 0,20Likes 0,04 00010 5 0,20Horse 0,03 00001 5 0,15Sells 0,02 00000 5 0,10

2,26

Tabela 5.4

Na Tabela 5.4 é mostrado não somente cada palavra e seu código mas também aprobabilidade de cada código e o número de dígitos em cada código. A probabilidade deuma palavra vezes o número de dígitos no código dá o no. médio de dígitos por palavra emuma longa mensagem devido ao uso daquela palavra em particular. Se os produtos dasprobabilidades e os números de dígitos para todas as palavras são adicionados, o númeromédio de dígitos por palavra é obtido, que resulta em 2,26. Isto é um pouco maior que aentropia por palavra, que encontramos ser 2,21 bits por palavra, mas é um número menorde dígitos do que os 3 dígitos por palavra que se teria utilizado meramente fosse designadoum código de 3 dígitos qualquer para cada palavra. Não somente pode ser provado que esta codificação de Huffman é a mais eficiente paracodificar um conjunto de símbolos tendo diferentes probabilidades, também pode serprovado que ela requisita menos que um dígito binário por símbolo que a entropia (noexemplo acima, a codificação pede por apenas 0,05 dígitos binários extras por símbolo.)

5.5 Estudo de Casos

5.5.1 Codificações possíveis de uma Fonte de Informação

Para este primeiro estudo de Caso considera-se como fonte emissora um ComputadorDigital que emite para um Canal um alfabeto de 8 símbolos (codificados internamente emASCII). Deseja-se saber, dada a freqüência característica de emissão destes símbolos, qualas possibilidades de codificação das mensagens para melhor aproveitar a banda de 512Kbps do Canal de Comunicações.

A Figura 5.7 a seguir mostra um resumo da situação e da análise que é feita neste caso.

- Uma primeira tentativa de transmissão de símbolos, já que estes são codificados etrabalhados internamente no Computador (fonte emissora) em ASCII, é emitir para ocanal digital os símbolos com esta codificação pura e simplesmente. Sob a Luz daTeoria da Informação esta situação pode parecer pouco eficaz, porém é válido alertarque é freqüente de ser encontrada em situações práticas de implementações de Sistemasde Telecomunicações, em que em geral o "custo versus benefício" de implementação

Page 30: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 30

de codificadores eficientes não é justificável.

Esta situação é bem pouco eficiente do ponto de vista de codificação, uma vez que aemissão simbólica utiliza um alfabeto de somente 8 símbolos e os mesmos nãopossuem freqüências de ocorrência iguais (gerando H(X)=2,18 bits/Simb). Este padrãode codificação, com Nmed de 8 binits/simb, possui uma baixa eficiência (aprox. 27%,segundo a Eq. (5.14)) e não otimiza a velocidade de envio de informações pelo canal,de aprox. 139 Kbits/s, calculada usando as Eq.s (5.9), (5.11) e (5.12).

- Uma segunda abordagem para a transmissão de símbolos, é emitir para o canal digitalos oito símbolos possíveis com uma codificação binária simples, mais compacta que oASCII (Nmed = 3 binits/simb.).

Esta situação é mais eficiente eficiente que o primeiro caso analisado do ponto de vistade codificação, com uma eficiência de aprox. 73%, melhorando a velocidade de enviode informações pelo canal, para aprox. 372 Kbits/s, calculada usando as Eq.s (5.9),(5.11) e (5.12).

- Já para as opções três e quatro, utilizam-se técnicas de codificação eficiente dossímbolos (Huffman e Shannon-Fano), que levam em consideração o aspecto de quesímbolos que ocorrem muito freqüentemente (como o A, e que transmite baixaquantidade de informação) devem ser codificados com um número baixo de Binits, sese quer aproximar as relações descritas na Eq. (5.17). Observe que a eficiência destascodificações é de 98% (quase uma codificação ótima, onde a relação H(X)/Nmed = 1),o que eleva bastante a taxa de emissão de informação ao canal (aprox. 504 Kbits/s),tornando o processo de comunicação bem mais eficiente.

Pelo aspecto curioso de se estar trabalhando com um Computador, em que os símbolossão codificados tipicamente com ASCII, existe a sensação de que os mesmos sãoemitidos ao canal numa taxa (em binits ASCII/ s) muito maior (1853 Kbps) que aCapacidade do Canal (512 Kbps). Pode-se ainda calcular o que comercialmente sechama de "Compressão de Dados", relacionando as duas velocidades enxergadas(3,6:1). Vale alertar que, embora este termo seja muito usado comercialmente parasoftwares e hardwares de codificação eficiente de arquivos e dados respectivamente,ditos "Software ou Hardwares de Compressão", sob a Luz da Teoria da Informação, sóestariam habilitados a serem chamados de "Compressores" aqueles dispositivos que seutilizam de algoritmos preditores capazes de reduzir a redundância das informações,devido ao efeito de memorização de fontes.

Page 31: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 31

Fonte Emite 8 Símbolos / Mensagens distintasVelocidade do Canal - rb [Kbinits/s] 512,0

Símbolo Frequência Quantidade de Informação [Bits] Codificação ASCII Codificação

Binária SimplesCodificação Eficiente

de Shannon-Fano

Codificação Eficiente de

Huffman

A 0,5 1,000 01000001 000 0 0B 0,15 2,737 01000010 001 100 100C 0,15 2,737 01000011 010 101 101D 0,07 3,837 01000100 011 110 111E 0,07 3,837 01000101 100 1110 1100F 0,04 4,644 01000110 101 11110 11010G 0,01 6,644 01000111 110 111110 110110H 0,01 6,644 01001000 111 111111 110111

Análise:H(X) [bits/simb] 2,177Nmed [binits/simb] 8,00 3,00 2,21 2,21Eficiência Código (%) 27,21 72,56 98,50 98,50Tx. Envio Simbolos - r [KSimb.s/s] 64,00 170,67 231,67 231,67Tx. Envio de Informação - R [Kbits/s] 139,32 371,51 504,32 504,32Vel. Equivalente "ASCII" [Kbinits/s] 512,00 1365,33 1853,39 1853,39

1,00 2,67 3,62 3,62

Codificação Digital de Fontes Discretas - Estudo de Caso

Taxa de "Compressão" do Canal vista pela Fonte

Figura 5.7 - Resumo da Análise de Codificações Possíveis de uma Fonte de Informação

5.5.2 Codificador Adaptativo Eficiente de Shannon-Fano

Neste caso, executa-se e se analisa a implementação em simulador (Matlab1) do algoritmode Shannon-Fano no codificador de uma fonte discreta capaz de emitir 6 símbolos. A fonteé suposta como sendo estacionária. Todavia, como ocorre em codificadores eficientespráticos, o sistema de codificação não conhece inicialmente a freqüência de emissão desímbolos pela fonte. No algoritmo listado na Figura 5.8, o codificador monta internamenteuma tabela de freqüências acumulativas de ocorrências dos símbolos.

1 O Matlab é uma marca registrada. Software de Simulação com direitos reservados a MathWorks Inc..

Page 32: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 32

Figura 5.8 - Programa de Simulação do Codificador Adaptativo usando o AlgoritmoEficiente de Shannon-Fano para uma Fonte Discreta capaz de emitir 6 símbolos

Os símbolos emitidos pela fonte (total de 6) são gerados pseudo-aleatoriamente (matriz"O" do algoritmo) com a frequência (probabilidade) especificada no vetor "PS" deinicialização do algoritmo.

Esta tabela de frequências acumulativas (matriz "P" no algoritmo), neste exemplo didáticopara análise, é atualizada a cada emissão de novo símbolo pela fonte (na prática isto nãoocorre, mas sim a cada bloco de N emissões, pois demandaria a alocação de uma parte dabanda de comunicação no canal entre o codificador e decodificador excessivamentegrande, para que os mesmos pudessem controlar a atualização e a sincronização de suastabelas de codificação/decodificação eficientes). A cada atualização da tabela, ocodificador executa o algoritmo de Shannon-Fano para determinar qual a melhorcodificação eficiente que maximizará e emissão de informação entre a fonte emissora ereceptor, adaptando sua codificação iterativamente (representada no algoritmo pelamultiplicação da matriz "BI" com a matriz "P" e a determinação da codificação que gera oMenor Nmed). As figuras 5.9 a 5.12, mostram o resultado da simulação para as

Page 33: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 33

freqüências de emissão de símbolos especificadas. Em duas figuras são executadas váriasrepetições do algoritmo (40) para que se obtenha a tendência estatística de funcionamentodo Codificador e do Decodificador (calculadas no algoritmo através dos vetores "HEM" e"NE" e controladas pela variável "simula").

Figura 5.9 - Evolução do Nmed e H(X) visto pelo Codificador para fonte emissora de 6símbolos com freqüências {0,9; 0,02; 0,02; 0,02; 0,02; 0,02}. A Execução da Adaptação do

Codificador é repetida 40 vezes e os valores médios estatísticos são apresentados.

Page 34: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 34

Figura 5.10 - Evolução do Nmed e H(X) visto pelo Codificador para fonte emissora de 6símbolos com freqüências {0,9; 0,02; 0,02; 0,02; 0,02; 0,02}. A Execução da Adaptação do

Codificador é repetida somente 1 vez.

Figura 5.11 - Evolução do Nmed e H(X) visto pelo Codificador para fonte emissora de 6símbolos com freqüências {0,3; 0,3; 0,1; 0,1; 0,1; 0,1}. A Execução da Adaptação do

Codificador é repetida 40 vezes e os valores médios estatísticos são apresentados.

Page 35: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 35

Figura 5.12 - Evolução do Nmed e H(X) visto pelo Codificador para fonte emissora de 6símbolos com freqüências {0,3; 0,3; 0,1; 0,1; 0,1; 0,1}. A Execução da Adaptação do

Codificador é repetida 1 vez

Observando os 4 gráficos apresentados, podem ser efetuadas as seguintes análises:

- Os mesmos sempre iniciam (para número de emissões de símbolo igual a 1) comNmed=1 e H(X)=0, visto que quando somente 1 símbolo é emitido, o codificadorassume que a probabilidade de emissão do mesmo é 1 (gerando H(X)=0) e codifica omesmo com 1 binit.

- Existe sempre uma diferença entre o Nmed obtido pelo codificador e H(X), emobediência a Eq. (5.13) calculada. Caso o codificador conseguisse o caso particularNmed=H(X), diz-se que o mesmo obteve uma codificação ótima (sua Eficiência, emacordância com a Eq. (5.14) seria de 100% e R = rb, com a máxima transferência deinformação possível igual a taxa de emissão de binits no Canal). Como o processo decodificação de Shannon-Fano subdivide o conjunto simbólico em duas partiçõessucessiva e recursivamente, só existe a possibilidade deste código gerar umacodificação ótima quando o número de símbolos for uma potência de 2 e quando asfreqüências de ocorrência são representadas por inversas de potência de dois (nestascondições).

- Mesmo não obtendo uma codificação ótima, o Nmed deste codificador é bem melhorque o de uma codificação binária simples, que geraria Nmed=3 binits, possuindo umaeficiência de codificação maior que esta Segunda (H(X)/Nmed).

- Pelos gráficos 5.9 e 5.11, observa-se que quanto menor a Entropia da fonte (maior atendência de emissão de certos símbolos), mais iterações/emissões de símbolos sãonecessárias para que o algoritmo tenha convergência e estabilize em um Nmed

Page 36: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 36

eficiente (50 iterações na figura 5.11 e 100 iterações na figura 5.9 aproximadamente).De uma forma genérica, quanto maior o número de símbolos e menor for a entropia dafonte, mais iterações serão necessárias para depurar os valores de freqüência deemissão de símbolos individualmente e fazer com que Nmed ! Nmed eficiente.

- Observe que embora a tendência estatística observada nos gráficos das figuras 5.9 e5.11 indiquem nestes exemplos que existe convergência em 100 e 50 emissões desímbolos em média respectivamente, se forem tomados os gráficos de simulaçãoindividual das figuras 5.10 e 5.12, verifica-se que pode ser necessário um número deiterações (emissões) bem mais elevado para convergência (aproximadamente 500 e 350respectivamente).

5.6 Como Ensaiar a Eficiência de Codificadores Digitais Comerciais

Muitas vezes em situações práticas da Eng. de Telecomunicações ou da Eng. deComputação ocorrem situações em que são usados equipamentos com codificadorescomerciais prontos. Existe uma forma indireta de se verificar o desempenho dos mesmosque é relativamente simples. Observando as equações (5.14) e (5.12), verifica-se que nasituação de codificação eficiente, isto é, quando Nmed ! H(x), ou na situação decodificação ótima, quando Nmed = H(X), a entropia da saída do codificador H.bin deve seaproximar de 1 [bit/binit]. Isto significa que o codificador esta emitindo binits "Zeros" ebinits "Uns" de forma equiprovável. Basta então medir ou amostrar, com o apoio de umanalisador de dados, a freqüência de emissão de binits "Zeros" e binits "Uns" nas diversassituações de operação da fonte emissora e do sistema, para se ter uma medida indireta daeficiência de codificação do equipamento e de sua capacidade de adaptação. O mesmoprocedimento pode ser usado medir a eficiência de algoritmos computacionais decodificação eficiente (muitas vezes chamados erroneamente de "Compressores de dados").

5.7 Considerações Finais

Como foi verificado, a Codificação Digital eficiente de Fontes de transmissão éfundamental para otimizar o aproveitamento da Capacidade dos Canais de Comunicação,no que se refere a taxa de envio de informação. Costuma-se evidenciar esta importânciachamando o processo de codificação eficiente de fontes ou codificação ótima de"Casamento de Codificação para maximizar a transferência de Informações em um Canalde Comunicação", em analogia ao Teorema da Eng. Elétrica de "Casamento deImpedâncias para Máxima transferência de potência de sinais".

Page 37: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 37

Parte 2 - Engenharia de Software

O Software e seus Processos

Sumário

■ Software– Definição, Características, Aplicações– Evolução

■ Problemas Atuais do �Software�■ Mitos do Software■ Engenharia de Software e �Verdades�

Software

Aspectos Históricos:

– Década 50 a 70: Hardware era o foco principal do desenvolvimento computacional

» Desafio: aumentar a velocidade de processamento a custos menores e a capacidadede armazenamento de dados

– Atualmente:

» Hardware é visto como �Commodity�» Desafio: reduzir os custos de implementação do Software e a qualidade» Melhorar a Funcionalidade» Tornar o Software mais �Amigável�

Definição - Dicionário

No dicionário é possível encontrar:

– �Aquilo que pode ser executado por um equipamento (o hardware)�

– �Um produto comercializado que é constituído por um sistema de rotinas e funções�

Page 38: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 38

– �Programa�

Do que é constituído?

1- INSTRUÇÕES (programas de computador) capazes de produzir a função e o desempenho desejados

2 - ESTRUTURAS DE DADOS quando bem trabalhadas viabilizam que os programas manipulem

adequadamente a informação

3 - DOCUMENTOS descrevem como operar e utilizar os programas

Então, o que é Software?

Para Viabilizar uma definição mais precisa:

Devemos analisar as características que o tornam diferente de outros produtos!

Neste sentido:

– Hardware: produto na forma física

– Software: elemento de sistema lógico» Portanto - conceituações diferentes!

Características

1- É desenvolvido e/ou projetado usando técnicas de engenharia, não sendomanufaturado no sentido clássico

– sucesso é medido pela qualidade e não quantidade

2- Não se �desgasta�, mas se deteriora devido as mudanças!

Page 39: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 39

3- a maioria é feita sob medida em vez de ser montada a partir de catálogos decomponentes existentes (visão hardware em engenharia)

- reusabilidade de código ... software

Hardware: Conceito de Falhas

t“desgaste”“mortalidadeinfantil”

%Falhas

Defeitos de Projeto e/ou Manufatura

ProblemasAmbientais:

poeira, oxidação,vibração,

temperaturas, etc.

■ MTBF– Medium Time Between Failures

■ MTTR– Medium Time To Restore

Page 40: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 40

t

% FalhasProdutosFísicos

Software: Conceitos de falhas

Alterações%

Falhas Curva Real

Curva Ideal

t

Conceitos de falhas em Hw/Sw

– Um componente de hw ao se desgastar é substituído por uma �peça de reposição�

– Para Sw não existe �peça de reposição�

» Cada falha é ocasionada por um erro no projeto ou no processo de tradução (para ocódigo que é executado)

» A Manutenção do software é mais complexa do que a do hardware

Page 41: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 41

■ Onde encontrar a falha de Hw? Conceito de perímetro

■ Onde encontrar a falha de Sw? O que testar? O que validar?

Definição de Software (1)

De acordo com A Von Staa (1987):

– De forma usual são componentes de sistemas automatizados– São compostos por código, dados, documentação e procedimentos– São desenvolvidos com o objetivo de instruir máquinas e pessoas - com o sentido da

realização de um conjunto bem definido de tarefas de processamento de dados– São instrumentos para alcançar uma finalidade específica:

transformar dados em resultados confiáveis, úteis e oportunos

Definição de Software (2)

De acordo com A Von Mayhauser (1990):

�Software é a designação dada a programas de computadores e todos os documentosassociados com eles, tais como os manuais de usuário�

Definição de Software (3)

– Quando devemos desenvolver Software?

» ALGORITMO - Aplicável a todo problema onde um conjunto previamente depassos e/ou procedimentos tiver sido definido - o que chamamos de algoritmo!

» Exceto IA - A última definição é válida com exceção de Softwares de InteligênciaArtificial - como por exemplo Sistemas Especialistas ou Sistemas TutoresInteligentes.

Page 42: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 42

Software - Classificação

SOFTWARE BÁSICO coleção de programas escritos para apoiar outrosprogramas. Forte interação com o hardware

– sistema operacional, compiladores, ...

– Windows, Linux, Unix, ...

SOFTWARE DE TEMPO REAL software que monitora, analisa e controlaeventos do mundo real

– sistema de controle de tráfego aéreo, relógio digital, ...

SOFTWARE COMERCIAL sistemas de operações comerciais e tomadas dedecisões administrativas

– folha de pagamentos, contas a pagar e a receber, ...

– ERP�s: SAP, Microsiga, ...

SOFTWARE CIENTÍFICO E DE ENGENHARIA caracterizado por algoritmosde processamento de números

– análise de estruturas, análise de processos químicos, astronomia, análise defadiga de aeronaves, projeto CAD, ...

SOFTWARE EMBUTIDO usado para controlar produtos e sistemas para osmercados industriais e de consumo

– Controle de microondas, IE de automóveis, ABS, Sistema DVDs

Page 43: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 43

Evolução Histórica

Hardware

– Primeiros Protótipos - 1930

» Dispositivos de Estado Sólido

■ Eram tidos como não confiáveis!

» Eletromecânico / Eletrônico valvulado

– Década de 1950 - Computadores de Von Neumann

– Década 1960 - Cérebros eletrônicos (main frames)

– Década 1970 - Invenção do CI - Início da Computação Pessoal

– Década de 1980 - Explosão da Computação Pessoal

– Década de 1990 - Explosão das Redes de Computadores

– Década de 2000 - Otimização!

Page 44: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 44

Software

Software - Road Map

1950 1960 1970 1980 1990 2000

O início•Orientação - batch•Software customizado

A “Segunda” Era•SW Multiusuário•SW Tempo real•BD’s•Desenvolvedores(Software Houses)

A “Terceira” Era•SDs•Hw de baixo custo•Computação Pessoal•Impacto de consumo

A “Quarta” Era• IA - SistemasPesecialistas, RedesNeurais• OO•Computação Paralela(distribuída econcentrada)

Fase 1965 - 75:

Sistemas Multiusuáros e Multiprogramação

Técnicas interativas com usuários

Sistemas de tempo real - chão de fábrica

SGBD�s - 1.a Geração

Software como �Produto� - Software Houses

Cresce número de sistemas - Manutenção difícil!

.......... PPRROOBBLLEEMMAASS!!

Fase 1975 - 90:

SDs

Hw de baixo custo

Redes de Computadores - LAN, MANs e WAN

Popularização do uso de microprocessadores

�produtos inteligentes�

Consumo!

Page 45: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 45

Fase Atual:

IA - Inteligência Artificial

Sistemas Especialistas, Redes Neurais, ...

OO - Orientação a Objetos

Computação Paralela - Concentrada e Distribuída em Rede

Problemas atuais do Software

Encontrados no desenvolvimento de software: (não somente SW que não funcionacorreta ou adequadamente!)

11-- AAss eessttiimmaattiivvaass ddee pprraazzoo ee ccuussttoo nnoorrmmaallmmeennttee iimmpprreecciissaass

– Não é dedicado tempo para coleta de dados do processo de desenvolvimento desoftware

– Estimativas são feitas grosseiramente, com resultados ruins– Os prazos não são cumpridos– Insatisfação do cliente e falta de confiança– Sem indicadores de produtividade

» não é possível avaliar com precisão a eficácia

22-- AA pprroodduuttiivviiddaaddee ddee ppeessssooaass eennvvoollvviiddooss ccoomm ssooffttwwaarree nnããoo tteemm aaccoommppaannhhaaddoo aa ddeemmaannddaappoorr sseeuuss sseerrvviiççooss

– Os projetos de desenvolvimento são tipicamente iniciados apenas com um vagoindício das exigências do cliente

– Comunicação Cliente-Desenvolvedor é fraca

Page 46: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 46

33-- AA qquuaalliiddaaddee ddee ssooffttwwaarree ppoorr vveezzeess éé iinnaaddeeqquuaaddaa

– Não utilização de técnicas de teste - sistemáticas e completas

– Só recentemente - conceitos quantitativos sólidos - Garantia de Qualidade deSW

4- OO ssooffttwwaarree eexxiisstteennttee éé mmuuiittoo ddiiffíícciill ddee mmaanntteerr

– A atividade de manutenção tem custos muito elevados– A facilidade de manutenção não foi enfatizada como um critério importante

– Parece evidente ser necessário:

» Que problemas citados sejam corrigidos

» Necessária abordagem de engenharia de software e uso dissiminado de técnicase ferramentas

Causas dos problemas atuais

PPRRÓÓPPRRIIOO CCAARRÁÁTTEERR DDOO SSOOFFTTWWAARREE ((IINNTTRRIINNSSEECCOO))

FFAALLHHAASS DDAASS PPEESSSSOOAASS RREESSPPOONNSSÁÁVVEEIISS PPEELLOO DDEESSEENNVVOOLLVVIIMMEENNTTOO DDEESSOOFFTTWWAARREE

MMIITTOOSS DDOO SSOOFFTTWWAARREE

Page 47: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 47

PPRRÓÓPPRRIIOO CCAARRÁÁTTEERR DDOO SSOOFFTTWWAARREE ((IINNTTRRIINNSSEECCOO))

O software é um elemento de sistema lógico e não físico. Consequentemente o sucessoé medido pela qualidade de uma única entidade e não pela qualidade de muitasentidades manufaturadas

��OO ssooffttwwaarree nnããoo ssee ddeessggaassttaa,, mmaass ssee ddeetteerriioorraa��

FFAALLHHAASS DDAASS PPEESSSSOOAASS RREESSPPOONNSSÁÁVVEEIISS PPEELLOO DDEESSEENNVVOOLLVVIIMMEENNTTOO DDEESSOOFFTTWWAARREE

Gerentes - sem nenhum conhecimento básico em softwareProfissionais de software - têm recebido pouco treinamento em novas técnicas para o

desenvolvimento de softwareResistência a mudanças!

MMIITTOOSS DDOO SSOOFFTTWWAARREE

– Muitas causas estão localizadas na mitologia que apareceu durante a história dodesenvolvimento do Software

– Acabam por propagar desinformação e confusão– Mitos - podem ser classificados como:

» Administrativos, do Cliente e do Profissional

Page 48: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 48

Mitos de Software - Administrativos

Mito: Já temos um manual repleto de padrões e procedimentos para a construção desoftware. Isso oferecerá ao meu pessoal tudo o que eles precisam saber.

Realidade:� O manual é realmente usado?� Os profissionais sabem de sua existência?� Ele reflete a práticas modernas?� Ele é completo?

Mito: Meu pessoal tem ferramentas de desenvolvimento de software de últimageração; afinal compramos para eles os mais novos computadores.

Realidade:

� É preciso mais do que computadores novos para se fazer um desenvolvimento desoftware de alta qualidade.

� Ferramentas CASE - de engenharia e software auxiliada por computador (Computer-Aided Software Engineering) ás vezes são mais importantes do que o hardware

Mito: Se nós estamos atrasados nos prazos, podemos adicionar mais programadores etirar o atraso (conceito de hordas de mongóis).

Realidade:� O desenvolvimento de software não é um processo mecânico igual à manufatura.� Acrescentar pessoas em um projeto pode torna-lo ainda mais atrasado.� Pessoas podem ser acrescentadas, mas de uma maneira planejada e bem coordenada!

Page 49: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 49

Mitos de Software - Clientes

Mito: Uma declaração geral dos objetivos “en passant” é suficiente para se começara escrever programas - podemos trabalhar os detalhes mais tarde.

Realidade:

� Uma definição inicial ruim é a causa principal de fracassos dos esforços dedesenvolvimento de software.

� É fundamental uma descrição formal e detalhada do domínio da informação, função,desempenho, interfaces, restrições de projeto e critérios de validação.

Mito: Os requisitos de projeto modificam-se continuamente, mas as mudanças podemser facilmente acomodadas, porque o software é flexível.

Realidade:

� Requisitos podem ser modificados, mas o impacto varia de acordo com o tempo que éintroduzido (projeto e custo)

� Um mudança, quando solicitada tardiamente num projeto, pode ser mais do que aordem de magnitude mais dispendiosa da mesma mudança solicitada nas fasesiniciais

Custo

Definição Desenvolvimento Manutenção

1 X

1,5 a 6 X

60 a 100 X

Page 50: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 50

Mitos de Software - Profissionais

Mito: Assim que escrever o programa e o colocar em funcionamento meu trabalhoestará completo.

Realidade:

� Os dados da indústria apontam que entre 50 e 70% de todo esforço gasto numprograma são despendidos depois que ele for entregue pela primeira vez ao cliente

Mito: Enquanto o programa não estiver "funcionando", eu não terei realmentemaneira alguma de avaliar sua qualidade.

Realidade:� Mecanismo (Revisão Técnica Formal) de garantia de qualidade de software deve ser

aplicado desde o começo do projeto� Revisões de software são um “filtro de qualidade” - descobre erros/defeitos

Desenvolvimento de Software - Desafios

Sofisticação do Software

Rápida Evolução do Hardware

Aumento expressivo da demanda

Má administração

Page 51: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 51

SOLUÇÃO

– Reconhecer os problemas e causas

– Desmascarar os mitos do software

São os primeiros passos!

Aplicar Métodos e Técnicas para disciplinar o processo de Software

Engenharia de Software

Engenharia de Software

Definição - F. Bauer,1969

�O estabelecimento e uso de sólidos princípios de engenharia para obter de forma economicaum software que seja confiável e que funcione eficientemente em máquinas reais�

Definição - IEEE

�A aplicação de uma abordagem sistemática, disciplinada e quantificável para odesenvolvimento, operação e manutenção do software e o estudo das abordagens para tal�

Definição - A Mayrhauser, 1990

“Trabalha Métodos, Técnicas e Ferramentas para desenvolver e manter Softwares - com altaqualidade para solução de problemas”

Page 52: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 52

Engenharia de Software - Elementos fundamentais:

MMééttooddooss,, FFeerrrraammeennttaass ee PPrroocceeddiimmeennttooss

Possibilita ao gerente o controle do processo de desenvolvimento

Oferece ao profissional uma base para a construção de software de alta qualidade

FOCO NA QUALIDADE

PROCEDIMENTOS/PROCESSOS

MÉTODOS

FERRAMENTAS

MMÉÉTTOODDOOSS:

Proporcionam os detalhes de “como fazer” para construir o software e envolvemum conjunto de tarefas amplo:

" Planejamento e estimativa de projeto

" Análise de requisitos de software

" Projeto da estrutura de dados

" Algoritmo de processamento

" Codificação

" Teste

" Manutenção

Page 53: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 53

FFEERRRRAAMMEENNTTAASS:

Fornecem suporte automatizado ou semi-automatizado aos métodos.

" Ferramentas - para sustentar cada um dos métodos

" CASE - Quando as ferramentas são integradas é estabelecido um sistema desuporte ao desenvolvimento de software chamado - Computer Aided SoftwareEngineering

PPRROOCCEEDDIIMMEENNTTOOSS:

Estabelecem a ligação entre os Métodos e Ferramentas

" Seqüência - que os métodos serão aplicados" Produtos (deliverables) - exigidos que sejam entregues" Controles - que ajudam assegurar a qualidade e coordenar as alterações" Marcos de referência - possibilitam administrar o progresso do software

EENNGGEENNHHAARRIIAA DDEE SSOOFFTTWWAARREE::

Compreende um conjunto de etapas que envolve: MÉTODOS, FERRAMENTAS e PROCEDIMENTOS.

"" Essas etapas são citadas como CCIICCLLOOSS,, MMOODDEELLOOSS DDEE PPRROOCCEESSSSOO DDEESSOOFFTTWWAARREE

Page 54: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 54

Modelos de Processo

–– MMooddeelloo SSeeqquueenncciiaall ((cciicclloo ddee vviiddaa cclláássssiiccoo))

–– MMooddeelloo ddee PPrroottoottiippaaççããoo

–– MMooddeelloo RRAADD ((RRaappiidd AApppplliiccaattiioonn DDeevveellooppmmeenntt))

–– MMooddeellooss EEvvoolluuttiivvooss

»» MMooddeelloo IInnccrreemmeennttaall ee EEssppiirraall

–– MMooddeelloo ddee DDeesseennvvoollvviimmeennttoo CCoonnccoorrrreennttee

–– MMooddeelloo ddee MMoonnttaaggeemm ddee CCoommppoonneenntteess

–– MMooddeelloo ddee MMééttooddooss FFoorrmmaaiiss

–– TTééccnniiccaass ddee 44..aa ggeerraaççããoo

Qualidade no Processo

– Produto com Qualidade

» Requisitos - Processo de Construção - Produto - Atendimento aos Requisitos

– Software com Qualidade

» Requisitos - Processo de Desenvolvimento de Software - Software - Atendimentoaos Requisitos

Ciclo de Vida de Software

" Critérios para Escolha do Processo:

" Adequação do modelo de processo à aplicação

" Métodos e ferramentas que serão utilizados

" Controles e produtos que precisam ser entregues

" Características dos processos: Produtividade, Custos, Qualidade, etc.

Page 55: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 55

Ciclo de Vida Clássico - Linear

" Modelo mais antigo e o mais usado

" Ciclo da engenharia convencional

" Requer uma abordagem sistemática e seqüencial

" Cada atividade é uma fase em separado.

" A passagem entre fases é formal.

Engenharia deSistemas

Análise deRequisitos

Projeto

CodificaçãoTesteManutenção

EENNGGEENNHHAARRIIAA DDEE SSIISSTTEEMMAASS

" Sw faz parte de um sistema mais amplo

" Coleta de requisitos

" Visão essencial - sempre que software faz interface com outros elementos (Hw,pessoas e BDs)

" Tarefas:– Identificação de necessidades dos usuários, executar a análise econômica e

técnica, estabelecer restrições de prazo e custo, modelo arquitetônico

" PRODUTO: Especificação do Sistema

Page 56: Engenharia de Software e Processamento Digital de Sinais

FAAP - FACULDADE DE ENGENHARIA

Código da Disciplina: 1EO545 - Engenharia de Software e Proc. Digital de Sinais 56

AANNÁÁLLIISSEE DDEE RREEQQUUIISSIITTOOSS DDEE SSOOFFTTWWAARREE

" Primeiro passo técnico do processo de engenharia de software

" Atividade de descoberta, refinamento, modelagem e especificação

" Escopo definido inicialmente é refinado e aperfeiçoado em detalhes

" Métodos: Análise Estruturada, Análise Orientada a Objetos, Métodos Formais

" PRODUTO: Especificação de Requisitos