15
Arquitetura de Software: Introdução Prof. Fellipe Aleixo ( [email protected])

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

  • Upload
    vanhanh

  • View
    229

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 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

ArquiteturadeSoftware:Introdução

Prof.FellipeAleixo([email protected])

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Próximos Encontros

• Identificandoo(s)problema(s)aser(em)resolvido(s)...