arquitetura de software: introdução -...
TRANSCRIPT
![Page 2: Arquitetura de Software: Introdução - diatinf.ifrn.edu.brdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:1301182:... · Documento de Arquitetura •Todos os componentes descritos](https://reader034.vdocuments.pub/reader034/viewer/2022052309/5c60d0a409d3f2256a8c1e25/html5/thumbnails/2.jpg)
PrimeiraAnalogia:
![Page 3: Arquitetura de Software: Introdução - diatinf.ifrn.edu.brdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:1301182:... · Documento de Arquitetura •Todos os componentes descritos](https://reader034.vdocuments.pub/reader034/viewer/2022052309/5c60d0a409d3f2256a8c1e25/html5/thumbnails/3.jpg)
Oqueé Arquitetura deSoftware?
• Significacoisasdiferentesparapessoasdiferentes...• Paraumdesenvolvedor...estruturadosistemaaserconstruído• Paraocriador deumframework…aformadossistemascriados comoframework• Paraumtestador…aformadosistemaasertestado• Paraosdemaisenvolvidos...estruturadealtonível paraasolução doproblema que ocliente quer ver resolvido
![Page 4: Arquitetura de Software: Introdução - diatinf.ifrn.edu.brdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:1301182:... · Documento de Arquitetura •Todos os componentes descritos](https://reader034.vdocuments.pub/reader034/viewer/2022052309/5c60d0a409d3f2256a8c1e25/html5/thumbnails/4.jpg)
Definição1
“Oconjuntodedecisõessignificativassobreaorganização deumsistemadesoftware,aseleçãode
elementosestruturaisesuasinterfaces quecompõemosistema,juntamentecomoseucomportamento,conformeéespecificadonascolaboraçõesentreoselementos,acomposição
desseselementosestruturaisecomportamentaisemsubsistemasprogressivamentemaioreseoestilodearquiteturaqueorientaessaorganização– esses
elementosesuasinterfaces,suascolaboraçõesesuacomposição.”
(TraduçãodeGrady Booch,JamesRumbaugh,IvarJacobson)
![Page 5: Arquitetura de Software: Introdução - diatinf.ifrn.edu.brdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:1301182:... · Documento de Arquitetura •Todos os componentes descritos](https://reader034.vdocuments.pub/reader034/viewer/2022052309/5c60d0a409d3f2256a8c1e25/html5/thumbnails/5.jpg)
Definição2
“Aarquiteturadesoftwarenãoestárelacionadasomente comaestruturaeocomportamento,mas
tambémcomautilização,funcionalidade,desempenho,flexibilidade,reutilização,abrangência,restrições eajusteseconômicosetecnológicose
questões estéticas.”(TraduçãodeGrady Booch,JamesRumbaugh,IvarJacobson)
![Page 6: Arquitetura de Software: Introdução - diatinf.ifrn.edu.brdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:1301182:... · Documento de Arquitetura •Todos os componentes descritos](https://reader034.vdocuments.pub/reader034/viewer/2022052309/5c60d0a409d3f2256a8c1e25/html5/thumbnails/6.jpg)
Motivação
•Crescentetamanhoecomplexidadedossistemas
•Comoorganizarecontrolar• aestruturadossistemasdesoftware?• osprotocolosdecomunicação,sincronizaçãoeacessoadados?• aatribuiçãodefuncionalidadeàelementosdoprojeto?• adistribuiçãofísica?• acomposiçãodoselementosdeprojeto?• aescalabilidadeeaperformance?• aescolhaentrealternativasdeprojeto?
![Page 7: Arquitetura de Software: Introdução - diatinf.ifrn.edu.brdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:1301182:... · Documento de Arquitetura •Todos os componentes descritos](https://reader034.vdocuments.pub/reader034/viewer/2022052309/5c60d0a409d3f2256a8c1e25/html5/thumbnails/7.jpg)
PrincípiosArquiteturais
•Regrasoupadrõesqueajudamosengenheirosdesoftwareatomarasdecisõescorretas
•Deondesurgemessas“regras”e“padrões”?1. Aplicarção prática depropostas deorganização2. Avaliaçãoempírica(“baseadanaexperiência”)3. Identificarsoluções recorrentemente bem sucedidas4. Catalogar parautilização futura
![Page 8: Arquitetura de Software: Introdução - diatinf.ifrn.edu.brdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:1301182:... · Documento de Arquitetura •Todos os componentes descritos](https://reader034.vdocuments.pub/reader034/viewer/2022052309/5c60d0a409d3f2256a8c1e25/html5/thumbnails/8.jpg)
DefinindoaArquiteturadeSoftware
•Principiacomoentendimento dosrequisitos dosistemaaserdesenvolvidos• Identificação dosrequisitos arquiteturalmentesignificantes – têm impacto na arquitetura• Tomar decisões combasenessesrequisitos
•Asdecisões tomadas durante acriação daarquitetura são fundamentais paraosistema• Pois elas irão embasar todas asdemais decisões seguintes
![Page 9: Arquitetura de Software: Introdução - diatinf.ifrn.edu.brdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:1301182:... · Documento de Arquitetura •Todos os componentes descritos](https://reader034.vdocuments.pub/reader034/viewer/2022052309/5c60d0a409d3f2256a8c1e25/html5/thumbnails/9.jpg)
DefinindoaArquiteturadeSoftware
•Algumasarquiteturasdesoftwaresão melhordescritas como ”grandes bolasdelama”• Difícil deconstruir• Difícil demanter• Podem não atender aos requisitos docliente
![Page 10: Arquitetura de Software: Introdução - diatinf.ifrn.edu.brdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:1301182:... · Documento de Arquitetura •Todos os componentes descritos](https://reader034.vdocuments.pub/reader034/viewer/2022052309/5c60d0a409d3f2256a8c1e25/html5/thumbnails/10.jpg)
ComponentesdeumaArquiteturadeSoftware1. Metas e”filosofia”dosistema2. Premissas edependências arquiteturais3. Requisitos arquiteturalmente significantes4. Instruções deempacotamento paraos subsistemas e
componentes5. Subsistemas e”camadas”críticas6. Referências aos elementos deprojeto
arquiteturalmente significantes7. Interfaces críticas paraosistema8. Cenários chave que descrevem comportamentos
críticos paraosistema
![Page 11: Arquitetura de Software: Introdução - diatinf.ifrn.edu.brdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:1301182:... · Documento de Arquitetura •Todos os componentes descritos](https://reader034.vdocuments.pub/reader034/viewer/2022052309/5c60d0a409d3f2256a8c1e25/html5/thumbnails/11.jpg)
DocumentodeArquitetura
• Todososcomponentesdescritosacimaestarãopresentes dodocumento dearquitetura,incluindo:• Decisões chave que dão formaaarquitetura• Comoaspartes trabalham juntas• Comoosistema será empacotado• Ilustração dasvisões arquiteturais (pontos devista)
![Page 12: Arquitetura de Software: Introdução - diatinf.ifrn.edu.brdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:1301182:... · Documento de Arquitetura •Todos os componentes descritos](https://reader034.vdocuments.pub/reader034/viewer/2022052309/5c60d0a409d3f2256a8c1e25/html5/thumbnails/12.jpg)
Visões Arquiteturais
1. Lógica• Mapeia osistema em classesecomponentes,partes queoferecem asfuncionalidades ou que interagemcomousuário
2. Processos• Explica como aspartes daarquiteturatrabalham juntasepermanecem sincronizadas –mapeia unidades decomputação
3. Física• Explica como osoftwareque implementa osistema é mapeadoem plataformascomputacionais (edistribuídas)
4. Desenvolvimento• Explica comoserá agerência dosoftwareduranteodesenvolvimento domesmo – permite otrabalho em equipe
![Page 13: Arquitetura de Software: Introdução - diatinf.ifrn.edu.brdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:1301182:... · Documento de Arquitetura •Todos os componentes descritos](https://reader034.vdocuments.pub/reader034/viewer/2022052309/5c60d0a409d3f2256a8c1e25/html5/thumbnails/13.jpg)
Visões Arquiteturais
•Modelo4+1paraumaarquitetura:
![Page 14: Arquitetura de Software: Introdução - diatinf.ifrn.edu.brdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:1301182:... · Documento de Arquitetura •Todos os componentes descritos](https://reader034.vdocuments.pub/reader034/viewer/2022052309/5c60d0a409d3f2256a8c1e25/html5/thumbnails/14.jpg)
Visões Arquiteturais
![Page 15: Arquitetura de Software: Introdução - diatinf.ifrn.edu.brdiatinf.ifrn.edu.br/prof/lib/exe/fetch.php?media=user:1301182:... · Documento de Arquitetura •Todos os componentes descritos](https://reader034.vdocuments.pub/reader034/viewer/2022052309/5c60d0a409d3f2256a8c1e25/html5/thumbnails/15.jpg)
Próximos Encontros
• Identificandoo(s)problema(s)aser(em)resolvido(s)...