SlideShare une entreprise Scribd logo
1  sur  30
Arquitetura de Software
Jamerson.lima@gmail.com
CONCEITOS BÁSICOS
Parte I
O que é arquitetura?
Processo
de
Controle
Modelo
de Perda
de Oxig.
Modelo
de
Reverb.
Modelo
de Ruído
O que NÃO é arquitetura?
• Novos “padrões” criados por empresas que
utilizam seus produtos e ferramentas.
• O framework ou tecnologia da moda.
• Linguagens de programação, bibliotecas
consagradas.
• Frameworks altamente configuráveis e já com
“tudo pronto”.
• Um documento ou uma apresentação.
• Um desenho de caixinhas e setinhas.
O que é arquitetura?
• Definição:
– A arquitetura de um programa ou sistema
computacional é a estrutura ou estruturas do
sistema que compreende os elementos de
software, seus elementos externos visíveis e as
relações entre elas. De “Software Architecture in
Practice, Second Edition”
O que é arquitetura?
• É uma abstração
• Parte visível e comportamento externo dos
elementos
• Várias representações
• Existe em qualquer programa
O que é arquitetura?
Planejamento &
Informação
Visões
Fonte: Wikipedia
http://en.wikipedia.org/wiki/File:IP_stac
k_connections.svg
Tipos de Visões
• Módulos
• Componente e Conector
• Alocação
Módulo
• Decomposição
• Estrutural
• Relacionamento “Usa”
• Generalização
Componente e Conector
• Processos/Threads
• Execução
• Concorrência
• Repositórios de dados
Alocação
• Deployment
– Processos e Threads
– Alocação em processadores
• Implementação
– Módulos
– Sistema de arquivos(diversos ambientes)
• Delegar trabalho
– Módulos
– Times de desenvolvimento
Modelo de visão arquitetural 4+1
Modelo de visão arquitetural 4+1
• Kruchten, Philippe (1995,
November). Architectural Blueprints — The
“4+1” View Model of Software Architecture
• Popular
• RUP
Criando uma Arquitetura
Usabilidade?
Modificabilidade?
Desempenho?
Por que não tudo?
Afetam as funcionalidades?
Afetam entre si?
Atributos de Qualidade do Sistema
Como alcançar determinados atributos?
Cenários de Atributos de Qualidade
Cenário Geral de Disponibilidade
• Fonte:
– Interna
– Externa
• Estímulo:
– Omissão
– Crash(Repetidas omissões)
– Timming
– Resposta incorreta
• Ambiente:
– Normal
– Degradado
– Operacional
• Artefato:
– Processo
– Armazenamento
– Processador
– Comunicação
• Resposta:
– Registrar
– Notificar
– Desabilitar
– Continuar
– Ficar indisponível
• Medida:
– Tempo de reparo
– Tempo de disponibilidade
Exemplo de Cenário de Disponibilidade
• Fonte: Externa
• Estímulo: Mensagem inesperada
• Ambiente: Operação normal
• Artefato: Processo
• Resposta: Informar operador e continuar a
operar
• Medida: Sem Downtime
Qualidade de Negócio
• Time to market
• Custo e benefício
• Tempo de vida projetado
• Mercado alvo
Qualidade da Arquitetura
• Integridade Conceitual
• Corretude e Completude
• Construtabilidade
PROJETANDO A ARQUITETURA
Parte II
ADD - Attribute-Driven Design
• Entradas
– Requisitos funcionais e não-funcionais
– Casos de uso
– Restrições
• Isso tudo vira cenários de requisitos de
qualidade
Passos do ADD
1. Escolha um módulo para decompor
2. Refine o módulo
1. Escolha os direcionadores arquiteturais
2. Escolha um padrão arquitetural
3. Crie módulos e defina responsabilidades
4. Defina interfaces
5. Verifique e refine os cenários de qualidades e
casos de usos
3. Repita os passos para outro módulo
PADRÕES ARQUITETURAIS
Parte III
Camadas
Fonte: Wikipedia
http://en.wikipedia.org/wiki/File:IP_stac
k_connections.svg
Camadas
• Usos conhecidos
– Máquinas virtuais
– APIs
MVC – Model-View-Controller
Fonte: Wikipedia
http://en.wikipedia.org/wiki/File:Model
ViewControllerDiagram2.svg
MVC – Model-View-Controller
• Usos conhecidos
– Smaltalk
– MFC(DocumentView)
Referências
• Software Architecture in Practice
• Documenting Software Architectures, Views and
Beyond
• Evaluating Software Architectures, Methods and
Case Studies
• Software Product Lines, Practices and Patterns
• Patterns of Enterprise Application Architecture
• Pattern-Oriented Software Architecture, Série
Wiley – Vol. 1 - 8

Contenu connexe

Tendances

Introducao a analise de testes de softwares
Introducao a analise de testes de softwaresIntroducao a analise de testes de softwares
Introducao a analise de testes de softwaresIntellecta
 
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por FuncionalidadesFeature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por FuncionalidadesHiury Araújo
 
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Cloves da Rocha
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de SoftwareLeinylson Fontinele
 
Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126Elaine Cecília Gatto
 
Design de Interação - Capítulo 8 - Design, Prototipação e Construção -
Design de Interação - Capítulo 8 - Design, Prototipação e Construção - Design de Interação - Capítulo 8 - Design, Prototipação e Construção -
Design de Interação - Capítulo 8 - Design, Prototipação e Construção - Pedro de Vasconcellos
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorMarcos Pereira
 
Fdd feature driven development (slide ) do trabalho
Fdd   feature driven development (slide ) do trabalhoFdd   feature driven development (slide ) do trabalho
Fdd feature driven development (slide ) do trabalhoLemon Lopes Leite
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwareTiago Barros
 
Feature-Driven Development - Visão Geral
Feature-Driven Development - Visão GeralFeature-Driven Development - Visão Geral
Feature-Driven Development - Visão GeralRuan Carvalho
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppCloves da Rocha
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
Processo desoftware
Processo desoftwareProcesso desoftware
Processo desoftwareDann Volpato
 

Tendances (20)

Processo e Processo de Software
Processo e Processo de SoftwareProcesso e Processo de Software
Processo e Processo de Software
 
FDD
FDDFDD
FDD
 
Introducao a analise de testes de softwares
Introducao a analise de testes de softwaresIntroducao a analise de testes de softwares
Introducao a analise de testes de softwares
 
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por FuncionalidadesFeature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
 
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
 
DSDM
DSDMDSDM
DSDM
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126
 
Design de Interação - Capítulo 8 - Design, Prototipação e Construção -
Design de Interação - Capítulo 8 - Design, Prototipação e Construção - Design de Interação - Capítulo 8 - Design, Prototipação e Construção -
Design de Interação - Capítulo 8 - Design, Prototipação e Construção -
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao Sênior
 
Fdd feature driven development (slide ) do trabalho
Fdd   feature driven development (slide ) do trabalhoFdd   feature driven development (slide ) do trabalho
Fdd feature driven development (slide ) do trabalho
 
Outras Metodologias Ágeis Parte1
Outras Metodologias Ágeis Parte1Outras Metodologias Ágeis Parte1
Outras Metodologias Ágeis Parte1
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de Software
 
Feature-Driven Development - Visão Geral
Feature-Driven Development - Visão GeralFeature-Driven Development - Visão Geral
Feature-Driven Development - Visão Geral
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
 
Outras Metodologias Ágeis Parte 2
Outras Metodologias Ágeis Parte 2Outras Metodologias Ágeis Parte 2
Outras Metodologias Ágeis Parte 2
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Apresentação fdd
Apresentação fddApresentação fdd
Apresentação fdd
 
Processo desoftware
Processo desoftwareProcesso desoftware
Processo desoftware
 
Qualidade de Software: MPS.BR
Qualidade de Software: MPS.BRQualidade de Software: MPS.BR
Qualidade de Software: MPS.BR
 

Similaire à Arquitetura de Software

Similaire à Arquitetura de Software (20)

Apresentação RUP
Apresentação RUPApresentação RUP
Apresentação RUP
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Visao geraldorup 20slides
Visao geraldorup 20slidesVisao geraldorup 20slides
Visao geraldorup 20slides
 
Macro Arquitetura de Software
Macro Arquitetura de SoftwareMacro Arquitetura de Software
Macro Arquitetura de Software
 
Aula 2 - Modelos de processos
Aula 2 -  Modelos de processosAula 2 -  Modelos de processos
Aula 2 - Modelos de processos
 
347842.ppt
347842.ppt347842.ppt
347842.ppt
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Introdução ao Domain-Driven Design
Introdução ao Domain-Driven DesignIntrodução ao Domain-Driven Design
Introdução ao Domain-Driven Design
 
Aula1 dia 22 02 2022.pdf
Aula1  dia 22 02 2022.pdfAula1  dia 22 02 2022.pdf
Aula1 dia 22 02 2022.pdf
 
RedGate .NET Reflector
RedGate .NET ReflectorRedGate .NET Reflector
RedGate .NET Reflector
 
Scrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento ÁgilScrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento Ágil
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
aula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptxaula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptx
 
Aula processo de reuso de software
Aula processo de reuso de softwareAula processo de reuso de software
Aula processo de reuso de software
 
Palestra scrum
Palestra scrumPalestra scrum
Palestra scrum
 
Pc loja
Pc lojaPc loja
Pc loja
 
TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"
 
Potencializando a qualidade de código
Potencializando a qualidade de códigoPotencializando a qualidade de código
Potencializando a qualidade de código
 
Elaboração de Projetos Inovadores - ROO
Elaboração de Projetos Inovadores - ROOElaboração de Projetos Inovadores - ROO
Elaboração de Projetos Inovadores - ROO
 
Aula1.pdf
Aula1.pdfAula1.pdf
Aula1.pdf
 

Arquitetura de Software