Arquitetura de Software
-
Upload
jairo-junior -
Category
Technology
-
view
724 -
download
0
description
Transcript of Arquitetura de Software
![Page 1: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/1.jpg)
jairobjunior {@gmail, slideshare, linkedin e twitter}
![Page 2: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/2.jpg)
Arquitetura é um conjunto de estruturação de princípios que possibilita um sistema de ser composto por
outro conjunto mais simples, onde cada um possui seu próprio contexto independente, não podendo ser
incompatível com todo o sistema.
Sun Microsystem, Inc.
![Page 3: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/3.jpg)
Costumo dizer aos estudantes de Arquitetura que não basta sair da escola para ser bom profissional. O sujeito tem de se abrir para o mundo e não ficar atrás da visão estreita
dos especialistas.
Oscar Niemeyer
![Page 4: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/4.jpg)
Consultor Java – BlendIT / Indra Company;
Pós-Graduação em Gerência de Projetos;
Graduado em Sistema de Informação;
Sook – Empresa pré-incubada na IET;
Certificações: SCJP & SCWCD;
![Page 5: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/5.jpg)
![Page 6: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/6.jpg)
1. Compreender a importância da arquitetura de software
em projetos;
2. Entender qual é o papel de um arquiteto de software;
3. Como os "grandes" funcionam?
4. Aplicar uma arquitetura de software a um estudo de
caso, utilizando o Drumon - Framework;
![Page 7: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/7.jpg)
Final da década de 60 e início da década de 70
Estrutura de software;
Encapsulamento de informação;
Separação de interface gráfica e implementação;
Década de 90
Orientação a objetos;
Componentes;
Internet;
*Fator crítico de sucesso no desenvolvimento de software.
![Page 8: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/8.jpg)
Supremo Tribunal Federal / Congresso Nacional / Palácio do Planalto
Quanto maior e mais complexo, mais relevante se
torna a definição de sua arquitetura;
Mudanças no projeto podem causar impactos
significativos na arquitetura;
![Page 9: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/9.jpg)
Arquitetura são os principais elementos do
sistema, as peças que são difíceis de mudar (Martin)
Arquitetura é toda decisão que impactam em grandes trade-offs e que podem ou não
serem difíceis de mudar. (Paulo Silveira)
Arquitetura são as decisões que
gostaríamos de ter tomado no começo do
projeto. (Ralph)
![Page 10: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/10.jpg)
![Page 11: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/11.jpg)
Se cria uma arquitetura para suportar diversos níveis de serviços, como: disponibilidade, confiança e
escalabilidade, que são requisitos de um sistema.
![Page 12: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/12.jpg)
![Page 13: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/13.jpg)
O arquiteto ideal deve ser uma pessoa erudita, um matemático, familiarizado com estudos históricos,
um estudioso aplicado de filosofia, conhecedor de música, que não desconheça medicina, detentor de
saber jurídico e familiarizado com astronomia e cálculos astronômicos." - Vitruvius, circa 25 BC
![Page 14: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/14.jpg)
O desenvolvedor estar concentrado no que ocorre quando um usuário pressiona um botão, enquanto um arquiteto estar concentrado o que ocorre quando dez
mil usuário pressionam um botão.
Paul R. Allen, Joseph J. Bambara - SCEA
![Page 15: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/15.jpg)
Liderança;
Visão estratégia;
Gestão de relações humanas;
Boa Comunicação;
![Page 16: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/16.jpg)
Cabe ao arquiteto as tomadas de decisões e assumir estas decisões, em muitas vezes não são
simples.
![Page 17: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/17.jpg)
Deve conseguir observar as coisas como um todo e fazer escolhas que maximizem ROI.
![Page 18: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/18.jpg)
Lida com pessoas de negócio, precisa compreender implicações políticas para as
decisões e deve ser acessível.
![Page 19: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/19.jpg)
Deve saber utilizar um vocabulário próprio para cada situação e deve ser capaz de explicar
modelos para a área de negócios, as necessidades à gerenência e a arquitetura aos
técnicos;
![Page 20: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/20.jpg)
![Page 21: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/21.jpg)
Smarty templating; PEAR for XML and Email parsing; Mysql; ImageMagick;
Perl for controlling; Java, for the node service; Apache 2, Redhat
![Page 22: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/22.jpg)
![Page 23: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/23.jpg)
![Page 24: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/24.jpg)
![Page 25: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/25.jpg)
![Page 26: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/26.jpg)
![Page 27: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/27.jpg)
![Page 28: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/28.jpg)
![Page 29: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/29.jpg)
WWW
![Page 30: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/30.jpg)
![Page 31: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/31.jpg)
![Page 32: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/32.jpg)
![Page 33: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/33.jpg)
http://docs.oracle.com/javaee/5/tutorial/doc/figures/overview-multitieredApplications.gif
![Page 34: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/34.jpg)
Cliente = Apresentação + Lógica de negócio Servidor = Banco de dados
Segurança e Performance
Disponibilidade, Escalabilidade, Gerenciamento e Manutenabilidade
Confiança
![Page 35: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/35.jpg)
3-Camadas = web, negócio e recurso; N-Camadas = web, negócio, integração e recurso;
Escalabilidade, Disponibilidade, Extensibilidade, Manutenabilidade e Gerenciamento
Complexidade
Segurança e Performance
![Page 36: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/36.jpg)
Model-view-controller (MVC) é um modelo de desenvolvimento de Software, atualmente considerado uma "arquitetura padrão" utilizada na Engenharia de Software. O modelo isola a "lógica" (A lógica da aplicação) da interface do
usuário (Inserir e exibir dados), permitindo desenvolver, editar e testar separadamente cada parte.
Wikipedia
![Page 37: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/37.jpg)
Model, View e Controller;
Smalltalk-80; por Trygve Reenskaug em 79;
Java’s Swing;
MVC é ideal para desenvolvimento Web com GUI;
Se tornou mais popular com Ruby on Rails;
Bom número de frameworks MVC em PHP foram
inspirados em Rails;
RAD – Reuso;
![Page 38: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/38.jpg)
![Page 39: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/39.jpg)
Ótimo design arquitetural:
O código fica organizado e estruturado;
Um código bem estruturado se torna mais fácil o
entendimento e localização na estrutura de diretórios;
Fácil de manter o código:
A abstração, minimizar a busca por lugares durante
a alteração;
Fácil de estender e aumentar:
Implementações em classes pais, podem ser reutilizadas.
![Page 40: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/40.jpg)
Framework é um conjunto de classes que colaboram para realizar uma responsabilidade
para um domínio de um subsistema da aplicação.
FAYAD e SCHMIDT
![Page 41: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/41.jpg)
![Page 42: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/42.jpg)
![Page 43: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/43.jpg)
![Page 44: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/44.jpg)
![Page 45: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/45.jpg)
![Page 46: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/46.jpg)
![Page 47: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/47.jpg)
![Page 48: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/48.jpg)
![Page 49: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/49.jpg)
Sun Certified Enterprise Architect for Java EE, Study Guide; Marl
Cade and Humphrey Sheil
Sun Certified Enterprise Architect for Java EE, Study Guide; Paul
R. Allen Joseph J. Bambara;
Patterns of Enterprise Application Architecture; Martin Fowler
Core J2EE Patterns; Alur, Crupi and Malks
Arquitetura de Software, Um pouco sobre arquitetura e o
arquiteto – Vinicius Quaiato;
O impacto do design na sua arquitetura – Paulo Silveira;
![Page 50: Arquitetura de Software](https://reader035.fdocumentos.tips/reader035/viewer/2022062320/559790561a28abd5368b4874/html5/thumbnails/50.jpg)
http://noupe.com/img/ror/authentication.jpg http://themarketingmentor.co.uk/marketing_mentor_blog/wp-
content/uploads/2008/10/istock_000004471659medium.jpg http://t1.gstatic.com/images?q=tbn:ANd9GcRyAE8pM3whLxCTrM
c1c3DlOmufv29Irm0MeGkCgnH9VFHoUmKqMyI3BT-XlA http://www.design-glassware.com/img/cms/paypal__secure.jpg http://media.arstechnica.com/news.media/z890.jpg http://images-
4.findicons.com/files/icons/977/rrze/720/database_mysql.png http://www.nuvemseo.net/wp-content/uploads/2010/02/rss-feed-
assinar-123.png http://www.linhadecodigo.com.br/artigos/img_artigos/vspj/vspj5/fi
g1_vspj5_p95.jpg