SlideShare una empresa de Scribd logo
1 de 16
CAPITULO11 – Projetode Arquitetura
O projetode arquiteturaé primeiroestágionoprocessode projetos.Dizolivroque ele
idêntificasubsistemase estabelece umframeworkparacontrolaracomunicaçãodos
subsistemas. Subsistemassãosistemasgrandes decompostos e que fornece algumconjunto
de serviçosrelacionados oque representaumaligaçãocriticaentre processosde engenharia
de projetoe requisitos.
Três vantagensde projetare documentarexplicitamente umaarquiteturade software:
Comunicação destakeholders:é uma apresentaçãoemaltonível dosistemaque enfocaa
discussãoentre diferentesstakeholders.
Analisede sistemas:tem um profundoefeitosobre osistema,mostrase osistemapara
atenderaosrequisitoscríticosbem como: confiabilidade,desempenhoe facilidade de
manutenção.
Reuso em larga escala:apoiao reusoem largaescalade sistemasque possuemarquiteturas
de sistemasfamiliares.
A arquiteturade software serve paranegociarrequisitosde sistemae estruturardiscussões
com os clientes,desenvolvedorese gerentes.Éumaferramentaessencialparagerenciamento
de complexidade,ocultandodetalhese focandoasabstraçõesprincipaisdosistema.Oestiloe
estruturada aplicaçãodependemdosrequisitosnãofuncionaisdosistema,porexemplo:
Se o desempenhoforumrequisitocríticoa aplicaçãodeve localizaroperaçõescríticasdentro
de subsistemase usarcomponentesde altagranularidadeemdetrimentodosde baixa
granularidade parareduziracomunicaçãoentre eles.
Se a facilidade de manutençãoforumrequisitocrítico,aarquiteturade sistemasdeve ser
projetadausandocomponentesde baixagranularidade e autocontidosque possamser
prontamente mudados.
Parou aqui.......Háconflitospotenciaisentre algumasdessasarquiteturas,porexemplose o
desempenhoque necessitade altagranularidadee afacilidade de manutençãoque necessita
de baixagranularidade foremambosrequisitoscríticosteráque ser encontradaalguma
soluçãoeficaz.
Um projetode subsistemasé decomposiçãoabstratade umsistemade componentesemalta
granularidade.Osdiagramasde blocossãousadospara representarumprojetode
subsistemas.
Essesdiagramasde blocossão bonspara comunicaçãoentre stakeholderse parao
planejamentodoprojetopoisnãoestãoabarrotadosde detalhes,jáparaa arquiteturanãosão
tão bons,poisnão mostramrelacionamentoentre oscomponentesdosistema.
O projetode arquiteturatentaestabelecerumaorganizaçãode sistemasque satisfaçãoos
requisitosfuncionaise osnão funcionaisdosistema.Durante oprocessode projetode
arquiteturaosarquitetosde sistemasdevemresponderaalgumasperguntas:
Existe umaarquiteturagenéricade aplicaçãoque possafuncionarcomoummodeloparao
sistemaque estásendoprojetado?
Comoo sistemaserádistribuídoaolongode váriosprocessadores?
Qual ou quaisestilosde arquiteturasãoapropriadosparaosistema?
Qual será a abordagemfundamental usadaparaestruturarosistema?
Comoas unidadesestruturaisde umsistemaserãodecompostasemmódulos?
Qual estratégiaseráutilizadaparacontrolara operaçãodas unidadesdosistema?
Comoo projetode arquiteturaseráavaliado?
Comoa arquiteturadosistemadeve serdocumentada?
Ao Projetarumaarquiteturade sistemas,você precisadecidiroque seusistemae classesmais
amplasde aplicaçãotemem comum,e decidirquantoconhecimentodessasarquiteturasde
aplicaçãovocê pode reusar.A arquiteturade umsistemade software pode serbaseadaemum
modeloouestilode arquiteturaespecifico,Emalguns casosa arquiteturageral de um sistema
pode seruma arquiteturacomposta.
Os modelosde arquiteturaque podemserdesenvolvidospodemincluir:
Um modeloestáticode estruturaque mostraossubsistemasoucomponentesdesenvolvidos
como unidadesseparadas.
Um modelodinâmicode processoque mostracomoo sistemaestaorganizadoemprocessos
emtempode execução.
A organizaçãode um sistemareflete aestratégiabásicausadapara estruturá-lo.Você precisa
tomar decisõessobre omodelogeral organizacional de umsistemacomantecedênciano
processode projetode arquitetura.A organizaçãopode refletirdiretamente naestrutura
subsistema.
possuemtrêsestilosde organizacionaisamplamenteusados:
Modelode repositório
Os subsistemasque constituemumsistemadevemtrocarinformaçõesde mofoque possam
trabalharjuntoseficientemente.
Esse modeloé,portanto,adequadoparaaplicaçõesemque osdadossão geradospor um
subsistemae usadosporoutro.
O repositórioé passivoe ocontrole é de responsabilidade dossubsistemasque ousam.
3 ModeloCliente –Servidor
O modelode arquiteturacliente –servidoré ummodeloemque osistemaé organizadocomo
um conjuntode serviçose servidorese clientesassociadosque acessame usamosserviços.Os
clientestalvezprecisemsaberosnomesdosservidoresdisponíveise osserviçosque eles
fornecem.Noentantoosservidoresnãoprecisamsaberaidentidade doclienteouquantos
são. Sãoacessadosos serviçospormeiode chamadasremotasde procedimentousandoum
protocolorequest–eply,oclientefazumpedidoaum servidore esperaate receberuma
resposta.
A vantagemde ummodelocliente servidoré que ele é umaarquiteturadistribuída.Ouso
efetivode sistemasemrede pode serfeitocommuitosprocessadoresdistribuídos.Éfácil
adicionarumnovoservidore integrá-loaorestante dosistema
4 O ModeloemCamadas
O modeloemcamadasorganizaum sistemaemcamadas,cada uma das quaisfornecendoum
conjuntode serviços.
A abordagememcamadas apoiao desenvolvimentoincremental de sistemas.A medidaque
uma camada é desenvolvidaalgunsserviçosfornecidosporessacamadapodemser
disponibilizadosparaosusuários.Essa arquiteturatambémé modificávele portável.Desde
que sua interface permaneçainalterada,umacamadapoderásersubstituídaporoutra
equivalente.Umadesvantagemdaabordagememcamadasé que a estruturaçãode sistemas
dessamaneirapode serdifícil.Ascamadasmaisinternaspodemfornecerrecursosbásicos,
como gerenciamentode arquivos,necessáriosemtodososníveis.
O desempenhotambémpode serumproblemadevidoaosváriosníveisde interpretaçãode
comandosalgumasvezesexigidos.
5 Estilosde decomposiçãomodular
Depoisque a organizaçãogeral dosistemafoi escolhida,precisa-se tomarumadecisãosobre a
abordagema serusada na decomposiçãode subsistemasemmódulos.
Um moduloé normalmente umcomponentede sistemaque fornece umoumaisserviçospara
outrosmódulos.Ele fazusode serviçosfornecidosporoutrosmódulos.existemduas
estratégiasprincipaisque você pode usaraodecomporum subsistemaemmódulos.
Decomposiçãoorientadaaobjetose pipeliningorientadoafunções.
Você deve evitartomardecisõesprematurassobre asimultaneidadede umsistema.
6 DECOMPOSIÇÃOORIENTADA A OBJETOS.
Um modelode arquiteturaorientadoaobjetosestruturaosistemaemumconjuntode objetos
não firmemente acopladoscominterfacesbemdefinidas.Osobjetoschamamserviços
oferecidosporoutrosobjetos.
Uma decomposiçãoorientadaaobjetosesta relacionadaaclassesde objetos,seusatributose
suas operações.Quandoimplementados,osobjetossãocriadosapartir dessasclassese algum
modelode controle é usadopara coordenaras operaçõesde objetos.A vantagemé que
implementaçãode objetospode sermodificadasemafetaroutrosobjetos.
A desvantagemé que parausar serviçososobjetosdevemfazerreferenciaexplicitaaonome e
a interface de outrosobjetos.
7 Pipeliningorientadoafunções
No pipeliningorientadoafunçõesoumodelode fluxode dados,astransformaçõesprocessam
suas entradase produzemsaídas.Os dadosfluemde umapara outra funçãoe são
transformadosaomoverem – se sequencialmente.Cadaetapaé implementadacomouma
transformação.Osdadosde entradafluematravésdessastransaçõesate seremconvertidos
emdados se saída.
As vantagensdessaarquiteturasão:
Apoiaro reusode transformações.
Ele é intuitiva,muitaspessoaspensamemseutrabalhoemtermosde processamentode
entradae saída.
A evoluçãodosistemapelaadiçãode novastransformaçõesé geralmente direta.
Ela é simplesde serimplementadatantoquantoumsistemaconcorrente ousequencial.
O principal problemaé que ele necessitaserumformatocomumpara transferirdadosque
possaser reconhecidoportodasas transformações.
Sistemasinterativossãodifíceisde escreverusandoessemodeloporcausada necessidade de
uma sequenciade dadosserprocessada.
8 Modelosde controle
Os modelosde controle temcomoobjetivocontrolarsubsistemasde maneiraque seus
serviçossejamentreguesnolugarcertoe notempocerto.
Modelosde controle sãousadosemconjuntocom estilosde estrutura.Todososestilosde
estruturaque foi explicadopodemserimplementadospormeiode controle centralizadoou
baseadoemeventos.
9 Controle centralizado.
Em modelode controle centralizado,umsubsistemaé designadocomocontroladode sistema
e tema responsabilidadepelogerenciamentodaexecuçãode outrossubsistemas.Modelosde
controle centralizadosDividem –se em duas classes,dependendose foremexecutados
sequencialmente ouparalelamente.
O modelochamado – retorno.O controle começanotopo da hierarquiade sub – rotinae ,
atravésde chamadas de sub-rotinas,passaparaos níveismaisbaixosnaarvore,são aplicados
emmodelossequenciais.
O modelogerenciados.Aplicadosemmodelosconcorrentes.Umsistemaconcorrenteé
projetadocomoum gerenciadorde sistemae controlao inicio,aparada e a coordenaçãode
outrosprocessosdosistema.
Sistemasorientadosaeventos.
As decisõesdosmodelosorientadosaeventossãoregidospeloseventosgerados
externamente.Otermoeventopode serumsinal que pode assumirumagama de valoresou
uma entradade comandobaseadosemum menu.
Possuemdoismodelosde controle orientadosa eventos.
Modelosde broadcast.Nesse modelo,umeventoé transmitidoatodosos subsistemas.
Qualquersubsistemaprogramadoparamanipularoeventopode responderaele.A vantagem
dessaabordagemé que a evoluçãoé relativamente simples,umnovosubsistemaparatratar
classesespecificasde eventospode serintegradopormeiodoregistrode seuseventosno
tratador de eventos.A desvantagemé que os subsistemas nãosabemse ouquandoos eventos
serãomanipulados.
Modelosorientadosainterrupções.Sãousadosemsistemasde temporeal comorequisitos
rigorososde tempo,nosquaisas interrupçõesexternassãodetectadasporumtratorde
interrupções.Avantagemdessaabordagemé que elapermite respostasmuitorápidasaos
eventosaseremimplementados.Suadesvantagemé acomplexidade daprogramaçãoe a
dificuldadede validação.
10 Arquiteturade referencia
As arquiteturasde referencianãosãogeralmente consideradasumroteirode
implementações.Emvezdisso,suaprincipal funçãoé serummeiode discussãode
arquiteturasde domínioespecificoe de comparaçãode sistemasdiferentesemumdomínio.
Um modelode referenciafornece umvocabulárioparacomparação.Ele atua comouma base,
emrelaçãoa qual os sistemaspodemseravaliados.
Uma propostade modelo de referenciaé ummodeloparaambientesCASEque identificacinco
conjuntosde serviçosque umambiente CASEdeve fornecer.Ele deve tambémfornecer
recursosde plugin para ferramentasCASEindividuaisque usamessesserviços.Oscincos
níveisde referenciassão:
Serviçosde repositóriode dados.Estesserviçosfornecemrecursosparaoarmazenamentoe o
gerenciamentode itensde dadose seusrelacionamentos.
Serviçosde integraçãode dados.Estesserviçosfornecemrecursosparaogerenciamentode
grupos ou para definiçãode relacionamentosentre eles.
Serviçosde gerenciamentode tarefas,estesserviçosfornecemrecursosparaa definiçãoe
aprovação de modelosde processo.
Serviçosde mensagem.Comunicaferramenta –Ferramenta,ambiente-ferramentae ambiente
– ambiente.
Serviçosde interface comousuário.Este serviçofornecemrecursosparao desenvolvimento
de interface como usuário.
A finalidadedessaarquiteturade referenciaé serum meiode classificaçãoe comparaçãode
ferramentase ambientesCASEintegrados.
CAPITULO12 – Arquiteturade sistemasdistribuídos
Um sistemadistribuídoé aquele emque asinformaçõesemfase de processamentosão
distribuídasavárioscomputadores.
Vantagensde usaruma abordagemdistribuídaparadesenvolvimentode sistemas.
1. Compartilhamentode recursos –Um sistemadistribuídopermite ocompartilhamentode
recursosde hardware e software,comodiscos,impressoras,arquivose computadoresque
estãoassociadosaosdiferentescomputadoresde umarede.
2. Abertura- permitemaequipamentose software de diferentesfabricantesserem
combinados,poissãoprojetadoscombase emprotocolospadrões.
3. Concorrência– váriosprocessospodemoperarao mesmotempoemdiferentes
computadores,e podem(maisnãoprecisam) conversar unscomosoutros.
4. Escalabilidade –sãoescalonáveisamaneiraque acapacidade de um sistemapode ser
ampliadapelaadiçãode novosrecursospara atenderasdemandasdossistemas.
5. Tolerânciaa defeitos –peladisponibilidade de várioscomputadorese opotencial de
duplicaçãode informaçãosignificaque ossistemasdistribuídospossamsertolerantesa
algumasfalhasde hardware e software.
Essessistemasde distribuiçãocomparadosaossistemasque operamcomumprocessadorou
com um clusterde processadorespodemteralgumasdesvantagenscomo:
1. Complexidade - ossistemasdistribuídossãomaiscomplexosque ossistemascentralizados.
2. Proteção – o sistemapode seracessadode várioscomputadoresdiferentes,e otrafegona
rede pode estarsujeitaainterceptações.
3. Gerenciamento –os computadoresdosistemapodemserde tiposdiferentese podem
operarem versõesdiferentesde sistemasoperacionais.Defeitosemumamaquinapodemse
propagar a outra maquinascomconsequênciasinesperadas.
4. Imprevisibilidade –Comotodosos usuáriosdawebsabem, os sistemasdistribuídossão
imprevisíveisemsuasrespostas.A respostadepende dacarga total do sistema,sua
organizaçãoe a carga da rede.Comotudoissopode mudaremum curto períodode tempo,o
tempode respostapara uma solicitaçãodousuáriopode variardrasticamente de uma
solicitaçãoparaoutra.
Possuemdoistiposdiferentesde arquiteturasde sistemasdistribuídos:
1. Arquiteturacliente-servidor.Éo sistemacomoum conjuntode serviçosfornecidos aos
clientesque fazemusodessesserviços.Osservidorese clientessãotratadosde maneiras
diferentesnessessistemas.
2. Arquiteturasde objetosdistribuídos.Podemospensarnosistemacomoumconjuntode
objetosque interageme cujaalocalizaçãoé irrelevante.Nãohádistinçãoentre clientee
servidor.
Tanto a arquiteturacliente-servidore aarquiteturade objetosdistribuídossãoamplamente
usadasno setor,maisa aplicaçãoocorre geralmente dentrode umaúnicaorganização.A
organizaçãoé,portanto,intra-organizacional.
1 Arquiteturade multiprocessadores
O multiprocessadorSãoprocessosque podemserexecutadosseparados.Esse modelotomam
decisõesusandoessasinformaçõese enviamsinaisaosatuadores,que modificamoambiente
do sistema.O usode váriosprocessadoresaprimoraodesempenhoe acapacidade de
recuperaçãodo sistema
2 Arquiteturacliente-servidor
Em um arquiteturacliente-servidor,umaaplicaçãoé modeladacomoumconjuntode clientes
que usam essesserviços.Osclientesprecisamestarinformadossobre osserviçosdisponíveis,
mas geralmente nãosabemdaexistênciade outrosclientes.Váriosprocessosde serviços
podemserexecutadosemumúnicoprocessadorde serviçoportantonãohá mapeamento
entre processose processadores de umsistema
O projetode sistemascliente-servidordeve refletiraestruturalógicada aplicaçãoque esta
sendodesenvolvida.Umexemploé umaaplicaçãoqesta divididaem3camadas: a camada de
apresentação,que se encarregadaapresentaçãode informaçõesparaousuárioe toda a
interaçãocom o usuário.A camada de processosde aplicaçõesse encarregada
implementaçãodalógicadaaplicaçãoe a camada de gerenciamentode dadosse encarregade
todasas operaçõesde bancode dados.
A arquiteturacliente-servidormaissimplesdenomina-searquiteturacliente-servidorde duas
camadas,podemter duasformas:
Modelocliente-magro.Oprocessamentoe ogerenciamentode dadossãorealizadosno
servidor.Ocliente apenasexecutaosoftware de apresentação.
Modelocliente-gordo.Oservidoré responsável somente pelogerenciamentode dados.O
software docliente implementaalógicada aplicaçãoe as interaçõescomo usuáriodo
sistema.
Uma desvantagemdomodelocliente-magroé que ele impõe umagrande carga de
processamentosobre oservidore arede.
O modelocliente-gordofazusodessacapacidade de processamentodisponívele distribui o
processamentológicode aplicaçãoe aapresentaçãodocliente.Oservidoré essencialmente
um servidorde transaçõesque gerenciatodasastransaçõesdobanco de dados.
Enquantoo modelocliente-gordodistribuioprocessamentomaiseficientementedoque um
modelocliente-magro,ogerenciamentodosistemaé maiscomplexo.A funcionalidadeda
aplicaçãoé divididaentre várioscomputadores.Quandoosoftware precisaseralterado,isso
envolve reinstalaçãoemcadacomputadorcliente,oque pode resultaremumcusto
significativose houvercentenasde clientesnosistema.
O Problemacoma abordagemcliente-servidorde duascamadasé que as trêscamadas lógicas,
devemsermapeadassobre doissistemasde computador –o cliente e oservidor.Pode haver
problemasde escalabilidade e desempenho,se omodelocliente-magrofor
escolhido,ouproblemasde gerenciamentode sistemas,se omodelocliente-gordoforusado.
Para evitaressesproblemasumaalternativaé usaro modelocliente-servidorde trêscamadas.
Em algunscasos é melhorestenderomodelocliente-servidorde trêscamadaspara uma
variante comvarias camadas,na qual servidoresadicionais sãoincorporadosaosistema.
3 Arquiteturasde objetosdistribuídos
Nesse modeloosobjetospodemserdistribuídosentre umaserie de computadoresnarede e
se comunicamatravésde um middleware,que é chamadode requisitorde objetos.O
Middleware forneceumainteface transparente continuaentre osobjetos.Ele fornece um
conjuntode serviçosque permitemque osobjetosse comuniqueme sejamadicionadose
removidosdosistema.Asvantagenssão:
Permite que oprojetistadosistemapostergue decisõessobre onde e comoosserviçosdevem
serfornecidos.
È uma arquiteturade sistemaabertoque permite que novosrecursossejamadicionados.
Uma arquiteturade objetosdistribuídospode serusadacomoum modelológico,que permite
estruturare organizaro sistema.
Uma arquiteturade objetosdistribuídosemlugarde umaarquiteturacliente-servidoré
adequadapara esse tipode aplicaçãoportrês razões:
O modelológicodosistemanãoé um dosfornecimentosde serviçosemque existemserviços
distintosde gerenciamentode dados.
Pode adicionarbancosde dadosao sistemasemgrande interrupções.
A maiorDesvantagemé que elassãomaiscomplexasdoque sistemascliente-servidor.
4 CORBA
Existemquatroelementosprincipaisdesse padrão:
1. um modelode objetoparaobjetosde aplicaçõesemque umobjetocorbaé um
encapsulamentode estadocomumainterface bemdefinidaemlinguagemneutradescritaem
um linguagemde definiçãode interface.
2. Um requisitorde objetosque gerenciasolicitaçõesparaserviçosde objetos.
3. Um conjuntode serviçosde objetosque sãoserviçosgeraiscomprobabilidadede serem
solicitadospormuitasaplicaçõesdistribuídas.
4. Um conjuntode componentescomunsconstruídossobre essesserviçosbásicosque podem
sersolicitadospelasaplicações.
O Corba consideraumobjetocomose fosse umencapsulamentode atributose serviços,como
é normal emobjetos.oCorbadeve terumadefiniçãode interface separadaque define
atributose operaçõespublicasdoobjeto.asinterfacessãodefinidasporumalinguagemde
definiçãode interface padronizadaindepende de linguagem.
Os objetoscorbatemum únicoidentificadorchamadode referenciade objetointeroperavel.
Esse IOR é usadoquandoumobjetosolicitaserviçosde umoutroobjeto.
O requisitorde objetosconhece osobjetosque estãosolicitandoserviçose suasinterfaces.O
ORB cuidada comunicaçãoentre os objetos.osobjetosque se comunicamnãoprecisam
conhecera localizaçãode outrosobjetosnemsobre suaimplementação.
O objetoque fornece oserviçotemumesqueletode IDLassociadoque ligaa interface a
implementaçãodosserviços.
O corba foi desenvolvidodesde1980 e as versõesrecentesde corbaforamsimplesmente
dedicadasaoapoioaos objetosdistribuídos.
Os padrõesCorbaincluemdefinições de interface
para uma grande variedade de componenteshorizontaise verticais.Oscomponentesverticais
são componentesespecíficosde umdomíniode aplicação.Oscomponenteshorizontaissão
componentesde propósitogeral,comocomponentesde interface comousuário.
5 COMPUTAÇÃOINTERORGANIZACIONLDISTRIBUIDA
Por motivode segurançae interoperabilidade,acomputaçãodistribuídafoi implementada
inicialmente emnível organizacional.Umaorganizaçãotemumaserie de servidorese distribui
sua carga computacional entre eles.Devidoaofatode elesestaremtodoslocalizadosdentro
da mesmaorganização,podemseraplicadospadrõese processosoperacionaislocais.
6 ARQUITETURAS PONTOA PONTO
São sistemasdescentralizadosemque ascomputaçõespodemserrealizadasporqualquernó
da rede,nenhumadistinçãoé feitaentre clientese servidores.Osistemaglobal é projetado
para beneficiar-se dacapacidade computacional e armazenamentodisponíveisemumarede
de computadorespotencialmente grande.
Em principio, emsistemaspontoaponto,todonóde rede pode estarciente a respeitode
qualqueroutronó,pode fazerconexõescomele e pode trocardadoscom ele.
Em uma arquiteturadescentralizada,osnosde rede nãosão simplesmente elementos
funcionais,maistambémchavesde comunicaçãoque podemguiarossinaisde dadose de
controle de umnó para o outro.
No entantoquandose recuperaumdocumento,onó que estarecuperandose tornavisível
para outros.
7 ARQUITETURA DE SISTEMA ORIENTADOA SERVIÇOS
A essênciade umserviço,é que ofornecimentodosserviçosé independentedaaplicaçãoque
usa o serviço.Os
provedoresde serviçospodemdesenvolverserviçosespecializadose oferecê-losaumagama
de usuáriosde serviçosde organizaçõesdiferentes.
A propostoWEB Service foi lançadapoisoacessode servidoresweb,erasomente pormeiode
navegarweb,e o acessodiretoaos repositóriosde informaçõesporoutrosprogramasnão era
pratico.
Os trêspadrõesfundamentaisque possibilitamcomunicaçãoentre WEBSERVICESsão:
SOP.Define umaorganizaçãopara troca estruturadade dadosentre WEB SERVICES.
WSDL. Define comoasinterfacesdosWEB servicespodemserrepresentadas.
UDDI. Este é um padrão de descobrimentoque define comoasinformaçõesde descriçãodo
serviçousadaspelossolicitantesdoserviçosparadescobrirserviços,pode serorganizada.
TodosessespadrõessãobaseadosemXML
CAPITULO13 – Arquiteturade aplicações
1 sISTEMASDE PROCESSAMENTODE DADOS
Aplicaçõesde processamentode dados.
São Aplicaçõesvoltadosadados.ElasProcessamdadosemlotessemintervençõesexplicitas
do usuáriodurante oprocessamento.AsAçõesexplicitastomadaspelaaplicaçãodependem
dos dadosque são processados.Ossistemasde processamentoemlotessãonormalmente
usadosemaplicaçõesde negóciosnasquaisasoperaçõessimilaressãorealizadassobre uma
grande quantidade de dados.Elestratamde uma grande variedade de funções
administrativas,comofolhade pagamento,cobrança,contabilidadee publicidade.Essas
aplicações enfocamosdados.Osbancosde dadossão geralmente maioresque ossistemasde
informações(SI).
Os sistemasde processamentode dados
selecionamosdadosde registrosde entradae,dependendodovalordoscamposnos
registros,tomamalgumasaçõesespecificadasnoprograma.Elespodem, então,enviaro
resultadonovamentedoprocessamentoaobancode dados e formatar a entradae a saída
processadapara impressão.
Os sistemasde processamentode dadospossuem3componentesprincipais:
1 Entrada.A entradacoletaas entradasde umaou maisfontes.
2 processamento.Oprocessamentorealizaacomputaçãousandoessasentradas.
3 saída. A saída geraSaídas a seremescritasnovamentenobancode dadose ou impressas.
Os componentesde entrada,processamentoe de saídapodemserdecompostosaindaem
uma estruturaentrada-processamento-saída.Exemplo:
Um componente de entradapode leralgumdadode um arquivooubanco de dados(entrada)
e corrigiralgunserros(processo) e,depoisenfileirarosdadosvalidosparaprocessamento
(saída)
São sistemasorientadosafunções,poisosregistrose astransaçõessão processadosemserie,
semnecessidade de manteroestadoentre astransações.
2 sistemasde processamente de transações
Os sistemasde transaçõessãoprojetadosparaprocessarsolicitaçõesde informaçõespor
usuáriosde um bancode dados.Tecnicamente umasequenciade operaçõesé tratadacomo
uma unidade simples(umaunidade atômica).Todasasoperaçõestemque serrealizadasantes
que as mudançastornem-se permanentesnobancode dados.
Os sistemasde processamentode transaçõessãogeralmentesistemasinterativosnosquaisos
usuáriosenviamsolicitaçõesassíncronasde serviço.Primeiroumusuáriofaz
uma solicitaçãoparao sistemaatravésde umcomponente de processamentode
entrada/saída.A solicitaçãoé processadaporalgumalógicaespecificadaaplicação.Uma
transação é criada e passadapara um gerenciadorde transações,que é emgeral incorporado
ao sistemade gerenciamentode bancode dados.Depoisque ogerenciadorde transações
assegurarque a transação foi concluídaadequadamente,ele sinalizaraparaa aplicaçãoque o
processamentofoi finalizado.
A estruturaentrada-processo-saídase aplicaaosmuitossistemasde processamentode
transações.Algunsdesses sistemassãoversõesinterativasde sistemasde processamentode
lotes.
Um exemplode sistemade processamentode transaçõesé umsistemabancárioque permite
aos clientesconsultaremsuascontase retiraremdinheirode umcaixaeletrônico.Osistemaé
compostode doissubsistemasde software que cooperamentre si –o software de caixa
eletrônicoe osoftware de processamentode contaslocalizadasnoservidorde bancode
dados.Os subsistemasde entradae de saídasão implementadoscomosoftwaresnocaixa
eletrônico,umavezque osubsistemade processamentoestánoservidorde bancode dadso.
Em sistemascomoos de contabilidadede clientesde umbanco,pode haverdiferentes
maneirasde interagircomo sistema.Muitosclientesinteragirãopormeiode caixas
eletrônicos,masumaequipe dobancousara terminaisde mesaparaacessar o sistema.Pode
haverváriostiposde caixaseletrônicose terminaisde mesa,e algunsclientese aequipe do
banco podemacessarosdados de contas por meiode navegadoresWEB.
Para simplificarogerenciamentode diferentesprotocolosde comunicaçãoentre terminais,
sistemasde processamentode transaçõesde largaescalapodemincluirmiddleware para
comunicaçãocom todosos tiposde terminal,organizaçãoe ordenaçãoemserie dosdadosdos
terminaise enviodosdadosparaprocessamento.
3 Sistemasde gerenciamentode informaçõese recursos
Um sistemade informaçõespermiteacessocontroladode umagrande base de informações,
taiscomo catalogode bibliotecas,tabelade horáriosde voosouregistrosde pacientesemum
hospital.OdesenvolvimentodaWEBfezcom que um grande numerode sistemasde
informaçõesmigrasse de sistemasorganizacionaisespecializadosparasistemasde propósito
geral acessíveisuniversalmente.
O sistemade informaçãoé modeladocomouso de uma abordagemde camadas oude
maquinaabstratana qual a camada superiorapóiaa interface comousuárioe a camada
inferior,obancode dados de sistema.A camada de comunicaçõesinclui umalógicaespecifica
de aplicação para acessoe atualizaçãodo bancode dados.
Sistemasde alocaçãode recursossão uma classe de aplicaçãoamplamente usada.Sua
arquiteturaestaalinhadacomo modelode sistemade informações.Oscomponentesde um
sistemade alocaçãode recursosinclui:
1- um banco de dadosde recursosque mantémdetalhesde recursosque sãoalocados.Os
recursospodemseradicionadosouremovidosdobancode dados.
2- Um conjuntode regrasque descreve asregrasde alocaçãode recursos.
3- um componente de gerenciamentode recursosque permiteque oprovedorde recursos
adicione,editeouelimine recursosdosistema.
4- um componente de alocaçãode recursosque atualizaobanco de dados de recursosquando
elessãodesignadose que associaesse recursosadetalhesdosolicitante dorecurso.
5- um modulode autenticaçãode usuáriosque permite aosistemaverificarse osrecursos
estãosendoalocadospara umusuárioreconhecido.
6- um modulode gerenciamentode consultasque permite aousuáriodescobrirquaisrecursos
estãodisponíveis.
7- um componente de entregade recursosque preparaosrecursosa serementreguesao
solicitante.Emumsistemade emissãode ingressos,issopodeenvolverapreparaçãode uma
confirmaçãopor e-mail,oenviode umasolicitaçãoparaumaimpressoraque imprime os
ingressose osdetalhesde paraonde os ingressosdevemserenviados.
8- um componente de interfacecomousuárioque esta forado sistemae permite ao
solicitante dorecursoenviarconsultase solicitaçõesparaorecursoa ser alocado.
4 Sistemasde processamentode eventos
O sistemasde processamentode eventosrespondemaoseventosdoambienteoudainterface
com o usuáriodo sistema.A principal característicadossistemasde processamentode
eventosé que a sequenciade eventosé imprevisível e osistemadeve sercapazde trabalhar
com esseseventosquandoelesocorrerem.
Sistemasde temporeal,sãotambémsistemasde processamentobaseadosemeventos,
poremao invésde tereventosde interface comousuário,temeventosassociadosa sensores
e atuadoresdosistema.
5 Sistemasde processamentode linguagens
Os sistemasde processamentode linguagensaceitamumalinguagemnatural ouartificial
como entradae geram algumaoutra representação
dessalinguagemcomosaída.Em engenhariade software,ossistemasde processamentode
linguagensmaisamplamenteusadossãooscompiladoresque traduzemumalinguagem
artificial de programaçãode altonível emcódigode maquina.Maisoutrossistemasde
processamentode linguagenstraduzemumadescriçãode dadosXML emcomandospara
consultarum bancode dadose sistemasde processamentode linguagemnatural que tentam
traduziruma linguagememoutra.
Os tradutoresemumsistemade processamentode linguagenstemumaarquiteturagenérica
que inclui osseguintescomponentes:
1. Um analisadorléxico,que obtémelementosdalinguagemde entradae osconverte emum
formatointerno.
2. uma tabelade símbolosque mantéminformaçõessobre osnomesde entidades(variáveis,
nomesde classes.) usadasnotextoque estasendotraduzido.
3. um analisadorsintático,que verificaasintaxe dalinguagemque estásendotraduzida.Ele
usa uma gramáticadefinidade linguageme constrói umaarvore de sintaxe.
4. ume árvore de sintaxe,que é umaestruturainternaque representaoprograma que esta
sendocompilado.
5. um analisadorsemântico,que usainformaçõesdaárvore de sintaxe e databelade símbolos
para verificaracorreção sintáticado textodalinguagemde entrada.
6. um geradorde códigoque ‘caminha’pelaárvore de sintaxe e gerao códigode maquina
abstrata.
capitulo29 – gerenciamentode configurações
Gerenciamentode configuraçõesé odesenvolvimentoe ousode padrõese procedimentos
para o gerenciamentode sistemasde software emdesenvolvimento.HamuitasrazõesPorque
os sistemasexistememdiferentesconfigurações.Configuraçõespodemserproduzidaspara
diferentescomputadores,paradiferentessistemasoperacionais,incorporandofunções
especificasde clientes.
Os gerentesde configuraçõessãoresponsáveispormantera rastreabilidade dasdiferenças
entre versõesde software,paraassegurarque asnovasversõessejamderivadasde maneira
controladae liberarnovasversõesparaclientescertosnomomentocerto.
1 Planejamentode gerenciamentode configurações
O planode gerenciamentode configuraçõesdescreveospadrõese procedimentosque devem
serusadospara o gerenciamento.Opontode partidapara o desenvolvimentodoplanodeve
serum conjuntode padrõesde configuração,que devemseradaptadospara se atenderaos
requisitose asrestriçõesde cadaprojetoespecífico.
1 IDENTIFICAÇÃODEITEMDE CONFIGURAÇÃO
Em um grande sistemade software,pode havermódulosde milharesde códigosfonte,scripts
de testes,documentosde projetoetc.Elessãoproduzidosporpessoasdiferentese,quando
criados,podemserdenominadoscomnomessimilaresouidênticos.Paramantera
rastreabilidadede todasessasinformaçõesde maneiraque oarquivocertopossaser
encontradoquandofornecessáriovocê necessitade umesquemade identificaçãoconsistente
para todosos itensnosistemade gerenciamentode configurações.
Durante o processode planejamentode gerenciamentode configuração,você decide
exatamente quaisitensserãocontrolados.Planosde projetos,especificações,projetos,
programas,e massade dadosde teste sãonormalmente mantidoscomoitensde
configuração.Todososdocumentosque podemser uteisparaa evoluçãofuturadosistema
devemsercontroladospelosistemade gerenciamentode configuração.
O esquemade identificaçãode itensde configuraçãodeve atribuirumúniconome paratodos
os documentossobcontrole de configuração.Esse nome pode refletirotipodoitem, uma
parte do sistemaaoqual ele se aplica,o criadordo item.Noesquemade atribuiçãode nomes,
você pode desejarevidenciararelaçãoentre ositensparagarantir que os documentos
relacionadospossuamumamesmaraizemseusnomes.Portanto,você pode definirum
esquemade hierarquiacomnome.
Esquemasde nomeshierarquizadossãosimplese de fácil compreensão:algumasvezes,
podemmapearumaestruturade diretóriosusadaparaarmazenararquivosde projeto.No
entanto,refletemaestruturade projetonaqual o software foi desenvolvido.Osnomesde
itensde configuraçãoassociamcomponentes comumprojetoespecificoe,dessamaneira,
reduzemasoportunidadesparaoreuso.Pode sermuitodifícil encontrarcomponentes
relacionados.
2 BANCODE DADOSDE CONFIGURAÇÃO
O banco de dadosde configuraçãoé utilizadopararegistrartodasas informaçõesrelevantes
sobre as configuraçõesde sistemae ositensde configuração.Você usaobanco de dadosCM
para auxiliaraavaliaçãodo impactodas mudançasde sistemae para gerar relatóriosparaa
gerenciasobre oprocessode CM. Comoparte do processode CM, deve-se definiroesquema
do bancode dadosde CM, os formuláriosparacoletarinformaçõesparaseremregistradasno
banco de dadose procedimentospararegistroe recuperaçãode informaçõesde projeto.
Um banco de dados de configuraçãopode registrarinformaçõessobre usuáriosde
componentes,clientesde sistemas,plataformasde execução,mudançaspropostase etc.
De preferência,umbancode dadosde configuraçãodeve serintegradocomaversãodo
sistemade gerenciamentousadaparaarmazenare gerenciarosdocumentosformaisdo
projeto.
Um banco de dados de configuraçãoarmazenainformaçõessobre itensde configuraçãoe
referenciaseusnomesnumsistemade gerenciamentode versãooudepósitode arquivos.
2 Gerenciamentode mudanças
As necessidadese requisitosorganizacionaisalteram-se durante avidaútil de umsistema.Isso
significaque você precisafazerasmudançascorrespondentesnosistemade software.Para
garantir que essasmudançasserãoaplicadasaosistemade maneiracontrolada,você precisa
de um conjuntode procedimentosde gerenciamentode mudançasapoiadoporferramentas.
Procedimentosde gerenciamentode mudançadizemrespeitoaanalise de custoe beneficio
das mudançaspropostas,a aprovaçãodas mudançasviáveise a rastreabilidade de quais
componentesdosistemaforamalterados.Oprocessode gerenciamentode mudançadeve
surtirefeitoquandoosoftware oua documentaçãoassociadasãocolocadosembaseline pela
equipe de gerenciamentode configurações.
O primeiroestágionoprocessode gerenciamentode configuraçõesé completarum
formuláriode solicitaçãode mudança(CRF – change requestform) que descreveamudança
necessáriaparao sistema.Umavezque o formuláriode solicitaçãode mudançaé enviado,ele
deve serregistradonobanco de dadosde configuração.A solicitaçãode mudançaé então
analisadapara verificarse amudança solicitadaé necessária.
Para mudançasvalidas,oestagioseguinte é aavaliaçãodamudança e o custo.O impactoda
mudançano restante dosistemadeve serverificado.Issoenvolvetodososcomponentes
afetadospelamudança.Se realizaramudança significaque mudançasadicionaisemalguma
parte do sistemasãonecessárias,issoaumentaclaramente ocustode sua implementação.Em
seguidaasmudançasnecessárias paraos módulosdosistemasãoavaliadas.Finalmente,o
custo para realizara mudançaé estimado,considerandooscustosde mudançanos
componentesrelacionados.
3 gerenciamentode versõese releases
Os processosenvolvidosnogerenciamentode versõese relasespreocupam-se coma
identificaçãoe a manutençãodarastreabilidadedasversõesde umsistema.Gerentesde
versõesidealizamprocedimentosparaassegurarque as versõesde umsistemapossamser
recuperadasquandosolicitadase nãosejamalteradasacidentalmentepelaequipede
desenvolvimento.Paraprodutos,osgerentestrabalhamcomaequipe de marketing,e ,para
sistemasfeitossobencomenda,comosclientes,paraplanejarquandonovosreleasesde um
sistemadevemsercriadose distribuídosparaimplantação.
Um release dosistemaé umaversãodistribuídaaosclientes.Cadareleasedeve incorporar
novasfuncionalidadesouserplanejadoparaumaplataformadiferentede hardware.
1 IDENTIFICAÇÃODEVERSÕES
Para criar uma versãoespecificade umsistema,você precisaespecificarasversõesdos
componentesde sistemaque devemserincluídasnele.Você nãopode usaro nome doitemde
configuraçãopara identificaraversão,porque ele pode termuitasversõesparacada item
de configuraçãoidentificado.
A trêstécnicasbásicaspara identificaçãodaversãode componentes.
1. Numeraçãode versões.Ocomponente recebe umnumeroexplicitoe únicode versão.Issoé
o maiscomumente usadonoesquemade identificação.
2. identificaçãobaseadaematributos.Cadacomponente temumnome (comoonome do item
de configuração,que nãoé únicopara diferentesversões) e umgrupode atributosassociados
para cada versão,componentessãoportanto,identificadospelaespecificaçãode seusnomes
e valoresde atributos.
3. identificaçãoorientadaamudanças.Cada componente é denominadocomonaidentificação
baseadaematributos,masé tambémassociadocomuma ou maissolicitaçõesde mudanças.
Ou seja,considera–se que cada versãode componente foi criadaemrespostaauma ou mais
solicitaçõesde mudanças.A versãode componente é identificadapeloconjuntode
solicitaçõesde mudançasque se aplicamaocomponente.
2 GERENCIAMENTODE RELEASES
Um release de sistemaé umaversãodosistemadistribuídoparaosclientes.Osgerentesde
release de sistemassãoresponsáveispordecidirquandoumsistemapode serliberadoparaos
clientes,gerenciaroprocessode criaçãodo release e de meiosde distribuiçãoe documentaro
release paraassegurarque ele pode serrecriadoexatamente comofoi distribuído,se for
necessário.
A criação de um release é umprocessode criação de arquivose documentosque inclui todos
os componentesdoreleasedosistema.Ocódigoexecutável de programase todosos arquivos
de dados associadosdevemsercoletadose identificados.Se osmanuaisaseremlidosem
computadoressãodistribuídos,copiaseletrônicasdevemserarmazenadascomosoftware.
Finalmente,quandotodasasinformaçõesestiveremdisponíveis,odiretóriodorelease é
manipuladoparaa distribuição.
Quandoum release de sistemaé produzido,eledeveserdocumentadoparaassegurarque
possaser recriadoipsisliterisnofuturo.Issoé importante parasistemasembutidosde ciclode
vidalongoe feitospara osclientes,comoaquelesque controlammaquinascomplexas.
Para documentarumrelease você deve registrarasversõesespecificasdoscomponentesde
códigofonte usadospara criar o códigoexecutável.Você deve mantercompiasdoscódigos
fonte e códigoexecutável,e de todososarquivosde dadose de configuração.Você deve
tambémregistraras versõesdosistemaoperacional,asbibliotecas,oscompiladorese outras
ferramentasusadasparaconstruiro software.Elaspodemsernecessáriasparaconstruir
exatamente omesmosistemaemalgumadataposterior.
4 construçãode sistemas
A construçãode sistemasé umprocessode compilaçãoe ligaçãode componentesde software
numprograma que executadeterminadaconfiguraçãodefinida.Quandovocê estaconstruindo
um sistemacombase emseuscomponentes,você devepensarnasseguintesquestões:
1. Todos os componentesque compõemumsistemaforamincluídosnasinstruçõesde
construção?
2. A versãoapropriadade cada componente necessáriofoi incluídanasinstruçõesde
construção?
3. todos osarquivosde dadosnecessáriosestãodisponíveis?
4. Se os arquivosde dadosestãoreferenciadosdentrode umcomponente,onome usadoé o
mesmoque o doarquivode dados na maquina – alvo?
5. A versãoapropriadado compiladore de outrasferramentasrequeridasestadisponível?As
versõesatuaisdasferramentasde software podemserincompatíveiscomasversõesantigas
usadaspara desenvolverosistema.
5 ferramentascase paragerenciamentode configurações
Processosde gerenciamentode configuraçõessãonormalmente padronizadose envolvem
aplicaçõesde procedimentospredefinidos.Elesrequeremogerenciamentocuidadosode
grande quantidade de dadose é essencial aatençãoaos detalhes.Quandoumsistemaestá
sendoconstruídocom base emversõesde componentes,umúnicoerrode gerenciamentode
configuraçãopode significarque osoftware nãoirá operaradequadamente.
Conseqüentemente,oapoiode umferramentaCASEé essencial paraogerenciamentode
configuração.Essasferramentaspodemsercombinadasparacriaruma área de trabalhopara
apoiartodas as atividadesde CM.
REFERÊNCIAS
SOMMERVILE, Ian.ENGENHARIA DE SOFTWARE.8 Edição. SãoPaulo:PearsonAddisonWesley,
2007.

Más contenido relacionado

La actualidad más candente

Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídosAula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídosMessias Batista
 
Aula09 SD - Replicação e Consistência
Aula09 SD - Replicação e ConsistênciaAula09 SD - Replicação e Consistência
Aula09 SD - Replicação e ConsistênciaMessias Batista
 
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosAula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosMessias Batista
 
Caracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosCaracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosPortal_do_Estudante_SD
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosMessias Batista
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
Engenharia de Software - Wikipedia
Engenharia de Software - WikipediaEngenharia de Software - Wikipedia
Engenharia de Software - WikipediaRobson Silva Espig
 
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de DadosAlta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de DadosAlex Camargo
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosUFPB
 
MODERNIZAÇÃO DE SISTEMAS LEGADOS: um estudo de caso sobre integração de siste...
MODERNIZAÇÃO DE SISTEMAS LEGADOS: um estudo de caso sobre integração de siste...MODERNIZAÇÃO DE SISTEMAS LEGADOS: um estudo de caso sobre integração de siste...
MODERNIZAÇÃO DE SISTEMAS LEGADOS: um estudo de caso sobre integração de siste...Paulo Rodrigues
 
Sistemas Embarcados - 22 06-2011
Sistemas Embarcados - 22 06-2011Sistemas Embarcados - 22 06-2011
Sistemas Embarcados - 22 06-2011Steve Rogers
 
Arquitetura, uma questão de "estilo"?
Arquitetura, uma questão de "estilo"?Arquitetura, uma questão de "estilo"?
Arquitetura, uma questão de "estilo"?Vanilson Buregio
 
Suporte e Disponibilidade no Linux
Suporte e Disponibilidade no LinuxSuporte e Disponibilidade no Linux
Suporte e Disponibilidade no LinuxMauro Tapajós
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaAdriano Teixeira de Souza
 
Relatório geral pi
Relatório geral piRelatório geral pi
Relatório geral piredesinforma
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelEduardo Nicola F. Zagari
 

La actualidad más candente (20)

Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídosAula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
 
Aula09 SD - Replicação e Consistência
Aula09 SD - Replicação e ConsistênciaAula09 SD - Replicação e Consistência
Aula09 SD - Replicação e Consistência
 
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosAula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
 
Caracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosCaracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidos
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - Processos
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Engenharia de Software - Wikipedia
Engenharia de Software - WikipediaEngenharia de Software - Wikipedia
Engenharia de Software - Wikipedia
 
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de DadosAlta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados
Alta Disponibilidade e Tolerância a Falhas: uma abordagem em Banco de Dados
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidos
 
MODERNIZAÇÃO DE SISTEMAS LEGADOS: um estudo de caso sobre integração de siste...
MODERNIZAÇÃO DE SISTEMAS LEGADOS: um estudo de caso sobre integração de siste...MODERNIZAÇÃO DE SISTEMAS LEGADOS: um estudo de caso sobre integração de siste...
MODERNIZAÇÃO DE SISTEMAS LEGADOS: um estudo de caso sobre integração de siste...
 
Sistemas Embarcados - 22 06-2011
Sistemas Embarcados - 22 06-2011Sistemas Embarcados - 22 06-2011
Sistemas Embarcados - 22 06-2011
 
Arquitetura, uma questão de "estilo"?
Arquitetura, uma questão de "estilo"?Arquitetura, uma questão de "estilo"?
Arquitetura, uma questão de "estilo"?
 
Introducao.2s
Introducao.2sIntroducao.2s
Introducao.2s
 
Modelagem 16102006
Modelagem 16102006Modelagem 16102006
Modelagem 16102006
 
Suporte e Disponibilidade no Linux
Suporte e Disponibilidade no LinuxSuporte e Disponibilidade no Linux
Suporte e Disponibilidade no Linux
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
Relatório geral pi
Relatório geral piRelatório geral pi
Relatório geral pi
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - Microkernel
 

Similar a RESENHA DOS CAP. 11,12, 13, e 29 do livro Engenharia de software

O_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdf
O_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdfO_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdf
O_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdfBrunaBraga68
 
APSI 2 aulas - padroes arquiteturais - camadas PROF.TARCIANE
APSI 2   aulas  - padroes arquiteturais - camadas PROF.TARCIANEAPSI 2   aulas  - padroes arquiteturais - camadas PROF.TARCIANE
APSI 2 aulas - padroes arquiteturais - camadas PROF.TARCIANEFco Edilson Nascimento
 
Sistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realSistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realRogério Cardoso
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosHélio Jovo
 
Visão Geral Arquiteturade Software
Visão Geral Arquiteturade SoftwareVisão Geral Arquiteturade Software
Visão Geral Arquiteturade Softwareelliando dias
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxChadidoDiogo1
 
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Lenin Abadie
 
Desenvolvimento em Nuvem
Desenvolvimento em NuvemDesenvolvimento em Nuvem
Desenvolvimento em NuvemVitor Savicki
 
Aula sobre Sistemas Distribuidos Atualizado
Aula sobre Sistemas Distribuidos AtualizadoAula sobre Sistemas Distribuidos Atualizado
Aula sobre Sistemas Distribuidos AtualizadoGLAUCECARVALHO4
 
Sistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
Sistemas Operacionais - Aula 6 - Estrutura do Sistema OperacionalSistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
Sistemas Operacionais - Aula 6 - Estrutura do Sistema OperacionalCharles Fortes
 
Distributed Systems - Exercises
Distributed Systems - ExercisesDistributed Systems - Exercises
Distributed Systems - ExercisesMichel Alves
 
O desafio de sustentar centenas de servicos
O desafio de sustentar centenas de servicosO desafio de sustentar centenas de servicos
O desafio de sustentar centenas de servicosGraziella Bonizi
 
Escalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizadosEscalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizadosClaudio Eckert
 
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...Dalton Valadares
 
Arquitetando aplicações php
Arquitetando aplicações phpArquitetando aplicações php
Arquitetando aplicações phpEduardo Cesar
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02thomasdacosta
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETMário Meyrelles
 

Similar a RESENHA DOS CAP. 11,12, 13, e 29 do livro Engenharia de software (20)

Trabalho individual
Trabalho individualTrabalho individual
Trabalho individual
 
O_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdf
O_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdfO_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdf
O_Emprego_de_Tecnicas_de_IA_no_suporte_a.pdf
 
APSI 2 aulas - padroes arquiteturais - camadas PROF.TARCIANE
APSI 2   aulas  - padroes arquiteturais - camadas PROF.TARCIANEAPSI 2   aulas  - padroes arquiteturais - camadas PROF.TARCIANE
APSI 2 aulas - padroes arquiteturais - camadas PROF.TARCIANE
 
Sistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realSistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo real
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidos
 
Visão Geral Arquiteturade Software
Visão Geral Arquiteturade SoftwareVisão Geral Arquiteturade Software
Visão Geral Arquiteturade Software
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
 
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
 
Architecture performance using micro services
Architecture performance using micro servicesArchitecture performance using micro services
Architecture performance using micro services
 
Desenvolvimento em Nuvem
Desenvolvimento em NuvemDesenvolvimento em Nuvem
Desenvolvimento em Nuvem
 
Aula sobre Sistemas Distribuidos Atualizado
Aula sobre Sistemas Distribuidos AtualizadoAula sobre Sistemas Distribuidos Atualizado
Aula sobre Sistemas Distribuidos Atualizado
 
Sistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
Sistemas Operacionais - Aula 6 - Estrutura do Sistema OperacionalSistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
Sistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
 
Distributed Systems - Exercises
Distributed Systems - ExercisesDistributed Systems - Exercises
Distributed Systems - Exercises
 
O desafio de sustentar centenas de servicos
O desafio de sustentar centenas de servicosO desafio de sustentar centenas de servicos
O desafio de sustentar centenas de servicos
 
Escalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizadosEscalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizados
 
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
 
Arquitetando aplicações php
Arquitetando aplicações phpArquitetando aplicações php
Arquitetando aplicações php
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NET
 

RESENHA DOS CAP. 11,12, 13, e 29 do livro Engenharia de software

  • 1. CAPITULO11 – Projetode Arquitetura O projetode arquiteturaé primeiroestágionoprocessode projetos.Dizolivroque ele idêntificasubsistemase estabelece umframeworkparacontrolaracomunicaçãodos subsistemas. Subsistemassãosistemasgrandes decompostos e que fornece algumconjunto de serviçosrelacionados oque representaumaligaçãocriticaentre processosde engenharia de projetoe requisitos. Três vantagensde projetare documentarexplicitamente umaarquiteturade software: Comunicação destakeholders:é uma apresentaçãoemaltonível dosistemaque enfocaa discussãoentre diferentesstakeholders. Analisede sistemas:tem um profundoefeitosobre osistema,mostrase osistemapara atenderaosrequisitoscríticosbem como: confiabilidade,desempenhoe facilidade de manutenção. Reuso em larga escala:apoiao reusoem largaescalade sistemasque possuemarquiteturas de sistemasfamiliares. A arquiteturade software serve paranegociarrequisitosde sistemae estruturardiscussões com os clientes,desenvolvedorese gerentes.Éumaferramentaessencialparagerenciamento de complexidade,ocultandodetalhese focandoasabstraçõesprincipaisdosistema.Oestiloe estruturada aplicaçãodependemdosrequisitosnãofuncionaisdosistema,porexemplo: Se o desempenhoforumrequisitocríticoa aplicaçãodeve localizaroperaçõescríticasdentro de subsistemase usarcomponentesde altagranularidadeemdetrimentodosde baixa granularidade parareduziracomunicaçãoentre eles. Se a facilidade de manutençãoforumrequisitocrítico,aarquiteturade sistemasdeve ser projetadausandocomponentesde baixagranularidade e autocontidosque possamser prontamente mudados. Parou aqui.......Háconflitospotenciaisentre algumasdessasarquiteturas,porexemplose o desempenhoque necessitade altagranularidadee afacilidade de manutençãoque necessita de baixagranularidade foremambosrequisitoscríticosteráque ser encontradaalguma soluçãoeficaz. Um projetode subsistemasé decomposiçãoabstratade umsistemade componentesemalta granularidade.Osdiagramasde blocossãousadospara representarumprojetode subsistemas. Essesdiagramasde blocossão bonspara comunicaçãoentre stakeholderse parao planejamentodoprojetopoisnãoestãoabarrotadosde detalhes,jáparaa arquiteturanãosão tão bons,poisnão mostramrelacionamentoentre oscomponentesdosistema. O projetode arquiteturatentaestabelecerumaorganizaçãode sistemasque satisfaçãoos requisitosfuncionaise osnão funcionaisdosistema.Durante oprocessode projetode arquiteturaosarquitetosde sistemasdevemresponderaalgumasperguntas: Existe umaarquiteturagenéricade aplicaçãoque possafuncionarcomoummodeloparao sistemaque estásendoprojetado? Comoo sistemaserádistribuídoaolongode váriosprocessadores? Qual ou quaisestilosde arquiteturasãoapropriadosparaosistema? Qual será a abordagemfundamental usadaparaestruturarosistema?
  • 2. Comoas unidadesestruturaisde umsistemaserãodecompostasemmódulos? Qual estratégiaseráutilizadaparacontrolara operaçãodas unidadesdosistema? Comoo projetode arquiteturaseráavaliado? Comoa arquiteturadosistemadeve serdocumentada? Ao Projetarumaarquiteturade sistemas,você precisadecidiroque seusistemae classesmais amplasde aplicaçãotemem comum,e decidirquantoconhecimentodessasarquiteturasde aplicaçãovocê pode reusar.A arquiteturade umsistemade software pode serbaseadaemum modeloouestilode arquiteturaespecifico,Emalguns casosa arquiteturageral de um sistema pode seruma arquiteturacomposta. Os modelosde arquiteturaque podemserdesenvolvidospodemincluir: Um modeloestáticode estruturaque mostraossubsistemasoucomponentesdesenvolvidos como unidadesseparadas. Um modelodinâmicode processoque mostracomoo sistemaestaorganizadoemprocessos emtempode execução. A organizaçãode um sistemareflete aestratégiabásicausadapara estruturá-lo.Você precisa tomar decisõessobre omodelogeral organizacional de umsistemacomantecedênciano processode projetode arquitetura.A organizaçãopode refletirdiretamente naestrutura subsistema. possuemtrêsestilosde organizacionaisamplamenteusados: Modelode repositório Os subsistemasque constituemumsistemadevemtrocarinformaçõesde mofoque possam trabalharjuntoseficientemente. Esse modeloé,portanto,adequadoparaaplicaçõesemque osdadossão geradospor um subsistemae usadosporoutro. O repositórioé passivoe ocontrole é de responsabilidade dossubsistemasque ousam. 3 ModeloCliente –Servidor O modelode arquiteturacliente –servidoré ummodeloemque osistemaé organizadocomo um conjuntode serviçose servidorese clientesassociadosque acessame usamosserviços.Os clientestalvezprecisemsaberosnomesdosservidoresdisponíveise osserviçosque eles fornecem.Noentantoosservidoresnãoprecisamsaberaidentidade doclienteouquantos são. Sãoacessadosos serviçospormeiode chamadasremotasde procedimentousandoum protocolorequest–eply,oclientefazumpedidoaum servidore esperaate receberuma resposta. A vantagemde ummodelocliente servidoré que ele é umaarquiteturadistribuída.Ouso efetivode sistemasemrede pode serfeitocommuitosprocessadoresdistribuídos.Éfácil adicionarumnovoservidore integrá-loaorestante dosistema
  • 3. 4 O ModeloemCamadas O modeloemcamadasorganizaum sistemaemcamadas,cada uma das quaisfornecendoum conjuntode serviços. A abordagememcamadas apoiao desenvolvimentoincremental de sistemas.A medidaque uma camada é desenvolvidaalgunsserviçosfornecidosporessacamadapodemser disponibilizadosparaosusuários.Essa arquiteturatambémé modificávele portável.Desde que sua interface permaneçainalterada,umacamadapoderásersubstituídaporoutra equivalente.Umadesvantagemdaabordagememcamadasé que a estruturaçãode sistemas dessamaneirapode serdifícil.Ascamadasmaisinternaspodemfornecerrecursosbásicos, como gerenciamentode arquivos,necessáriosemtodososníveis. O desempenhotambémpode serumproblemadevidoaosváriosníveisde interpretaçãode comandosalgumasvezesexigidos. 5 Estilosde decomposiçãomodular Depoisque a organizaçãogeral dosistemafoi escolhida,precisa-se tomarumadecisãosobre a abordagema serusada na decomposiçãode subsistemasemmódulos. Um moduloé normalmente umcomponentede sistemaque fornece umoumaisserviçospara outrosmódulos.Ele fazusode serviçosfornecidosporoutrosmódulos.existemduas estratégiasprincipaisque você pode usaraodecomporum subsistemaemmódulos. Decomposiçãoorientadaaobjetose pipeliningorientadoafunções. Você deve evitartomardecisõesprematurassobre asimultaneidadede umsistema. 6 DECOMPOSIÇÃOORIENTADA A OBJETOS. Um modelode arquiteturaorientadoaobjetosestruturaosistemaemumconjuntode objetos não firmemente acopladoscominterfacesbemdefinidas.Osobjetoschamamserviços oferecidosporoutrosobjetos. Uma decomposiçãoorientadaaobjetosesta relacionadaaclassesde objetos,seusatributose suas operações.Quandoimplementados,osobjetossãocriadosapartir dessasclassese algum modelode controle é usadopara coordenaras operaçõesde objetos.A vantagemé que implementaçãode objetospode sermodificadasemafetaroutrosobjetos. A desvantagemé que parausar serviçososobjetosdevemfazerreferenciaexplicitaaonome e a interface de outrosobjetos.
  • 4. 7 Pipeliningorientadoafunções No pipeliningorientadoafunçõesoumodelode fluxode dados,astransformaçõesprocessam suas entradase produzemsaídas.Os dadosfluemde umapara outra funçãoe são transformadosaomoverem – se sequencialmente.Cadaetapaé implementadacomouma transformação.Osdadosde entradafluematravésdessastransaçõesate seremconvertidos emdados se saída. As vantagensdessaarquiteturasão: Apoiaro reusode transformações. Ele é intuitiva,muitaspessoaspensamemseutrabalhoemtermosde processamentode entradae saída. A evoluçãodosistemapelaadiçãode novastransformaçõesé geralmente direta. Ela é simplesde serimplementadatantoquantoumsistemaconcorrente ousequencial. O principal problemaé que ele necessitaserumformatocomumpara transferirdadosque possaser reconhecidoportodasas transformações. Sistemasinterativossãodifíceisde escreverusandoessemodeloporcausada necessidade de uma sequenciade dadosserprocessada. 8 Modelosde controle Os modelosde controle temcomoobjetivocontrolarsubsistemasde maneiraque seus serviçossejamentreguesnolugarcertoe notempocerto. Modelosde controle sãousadosemconjuntocom estilosde estrutura.Todososestilosde estruturaque foi explicadopodemserimplementadospormeiode controle centralizadoou baseadoemeventos. 9 Controle centralizado. Em modelode controle centralizado,umsubsistemaé designadocomocontroladode sistema e tema responsabilidadepelogerenciamentodaexecuçãode outrossubsistemas.Modelosde controle centralizadosDividem –se em duas classes,dependendose foremexecutados sequencialmente ouparalelamente. O modelochamado – retorno.O controle começanotopo da hierarquiade sub – rotinae , atravésde chamadas de sub-rotinas,passaparaos níveismaisbaixosnaarvore,são aplicados emmodelossequenciais. O modelogerenciados.Aplicadosemmodelosconcorrentes.Umsistemaconcorrenteé
  • 5. projetadocomoum gerenciadorde sistemae controlao inicio,aparada e a coordenaçãode outrosprocessosdosistema. Sistemasorientadosaeventos. As decisõesdosmodelosorientadosaeventossãoregidospeloseventosgerados externamente.Otermoeventopode serumsinal que pode assumirumagama de valoresou uma entradade comandobaseadosemum menu. Possuemdoismodelosde controle orientadosa eventos. Modelosde broadcast.Nesse modelo,umeventoé transmitidoatodosos subsistemas. Qualquersubsistemaprogramadoparamanipularoeventopode responderaele.A vantagem dessaabordagemé que a evoluçãoé relativamente simples,umnovosubsistemaparatratar classesespecificasde eventospode serintegradopormeiodoregistrode seuseventosno tratador de eventos.A desvantagemé que os subsistemas nãosabemse ouquandoos eventos serãomanipulados. Modelosorientadosainterrupções.Sãousadosemsistemasde temporeal comorequisitos rigorososde tempo,nosquaisas interrupçõesexternassãodetectadasporumtratorde interrupções.Avantagemdessaabordagemé que elapermite respostasmuitorápidasaos eventosaseremimplementados.Suadesvantagemé acomplexidade daprogramaçãoe a dificuldadede validação. 10 Arquiteturade referencia As arquiteturasde referencianãosãogeralmente consideradasumroteirode implementações.Emvezdisso,suaprincipal funçãoé serummeiode discussãode arquiteturasde domínioespecificoe de comparaçãode sistemasdiferentesemumdomínio. Um modelode referenciafornece umvocabulárioparacomparação.Ele atua comouma base, emrelaçãoa qual os sistemaspodemseravaliados. Uma propostade modelo de referenciaé ummodeloparaambientesCASEque identificacinco conjuntosde serviçosque umambiente CASEdeve fornecer.Ele deve tambémfornecer recursosde plugin para ferramentasCASEindividuaisque usamessesserviços.Oscincos níveisde referenciassão: Serviçosde repositóriode dados.Estesserviçosfornecemrecursosparaoarmazenamentoe o gerenciamentode itensde dadose seusrelacionamentos. Serviçosde integraçãode dados.Estesserviçosfornecemrecursosparaogerenciamentode grupos ou para definiçãode relacionamentosentre eles. Serviçosde gerenciamentode tarefas,estesserviçosfornecemrecursosparaa definiçãoe aprovação de modelosde processo. Serviçosde mensagem.Comunicaferramenta –Ferramenta,ambiente-ferramentae ambiente – ambiente. Serviçosde interface comousuário.Este serviçofornecemrecursosparao desenvolvimento de interface como usuário. A finalidadedessaarquiteturade referenciaé serum meiode classificaçãoe comparaçãode ferramentase ambientesCASEintegrados.
  • 6. CAPITULO12 – Arquiteturade sistemasdistribuídos Um sistemadistribuídoé aquele emque asinformaçõesemfase de processamentosão distribuídasavárioscomputadores. Vantagensde usaruma abordagemdistribuídaparadesenvolvimentode sistemas. 1. Compartilhamentode recursos –Um sistemadistribuídopermite ocompartilhamentode recursosde hardware e software,comodiscos,impressoras,arquivose computadoresque estãoassociadosaosdiferentescomputadoresde umarede. 2. Abertura- permitemaequipamentose software de diferentesfabricantesserem combinados,poissãoprojetadoscombase emprotocolospadrões. 3. Concorrência– váriosprocessospodemoperarao mesmotempoemdiferentes computadores,e podem(maisnãoprecisam) conversar unscomosoutros. 4. Escalabilidade –sãoescalonáveisamaneiraque acapacidade de um sistemapode ser ampliadapelaadiçãode novosrecursospara atenderasdemandasdossistemas. 5. Tolerânciaa defeitos –peladisponibilidade de várioscomputadorese opotencial de duplicaçãode informaçãosignificaque ossistemasdistribuídospossamsertolerantesa algumasfalhasde hardware e software. Essessistemasde distribuiçãocomparadosaossistemasque operamcomumprocessadorou com um clusterde processadorespodemteralgumasdesvantagenscomo: 1. Complexidade - ossistemasdistribuídossãomaiscomplexosque ossistemascentralizados. 2. Proteção – o sistemapode seracessadode várioscomputadoresdiferentes,e otrafegona rede pode estarsujeitaainterceptações. 3. Gerenciamento –os computadoresdosistemapodemserde tiposdiferentese podem operarem versõesdiferentesde sistemasoperacionais.Defeitosemumamaquinapodemse propagar a outra maquinascomconsequênciasinesperadas. 4. Imprevisibilidade –Comotodosos usuáriosdawebsabem, os sistemasdistribuídossão imprevisíveisemsuasrespostas.A respostadepende dacarga total do sistema,sua organizaçãoe a carga da rede.Comotudoissopode mudaremum curto períodode tempo,o tempode respostapara uma solicitaçãodousuáriopode variardrasticamente de uma solicitaçãoparaoutra. Possuemdoistiposdiferentesde arquiteturasde sistemasdistribuídos: 1. Arquiteturacliente-servidor.Éo sistemacomoum conjuntode serviçosfornecidos aos clientesque fazemusodessesserviços.Osservidorese clientessãotratadosde maneiras diferentesnessessistemas. 2. Arquiteturasde objetosdistribuídos.Podemospensarnosistemacomoumconjuntode objetosque interageme cujaalocalizaçãoé irrelevante.Nãohádistinçãoentre clientee servidor. Tanto a arquiteturacliente-servidore aarquiteturade objetosdistribuídossãoamplamente usadasno setor,maisa aplicaçãoocorre geralmente dentrode umaúnicaorganização.A organizaçãoé,portanto,intra-organizacional. 1 Arquiteturade multiprocessadores
  • 7. O multiprocessadorSãoprocessosque podemserexecutadosseparados.Esse modelotomam decisõesusandoessasinformaçõese enviamsinaisaosatuadores,que modificamoambiente do sistema.O usode váriosprocessadoresaprimoraodesempenhoe acapacidade de recuperaçãodo sistema 2 Arquiteturacliente-servidor Em um arquiteturacliente-servidor,umaaplicaçãoé modeladacomoumconjuntode clientes que usam essesserviços.Osclientesprecisamestarinformadossobre osserviçosdisponíveis, mas geralmente nãosabemdaexistênciade outrosclientes.Váriosprocessosde serviços podemserexecutadosemumúnicoprocessadorde serviçoportantonãohá mapeamento entre processose processadores de umsistema O projetode sistemascliente-servidordeve refletiraestruturalógicada aplicaçãoque esta sendodesenvolvida.Umexemploé umaaplicaçãoqesta divididaem3camadas: a camada de apresentação,que se encarregadaapresentaçãode informaçõesparaousuárioe toda a interaçãocom o usuário.A camada de processosde aplicaçõesse encarregada implementaçãodalógicadaaplicaçãoe a camada de gerenciamentode dadosse encarregade todasas operaçõesde bancode dados. A arquiteturacliente-servidormaissimplesdenomina-searquiteturacliente-servidorde duas camadas,podemter duasformas: Modelocliente-magro.Oprocessamentoe ogerenciamentode dadossãorealizadosno servidor.Ocliente apenasexecutaosoftware de apresentação. Modelocliente-gordo.Oservidoré responsável somente pelogerenciamentode dados.O software docliente implementaalógicada aplicaçãoe as interaçõescomo usuáriodo sistema. Uma desvantagemdomodelocliente-magroé que ele impõe umagrande carga de processamentosobre oservidore arede. O modelocliente-gordofazusodessacapacidade de processamentodisponívele distribui o processamentológicode aplicaçãoe aapresentaçãodocliente.Oservidoré essencialmente um servidorde transaçõesque gerenciatodasastransaçõesdobanco de dados. Enquantoo modelocliente-gordodistribuioprocessamentomaiseficientementedoque um modelocliente-magro,ogerenciamentodosistemaé maiscomplexo.A funcionalidadeda aplicaçãoé divididaentre várioscomputadores.Quandoosoftware precisaseralterado,isso envolve reinstalaçãoemcadacomputadorcliente,oque pode resultaremumcusto significativose houvercentenasde clientesnosistema. O Problemacoma abordagemcliente-servidorde duascamadasé que as trêscamadas lógicas, devemsermapeadassobre doissistemasde computador –o cliente e oservidor.Pode haver problemasde escalabilidade e desempenho,se omodelocliente-magrofor escolhido,ouproblemasde gerenciamentode sistemas,se omodelocliente-gordoforusado. Para evitaressesproblemasumaalternativaé usaro modelocliente-servidorde trêscamadas. Em algunscasos é melhorestenderomodelocliente-servidorde trêscamadaspara uma variante comvarias camadas,na qual servidoresadicionais sãoincorporadosaosistema.
  • 8. 3 Arquiteturasde objetosdistribuídos Nesse modeloosobjetospodemserdistribuídosentre umaserie de computadoresnarede e se comunicamatravésde um middleware,que é chamadode requisitorde objetos.O Middleware forneceumainteface transparente continuaentre osobjetos.Ele fornece um conjuntode serviçosque permitemque osobjetosse comuniqueme sejamadicionadose removidosdosistema.Asvantagenssão: Permite que oprojetistadosistemapostergue decisõessobre onde e comoosserviçosdevem serfornecidos. È uma arquiteturade sistemaabertoque permite que novosrecursossejamadicionados. Uma arquiteturade objetosdistribuídospode serusadacomoum modelológico,que permite estruturare organizaro sistema. Uma arquiteturade objetosdistribuídosemlugarde umaarquiteturacliente-servidoré adequadapara esse tipode aplicaçãoportrês razões: O modelológicodosistemanãoé um dosfornecimentosde serviçosemque existemserviços distintosde gerenciamentode dados. Pode adicionarbancosde dadosao sistemasemgrande interrupções. A maiorDesvantagemé que elassãomaiscomplexasdoque sistemascliente-servidor. 4 CORBA Existemquatroelementosprincipaisdesse padrão: 1. um modelode objetoparaobjetosde aplicaçõesemque umobjetocorbaé um encapsulamentode estadocomumainterface bemdefinidaemlinguagemneutradescritaem um linguagemde definiçãode interface. 2. Um requisitorde objetosque gerenciasolicitaçõesparaserviçosde objetos. 3. Um conjuntode serviçosde objetosque sãoserviçosgeraiscomprobabilidadede serem solicitadospormuitasaplicaçõesdistribuídas. 4. Um conjuntode componentescomunsconstruídossobre essesserviçosbásicosque podem sersolicitadospelasaplicações. O Corba consideraumobjetocomose fosse umencapsulamentode atributose serviços,como é normal emobjetos.oCorbadeve terumadefiniçãode interface separadaque define atributose operaçõespublicasdoobjeto.asinterfacessãodefinidasporumalinguagemde definiçãode interface padronizadaindepende de linguagem. Os objetoscorbatemum únicoidentificadorchamadode referenciade objetointeroperavel. Esse IOR é usadoquandoumobjetosolicitaserviçosde umoutroobjeto. O requisitorde objetosconhece osobjetosque estãosolicitandoserviçose suasinterfaces.O ORB cuidada comunicaçãoentre os objetos.osobjetosque se comunicamnãoprecisam conhecera localizaçãode outrosobjetosnemsobre suaimplementação.
  • 9. O objetoque fornece oserviçotemumesqueletode IDLassociadoque ligaa interface a implementaçãodosserviços. O corba foi desenvolvidodesde1980 e as versõesrecentesde corbaforamsimplesmente dedicadasaoapoioaos objetosdistribuídos. Os padrõesCorbaincluemdefinições de interface para uma grande variedade de componenteshorizontaise verticais.Oscomponentesverticais são componentesespecíficosde umdomíniode aplicação.Oscomponenteshorizontaissão componentesde propósitogeral,comocomponentesde interface comousuário. 5 COMPUTAÇÃOINTERORGANIZACIONLDISTRIBUIDA Por motivode segurançae interoperabilidade,acomputaçãodistribuídafoi implementada inicialmente emnível organizacional.Umaorganizaçãotemumaserie de servidorese distribui sua carga computacional entre eles.Devidoaofatode elesestaremtodoslocalizadosdentro da mesmaorganização,podemseraplicadospadrõese processosoperacionaislocais. 6 ARQUITETURAS PONTOA PONTO São sistemasdescentralizadosemque ascomputaçõespodemserrealizadasporqualquernó da rede,nenhumadistinçãoé feitaentre clientese servidores.Osistemaglobal é projetado para beneficiar-se dacapacidade computacional e armazenamentodisponíveisemumarede de computadorespotencialmente grande. Em principio, emsistemaspontoaponto,todonóde rede pode estarciente a respeitode qualqueroutronó,pode fazerconexõescomele e pode trocardadoscom ele. Em uma arquiteturadescentralizada,osnosde rede nãosão simplesmente elementos funcionais,maistambémchavesde comunicaçãoque podemguiarossinaisde dadose de controle de umnó para o outro. No entantoquandose recuperaumdocumento,onó que estarecuperandose tornavisível para outros. 7 ARQUITETURA DE SISTEMA ORIENTADOA SERVIÇOS A essênciade umserviço,é que ofornecimentodosserviçosé independentedaaplicaçãoque usa o serviço.Os provedoresde serviçospodemdesenvolverserviçosespecializadose oferecê-losaumagama de usuáriosde serviçosde organizaçõesdiferentes. A propostoWEB Service foi lançadapoisoacessode servidoresweb,erasomente pormeiode navegarweb,e o acessodiretoaos repositóriosde informaçõesporoutrosprogramasnão era pratico. Os trêspadrõesfundamentaisque possibilitamcomunicaçãoentre WEBSERVICESsão: SOP.Define umaorganizaçãopara troca estruturadade dadosentre WEB SERVICES. WSDL. Define comoasinterfacesdosWEB servicespodemserrepresentadas. UDDI. Este é um padrão de descobrimentoque define comoasinformaçõesde descriçãodo serviçousadaspelossolicitantesdoserviçosparadescobrirserviços,pode serorganizada.
  • 10. TodosessespadrõessãobaseadosemXML CAPITULO13 – Arquiteturade aplicações 1 sISTEMASDE PROCESSAMENTODE DADOS Aplicaçõesde processamentode dados. São Aplicaçõesvoltadosadados.ElasProcessamdadosemlotessemintervençõesexplicitas do usuáriodurante oprocessamento.AsAçõesexplicitastomadaspelaaplicaçãodependem dos dadosque são processados.Ossistemasde processamentoemlotessãonormalmente usadosemaplicaçõesde negóciosnasquaisasoperaçõessimilaressãorealizadassobre uma grande quantidade de dados.Elestratamde uma grande variedade de funções administrativas,comofolhade pagamento,cobrança,contabilidadee publicidade.Essas aplicações enfocamosdados.Osbancosde dadossão geralmente maioresque ossistemasde informações(SI). Os sistemasde processamentode dados selecionamosdadosde registrosde entradae,dependendodovalordoscamposnos registros,tomamalgumasaçõesespecificadasnoprograma.Elespodem, então,enviaro resultadonovamentedoprocessamentoaobancode dados e formatar a entradae a saída processadapara impressão. Os sistemasde processamentode dadospossuem3componentesprincipais: 1 Entrada.A entradacoletaas entradasde umaou maisfontes. 2 processamento.Oprocessamentorealizaacomputaçãousandoessasentradas. 3 saída. A saída geraSaídas a seremescritasnovamentenobancode dadose ou impressas. Os componentesde entrada,processamentoe de saídapodemserdecompostosaindaem uma estruturaentrada-processamento-saída.Exemplo: Um componente de entradapode leralgumdadode um arquivooubanco de dados(entrada) e corrigiralgunserros(processo) e,depoisenfileirarosdadosvalidosparaprocessamento (saída) São sistemasorientadosafunções,poisosregistrose astransaçõessão processadosemserie, semnecessidade de manteroestadoentre astransações. 2 sistemasde processamente de transações Os sistemasde transaçõessãoprojetadosparaprocessarsolicitaçõesde informaçõespor usuáriosde um bancode dados.Tecnicamente umasequenciade operaçõesé tratadacomo uma unidade simples(umaunidade atômica).Todasasoperaçõestemque serrealizadasantes que as mudançastornem-se permanentesnobancode dados. Os sistemasde processamentode transaçõessãogeralmentesistemasinterativosnosquaisos usuáriosenviamsolicitaçõesassíncronasde serviço.Primeiroumusuáriofaz uma solicitaçãoparao sistemaatravésde umcomponente de processamentode
  • 11. entrada/saída.A solicitaçãoé processadaporalgumalógicaespecificadaaplicação.Uma transação é criada e passadapara um gerenciadorde transações,que é emgeral incorporado ao sistemade gerenciamentode bancode dados.Depoisque ogerenciadorde transações assegurarque a transação foi concluídaadequadamente,ele sinalizaraparaa aplicaçãoque o processamentofoi finalizado. A estruturaentrada-processo-saídase aplicaaosmuitossistemasde processamentode transações.Algunsdesses sistemassãoversõesinterativasde sistemasde processamentode lotes. Um exemplode sistemade processamentode transaçõesé umsistemabancárioque permite aos clientesconsultaremsuascontase retiraremdinheirode umcaixaeletrônico.Osistemaé compostode doissubsistemasde software que cooperamentre si –o software de caixa eletrônicoe osoftware de processamentode contaslocalizadasnoservidorde bancode dados.Os subsistemasde entradae de saídasão implementadoscomosoftwaresnocaixa eletrônico,umavezque osubsistemade processamentoestánoservidorde bancode dadso. Em sistemascomoos de contabilidadede clientesde umbanco,pode haverdiferentes maneirasde interagircomo sistema.Muitosclientesinteragirãopormeiode caixas eletrônicos,masumaequipe dobancousara terminaisde mesaparaacessar o sistema.Pode haverváriostiposde caixaseletrônicose terminaisde mesa,e algunsclientese aequipe do banco podemacessarosdados de contas por meiode navegadoresWEB. Para simplificarogerenciamentode diferentesprotocolosde comunicaçãoentre terminais, sistemasde processamentode transaçõesde largaescalapodemincluirmiddleware para comunicaçãocom todosos tiposde terminal,organizaçãoe ordenaçãoemserie dosdadosdos terminaise enviodosdadosparaprocessamento. 3 Sistemasde gerenciamentode informaçõese recursos Um sistemade informaçõespermiteacessocontroladode umagrande base de informações, taiscomo catalogode bibliotecas,tabelade horáriosde voosouregistrosde pacientesemum hospital.OdesenvolvimentodaWEBfezcom que um grande numerode sistemasde informaçõesmigrasse de sistemasorganizacionaisespecializadosparasistemasde propósito geral acessíveisuniversalmente. O sistemade informaçãoé modeladocomouso de uma abordagemde camadas oude maquinaabstratana qual a camada superiorapóiaa interface comousuárioe a camada inferior,obancode dados de sistema.A camada de comunicaçõesinclui umalógicaespecifica de aplicação para acessoe atualizaçãodo bancode dados. Sistemasde alocaçãode recursossão uma classe de aplicaçãoamplamente usada.Sua arquiteturaestaalinhadacomo modelode sistemade informações.Oscomponentesde um sistemade alocaçãode recursosinclui: 1- um banco de dadosde recursosque mantémdetalhesde recursosque sãoalocados.Os recursospodemseradicionadosouremovidosdobancode dados. 2- Um conjuntode regrasque descreve asregrasde alocaçãode recursos. 3- um componente de gerenciamentode recursosque permiteque oprovedorde recursos adicione,editeouelimine recursosdosistema. 4- um componente de alocaçãode recursosque atualizaobanco de dados de recursosquando elessãodesignadose que associaesse recursosadetalhesdosolicitante dorecurso.
  • 12. 5- um modulode autenticaçãode usuáriosque permite aosistemaverificarse osrecursos estãosendoalocadospara umusuárioreconhecido. 6- um modulode gerenciamentode consultasque permite aousuáriodescobrirquaisrecursos estãodisponíveis. 7- um componente de entregade recursosque preparaosrecursosa serementreguesao solicitante.Emumsistemade emissãode ingressos,issopodeenvolverapreparaçãode uma confirmaçãopor e-mail,oenviode umasolicitaçãoparaumaimpressoraque imprime os ingressose osdetalhesde paraonde os ingressosdevemserenviados. 8- um componente de interfacecomousuárioque esta forado sistemae permite ao solicitante dorecursoenviarconsultase solicitaçõesparaorecursoa ser alocado. 4 Sistemasde processamentode eventos O sistemasde processamentode eventosrespondemaoseventosdoambienteoudainterface com o usuáriodo sistema.A principal característicadossistemasde processamentode eventosé que a sequenciade eventosé imprevisível e osistemadeve sercapazde trabalhar com esseseventosquandoelesocorrerem. Sistemasde temporeal,sãotambémsistemasde processamentobaseadosemeventos, poremao invésde tereventosde interface comousuário,temeventosassociadosa sensores e atuadoresdosistema. 5 Sistemasde processamentode linguagens Os sistemasde processamentode linguagensaceitamumalinguagemnatural ouartificial como entradae geram algumaoutra representação dessalinguagemcomosaída.Em engenhariade software,ossistemasde processamentode linguagensmaisamplamenteusadossãooscompiladoresque traduzemumalinguagem artificial de programaçãode altonível emcódigode maquina.Maisoutrossistemasde processamentode linguagenstraduzemumadescriçãode dadosXML emcomandospara consultarum bancode dadose sistemasde processamentode linguagemnatural que tentam traduziruma linguagememoutra. Os tradutoresemumsistemade processamentode linguagenstemumaarquiteturagenérica que inclui osseguintescomponentes: 1. Um analisadorléxico,que obtémelementosdalinguagemde entradae osconverte emum formatointerno. 2. uma tabelade símbolosque mantéminformaçõessobre osnomesde entidades(variáveis, nomesde classes.) usadasnotextoque estasendotraduzido. 3. um analisadorsintático,que verificaasintaxe dalinguagemque estásendotraduzida.Ele usa uma gramáticadefinidade linguageme constrói umaarvore de sintaxe. 4. ume árvore de sintaxe,que é umaestruturainternaque representaoprograma que esta sendocompilado. 5. um analisadorsemântico,que usainformaçõesdaárvore de sintaxe e databelade símbolos para verificaracorreção sintáticado textodalinguagemde entrada. 6. um geradorde códigoque ‘caminha’pelaárvore de sintaxe e gerao códigode maquina abstrata.
  • 13. capitulo29 – gerenciamentode configurações Gerenciamentode configuraçõesé odesenvolvimentoe ousode padrõese procedimentos para o gerenciamentode sistemasde software emdesenvolvimento.HamuitasrazõesPorque os sistemasexistememdiferentesconfigurações.Configuraçõespodemserproduzidaspara diferentescomputadores,paradiferentessistemasoperacionais,incorporandofunções especificasde clientes. Os gerentesde configuraçõessãoresponsáveispormantera rastreabilidade dasdiferenças entre versõesde software,paraassegurarque asnovasversõessejamderivadasde maneira controladae liberarnovasversõesparaclientescertosnomomentocerto. 1 Planejamentode gerenciamentode configurações O planode gerenciamentode configuraçõesdescreveospadrõese procedimentosque devem serusadospara o gerenciamento.Opontode partidapara o desenvolvimentodoplanodeve serum conjuntode padrõesde configuração,que devemseradaptadospara se atenderaos requisitose asrestriçõesde cadaprojetoespecífico. 1 IDENTIFICAÇÃODEITEMDE CONFIGURAÇÃO Em um grande sistemade software,pode havermódulosde milharesde códigosfonte,scripts de testes,documentosde projetoetc.Elessãoproduzidosporpessoasdiferentese,quando criados,podemserdenominadoscomnomessimilaresouidênticos.Paramantera rastreabilidadede todasessasinformaçõesde maneiraque oarquivocertopossaser encontradoquandofornecessáriovocê necessitade umesquemade identificaçãoconsistente para todosos itensnosistemade gerenciamentode configurações. Durante o processode planejamentode gerenciamentode configuração,você decide exatamente quaisitensserãocontrolados.Planosde projetos,especificações,projetos, programas,e massade dadosde teste sãonormalmente mantidoscomoitensde configuração.Todososdocumentosque podemser uteisparaa evoluçãofuturadosistema devemsercontroladospelosistemade gerenciamentode configuração. O esquemade identificaçãode itensde configuraçãodeve atribuirumúniconome paratodos os documentossobcontrole de configuração.Esse nome pode refletirotipodoitem, uma parte do sistemaaoqual ele se aplica,o criadordo item.Noesquemade atribuiçãode nomes, você pode desejarevidenciararelaçãoentre ositensparagarantir que os documentos relacionadospossuamumamesmaraizemseusnomes.Portanto,você pode definirum esquemade hierarquiacomnome. Esquemasde nomeshierarquizadossãosimplese de fácil compreensão:algumasvezes, podemmapearumaestruturade diretóriosusadaparaarmazenararquivosde projeto.No entanto,refletemaestruturade projetonaqual o software foi desenvolvido.Osnomesde itensde configuraçãoassociamcomponentes comumprojetoespecificoe,dessamaneira, reduzemasoportunidadesparaoreuso.Pode sermuitodifícil encontrarcomponentes relacionados.
  • 14. 2 BANCODE DADOSDE CONFIGURAÇÃO O banco de dadosde configuraçãoé utilizadopararegistrartodasas informaçõesrelevantes sobre as configuraçõesde sistemae ositensde configuração.Você usaobanco de dadosCM para auxiliaraavaliaçãodo impactodas mudançasde sistemae para gerar relatóriosparaa gerenciasobre oprocessode CM. Comoparte do processode CM, deve-se definiroesquema do bancode dadosde CM, os formuláriosparacoletarinformaçõesparaseremregistradasno banco de dadose procedimentospararegistroe recuperaçãode informaçõesde projeto. Um banco de dados de configuraçãopode registrarinformaçõessobre usuáriosde componentes,clientesde sistemas,plataformasde execução,mudançaspropostase etc. De preferência,umbancode dadosde configuraçãodeve serintegradocomaversãodo sistemade gerenciamentousadaparaarmazenare gerenciarosdocumentosformaisdo projeto. Um banco de dados de configuraçãoarmazenainformaçõessobre itensde configuraçãoe referenciaseusnomesnumsistemade gerenciamentode versãooudepósitode arquivos. 2 Gerenciamentode mudanças As necessidadese requisitosorganizacionaisalteram-se durante avidaútil de umsistema.Isso significaque você precisafazerasmudançascorrespondentesnosistemade software.Para garantir que essasmudançasserãoaplicadasaosistemade maneiracontrolada,você precisa de um conjuntode procedimentosde gerenciamentode mudançasapoiadoporferramentas. Procedimentosde gerenciamentode mudançadizemrespeitoaanalise de custoe beneficio das mudançaspropostas,a aprovaçãodas mudançasviáveise a rastreabilidade de quais componentesdosistemaforamalterados.Oprocessode gerenciamentode mudançadeve surtirefeitoquandoosoftware oua documentaçãoassociadasãocolocadosembaseline pela equipe de gerenciamentode configurações. O primeiroestágionoprocessode gerenciamentode configuraçõesé completarum formuláriode solicitaçãode mudança(CRF – change requestform) que descreveamudança necessáriaparao sistema.Umavezque o formuláriode solicitaçãode mudançaé enviado,ele deve serregistradonobanco de dadosde configuração.A solicitaçãode mudançaé então analisadapara verificarse amudança solicitadaé necessária. Para mudançasvalidas,oestagioseguinte é aavaliaçãodamudança e o custo.O impactoda mudançano restante dosistemadeve serverificado.Issoenvolvetodososcomponentes afetadospelamudança.Se realizaramudança significaque mudançasadicionaisemalguma parte do sistemasãonecessárias,issoaumentaclaramente ocustode sua implementação.Em seguidaasmudançasnecessárias paraos módulosdosistemasãoavaliadas.Finalmente,o custo para realizara mudançaé estimado,considerandooscustosde mudançanos componentesrelacionados. 3 gerenciamentode versõese releases Os processosenvolvidosnogerenciamentode versõese relasespreocupam-se coma identificaçãoe a manutençãodarastreabilidadedasversõesde umsistema.Gerentesde versõesidealizamprocedimentosparaassegurarque as versõesde umsistemapossamser
  • 15. recuperadasquandosolicitadase nãosejamalteradasacidentalmentepelaequipede desenvolvimento.Paraprodutos,osgerentestrabalhamcomaequipe de marketing,e ,para sistemasfeitossobencomenda,comosclientes,paraplanejarquandonovosreleasesde um sistemadevemsercriadose distribuídosparaimplantação. Um release dosistemaé umaversãodistribuídaaosclientes.Cadareleasedeve incorporar novasfuncionalidadesouserplanejadoparaumaplataformadiferentede hardware. 1 IDENTIFICAÇÃODEVERSÕES Para criar uma versãoespecificade umsistema,você precisaespecificarasversõesdos componentesde sistemaque devemserincluídasnele.Você nãopode usaro nome doitemde configuraçãopara identificaraversão,porque ele pode termuitasversõesparacada item de configuraçãoidentificado. A trêstécnicasbásicaspara identificaçãodaversãode componentes. 1. Numeraçãode versões.Ocomponente recebe umnumeroexplicitoe únicode versão.Issoé o maiscomumente usadonoesquemade identificação. 2. identificaçãobaseadaematributos.Cadacomponente temumnome (comoonome do item de configuração,que nãoé únicopara diferentesversões) e umgrupode atributosassociados para cada versão,componentessãoportanto,identificadospelaespecificaçãode seusnomes e valoresde atributos. 3. identificaçãoorientadaamudanças.Cada componente é denominadocomonaidentificação baseadaematributos,masé tambémassociadocomuma ou maissolicitaçõesde mudanças. Ou seja,considera–se que cada versãode componente foi criadaemrespostaauma ou mais solicitaçõesde mudanças.A versãode componente é identificadapeloconjuntode solicitaçõesde mudançasque se aplicamaocomponente. 2 GERENCIAMENTODE RELEASES Um release de sistemaé umaversãodosistemadistribuídoparaosclientes.Osgerentesde release de sistemassãoresponsáveispordecidirquandoumsistemapode serliberadoparaos clientes,gerenciaroprocessode criaçãodo release e de meiosde distribuiçãoe documentaro release paraassegurarque ele pode serrecriadoexatamente comofoi distribuído,se for necessário. A criação de um release é umprocessode criação de arquivose documentosque inclui todos os componentesdoreleasedosistema.Ocódigoexecutável de programase todosos arquivos de dados associadosdevemsercoletadose identificados.Se osmanuaisaseremlidosem computadoressãodistribuídos,copiaseletrônicasdevemserarmazenadascomosoftware. Finalmente,quandotodasasinformaçõesestiveremdisponíveis,odiretóriodorelease é manipuladoparaa distribuição. Quandoum release de sistemaé produzido,eledeveserdocumentadoparaassegurarque possaser recriadoipsisliterisnofuturo.Issoé importante parasistemasembutidosde ciclode vidalongoe feitospara osclientes,comoaquelesque controlammaquinascomplexas. Para documentarumrelease você deve registrarasversõesespecificasdoscomponentesde códigofonte usadospara criar o códigoexecutável.Você deve mantercompiasdoscódigos fonte e códigoexecutável,e de todososarquivosde dadose de configuração.Você deve
  • 16. tambémregistraras versõesdosistemaoperacional,asbibliotecas,oscompiladorese outras ferramentasusadasparaconstruiro software.Elaspodemsernecessáriasparaconstruir exatamente omesmosistemaemalgumadataposterior. 4 construçãode sistemas A construçãode sistemasé umprocessode compilaçãoe ligaçãode componentesde software numprograma que executadeterminadaconfiguraçãodefinida.Quandovocê estaconstruindo um sistemacombase emseuscomponentes,você devepensarnasseguintesquestões: 1. Todos os componentesque compõemumsistemaforamincluídosnasinstruçõesde construção? 2. A versãoapropriadade cada componente necessáriofoi incluídanasinstruçõesde construção? 3. todos osarquivosde dadosnecessáriosestãodisponíveis? 4. Se os arquivosde dadosestãoreferenciadosdentrode umcomponente,onome usadoé o mesmoque o doarquivode dados na maquina – alvo? 5. A versãoapropriadado compiladore de outrasferramentasrequeridasestadisponível?As versõesatuaisdasferramentasde software podemserincompatíveiscomasversõesantigas usadaspara desenvolverosistema. 5 ferramentascase paragerenciamentode configurações Processosde gerenciamentode configuraçõessãonormalmente padronizadose envolvem aplicaçõesde procedimentospredefinidos.Elesrequeremogerenciamentocuidadosode grande quantidade de dadose é essencial aatençãoaos detalhes.Quandoumsistemaestá sendoconstruídocom base emversõesde componentes,umúnicoerrode gerenciamentode configuraçãopode significarque osoftware nãoirá operaradequadamente. Conseqüentemente,oapoiode umferramentaCASEé essencial paraogerenciamentode configuração.Essasferramentaspodemsercombinadasparacriaruma área de trabalhopara apoiartodas as atividadesde CM. REFERÊNCIAS SOMMERVILE, Ian.ENGENHARIA DE SOFTWARE.8 Edição. SãoPaulo:PearsonAddisonWesley, 2007.