• Nenhum resultado encontrado

Arquitetura de Software

N/A
N/A
Protected

Academic year: 2022

Share "Arquitetura de Software"

Copied!
34
0
0

Texto

(1)

Arquitetura de Software

Fernando Castor e Paulo Borba

(2)

Programação Modular

(3)

Implementação

Programação Modular

(4)

Implementação

Interface

Programação Modular

(5)

Implementação

Interface Provida

Interface Requerida

Programação Modular

(6)

Implementação

Interface Provida

Interface Requerida

Visível apenas dentro do

Módulo

Programação Modular

(7)

Implementação

Implementação

Implementação Implementação

Implementação Implementação

Programação Modular

(8)

Benefícios Esperados da

Programação Modular [Parnas, 1972]

(1) Tempo de desenvolvimento encurtado

(2) Possibilidade de modificar um módulo sem mudar outros

(3) Organização das tarefas e da equipe de desenvolvimento

(4) Possibilidade de entender o sistema olhando para um módulo de cada vez

(1) Interações entre módulos

(9)

● A estrutura de um sistema de software, que engloba

componentes de software;

• suas propriedades visíveis externamente;

• e os relacionamentos e interações entre eles (conectores)

● As primeiras decisões tomadas no projeto de um sistema

• Impacto global

Arquitetura de Software

(10)

Clientes web (Mozilla, IE, etc.)

Servidor WEB Rede Local

Banco de Dados Relacional Internet

Um Sistema em Camadas

(11)

Componente Componente Componente

Clientes web (Mozilla, IE, etc.)

Servidor WEB

Internet Rede

Local

Banco de Dados Relacional

Um Sistema em Camadas

(12)

Banco de Dados Relacional

Conector (Ponte Conector

(HTTP,

Clientes web (Mozilla, IE, etc.)

Servidor WEB Rede Local Internet

Um Sistema em Camadas

(13)

O que é Arquitetura de Softw.

e o que não é?

O que é possível inferir a partir da figura?

O que não é?

(14)

O que é Arquitetura de Softw.

e o que não é?

Arquitetura define elementos de software

Foco no comportamento externamente observável e interações

Responsabilidades das partes

Abstrações de elementos de SW

Todo sistema tem uma arquitetura

Indica como requisitos são satisfeitos

(15)

O que é Arquitetura de Softw.

e o que não é?

Detalhes de implementação não entram

Algoritmos normalmente não afetam a

arquitetura

Tecnologias normalmente têm impacto

O hardware subjacente pode ser importante

Tudo que está lá deve estar lá por um motivo

(16)

O que é Arquitetura de Softw.

e o que não é?

Detalhes de implementação não entram

Algoritmos normalmente não afetam a arquitetura

Tecnologias normalmente têm impacto

O hardware subjacente pode ser importante

Tudo que está lá deve estar lá por um motivo

(17)

Projeto Arquitetural

● O processo de projeto que estabelece

• Os subsistemas (ou componentes) que constituem um sistema

o Unidades de modularidade

• A maneira como eles interagem

● A saída dessa atividade é uma descrição da arquitetura de software.

● A arquitetura lida com os requisitos não-

funcionais do sistema

(18)

Projeto Arquitetural

● Primeiro estágio do projeto do sistema

● Liga a especificação e o projeto detalhado

● Freqüentemente conduzido em paralelo às

atividades de especificação

(19)

19

Vantagens de uma Arquitetura Explícita

● An

ális e de req uisi tos nã o- fun cio nai s

● Co

mu nic aç ão co m os sta ke hol der s

● Or

ga niz aç ão de eq uip es e tar efa s

Pode ser usada para fazer estimativas

Diversas vantagens da programação modular

● Re

us o em lar ga es cal a

Suas partes também

Algumas soluções são quase

(20)

Conflitos de Arquitetura

● Componentes de alta granularidade aprimoram o desempenho mas diminuem a facilidade de

manutenção

● A introdução de dados redundantes aprimora a

disponibilidade, mas torna a coordenação mais difícil

● Localizar as funcionalidades críticas de segurança em poucos locais pode criar gargalos de

desempenho

Escolhas de projeto

(21)

Escolhas de Projeto

• Feitas durante o projeto de um sistema

• Afetam sua capacidade de fornecer seu serviço

• Normalmente resultam em compromissos

• É importante avaliar as

opções existentes

(22)

Alguns Exemplos de Perguntas Interessantes

● Como representar o mapa em um sistema que traça rotas percorridas por ônibus de modo a minimizar o tempo de resposta?

● Como garantir a confiabilidade de um servidor a um baixo custo?

● Como organizar os módulos de um sistema de modo que mudanças a um módulo afetem o menor número possível de módulos?

● Como tornar o sistema capaz de lidar com 1.000.000 de

usuários simultâneos?

(23)

Características de um Sistema Ligadas à sua Arquitetura

● Desempenho

● Proteção (security)

● Segurança (safety)

● Disponibilidade

● Confiabilidade

● Escalabilidade

● Usabilidade

(embora nem sempre)

● Facilidade de manutenção

E muitas outras…

(24)

 Capturam conjuntos de escolhas de projeto comuns a vários sistemas

 Interações como elementos de primeira ordem

Conectores

 Exemplos comuns:

– Decomposição Modular – Cliente/Servidor

Representational State Transfer

 Associados à representação da arquitetura

Estilos Arquiteturais

(25)

Representação da Arquitetura

● A arquitetura é um ativo importante

• Pode ser a diferença entre o sucesso e o fracasso

● Representá-la é importante

• Torna possível “falar” sobre ela

• Normalmente usa-se diagrama de blocos

● Modelos mais específicos também podem ser

desenvolvidos.

(26)

Sistema de controle robotizado de

empacotamento

(27)

Um exemplo familiar

Útil, mas só até certo

ponto.

(28)

Diagramas caixa e linha

● Muito abstratos

● não mostram a natureza dos relacionamento de componentes

● nem suas propriedades externamente visíveis

● Úteis para comunicação com os stakeholders e para planejamento

● Alternativas:

• Notações formais (Linguagens para Descrição de

Arquiteturas)

(29)

Visões Arquiteturais

● A arquitetura de um sistema software

normalmente é representada através de várias visões

● Visões são maneiras diversas de se enxergar uma mesma arquitetura

• Enfocando diferentes aspectos de interesse

• Ex.: as várias plantas de uma casa

● Arquiteturas de software são especificadas

através de uma ou mais de suas visões

(30)

Três principais elementos:

agentes de usuário (UA).

servidores de correio.

simple mail transfer protocol:

SMTP.

caixa de

correio do usuário fila de mensagens de saída

agente usuáriode

servidor de correio

SMTP SMTP SMTP

agente usuáriode

agente agente

servidor de correio

servidor de correio

POP3/IMAP

Correio Eletrônico – Visão 1

(31)

1) Alice usa o UA para compor uma mensagem “para”

bob@someschool.edu 2) O UA de Alice envia a

mensagem para o seu servidor de correio; a

mensagem é colocada na fila de mensagens.

3) O lado cliente do SMTP abre uma conexão TCP com o servidor de correio de Bob.

4) O cliente SMTP envia a

mensagem de Alice através da conexão TCP.

5) O servidor de correio de Bob

coloca a mensagem na caixa de entrada de Bob.

6) Bob chama o seu UA para ler a mensagem.

agentuser

servermail

servermail user agent 1

2 3 4 5 6

Correio Eletrônico – Visão 2

(32)

Correio Eletrônico – Visão 3

(33)

Um Exemplo de Sistema de Controle de Tráfego Aéreo

M&C Console

G.A.M

Local/Group A.M.

ATC Console

A.S.O.U

O/S E. A. S.

Network Operating System

Processor I/O Devices

Attachments

Exceções

Exceções

Exceções

Exceções

Exceções

Fonte: Bass, Clements, and Kazman, Software

Exceções

(34)

Reuso de arquitetura

 Conhecimento informal sobre escolhas de projeto

 Estilos/Padrões arquiteturais

 Arquiteturas de referência

 Frameworks e servidores de aplicação

 Linhas de produtos

Referências

Documentos relacionados

Já o Ministério do Turismo (2010), divulga não apenas as atribuições gerais que o guia deve cumprir, mas também as atribuições específicas de acordo com a

Para atingir este fim, foram adotados diversos métodos: busca bibliográfica sobre os conceitos envolvidos na relação do desenvolvimento de software com

Em relação ao Respondente4 ele já havia usado a ferramenta em outra instituição antes de iniciar suas atividades na UTFPR Campus Pato Branco e é possível creditar sua

Neste trabalho foram analisados os dados coletados em perímetro urbano e rural no município de Serranópolis do Iguaçu com a finalidade de investigar e avaliar o

Obtivemos as respostas listadas a seguir: Sujeito 1: “Brincar na educação infantil é muito importante para o desenvolvimento da criança que nessa fase tem o lúdico como elemento

No Quadro 14, está a representação da incompatibilidade número 10 onde na modelagem BIM, conforme o projeto estrutural, a passagem da eletrocalha foi projetada a 2,97m

Neste sentido, o nosso trabalho foi realizado em dois momentos: o Campo de Observação com 20 horas semanais e Campo de Docência com 20 horas semanais, encontros significativos

A forma em que as empresas do arranjo do segmento cama-mesa-banho estão inseridas no mercado externo pode ser enquadrada em relações de redes de empresas, nas