Escolar Documentos
Profissional Documentos
Cultura Documentos
ARQUITETURA DE SOFTWARE
CAPÍTULO 2 - QUAIS SÃO AS
ABORDAGENS ALTERNATIVAS E DE
ARQUITETURA PARA SISTEMAS WEB E
APLICATIVOS MÓVEIS?
Fernando Skackauskas Dias
INICIAR
Introdução
Com o grande avanço da web e dos dispositivos móveis nos últimos anos, os
cientistas da computação se viram diante de grandes desafios. Quais são as
abordagens da arquitetura de software que foram elaboradas para contemplar esses
novos modelos de sistemas? Como esses sistemas são tratados no processo de
projeto, desenvolvimento e implantação? Existem modelos alternativos de
arquitetura de software? Estas questões se tornam relevantes, visto a convergência
de novas mídias e aplicativos para web e dispositivos móveis.
O desenvolvimento de sistemas está cada vez mais atrelado às inovações
tecnológicas, surgindo, assim, novas linguagens e novos modelos de arquitetura em
um intervalo cada vez menor de tempo. O que temos é uma tendência de se projetar
sistemas mais dependentes da web e dos dispositivos móveis, a fim de atender aos
modelos de negócio contemporâneos. Temos visto que diversos serviços que eram
oferecidos em plataformas tradicionais estão migrando paulatinamente para
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&cd… 1/28
21/03/2023, 20:15 Arquitetura de Software
ambiente web ou para dispositivos móveis. Mais do que isso: diversos serviços já
nascem nestes ambientes. Um exemplo claro são os aplicativos urbanos para
transporte de passageiro.
Neste capítulo, veremos como a arquitetura de software é modelada para aplicações
web e dispositivos móveis, analisaremos quais são as avaliações possíveis das
alternativas de projetos, descreveremos como é empregada a linguagem de
descrição da arquitetura (ADL) e, por fim, como é feita a verificação de conformidade
da arquitetura de software.
Desejamos um excelente estudo.
Figura 1 - Modelo MVC demonstrando a relação entre o Modelo, a Visão e o Controlador e os eventos
associados aos componentes. Fonte: Elaborada pelo autor, baseado em JÚNIOR; FORTES, 2007.
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&cd… 3/28
21/03/2023, 20:15 Arquitetura de Software
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&cd… 4/28
21/03/2023, 20:15 Arquitetura de Software
Figura 2 - Exemplo de interação entre os componentes do padrão MVC e suas interações de uma aplicação
em linguagem Java. Fonte: SUN, 2007 apud JÚNIOR; FORTES, 2007, p. 6.
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&cd… 5/28
21/03/2023, 20:15 Arquitetura de Software
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&cd… 6/28
21/03/2023, 20:15 Arquitetura de Software
Arquitetura distribuída
Tem como característica principal desacoplar as regras de negócio do software (que
se encontram na camada de Modelo) das regras relativas de apresentação (camadas
de Visão e Controle). Assim, as aplicações para dispositivos móveis são
desacopladas das aplicações corporativas, e a comunicação ocorre por meio dos
serviços via web. O que temos é que as aplicações para dispositivos móveis agregam
exclusivamente as regras de visualização e controle. No lado das aplicações
corporativas, acoplam-se as regras de negócio.
Suas vantagens são:
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&cd… 8/28
21/03/2023, 20:15 Arquitetura de Software
Arquitetura centralizada
Tem como principal característica englobar, em uma única aplicação, todas as
camadas e regras do sistema. A alteração desta arquitetura está na interface, na qual
a estrutura de dispositivo móvel serve para adaptar a interface da aplicação para
telas menores e sensíveis ao toque, melhorando a usabilidade dos usuários. A
camada de Modelo fica responsável somente para acessar serviços externos.
Segundo Pilar (2005, p. 26),
O crescimento em tamanho e a complexidade dos sistemas de software exigem que os profissionais da
área desenvolvam novas topologias para o nível arquitetural. Como exemplo, temos os dispositivos
móveis, que têm como principal característica realizar várias tarefas distintas e se conectar com outros
aplicativos. Quer ler mais? Leia o artigo de Silva Filho (2010) em:
<http://periodicos.uem.br/ojs/index.php/EspacoAcademico/article/view/14312/7593
(http://periodicos.uem.br/ojs/index.php/EspacoAcademico/article/view/14312/7593)>.
Figura 4 - Exemplo de arquitetura para aplicativos móveis com as camadas físicas e lógicas e suas interações.
Fonte: Elaborada pelo autor, baseado em LEE, 2005.
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 10/28
21/03/2023, 20:15 Arquitetura de Software
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 11/28
21/03/2023, 20:15 Arquitetura de Software
VOCÊ SABIA?
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 12/28
21/03/2023, 20:15 Arquitetura de Software
VOCÊ O CONHECE?
Vannevar Bush foi professor do Instituto de Tecnologia de Massachusetts (MIT) na década de 1920 e um
dos responsáveis pela criação dos primeiros modelos de formulação matemática para problemas em
teoria dos circuitos, dando uma base fundamental para a criação dos primeiros modelos de
computadores. Leia mais em Fonseca Filho (2007).
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 13/28
21/03/2023, 20:15 Arquitetura de Software
[As ADLs] podem ser usadas como base para o desenvolvimento dirigido a
modelos. No entanto, acredito que os modelos e as notações informais, como
a UML [unified modeling language, ou seja, a linguagem de modelagem
unificada], continuarão a ser a forma mais comumente usada para
documentar arquiteturas de sistema.
Portanto, para atender à necessidade de usar a ADL, foram criadas linguagens como:
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 14/28
21/03/2023, 20:15 Arquitetura de Software
manualmente;
por meio de técnicas e ferramentas, como a Matriz de Dependência
Estrutural (DSM), modelos de reflexão ou testes de design.
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 15/28
21/03/2023, 20:15 Arquitetura de Software
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 16/28
21/03/2023, 20:15 Arquitetura de Software
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 17/28
21/03/2023, 20:15 Arquitetura de Software
Quadro 1 - Relação dos componentes e as descrições relativas às suas características. Fonte: SOMMERVILLE,
2011, p. 317.
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 18/28
21/03/2023, 20:15 Arquitetura de Software
CASO
Uma universidade de grande porte estava reorganizando o seu portal web, que já se encontrava em
um formato obsoleto. Foram propostas duas metodologias diferentes a serem aplicadas: uma de
design centrada no usuário e outra de design participativo. Este tipo de abordagem impactaria no
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 19/28
21/03/2023, 20:15 Arquitetura de Software
modelo de arquitetura de implantação do novo portal. O objetivo era propor uma metodologia para
a reestruturação, priorizando a organização e facilidade de uso do site. A primeira etapa foi a
realização de uma entrevista com os usuários para obter as necessidades fundamentais. O problema
é se seria adotada a metodologia orientada no perfil do usuário ou na tarefa. A metodologia
orientada ao perfil do usuário leva a uma arquitetura a um modelo no qual o foco está centrado na
interface. Por outro lado, uma metodologia orientada na tarefa faz com que a arquitetura esteja mais
centrada no modelo cliente-servidor.
Figura 5 - Exemplo da representação gráfica das interfaces ‘require’ e ‘provides’ com um componente e suas
descrições. Fonte: SOMMERVILLE, 2011, p. 318.
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 20/28
21/03/2023, 20:15 Arquitetura de Software
Por outro lado, Sommerville (2011, p. 318) nos diz que “a interface ‘requires’
especifica quais serviços devem ser fornecidos por outros componentes no sistema
se um componente deve funcionar corretamente. Se eles não estiverem disponíveis,
o componente não funcionará. [...]”. Isso não compromete a independência ou a
capacidade de implantação de um componente, pois a interface ‘requires’ não
define como esses serviços deverão ser prestados. Em UML, o símbolo de uma
interface ‘requires’ é um semicírculo no fim de uma linha, a partir do ícone de
componente.
Na figura a seguir, demonstraremos as interfaces ‘requires’ e ‘provides’ de um
componente coletor de dados, projetado para coletar e reunir informações a partir
de um vetor de sensores.
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 21/28
21/03/2023, 20:15 Arquitetura de Software
VOCÊ SABIA?
Existe uma proposta de arquitetura de software baseada em data warehouse para o desenvolvimento
de sistemas distribuídos, auxiliando os desenvolvedores na utilização de arquiteturas alternativas
para sistemas específicos. Leia mais no artigo escrito por Milanez; Tait (2012), disponível em:
<http://www.periodicosibepes.org.br/index.php/reinfo/article/view/728
(http://www.periodicosibepes.org.br/index.php/reinfo/article/view/728)>.
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 22/28
21/03/2023, 20:15 Arquitetura de Software
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 24/28
21/03/2023, 20:15 Arquitetura de Software
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 25/28
21/03/2023, 20:15 Arquitetura de Software
Síntese
Concluímos este capítulo compreendendo como as arquiteturas de software se
adaptam e se modelam às novas tecnologias de sistemas, como ambiente web e
dispositivos móveis. Vimos que existem alternativas para a criação de arquiteturas
dependendo da aplicação e do ambiente de negócios no qual ele está inserido.
Essas arquiteturas devem se acoplar aos modelos, e não existe uma regra rígida,
mas sim um bom senso na criação e definição das linguagens, dos modelos e das
características dos sistemas.
Neste capítulo, você teve a oportunidade de:
compreender o processo de elaboração de projetos para uma aplicação
web;
elaborar projetos para uma aplicação em dispositivos móveis;
entender como avaliar as alternativas existentes para os diversos modelos;
compreender a aplicação da linguagem de descrição de arquitetura;
verificar a conformidade de uma arquitetura de software;
compreender como elaboramos os projetos de componentes.
Bibliografia
CHAGAS, F. B. Checagem de conformidade arquitetural na modernização
orientada a arquitetura. 81 f. 2016. Dissertação (Mestrado em Ciência da
Computação), Centro de Ciências Exatas e de Tecnologia, Programa de Pós-
Graduação em Ciências da Computação, Universidade Federal de São Carlos. São
Carlos: UFSCar, 2016. Disponível em:
<https://repositorio.ufscar.br/bitstream/handle/ufscar/8392/DissFBC.pdf?
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 26/28
21/03/2023, 20:15 Arquitetura de Software
sequence=1&isAllowed=y
(https://repositorio.ufscar.br/bitstream/handle/ufscar/8392/DissFBC.pdf?
sequence=1&isAllowed=y)>. Acesso em: 23/5/2018.
FONSECA FILHO, C. História da computação: o caminho do pensamento e da
tecnologia. Porto Alegre: PUC-RS, 2007.
GARLAN, D.; SHAW, M. An introduction to software architecture. New Jersey:
World Scientific Publishing Company, 1994.
JÚNIOR, E. A. O.; FORTES, R. P. M. Arquitetura de software na web atual:
processamento no servidor. Instituto de Ciências Matemáticas e de Computação
(ICMC), Universidade de São Paulo (USP), São Carlos, 2007. Disponível em:
<http://conteudo.icmc.usp.br/CMS/Arquivos/arquivos_enviados/BIBLIOTECA_113_N
D_78.pdf
(http://conteudo.icmc.usp.br/CMS/Arquivos/arquivos_enviados/BIBLIOTECA_113_N
D_78.pdf)>. Acesso em: 22/5/2018.
KIKOT, T.; FERNANDES, S.; COSTA, G. Potencial da aprendizagem baseada-em-jogos:
um caso de estudo na Universidade do Algarve. Revista Ibérica de Sistemas e
Tecnologias de Informação, Rio Tinto, n. 16, ano 3, p. 17-29, dez. 2015. Disponível
em: <http://www.scielo.mec.pt/pdf/rist/n16/n16a03.pdf
(http://www.scielo.mec.pt/pdf/rist/n16/n16a03.pdf)>. Acesso em: 23/5/2018.
LEE, V. Aplicações móveis: arquitetura, projeto e desenvolvimento. São Paulo:
Pearson Education do Brasil, 2005.
MICROSOFT AZURE. O que é middleware? Microsoft, 2018. Disponível em:
<https://azure.microsoft.com/pt-br/overview/what-is-middleware
(https://azure.microsoft.com/pt-br/overview/what-is-middleware)>. Acesso em:
23/5/2018.
MILANEZ, C. A.; TAIT, T. F. C. Uma arquitetura de data warehouse para apoio à gestão
de projetos em desenvolvimento distribuído de software. Revista
Eletrônica de Sistemas de Informação, Curitiba, v. 11, n. 1, p. 1-17, jan./jun. 2012.
Disponível em:
<http://www.periodicosibepes.org.br/index.php/reinfo/article/view/728/pdf
(http://www.periodicosibepes.org.br/index.php/reinfo/article/view/728/pdf)>.
Acesso em: 23/5/2018.
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 27/28
21/03/2023, 20:15 Arquitetura de Software
MILANEZ, C. A.; TAIT, T. F. C. Uma arquitetura de data warehouse para apoio à gestão
de projetos em desenvolvimento distribuído de software. Revista
Eletrônica de Sistemas de Informação, Curitiba, v. 11, n. 1, p. 1-17, jan./jun. 2012.
Disponível em:
<http://www.periodicosibepes.org.br/index.php/reinfo/article/view/728/pdf>
(http://www.periodicosibepes.org.br/index.php/reinfo/article/view/728/pdf>).
Acesso em: 23/5/2018.
PILAR, C. P. Avaliação das arquiteturas de desenvolvimento para dispositivos
móveis. 89 f. 2013. Monografia (Trabalho de Conclusão de Curso em Sistemas de
Informação), Centro de Computação e Tecnologia da Informação, Universidade de
Caxias do Sul. Caxias do Sul: UCS, 2013. Disponível em:
<https://repositorio.ucs.br/xmlui/bitstream/handle/11338/1245/TCC%20Carina%20
Ponzoni%20Pilar.pdf?sequence=1&isAllowed=y
(https://repositorio.ucs.br/xmlui/bitstream/handle/11338/1245/TCC%20Carina%20
Ponzoni%20Pilar.pdf?sequence=1&isAllowed=y)>. Acesso em: 23/5/2018.
PRESSMAN, R. Engenharia de software: uma abordagem profissional. 8. ed. Porto
Alegre: McGraw Hill, 2016.
SERMAN, D. V. Orientação a projetos: uma proposta de desenvolvimento de uma
arquitetura orientada a serviços. Journal of Information Systems and Technology
Management (JISTEM), São Paulo, v. 7, n. 3, p. 619-638, 2010. Disponível em:
<http://www.scielo.br/pdf/jistm/v7n3/07.pdf
(http://www.scielo.br/pdf/jistm/v7n3/07.pdf)>. Acesso em: 23/5/2018.
SILVA FILHO, A. M. Desenvolvimento de software requer processo e gestão. Revista
Espaço Acadêmico, Maringá, UEM, v. 11, n. 123, p. 46-57, ago. 2011. Disponível em:
<http://periodicos.uem.br/ojs/index.php/EspacoAcademico/article/view/14312/759
3
(http://periodicos.uem.br/ojs/index.php/EspacoAcademico/article/view/14312/7593
)>. Acesso em: 23/5/2018.
SOMMERVILLE, I. Engenharia de software. 9. ed. São Paulo: Pearson Prentice Hall,
2011.
https://student.ulife.com.br/ContentPlayer/Index?lc=daOC9gBTKk4VqPoEZKx%2bXQ%3d%3d&l=em87Bto5KPKBRlZLvb%2bRnQ%3d%3d&c… 28/28