conceitos, definições e evolução da arquitetura de software · introduÇÃo cenÁrio •...

39
ARQUITETURA DE SOFTWARE III Conceitos, definições e evolução da arquitetura de software Prof. Victor A. T. Troitiño

Upload: trinhdien

Post on 30-Nov-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

ARQUITETURA DE SOFTWARE III

Conceitos, definições e evolução da arquitetura de software

Prof. Victor A. T. Troitiño

Page 2: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

ARQUITETURA DE SOFTWARE

“A Arquitetura de um sistema é um

arcabouço abrangente que descreve sua

forma e sua estrutura – seus

componentes e como eles se articulam”.

Jerrold Grochow

Page 3: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

ARQUITETURA DE SOFTWARE

INTRODUÇÃO

CONCEITOS E DEFINIÇÕES

EVOLUÇÃO

FINALIZAÇÃO

Page 4: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

INTRODUÇÃO

CENÁRIO

• Desenvolver software não é uma tarefa fácil.

• Não é fácil alcançar um bom produto de software devido à complexidade envolvida em seu processo de desenvolvimento.

• Além de lidar com a complexidade inerente ao problema, devemos também nos preocupar em como o software resolve esse problema.

Page 5: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

INTRODUÇÃO

CENÁRIO

• É por esse motivo que muitos projetos de software fracassam durante seu desenvolvimento ou ao obter seus resultados.

• Entre esses maus resultados, encontramos os que custaram muito acima do orçamento, os incompletos e os que não solucionam os problemas como deveriam resolver.

Page 6: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

INTRODUÇÃO

Page 7: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

• O dinamismo dos requisitos traz impactos nas definições e especificações já estabelecidas.

• A busca de soluções e adaptações para estes impactos são os dois grandes desafios que as organizações desenvolvedoras de sistemas encontram.

CENÁRIO

INTRODUÇÃO

Page 8: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

SOFTWARE

PRAZO

QUALIDADE

CUSTO

DESAFIOS DE T.I.

INTRODUÇÃO

Page 9: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

INTRODUÇÃO

CENÁRIO

• O software deve, além de resolver o problema, resolvê-lo da forma esperada.

OU SEJA:

• Espera-se que, além de função, o produto de software possua os atributos de qualidade esperados.

Page 10: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

INTRODUÇÃO

CENÁRIO

Engenhariade Sistemas

Engenhariade Software

Arquiteturade Software

Page 11: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

PROCESSO DE DESENVOLVIMENTO DE SISTEMAS

CONCEITOS E DEFINIÇÕES

ARQUITETURA ?

Page 12: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

Arquitetura no Processo de Desenvolvimento de Sistemas

Page 13: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

O QUE É ARQUITETURA DE SOFTWARE?

Sua primeira menção:

relatório técnico da década de 1970 intitulado:

Software Engineering Tecnhiques.

• Perry e Wolf• Garlan e Shaw• Padrão ISO/IEEE 1471-2000

Page 14: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

O QUE É ARQUITETURA DE SOFTWARE?

Perry e Wolf:

Arquitetura = {Elementos, Organização, Decisões}

Elementos de processamentoElementos de dadosElementos de conexão

Dita as relações entre os elementos arquiteturais.

um conjunto de elementos arquiteturais que possuem alguma organização. Os elementos e sua organização são definidos por decisões tomadas para satisfazer objetivos e restrições.

Page 15: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

O QUE É ARQUITETURA DE SOFTWARE?

Garlan e Shaw

aplicar conhecimentos de arquitetura num sistema de software. Para eles, arquitetura de software torna-se necessária quando o tamanho e a complexidade dos sistemas de software crescem. Assim, o problema de se construir sistemas, vai além da escolha dos algoritmos e estruturas de dados certos.

Page 16: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

O QUE É ARQUITETURA DE SOFTWARE?

Padrão ISO/IEEE 1471-2000

A Arquitetura é a organização fundamental de um sistema incorporada em seus componentes, seus relacionamentos com o ambiente, e os princípios que conduzem seu design e evolução.

Page 17: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

PROCESSO DE ARQUITETURA DE SOFTWARE:

• ELABORAR O MODELO DE NEGÓCIO

• ENTENDIMENTO DOS REQUISITOS

• CRIAÇÃO OU SELEÇÃO DE UMA ARQUITETURA

• REPRESENTAÇÃO E DIVULGAÇÃO DA ARQUITETURA

• IMPLEMENTAÇÃO DO SISTEMA BASEDADO NA ARQUITETURA

• ANÁLISE OU AVALIAÇÃO DA ARQUITETURA

Page 18: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

Page 19: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

Page 20: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

Page 21: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

Page 22: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

Page 23: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

Page 24: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

Page 25: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

Page 26: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

Page 27: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

Page 28: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

Visões são diferentes formas de observar um mesmo problema com a finalidade de melhor entendê-lo para então, atribuir-lhe a solução mais adequada.

Page 29: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

ALGUNS ESTILOS DE ARQUITETURA

• ARQUITETURA CENTRADA EM DADOS

• ARQUITETURA DE FLUXO DE DADOS

• ARQUITETURA DE CHAMADA E RETORNO

• ARQUITETURA ORIENTADA A OBJETOS

• ARQUITETURA EM CAMADAS

Page 30: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

ARQUITETURA CENTRADA EM DADOS

DEPÓSITO DEDADOS

SOFTWARECLIENTE

SOFTWARECLIENTE

CENTRO DA ARQUITEURA

Page 31: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

ARQUITETURA DE CHAMADA E RETORNO

PROGRAMAPRINCIPAL

SUBPROGRAMACONTROLADOR

SUBPROGRAMACONTROLADOR

SUBPROGRAMAAPLICAÇÃO

Page 32: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

ARQUITETURA DE CAMADAS

USUÁRIOS

SIST OPERACIONAL

FUNÇÕESSOFT APLICAÇÃO

Page 33: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

CONCEITOS E DEFINIÇÕES

Page 34: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

EVOLUÇÃO DA ARQUITETURA DE SOFTWARE

Page 35: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

EVOLUÇÃO DA ARQUITETURA DE SOFTWARE

Page 36: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

EVOLUÇÃO DA ARQUITETURA DE SOFTWARE

Page 37: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

EVOLUÇÃO DA ARQUITETURA DE SOFTWARE

Page 38: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

• VISUALIZAÇÃO DE ALGUNS CONCEITOS E DEFINIÇÕES RELACIONADOS ÀARQUITETURA DE SOFTWARE

• APRESENTAR AS PRINCIPAIS CARACTERÍSTICAS E BENEFÍCIOS PROPORCIONADOS PELA ARQUITETURA DE SOFTWARE.

FINALIZAÇÃO

Page 39: Conceitos, definições e evolução da arquitetura de software · INTRODUÇÃO CENÁRIO • Desenvolver software não é uma tarefa fácil. • Não é fácil alcançar um bom produto

ARQUITETURA DE SOFTWARE

“... a arquitetura de software é mais do que

a descrição dos componentes que a

compõem e do relacionamento entre eles.

A arquitetura é a interface entre duas

partes distintas: o problema de negócio e a

solução técnica ”.

Hernán Astudillo