Você está na página 1de 24

Arquitetura de Software

Aula 1: Introdução
Prof. Dr. Bruna C. Rodrigues da Cunha
bruna.rodrigues@ifsp.edu.br
Disciplina: Arquitetura de Software
Disciplina: Arquitetura de Software
Avaliação
● Provas (P1 e P2): 30%
● Exercícios em Grupo (EG): 20%
● Seminários (SE): 20%
● Projeto Interdisciplinar (PI): 30%
● Avaliação Multidisciplinar (AM) valerá 1.0 ponto na média

Nota da disciplina:
ND = 0,3*(P1 + P2)/2 + 0,1*EG + 0,2*SE + 0,3*PI
Nota final:
NF = 0,9*ND + 0,1*AM
Bibliografia Básica
Arquitetura
● Toda obra complexa da humanidade apresenta um projeto arquitetural.
● O projeto arquitetural precede a etapa de construção da obra.
● O projeto arquitetural determina as partes de uma construção e como
estas devem interagir.
● A arquitetura garante a unidade da obra, ou seja, a consistência entre as
suas partes.
● Do dicionário: 1. Arte de projetar e construir prédios, edifícios ou outras
estruturas; arquitetônica. 2 Constituição do edifício. 3 Contextura de um
todo. 4 Intenção, projeto.
Arquitetura
Arquitetura
Arquitetura
Arquitetura
Arquitetura de Software
● 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. (ISO/IEEE 1471-2000)
● É uma abstração do sistema.
● A arquitetura define o que é o sistema em termos de componentes
computacionais e, os relacionamentos entre estes componentes, os
padrões que guiam a sua composição e restrições.
Arquitetura de Software
● O conceito de Arquitetura de Software surgiu nos anos 60 (Dijkstra), mas
se tornou popular nos anos 90.
● Arquitetura = {Elementos, Organização, Decisões} (Perry e Wolf, 1992)
● Elementos:
○ Processamento: transformam dados de entrada em um resultado de saída desejado

○ Dados: matéria prima a ser processada

○ Conexão: trata da ligação entre os elementos

● Os elementos e sua organização são definidos por decisões tomadas para


satisfazer objetivos e restrições.
Arquitetura de Software
● A arquitetura de SW envolve decisões sobre as estruturas que formarão o
sistema, protocolos de comunicação, sincronização e acesso a dados,
atribuição de funcionalidade a elementos do sistema, distribuição física
dos elementos, escolha dos algoritmos e estruturas de dados, atributos
de qualidade (e.g., escalabilidade, eficiência, confiabilidade, portabilidade,
usabilidade, etc); e seleção de alternativas de projeto.
Importância
● Atua como uma estrutura a fim de checar o atendimento aos requisitos
do sistema.
● Suporte na estimação de custos e gerência da complexidade do sistema.
● Suporte ao reuso.
● Permite que o sistema possa sofrer alterações de forma localizada, sem
afetar outras partes.
● Permite que novas funcionalidades sejam adicionadas sem causar
impacto nas já existentes.
● Reduz o intervalo entre especificação e implementação.
Importância
● Permite considerar alternativas arquitetônicas em estágios iniciais do
desenvolvimento.
● Reduz riscos associados à construção do software.
● Abstração que serve como base para criar um entendimento mútuo, para
comunicação entre os participantes.
● Sua representação serve como guia para o projeto de sua
implementação, teste e implantação do sistema.
● A vida útil do sistema depende de uma boa arquitetura que facilite
modificações, e permita sua evolução.
Processo da Arquitetura de Software
● Elaboração do modelo de negócio – envolve analisar custo, tempo de
desenvolvimento, restrições de mercado, interfaces com outros sistemas
etc.
● Entendimento dos requisitos: levantamento de requisitos e modelo do
domínio.
● Criação ou seleção de uma arquitetura: identificação dos componentes e
suas interações, das dependências de construção e tecnologias que
apoiam a implementação.
Processo da Arquitetura de Software
● Representação da arquitetura e divulgação: para permitir aos
desenvolvedores e testadores o entendimento da arquitetura
● Implementação da arquitetura, seguindo seus protocolos e estruturas.
● Análise e avaliação: verificar a adequação da arquitetura, registrando
impactos, riscos e dificuldades, o que servirá para evolução da
arquitetura.
Arquiteto de Software
Sua principal responsabilidade é o suporte técnico completo do projeto,
desde o momento do lançamento, até a liberação do produto, Além disso:
● Identificar requisitos de negócios e requisitos das partes interessadas no
projeto
● Projetar todo o sistema com base nos requisitos recebidos
● Definir a arquitetura de alto nível de cada componente do sistema
● Definir tecnologias adequadas para a implementação de cada
componente e suas conexões
● Realizar a revisão da arquitetura
Arquiteto de Software
● Escrever a documentação do projeto
● Fazer decisões sobre tradeoffs do sistema
● Controlar a arquitetura durante as etapas de desenvolvimento do projeto
● Controlar tempo e prazo
● Realizar o controle de qualidade de desempenho
● Planejar a inserção de novas tecnologias
Qual Arquitetura?
● A definição está baseada na escolha de alternativas mais adequadas ao
domínio da aplicação.
● É importante reutilizar e adotar estratégias previamente validadas.
● Utilizam-se padrões arquiteturais, estilos arquiteturais e linguagens de
descrição de arquitetura
Exemplo: Relógio Despertador
Relógio Despertador
Rádio Relógio Relógio Pilha Relógio Analógico

Peso P L M

Facilidade de
leitura
Relógio Despertador
1. 1.1. Qual o melhor para usar em casa? 1.2. Qual o melhor para usar em
uma viagem?
2. Qual vocês acham que é o mais escolhido (popular)?
3. Em quais cenários o mais popular não seria adequado?
4. Liste 3 condições de tradeoffs (ato de escolher uma coisa em detrimento
de outra).
5. Qual a melhor arquitetura para um relógio despertador?
6. Proponha outra possível arquitetura.

bruna.rodrigues@ifsp.edu.br

Você também pode gostar