arquitetura de software visão geral prof. wolley w. silva
TRANSCRIPT
![Page 1: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/1.jpg)
Arquitetura de SoftwareVisão Geral
Prof. Wolley W. Silva
![Page 2: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/2.jpg)
Agenda
• Introdução e Motivação • Conceitos: Arquitetura de Software • Requisitos Arquiteturalmente significativos• Padrões/Estilos Arquiteturais• Arquitetura de Software em um processo de
desenvolvimento• Visões Arquiteturais • Conclusão
![Page 3: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/3.jpg)
• Todo sistema em produção possui uma arquitetura de software.
•Palace II foi um edifício residencial construído na Barra da Tijuca, Rio de Janeiro, que foi implodido no dia 28 de fevereiro de 1998, a despeito de investigações anteriores terem encontrado em registro como causa da tragédia um erro estrutural de cálculo (assinado pelo engenheiro responsável) nas vigas de sustentação.
Introdução e Motivação
![Page 4: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/4.jpg)
• Projetos simples podem ser realiados por uma única pessoa– Pouca modelagem– Ferramentas simples– Processo simples– Pouco projeto– Pouca especialização para construir
Introdução e Motivação
![Page 5: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/5.jpg)
• Projetos complexos/Maiores exigem arquitetura– Mais modelagem– Ferramentas mais poderosas– Processos mais bem definidos– Mais projeto– Alta especialização para construção
Introdução e Motivação
![Page 6: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/6.jpg)
Conceito: O que é Arquitetura de SW?
• “É a organização fundamental de um sistema, expressa nos seus componentes, nos relacionamentos entre eles e com o ambiente, e nos princípios que governam seu projeto e sua evolução”.
Fonte: Norma 1471 do IEEE, publicada em http://www.iso-architecture.org/ieee-1471/faq.html#wharch
![Page 7: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/7.jpg)
• Sistema / programa– Uma aplicação– Um conjunto de aplicações
• Componente– Partes do sistema / modulos, subsistemas, pacotes, classes,
bibliotecas• Relacionamento
– Interação entre os componentes• Ambiente
– Embarcados, Web, Mobile, TV Digital • Princípios
– Padrões Arquiteturais
Conceito: O que é Arquitetura de SW?
![Page 8: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/8.jpg)
• Martin Fowler: “o termo arquitetura envolve a noção dos principais elementos do sistema, as peças que são difíceis de mudar. Uma fundação na qual o resto precisa ser construído”.
•Elementos estruturais: Bancos de dadosServidores de AplicaçãoSistemas OperacionaisProtocolos de RedeLinguagem de ProgramaçãoBibliotecas de TerceirosFrameworks
Conceito: O que é Arquitetura de SW?
![Page 9: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/9.jpg)
Martin Fowler: “Escolher uma arquitetura significa entender os problemas específicos do seu sistema e definir um projeto apropriado baseado nesse entendimento”.
Conceito: O que é Arquitetura de SW?
![Page 10: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/10.jpg)
Requisitos Arquiteturais
• São requisitos de um software que tem uma forte influência na definição da sua arquitetura.– Funcionais• Definem o que o software deve fazer
– Não-Funcionais• Define o que o software deve ser
![Page 11: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/11.jpg)
• Critério: Risco– Alta complexidade– Integração com outros sistemas– Integração com bibliotecas e ferramentas de terceiros
• Exemplos:– Caso de Uso “Calcular saldo devedor”
• O sistema calcula o saldo devedor aplicando a taxa de juros vigente em cada exercício
– Caso de Uso “Cadastrar fornecedor”• O sistema valida a situação cadastral do fornecedor no SERASA
– Caso de Uso “Emitir relatório de saldos contábeis”• O sistema gera um relatório em formato pdf, rtf ou html, conforme opção
do usuário
Requisitos ArquiteturaisFuncionais
![Page 12: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/12.jpg)
Requisitos ArquiteturaisNão - Funcionais
• Cada requisito não-funcional de um software está relacionado com um atributo de qualidade de software.
• Exemplos:– O tempo de resposta máxima no horário de pico
não deve ultrapassar 5 segundos.• Atributo de qualidade relacionado: Performance
– O software deve disponibilizar ajuda online no nível de tela• Atributo de qualidade relacionado: Usabilidade
![Page 13: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/13.jpg)
Padrões Arquiteturais
• São modelos reutilizáveis de organização de elementos de software, que resolvem problemas recorrentes e satisfazem requisitos arquiteturais.
• Definem responsabilidades e relacionamentos• São independentes de domínio• São também chamados estilos arquiteturais
![Page 14: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/14.jpg)
• Exemplos:– Arquitetura em camadas (tier – camadas físicas )
• Cliente – Servidor• 3 Camadas – Apresentação, Negócio e Acesso a Dados
– Arquitetura modelo-visão-controlador – MVC (layer – camadas lógicas)
– Arquitetura Orientada a Serviço (SOA) – “estilo arquitetural”
• Um software pode utilizar um ou mais padrões arquiteturais.
Padrões Arquiteturais
![Page 15: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/15.jpg)
Padrões ArquiteturaisFamílias de Padrões
• Gang Of Four – GOF• 23 – Padrões– Criação – Estrutura– Comportamento
![Page 16: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/16.jpg)
GOF – 23 Padrões de Projeto
Propósito
Escopo
Criação Estrutural Comportamental
Classe Factory Method Adapter InterpreterTemplate Method
Objeto Abstract FactoryBuilderPrototypeSingleton
AdapterBridgeCompositeFaçadeFlyweightProxy
Chain of ResposibilityCommandIteratorMediatorMementoObserverStrategyVisitor
![Page 17: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/17.jpg)
• J2EE: – Business Delegate,– Composite Entity,– Composite View,– Data Access Object,– Fast Lane, – Reader,– Front Controller,– Intercepting Filter,– Model, view ,controller– Service Locator,– Session Façade,– Transfer Object,– Value List Handler, – View Helper
Padrões ArquiteturaisFamílias de Padrões
http://java.sun.com/blueprints/corej2eepatterns/Patterns/
![Page 18: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/18.jpg)
Arquitetura de Software em um Processo de Desenvolvimento - RUP
![Page 19: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/19.jpg)
Análise e Design - Disciplina do RUP
![Page 20: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/20.jpg)
Visões Arquiteturais
• Para um edifício, são usados tipos diferentes de plantas para representar diversos aspectos da arquitetura.
Planta ElétricaPlanta Hidráulica Planta 3D
![Page 21: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/21.jpg)
Modelo de visão 4+1 da Arquitetura - RUP
Visão lógicaVisão de
implementação
Visão de processo
Visão de implantação
Visão de Caso de Uso
ProgramadoresUsuário final
Analistas
Integradores de sistemas Engenharia de Sistemas
![Page 22: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/22.jpg)
Visão Lógica• Representa abstrações do modelo de domínio
(classes), pacotes, camadas e suas dependências.
![Page 23: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/23.jpg)
Visão de Implementação
• Descreve a organização de módulos estáticos no ambiente de desenvolvimento:– Componentes
![Page 24: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/24.jpg)
Visão de processo
• Focaliza assuntos como concorrência e paralelismo, tolerância a falhas e objetos distribuídos.– Interoperabilidade– Escalabilidade
![Page 25: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/25.jpg)
Visão de implantação
• Focaliza assuntos como:– Instalação– Desempenho– Protocolos de comunicação
![Page 26: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/26.jpg)
Visão de caso de uso• Contém alguns cenários-chave usados para
dirigir a descoberta e projeto da arquitetura e posteriormente, para validar as diferentes visões.
![Page 27: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/27.jpg)
Conclusões
• Segundo Pressman, 2011– A arquitetura de software fornece uma visão
integral do sistema a ser construído. Ela representa a estrutura e a organização dos componentes de software, suas propriedades e as conexões entre eles.
![Page 28: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/28.jpg)
Conclusões
– A arquitetura destaca decisões de projeto iniciais e fornece um mecanismo para considerar os benefícios de estruturas alternativas do sistema.
![Page 29: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/29.jpg)
Conclusões
• Uma série de estilos e padrões arquiteturais encontra-se à disposição do engenheiro de software.
![Page 30: Arquitetura de Software Visão Geral Prof. Wolley W. Silva](https://reader035.vdocuments.mx/reader035/viewer/2022062418/552fc134497959413d8d7eb5/html5/thumbnails/30.jpg)
Links consultados
• http://blog.globalcode.com.br/2012/03/arquitetura-java-1.html
• http://blog.caelum.com.br/entao-voce-quer-ser-um-arquiteto-java/
• http://www.slideshare.net/kieras/arquitetura-de-software-na-prtica-1476447?from_search=1
• http://www.slideshare.net/leaoas/arquitetura-de-software-uma-viso-gerencial?from_search=2