A maior rede de estudos do Brasil

Grátis
26 pág.
Unidade 5 Projeto de Arquitetura de Software

Pré-visualização | Página 4 de 5

incluindo seus subsistemas e componentes;
• Os elementos de projeto de interfaces: esses elementos modelam interfaces in-
ternas e externas, como também as interfaces de usuário;
• Os elementos de componentes: esses elementos estabelecem cada um dos módu-
los (componentes) que devem completar a arquitetura do software;
• Os elementos de implantação (deployment): esses elementos alocam a arquite-
tura com seus componentes e respectivas interfaces na disposição física que deve 
hospedar, possivelmente de forma distribuída, o produto de software (PRESSMAN; 
MAXIM, 2016).
Importante!
Há três partes para o elemento de projeto de interfaces: a interface do usuário, inter-
faces com os sistemas externos à aplicação e interfaces com componentes internos à 
aplicação (PRESSMAN; MAXIM, 2016, p. 245).
Como o processo de projeto enfatiza a arquitetura do software como alicerce para 
implementar um produto de software de qualidade, o projeto de arquitetura torna-se 
uma atividade essencial e, por consequência, de suma importância para a construção do 
software, inclusive há processos de desenvolvimento de software centrados na arquitetura.
Por exemplo, o Processo Unificado (PU), contemplado nas primeiras Unidades, é 
baseado em três princípios: a) é dirigido a casos de uso; b) é centrado na arquitetura e; 
c) é iterativo e incremental.
No que tange ao princípio ‘centrado na arquitetura’, o processo de desenvolvimento 
direciona a construção de uma arquitetura de software que possibilita a implementação 
dos requisitos. Essa arquitetura tem como base a identificação de uma estrutura que é 
construída de forma iterativa a partir do modelo de análise (ou modelo de requisitos) 
(WAZLAWICK, 2015).
O PU especifica que a arquitetura do software deve ser uma das principais preocupa-
ções do time de desenvolvimento, pois a arquitetura, junto com os casos de uso, orienta 
a exploração de todos os elementos do software. A arquitetura permite compartilhar 
uma visão comum do projeto entre todos os membros do time, desse modo, guia a 
construção de um sistema de software apropriadamente robusto, flexível, expansível e 
de custo viável, com base nessa arquitetura compartilhada. No contexto do PU, a arqui-
tetura é especificada em termos de visões de seis modelos básicos, sendo eles: a) modelo 
de casos de uso; b) modelo de análise; c) modelo de projeto (design); d) modelo de im-
plementação; e) modelo de teste e; f) modelo de implantação (deployment). Essas visões 
retratam os elementos arquiteturais e significativos que, de forma conjunta, representam 
a arquitetura do software (SCOTT, 2003).
18
19
No caso do PU, ainda segundo Scott (2003), o desenvolvimento centrado na arquite-
tura tem sua importância por causa das seguintes razões:
• Compreensão da visão global do sistema;
• Organização do esforço de desenvolvimento;
• Ampliação das possibilidades de reuso;
• Facilidade de evolução do sistema;
• Dirigido a casos de uso.
Diante da relevância da arquitetura para o desenvolvimento de sistemas de software 
de qualidade, em que consiste o projeto arquitetural?
O projeto arquitetural (design arquitetural) é uma atividade em que o arquiteto deve 
tomar as mais diversas decisões, principalmente as de aspecto estrutural do software. 
Nesse caso, deve haver representações (visões) coerentes e bem planejadas do software, 
concentrando as interdependências das partes no mais alto nível lógico e de abstração 
(PRESSMAN; MAXIM, 2016).
Os padrões de software influenciam o projeto arquitetural e, por consequência, o 
projeto de software?
Os arquitetos experientes possuem uma habilidade única de visualizar padrões para 
caracterizar um problema e solucioná-lo. Nesse caso, por meio do projeto arquitetural 
devemos ser capazes de identificar oportunidades de aplicar padrões existentes, ao invés 
de criar novos padrões e reinventar a roda. Um projeto baseado em padrões implica 
em novas maneiras de pensar, sendo necessário entender o contexto de uso do sistema 
e os problemas a serem solucionados. Tudo isso influencia na solução proposta para o 
produto de software em estudo (PRESSMAN ; MAXIM, 2016).
Como um projeto baseado em padrões pode ser aplicado?
O projeto baseado em padrões é ilustrado na Figura 8. O arquiteto, com base no 
modelo de requisitos (ou modelo de análise), deve ter condições de extrair o conjunto de 
problemas, o contexto e o sistema de forças que rege o domínio. Além disso, ele também 
precisa considerar os atributos de qualidade e os conceitos de projeto (design). Os atri-
butos de qualidade, por sua vez, definem uma forma de avaliar a qualidade do software,
mas pouco faz para ajudar a obtê-la, portanto, deve-se aplicar técnicas que transformem 
a representação abstrata do modelo de requisitos em uma representação mais concreta, 
especificamente o modelo de projeto. Para tal, métodos e ferramentas voltadas para o 
projeto arquitetural, de componentes e de interfaces podem ser adotadas, porém, isso 
deve ser utilizado quando um problema, contexto ou sistema de forças ainda não foi 
resolvido, caso contrário, se já houver uma solução, utilize-a. Dessa forma, você está 
aplicando uma abordagem baseada em padrões (PRESSMAN; MAXIM, 2016).
Importante!
 Forças são as características do problema e os atributos de uma solução que restringem 
a maneira como o projeto pode ser desenvolvido (PRESSMAN; MAXIM, 2016, p. 348).
19
UNIDADE Projeto de Arquitetura de Software 
Modelo de
Requisitos
Considerar
conceitos
de projeto
Extrair contexto
das forças e 
do problema
Considerar atributos
de qualidade
do projeto
Iniciar tarefas de
projeto baseado 
em padrões
Aplicar outros
métodos e notações
de projeto
Modelo de projeto
sim não
Tratado pelo
padrão?
O projeto é iniciado
Figura 8 – Contexto do projeto baseado em padrões
Fonte: Adaptado de PRESSMAN; MAXIM, 2016, p. 355
Há algum caminho que permite ao arquiteto o pensamento em termos de padrões?
Há uma abordagem para o arquiteto pensar em padrões (SHALLOWAY; TROTT, 
2005 apud PRESSMAN; MAXIM, 2016, p. 355), constituída por seis passos: 
1. Entenda o contexto em que o sistema será implementado e utilizado a partir 
do modelo de requisitos;
2. Examine o contexto e extraia os padrões existentes nesse nível de abstração;
3. Comece seu projeto com os padrões que definam um contexto ou a estrutura 
básica para dar continuidade a ele;
4. Procure por padrões com níveis de abstração mais baixos que possam contri-
buir para a solução do projeto;
5. Repita os passos de 1 a 4 visando completar a estrutura do projeto;
6. Refine o projeto, adequando os padrões às especificidades do software a 
ser  construído.
Como mencionado em Unidade anterior, uma das metas do projeto (design) de 
software é constituir um quadro arquitetural que represente a organização do software 
para guiar as atividades mais detalhadas de projeto, incluindo um conjunto de padrões 
de arquitetura que propicie o reuso de conceitos em nível de projeto.
20
21
No decorrer do projeto baseado em padrões pode ser complicado organizar e classifi-
car os padrões de software a serem utilizados para concretizar o modelo de projeto. Uma 
alternativa é criar uma tabela para organizar esses padrões, como mostra a Tabela 1. 
Essa tabela pode ser elaborada de modo a organizar os problemas em quatro tópicos: a) 
dados/conteúdo; b) interface do usuário; c) componentes e; d) arquitetura. 
Nessa tabela há também quatro tipos de padrões: a) banco de dados; b) aplicação; 
c) implementação e; d) infraestrutura. Os padrões candidatos devem ser preenchidos 
nas células de forma que cada padrão seja associado a um problema e a um tipo de pa-
drão. Para realizar o preenchimento da tabela, é necessário pesquisar e entender quais 
padrões se enquadram e solucionam o problema em particular e inseri-lo na célula que 
corresponde ao problema e ao tipo do padrão (PRESSMAN; MAXIM, 2016).
Uma relação de padrões e linguagens de padrões , disponível em: https://bit.ly/2Z4HNqc
Tabela 1 – Uma tabela para