Você está na página 1de 30

DETI

Metodologias de programao

Sistemas de Operao
Antnio Rui Borges

Sumrio

Tcnicas

gerais de descrio da soluo de um problema Metodologias de programao


Programao procedimental ou imperativa Programao modular Programao orientada por objectos Programao concorrente Programao distribuda

DETI

Departamento de Electrnica, Telecomunicaes e Informtica

Tcnicas gerais de descrio da soluo de um problema


decomposio hierrquica
recurso a uma metalinguagem de descri o, preferencialmente semel!ante " linguagem de programa o #ue $ai ser usada% encapsulamento de informa o atra$&s de
constru o de tipos de dados ade#uados "s caracter'sticas do pro(lema% defini o de no$as operaes no )m(ito da linguagem%

programao sequencial

esta(elecimento estrito das depend*ncias de informa o%

decomposio em estruturas autnomas interactivas

especifica o precisa de um mecanismo de interac o% separa o clara entre interface e implementao%


a(strac o dos dados e sua protec o% $irtuali+a o das operaes de acesso%

DETI

comple idade

programao concorrente ou distribuda

decomposio em entidades autnomas interactivas


especifica o precisa de um modelo de comunica o% defini o e implementa o de mecanismos de sincroni+a o,

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 1
Programao procedimental ou imperativa
o

*nfase & colocado numa implementa o mais ou menos fidedigna da decom/ posi o !ierr#uica da solu o% a comple0idade & controlada pelo uso intensi$o
de fun!es e procedimentos, como meio de descre$er as operaes a diferentes n'$eis de a(strac o% de construtores de tipos de dados, para organi+ar a informa o associada do modo mais ade#uado "s caracter'sticas do pro(lema%
o

espao de $ari$eis & concentrado

DETI

toda a informa o rele$ante " solu o do pro(lema & definida tipicamente ao n'$el do programa principal, ou & glo(al% as $ari$eis locais "s restantes funes e procedi/ mentos representam arma+enamento meramente temporrio 1s e0istem durante a sua in$oca o2% o acesso das diferentes operaes aos dados & conce(ido numa o(edi*ncia estrita ao princ'pio 3daquilo que elas precisam de saber4, usando um modelo de comunica o (aseado na passagem de par)metros%
. Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 2
Programao procedimental ou imperativa
programa principal
definio de variveis procedimento procedimento funo procedimento parte de e ecuo !pp"

DETI
funo main !pp" procedimento funo

definio de variveis globais

funo funo procedimento

organi#ao $ierr%uica do fic$eiro fonte t&pica do Pascal


5

organi#ao $ori#ontal do fic$eiro fonte t&pica da linguagem ' (estrutura em mar de fun(es)

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - )

Programao procedimental ou imperativa


uma

#uest o #ue rapidamente se coloca & o da reutili"ao de cdigo% diferentes operaes, implementadas por funes e procedimentos no )m(ito de uma aplica o espec'fica, s o muitas $e+es 7teis para outras aplicaes% a sua inclus o automtica no cdigo destas no$as aplicaes fa+/se di$idindo o fic!eiro fonte em m7ltiplos fic!eiros, cada um deles o(8ecto de compila o separada e reunidos num fic!eiro e0ecut$el 7nico na fase de lin9agem% assim, o cdigo de uma aplica o particular passa a estar disperso por

DETI

um fic!eiro fonte #ue cont&m o programa principal% m7ltiplos fic!eiros fonte #ue cont*m diferentes funcionalidades, e0pressas por grupos de funes e procedimentos #ue foram pre$iamente desen$ol$idos e #ue $ o ser usados no conte0to da aplica o presente, as c!amadas bibliotecas de apoio%

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - *
Programao procedimental ou imperativa

DETI
programa principal

bibliotecas de apoio

neste

tipo de organi+a o, torna/se necessrio inserir nos fic!eiros fonte parce/ lares, sempre #ue o cdigo a' e0istente referenciar operaes e0ternas, o nome do fic!eiro onde elas est o descritas 1 ficheiro de interface2 para garantir consist*ncia nas compilaes parcelares #ue ter o #ue ter lugar,
Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - +
Programao modular
"

medida #ue a comple0idade da descri o da solu o aumenta, a gest o centrali/ +ada do espao de $ari$eis torna/se progressi$amente mais dif'cil e o *nfase desloca/se da concep o das operaes para uma organi+a o mais fina da informa o% o espao de $ari$eis torna/se distribudo e surge o conceito de mdulo para efectuar a sua gest o
um mdulo &, por defini o, uma estrutura autnoma, implementada num fic!eiro fonte separado, #ue encapsula uma funcionalidade (em definida, incluindo generica/ mente um espao de $ari$eis prprio e um con8unto de operaes #ue as manipulam% o espao de $ari$eis & em princ'pio interno, o #ue significa #ue o acesso a ele & reali+ado apenas pelas operaes especificadas, as c!amadas primitivas de acesso% note/se #ue, #uando o espao prprio de $ari$eis n o tem significado e0terno, um mdulo constitui a#uilo #ue se designou por biblioteca no conte0to do modelo anterior%
Departamento de Electrnica, Telecomunicaes e Informtica

DETI

Metodologias de programao - ,

Programao modular
a

aplica o de uma a(ordagem de carcter funcional " decomposi o da solu o origina a especifica o de um con8unto de estruturas autnomas #ue interactuam e permite lidar com pro(lemas mais comple0os, criando uma di$is o clara de tarefas e promo$endo o tra(al!o cooperati$o
a descri o passa a ser feita pela especifica o precisa do con8unto de estruturas #ue interactuam, sendo esta(elecido para cada uma delas o seu papel na interac o e o modo de acesso " operacionalidade disponi(ili+ada% a separa o clara entre a especifica o de acesso, o interface, e a implementa o respecti$a possi(ilita o seu uso na constru o de outros mdulos, mesmo antes do mdulo original estar conclu'do e $alidado%

DETI

<

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - Programao modular


variveis internas variveis internas

3
variveis internas

programa principal

DETI
m.dulo / 2

. m.dulo 0

variveis internas

diagrama de$e ser complementado pela


descri o da funcionalidade oferecida por cada um dos mdulos% indica o das operaes en$ol$idas em cada interac o,

m.dulo '

=>

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 1
Programao modular
a

aplica o consistente de uma estrat&gia de tipo dividir para reinar, su(8acente a #ual#uer metodologia de descri o e, particularmente, #uando se fa+ uma decom/ posi o funcional da solu o, potencia ainda o recurso a prticas de desen$ol$i/ mento de soft?are robusto, corpori+adas por
desenho para o teste@ sendo o mdulo uma estrutura autnoma, a sua funcionalidade pode e de$e ser $alidada de acordo com as especificaes pre$iamente esta(elecidas antes da sua incorpora o na aplica o de #ue & parte% programao por contrato@ o programador respons$el pela implementa o do mdulo pode esta(elecer mecanismos de garantia em runtime #ue s & disponi(ili+ada a opera/ cionalidade descrita
todas as primiti$as de acesso de$ol$em uma informa o de status de opera o@ operao e ecutada com sucesso ou ocorr#ncia de erro, neste caso com indica o do erro ocorrido% a consist*ncia da estrutura de dados interna de$e ser garantida antes da reali+a o da primeira opera o 1pr$invariante2% a#uando da reali+a o de uma opera o, a gama de $alores de cada $ari$el da lista de par)metros de entrada de$e ser $alidada antes da sua e0ecu o% a consist*ncia da estrutura de dados interna de$e ser garantida aps a reali+a o da opera o actual 1ps$invariante2,

DETI

==

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 2

Programao orientada por ob3ectos


a

implementa o modular de uma decomposi o funcional pode tornar/se (astante infle0'$el em termos de reutili"ao de cdigo #uando se $erifica #ue uma no$a aplica o e0ige relati$amente a um mdulo pre$iamente constru'do
a sua instancia o m7ltipla% a introdu o de pe#uenas alteraes%

atitude tomada pelo programador neste conte0to & ine$ita$elmente a ade#ua o dos mdulos pr&/e0istentes " situa o presente, condu+indo a uma pul$eri+a o progressi$a do seu reportrio de funcionalidades, com o conse#uente aumento de comple0idade e perda de efici*ncia na gest o do soft?are de apoio ao desen$ol/ $imento de aplicaes futuras% uma solu o poss'$el para este pro(lema consiste no recurso a uma metodologia de aumento da a(strac o%

DETI

=2

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 14

Programao orientada por ob3ectos


a

primeira situa o apontada pode ser resol$ida por uma e tenso ao conceito de tipo de dados% com efeito, se for poss'$el associar a cada instancia o do mdulo uma $ari$el diferente, a am(iguidade desaparece e a instancia o m7ltipla torna/se tri$ial% neste sentido, a no o de tipo de dados como um con8unto de regras #ue permi/ tem arma+enar em memria $alores com determinadas caracter'sticas, & agora estendida de modo a contemplar n o s o arma+enamento de grupos de $alores, mas tam(&m a incluir as operaes #ue podem ser reali+adas so(re eles% em(ora impropriamente, estes tipos de dados s o con!ecidos pelo nome de tipos de dados abstractos% tipos de refer#ncia, ou tipos de dados definidos pelo utili$ "ador s o designaes mais correctas #ue l!es s o por $e+es tam(&m atri(u'das%

DETI

=3

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 11
Programao orientada por ob3ectos
as

linguagens de programa o #ue os suportam, incluem um construtor, cu8o nome tradicional & class, #ue permite no fundo associar a defini o de uma estrutura de tipo mdulo a um identificador% a partir da', torna/se poss'$el declarar $ari$eis desse tipo% um pormenor importante & #ue a declara o simples de $ari$eis deste tipo n o reser$a espao em memria para o seu arma+enamento, reser$a apenas espao para arma"enamento de um ponteiro% a reser$a de espao propriamente dita & ditada pela sua instanciao em runtime% esta opera o consiste na reser$a de espao na +ona de defini o din)mica e conse/ #uente iniciali+a o da estrutura de dados interna% de igual modo, #uando a $ari$el 8 n o & necessria o espao de arma+enamento em memria din)mica de$e ser li(ertado% os $alores instanciados s o designados de objectos, donde ad$&m o nome do para/ digma%

DETI

=.

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 12
Programao orientada por ob3ectos
na

terminologia orientada por objectos, designa/se de campos as $ari$eis da estrutura de dados interna de um tipo de refer*ncia, e de mtodos as primiti$as de acesso% di+/se ent o #ue um objecto & determinado pelo seu estado 1con8unto dos $alores actuais dos diferentes campos2 e pelo seu comportamento 1le#ue de m&todos de acesso pro$idenciados2% as linguagens de programa o #ue suportam este paradigma, permitem normalmente a abstraco de dados na especifica o da estrutura de dados interna, originando tipos de dados gen&ricos com uma gama de aplica o mais alargada
em $e+ de se criar um tipo de dados #ue represente uma memria de tipo stac9 para arma+enamento de caracteres, por e0emplo, pode criar/se um tipo de dados #ue represente uma memria de tipo stac9 #ue arma+ene #ual#uer tipo de $alores%
al&m

DETI

disso, pode ainda garantir/se, atra$&s da sua parametri"ao, #ue s um tipo particular de $alores & arma+enado em runtime
usando o mesmo e0emplo, cria/se um tipo de dados #ue represente uma memria de tipo stac9 para arma+enamento de $alores de um tipo gen&rico T, n o especificado, e adia/se para a declara o e instancia o de $ari$eis desse tipo a indica o do #ue o tipo T realmente significa%

=5

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 1)
Programao orientada por ob3ectos
tipo de refer7ncia
ponteiro

c.digo

objecto

DETI

#ona de definio esttica #ona de definio din5mica

declarao@ reser$a de espao na "ona de definio esttica ou no stac% para defini o da $ari$el% iniciali"ao@ atri(ui o " $ari$el do literal nulo% instanciao@ reser$a de espao na "ona de definio din&mica para cria o de um objecto 1feita em runtime2%
=6

stac6

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 1*
Programao orientada por ob3ectos
um

programa organi+ado segundo esta metodologia & formado por m7ltiplos fic!eiros fonte, cada um descre$endo um tipo de dados particular% tal como para a programa o modular, a descri o da interac o & feita por um diagrama #ue inclui agora os tipos de dados n o instanciados e os tipos de dados instanciados, os primeiros nomeados pelos identificadores de tipo e os segundos pelos identificadores das respecti$as $ari$eis% o modo como eles interagem & especificado atra$&s de grafos orientados #ue e0primem o tipo de acesso materi/ ali+ado em cada caso% o diagrama de$e ser complementado com uma descri o da funcionalidade disponi(ili+ada por cada tipo e pela listagem das operaes en$ol$idas% genericamente, os tipos de dados no instanciados correspondem ao programa principal e a grupos de operaes gen&ricas en#uadradas em bibliotecas% todos os tipos restantes s o em princ'pio instanciados%

DETI

=:

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 1+
Programao orientada por ob3ectos

(=

c=

DETI
c2 c3
A A b1 A c1 c2 c3 D e1

e=

tipo #ue cont&m o programa principal instancia o do tipo B instanciao do tipo C instanciao do tipo C instanciao do tipo C tipo que contm mtodos gerais instanciao do tipo E instanciao, acesso a campo ou invocao de mtodo

organi#ao em mar de tipos de dados no-instanciados e instanciados !classes e ob3ectos"


=; Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 1,
Programao orientada por ob3ectos
a

segunda situa o apontada pode ser resol$ida pela aplica o do conceito de reutili"ao " constru o de tipos dados% com efeito, se for poss'$el definir no$os tipos de dados a partir de tipos de dados pr&/e0istentes, pode conseguir/se a sua diferencia o para os ade#uar a no$as situaes com um m'nimo de esforo e de dispers o% este mecanismo designa/se de herana e possi(ilita estender numa perspecti$a !ierr#uica ao no$o tipo de dados, tipo$filho ou subtipo, as propriedades do tipo em #ue a defini o se (aseia, tipo$pai ou supertipo% concretamente, isto significa #ue

DETI

os campos protegidos da estrutura de dados interna os m&todos p7(licos

do tipo (ase 1tipo/pai2 s o directamente acess'$eis e, no 7ltimo caso, modifi/ c$eis no tipo/fil!o%

=<

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 1Programao orientada por ob3ectos


tipo-pai

processo de cria o do no$o tipo de dados, designado de mecanismo de derivao, permite


introdu+ir no$os campos na estrutura de dados interna% introdu+ir no$os m&todos p7(licos% proceder ao overriding de m&todos@ redefini o de m&todos p7(licos Banteriormente implementadosC do tipo (ase% proceder " implementao de m&todos virtuais@ defini o de m&todos p7(licos cu8o interface & especificado no tipo (ase%

DETI
tipo-fil$o

2>

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 11
Programao orientada por ob3ectos

DETI
supertipo subtipo em

termos de compati(ilidade, o su(tipo & compatvel com o supertipo de #ue deri$a, mas o in$erso 8 n o & sempre $erdadeiro%
Departamento de Electrnica, Telecomunicaes e Informtica

2=

Metodologias de programao - 12
Programao orientada por ob3ectos
a

rela o de compati(ilidade pode ser usada para se esta(elecer um princ'pio muito poderoso do paradigma orientado por o(8ectos, o polimorfismo, #ue con/ siste na possi(ilidade de uma mesma $ari$el referenciar o(8ectos de tipos diferentes, deri$ados do mesmo tipo (ase% se8am T um tipo de dados de refer*ncia, D= e D2 dois tipos de dados distintos deri$ados do tipo T e t, s= e s2 $ari$eis de cada um destes tipos em #ue as duas 7ltimas foram instanciadas% considere/se agora #ue se atri(ui #ual#uer uma destas $ari$eis " $ari$el t 1opera o sempre poss'$el por#ue s= e s2 s o com/ pat'$eis com t, em(ora n o se8am compat'$eis entre si2 e se in$oca so(re ela um m&todo definido em T% a implementa o do m&todo ade#uada ao o(8ecto #ue est a ser referenciado & automaticamente escol!ida e & reali+ada

DETI

na fase de compila o, associao esttica, #uando o m&todo em #uest o n o foi modificado na defini o de #ual#uer dos tipos deri$ados em 8ogo% em runtime, associao din&mica, se tal ti$er acontecido,
22 Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 24
Programao orientada por ob3ectos
T t; I i; S1 s1 = new S1 (...); S2 s2 = new S2 (...); if (condio) t = s1; else t = s2; ... invocao do mtodo t.m (...); m sobre a varivel t ... tipos de dados %ue implementam I Tipo de dados S2 if (condio) i = s1; else i = s2; ... invocao do mtodo i.m (...); m sobre a varivel i

Tipo de dados S1 tipos de dados derivados de T Tipo de dados S2

Tipo de dados S1 'nterface I

DETI
Tipo de dados T

23

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 21
Programao concorrente
a

decomposi o funcional de solues de pro(lemas comple0os condu+ rapida/ mente " necessidade de se conce(er um le#ue de acti$idades #ue se $ o desenrolar de uma maneira mais ou menos autnoma% a manuten o de um fio de e0ecu o 7nico impe #ue se integre no cdigo um scheduler mais ou menos ela(orado #ue permita comutar entre a reali+a o das diferentes acti$idades% esta a(ordagem, al&m de ser comple0a e e0igente, & tam(&m completamente in7til, 8 #ue os am(ientes de e0ecu o actuais promo$em a multiprograma o e torna/se, portanto, natural conce(er a solu o como um con8unto de processos #ue cooperam entre si% adicionalmente, com a populari+a o dos processadores multicore, os sistemas de opera o t*m $indo a implementar a gest o de threads ao n'$el do %ernel, o #ue origina um acr&scimo de efici*ncia na e0ecu o de aplicaes concorrentes%

DETI

2.

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 22
Programao concorrente
s

o comuns duas a(ordagens na organi+a o da solu o


abordagem event$driven@ os processos #ue implementam as di$ersas acti$idades est o (lo#ueados aguardando a ocorr*ncia de um acontecimento #ue despoleta a sua e0ecu o% trata/se de processos mais ou menos independentes em #ue geralmente um e um s est acti$o de cada $e+% a comunica o & efectuada atra$&s do acesso a uma estrutura de dados glo(al #ue & mantida centralmente% os gestores de espaos de visuali"ao, #ue interagem com o utili+ador usando o rato, constituem tal$e+ o e0emplo mais di$ulgado de aplica o desta a(ordagem% abordagem interpar@ os diferentes processos #ue constituem a aplica o cooperam entre si de um modo mais ou menos espec'fico% cada um deles & conce(ido como e0ecutando um ciclo de $ida composto por operaes independentes e operaes de interac o, estas 7ltimas comunicam ou recol!em informa o, (lo#ueiam o processo at& #ue determinadas condies est o reunidas, ou acordam outros processos #uando determinadas condies aca(aram de ser reunidas%

DETI

#ual#uer

#ue se8a, por&m, a a(ordagem seguida, um elemento sempre presente & #ue, ao contrrio do #ue se passa na programa o se#uencial, n o ! garantia de reproduti(ilidade de operaes e, portanto, o debugging & muito mais sens'$el e muito menos efica+%
Departamento de Electrnica, Telecomunicaes e Informtica

25

Metodologias de programao - 2)
Programao concorrente
e0istem

dois modelos (ase para partil!a e comunica o de informa o

modelo de variveis partilhadas@ constitui o modelo !a(itual em am(ientes multi$ threading onde os processos inter$enientes escre$em e l*em $alores arma+enados numa estrutura de dados definida centralmente% para se e$itar condies de corrida #ue condu+am " inconsist*ncia da informa o arma+enada, o cdigo de acesso " regi o partil!ada 1regio crtica2 tem #ue ser e0ecutado em regime de e0clus o m7tua% ! ainda a necessidade de se pre$er dispositi$os #ue possi(ilitem a sincroni+a o% modelo de passagem de mensagens@ constitui um modelo de aplica o uni$ersal 8 #ue n o e0ige a partil!a de espao de endereamento% a comunica o & efectuada por troca de mensagens entre pares de processos 1 unicast2, entre um processo e todos os outros 1broadcast2, ou entre um processo e todos os outros #ue pertencem ao mesmo grupo 1multicast2% assume/se a e0ist*ncia de uma infra/estrutura de canais de comunica o #ue interliga todos os processos inter$enientes e #ue & gerida e0ternamente " aplica o, garantindo o acesso com e0clus o m7tua ao1s2 canal1is2 e disponi(ili+ando mecanismos de sincroni+a o%

DETI

26

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 2*

Programao concorrente
um

programa organi+ado segundo esta metodologia conforma/se aos princ'pios inerentes a uma decomposi o modular, ou orientada por o(8ectos, para descri o da interac o e &, por isso, tam(&m constitu'do por m7ltiplos fic!eiros fonte% o #ue ! de no$o a#ui & #ue, e0istindo mais do #ue um fio de e0ecu o, torna/se necessrio distinguir claramente na descri o da interac o entre estruturas activas e estruturas passivas% as estruturas 1ou entidades2 activas correspondem aos di$ersos processos inter$e/ nientes, en#uanto as entidades passi$as correspondem " e0plicita o de diferentes tipos de funcionalidade,

DETI

2:

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 2+
Programao concorrente

(=

c=

DETI
c2 c3 e=

A A tipo #ue cont&m o programa principal 1entidade acti$a2 b1 A instancia o do tipo B c1 instanciao do tipo C 1entidade acti$a2 c2 instanciao do tipo C 1entidade acti$a2 c3 instanciao do tipo C 1entidade acti$a2 D tipo que contm mtodos gerais e1 instanciao do tipo E instanciao, acesso a campo ou invocao de mtodo

organi#ao em mar de tipos de dados no-instanciados e instanciados e activos e passivos


2; Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 2,

Programao distribu&da
!

duas ra+es principais #ue le$am " passagem da programao concorrente para a programao distribuda
paraleli"ao@ tirar partido dos m7ltiplos processadores e outros componentes hard(are e0istentes num sistema computacional paralelo para se o(ter uma e0ecu o mais rpida e eficiente da aplica o% disponibili"ao de um servio@ fornecer de forma consistente, autnoma e segura uma funcionalidade (em definida a um grupo alargado de aplicaes%

DETI

mudana de metodologia supe, portanto, #ue se efectue de algum modo um mapeamento so(re sistemas computacionais distintos dos diferentes processos e centros de funcionalidade em #ue uma dada solu o concorrente est di$idida%

2<

Departamento de Electrnica, Telecomunicaes e Informtica

Metodologias de programao - 2-

Programao distribu&da
o

mapeamento, por&m, n o pode ser feito de um modo automtico, e0istem di$ersos aspectos en$ol$idos no conceito de plataforma de processamento paralelo e #ue t*m #ue ser a$aliados cuidadosamente para #ue a migra o se8a poss'$el% alguns deles s o@
poss'$eis !eterogeneidades entre os diferentes ns da plataforma de processamento% ocorr*ncia de fal!as em um ou mais ns da plataforma de processamento ou na infra/ estrutura de comunicaes% ine0ist*ncia de um relgio glo(al #ue permita efectuar a ordena o cronolgica dos acontecimentos,

DETI

3>

Departamento de Electrnica, Telecomunicaes e Informtica