Upload
jairo-junior
View
724
Download
0
Embed Size (px)
DESCRIPTION
Apresentação do mini curso de arquitetura de software proferido na Desenvolve - Maceió/AL
Citation preview
jairobjunior {@gmail, slideshare, linkedin e twitter}
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.
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
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;
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;
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.
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;
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)
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.
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
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
Liderança;
Visão estratégia;
Gestão de relações humanas;
Boa Comunicação;
Cabe ao arquiteto as tomadas de decisões e assumir estas decisões, em muitas vezes não são
simples.
Deve conseguir observar as coisas como um todo e fazer escolhas que maximizem ROI.
Lida com pessoas de negócio, precisa compreender implicações políticas para as
decisões e deve ser acessível.
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;
Smarty templating; PEAR for XML and Email parsing; Mysql; ImageMagick;
Perl for controlling; Java, for the node service; Apache 2, Redhat
WWW
http://docs.oracle.com/javaee/5/tutorial/doc/figures/overview-multitieredApplications.gif
Cliente = Apresentação + Lógica de negócio Servidor = Banco de dados
Segurança e Performance
Disponibilidade, Escalabilidade, Gerenciamento e Manutenabilidade
Confiança
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
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
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;
Ó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.
Framework é um conjunto de classes que colaboram para realizar uma responsabilidade
para um domínio de um subsistema da aplicação.
FAYAD e SCHMIDT
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;
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