Buscar

01_Introd_Arquitetura

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

22/02/2019
1
Arquitetura de Software
Introdução
Prof. Ivan Granja
Fac. de Análise de Sistemas – PUC-Campinas
Definição de Arquitetura
(do grego arché — αρχή — significando "primeiro" ou "principal" e tékton — τέχνη — significando 
"construção") refere-se à arte ou a técnica de projetar e edificar o ambiente habitado pelo ser humano. 
Neste sentido, a arquitetura trata destacadamente da organização do espaço e de seus elementos.
Em última instância, a arquitetura lidaria com qualquer problema de agenciamento, organização, estética
e ordenamento de componentes em qualquer situação de arranjo espacial. 
Normalmente a arquitetura associa-se diretamente ao problema da organização do homem no espaço (e 
principalmente no espaço urbano). 
No caso dos sistemas de software associa-se ao problema de organização dos elementos que compõe um 
software no espaço onde este efetivamente existe (infra-estrutura de um sistema computacional), com 
vistas a oferecer soluções eficazes (funcionalidades ou comportamentos) aos problemas de quem usa-o.
http://pt.wikipedia.org/wiki/L%C3%ADngua_grega
http://pt.wikipedia.org/wiki/Arte
http://pt.wikipedia.org/wiki/T%C3%A9cnica
http://pt.wikipedia.org/wiki/Ser_humano
http://pt.wikipedia.org/w/index.php?title=Agenciamento&action=edit&redlink=1
http://pt.wikipedia.org/wiki/Organiza%C3%A7%C3%A3o
http://pt.wikipedia.org/wiki/Est%C3%A9tica
http://pt.wikipedia.org/w/index.php?title=Ordenamento&action=edit&redlink=1
http://pt.wikipedia.org/wiki/Urbano
22/02/2019
2
O que é Arquitetura de Software?
• Arquitetura de Software é uma área da Engenharia de Software que 
visa fornecer abordagens, modelos, conceitos e metodologias que 
fundamentem a tomada de decisão no momento de planejar a 
estrutura de um software.
• A Arquitetura é definida por boas práticas que regem a organização 
de um sistema, consubstanciado em seus componentes, as relações
que mantém entre si e com o ambiente, além de princípio de 
governança deste design e da evolução que será necessária.
ANSI/IEEE Std 1471-2000: Recommended Practice for Architectural
Description of Software-Intensive Systems.
Arquitetura na perspectiva dos diferentes 
níveis de Abstração de um Sistema
Nível Conceitual
Requisitos e Modelos de Análise
Nível do Projeto (Design)
Estrutura e 
Design do Sistema
Nível da Implementação
Construção “Real” do Sistema
Programas, Classes, Tabelas, etc... 
22/02/2019
3
Arquitetura na perspectiva dos diferentes 
níveis de Abstração de um Sistema
Nível Conceitual
Requisitos e Modelos de Análise
Nível do Projeto (Design)
Estrutura e 
Design do Sistema
Nível da Implementação
Construção “Real” do Sistema
Programas, Classes, Tabelas, etc... 
ARQUITETURA DO SISTEMA
“Não há uma divisão clara entre design e arquitetura”
Martin Fowler 
Arquitetura do Software
• Arquitetura estabelece a base para o projeto e a implementação do produto de 
software, respeitando o contexto.
• Guiam a criação e definição das abstrações de design e do código.
Código
implementação
projeto
arquitetura
Decisões sobre arquitetura são
fundamentais. Mudanças na
arquitetura provocam efeitos
de grande monta no projeto.
22/02/2019
4
O que está envolvido com Arquitetura de 
Software?
• É uma fundação na qual o resto do sistema precisa ser construído
• É a base, o alicerce onde a estrutura do sistema vai ser apoiada.
• O que ele quis dizer com resto do sistema?
• A arquitetura envolve as peças que são difíceis de mudar
• A arquitetura de um sistema de software é a estrutura (ou um grupos 
de estruturas), que compreende os elementos deste software, as 
propriedades externamente visíveis destes elementos, e os 
relacionamentos entre eles.
Martin Fowler 
Bass, Clements, Kazman; 2003 in Software Architecture
in Practice (2nd edition), Ed. Addison-Wesley
André Faria
O que são os elementos e os relacionamentos 
da arquitetura de um software?
• Elemento
substantivo masculino 
1. Cada um dos corpos que os antigos consideravam partes constituintes do universo: terra, água, ar
e fogo.
2. Corpo simples.
3. Substância que se não pode decompor.
4. Meio ou ambiente em que os seres vivem, ou ao qual se está afeito.
5. .Insumo.
6. Tudo o que entra na formação de alguma coisa.
7. Cada parte de um todo.
8. Recurso.
• Que elementos são estes em um software?
"in Dicionário Priberam da Língua Portuguesa [online], 
2008-2013, https://www.priberam.pt/dlpo/relacionamento
https://www.priberam.pt/dlpo/relacionamento
22/02/2019
5
O que são os elementos e os relacionamentos 
da arquitetura de um software?
• Elementos são as construções básicas que estão contidas na formação 
da estrutura do sistema, tais como:
• camadas (layers ou tiers).
• Pipes e flitros
• Componentes, bibliotecas.
• Subsistemas
• uma API de serviços
• etc..
• Elementos podem ser físicos (ex: biblioteca) ou lógicos (ex: layers)
• Os nomes dados a estes elementos variam conforme o estilo arquitetural 
e o modelo usado como referência.
O que são os elementos e os relacionamentos 
da arquitetura de um software?
• Relacionamento
substantivo masculino 
1. Ato de relacionar ou de se relacionar.
• Relacionar
verbo pronominal
1. Adquirir relações.
2 Entrar na intimidade de.
• O relacionamento entre componentes é dado pelo “grau de intimidade” que 
um componente fornece a outro.
"in Dicionário Priberam da Língua Portuguesa [online], 2008-
2013, https://www.priberam.pt/dlpo/relacionamento”
https://www.priberam.pt/dlpo/relacionamento
22/02/2019
6
O que são os elementos e os relacionamentos 
da arquitetura de um software?
• Gradue, em ordem crescente, a intimidade entre os seguintes 
componentes:
A) Um classe que oferece um serviço por meio de um método público 
para outra Classe
B) Uma função que chama outra e que compartilham uma var. global
C) Um serviço de uma API que é chamado por um APP em celular
D) Uma função que chama outra, passa parâmetros e recebe retorno
E) Um programa que lê dados gravados em uma tabela do banco de 
dados por outro programa.
Mais sobre arquitetura de um software
• A arquitetura de um sistema incorpora informações sobre o 
comportamento de cada elemento, o meios que este dispõe para 
relacionar-se e sobre como se dá a relação entre os pares de elementos.
• Os elementos devem controlar e/ou ocultar o acesso as informações que 
mantém, em especial aquelas que não pertencem ao domínio do 
segundo elemento relacionado.
• Todo sistema de software possui uma arquitetura única e particular pois, 
mesmo que inspire-se em modelos ou estilos arquiteturais, é composta 
por elementos e relações que fazem sentido no contexto particular ao 
qual está submetido.
22/02/2019
7
Quem define e mantém a arquitetura de um 
sistema?
• Arquiteto de Software
• Antes de uma profissão, é um papel que pode ser de um engenheiro de software, por uma 
equipe especializada em arquitetura de software ou mesmo por consenso em um time 
“A imagem de um arquiteto distante do dia-a-dia do desenvolvimento da equipe, 
sem profundo conhecimento técnico e de implementação e que apenas toma as 
grandes decisões está a tempo defasada”.
• Quais os diferencias de um bom arquiteto?
• Profundo conhecimento Técnico e de Tecnologia
• Inspirar a tomada de decisão, fazer boas escolhas arquiteturais frente ao contexto dado
• Capacidade de comunicação e de trabalho em equipe
Paulo Silveira et. al 2012 in Introdução à Arquitetura e 
Design de Software. Ed. Campus
As Decisões de Arquitetura
• São escolhas que terão que ser tomadas sobre a estrutura e/ou tecnologias do 
projeto, cedo ou tarde
• Exemplos:
• Devo usar um banco relacional ou NoSQL?
• Devo usar stored procedures ou separar as regras de negócio do banco de dados? 
• Qualquer escolha ou decisão arquitetural deve ser feita tendo em perspectiva os 
bônus e os ônus associados.
• Boas decisões de projeto produzem abstrações de design simples e fáceis de 
refatorar.
Software architecture is the set of design decisions which, if made incorrectly, may
cause your projectto be cancelled."
– Eoin Woods 
22/02/2019
8
A governança da arquitetura de software
• Conjunto de conceitos, práticas e princípios que norteiam a tomada de 
decisão e a evolução arquitetural
• Alguns princípio e atributos de qualidade de uma arquitetura de software 
são:
• KIS (Keep it simple)
• Uso de Padrões
• Divisão Conceitual e Separação de Assuntos (separation of concerns)
• Restrições de domínio
• Encapsulamento e Isolamento
• Substitutibilidade (capacidade de substituição)
• Escalabilidade
• Reusabilidade
• Flexibilidade
• Extensibilidade

Continue navegando