Você está na página 1de 7

Engenharia

Nesta seção você encontra artigos voltados para testes, processo,


modelos, documentação, entre outros

Definição de arquiteturas de referência


Exemplos e processos para projetar arquiteturas de referência

Fique por dentro:


Neste artigo será apresentado uma visão ge-
ral sobre arquitetura de referência, um tipo
especial de arquitetura de software que en-
globa o conhecimento sobre como projetar
arquiteturas de concretas dos sistemas de um
determinado domínio de aplicação, abrangen-
Edson A. Oliveira Junior do terminologias relacionadas à arquitetura
edson@din.uem.br de referência, bem como definições, conceitos,
Professor de Engenharia de Software na Uni- objetivos, benefícios e limitações. Além disso,
versidade Estadual de Maringá (UEM). Doutor
em Ciência da Computação pelo Instituto de
serão apresentados dois exemplos de processo
que podem ser utilizados para apoiar o desen-

A
Ciências Matemáticas e de Computação (ICMC) s exigências em aumentar a
da Universidade de São Paulo (USP). Principais funcionalidade, qualidade e volvimento de arquiteturas de referência. O
temas de pesquisa: linha de processo de softwa- manter um padrão de software, entendimento deste tema é útil uma vez que
re, linha de produto de software, arquitetura de além de reduzir custos, levou a comu- estas arquiteturas permitem a reutilização de
software e avaliação, métricas, engenharia de
software experimental, modelos e metamode-
nidade de engenharia de software a conhecimento e experiência de projetos o que
los UML. Possui as certificações Java: SCJA, SCJP, investigar e propor uma infraestrutura fornece mais qualidade e agilidade no processo
SCJD, SCWCD e SCBCD. central conhecida como arquitetura de de desenvolvimento.
referência.
Arquitetura de Referência (AR) é um
Ana Paula Allian tipo especial de arquitetura de software disso, deve abranger as melhores prá-
ana.allian@gmail.com
Aluna de Mestrado em Ciências da Computação e refere-se a uma arquitetura que englo- ticas de desenvolvimento de software,
pela Universidade Estadual de Maringá. Bolsista ba o conhecimento sobre como projetar por exemplo, decisões de arquitetura,
da Coordenação de Aperfeiçoamento de Pessoal arquiteturas de software concretas dos restrições de domínio, legislação e nor-
de Nível Superior (CAPES) na área de Sistema da sistemas de um determinado domínio mas, além dos elementos de software
Informação. Trabalhando especificamente com
de aplicação. Tal arquitetura deve con- que suportam o desenvolvimento de
Arquiteturas de Referência e Gerenciamento de
Variabilidade. Possui Especialização em Desen- siderar as regras de negócio, estilos ou sistemas para esse domínio.
volvimento de Sistemas Web pela Universidade padrões arquiteturais que abordam os Neste artigo apresentaremos uma visão
Estadual de Maringá (UEM). atributos de qualidade da AR. Além geral sobre arquiteturas de referência,

Edição 75 - Engenharia de Software Magazine 47


Copyright - Proibido copiar ou distribuir. Todos os direitos reservados para DevMedia 47
abrangendo terminologias relacionadas à área de pesquisa de Alguns padrões representam soluções conhecidas para os
arquitetura de software com objetivo de elucidar as definições problemas de desempenho, outros para sistemas de alta segu-
de termos relacionados a ela. Também serão abordados seus rança, outros têm sido utilizados com sucesso em sistemas de
principais conceitos, objetivos, definições, benefícios e limita- alta disponibilidade. Exemplos de padrão/estilo arquitetural
ções. Além disso, discutiremos as diferenças existentes entre são: i) Estilo cliente-servidor: separa o sistema em duas apli-
arquiteturas de referência e arquitetura de linha de produto cações em que o cliente faz solicitações ao servidor; ii) Estilo
de software. Também serão apresentados alguns exemplos arquitetura em camadas: distribui os interesses da aplicação em
de arquiteturas de referência consolidas no mercado. Por grupos empilhados que são as camadas; iii) Estilo de arquitetura
conseguinte, abordaremos dois processos para se projetar baseada em componentes: o projeto da aplicação é decomposto
arquiteturas de referência. em componentes reutilizáveis, tanto funcionais ou lógicos, que
expõem interfaces de comunicação bem definidas.
Terminologias Diferentemente de uma arquitetura de referência, um padrão
Antes de aprofundarmos o conhecimento sobre arquitetura arquitetural apenas descreve a organização e funcionamento
de referência, é importante compreender claramente outros dos componentes do sistema, mas não descreve a finalidade de
conceitos que envolvem a área de arquitetura de software. um sistema. Por outro lado, o foco da arquitetura de referência
Os termos mais utilizados nessa área são: arquitetura de está na definição das funcionalidades necessárias de um dado
software, padrão arquitetural, estilo arquitetural e modelo domínio (definido no modelo de referência correspondente) e a
de referência. sua interação com o ambiente de domínio. Portanto, os padrões
A arquitetura de software, também chamada de arquitetura arquiteturais são independentes do domínio da aplicação e
concreta, tem sido uma área de pesquisa fundamental em são concebidos para abordarem certos atributos de qualidades
engenharia de software, devido ao seu profundo impacto (desempenho, interoperabilidade).
sobre a produtividade e qualidade de software. Uma arqui- Modelo de referência é uma divisão do sistema em fun-
tetura de software é a estrutura (ou estruturas) do sistema cionalidades que juntas cooperam entre se para resolver um
que compreendem os elementos de software, as propriedades problema. Tais funcionalidades são produtos de experiência
externamente visíveis desses elementos e os relacionamentos da equipe técnica e de negócio. Um modelo de referência
entre eles. Apesar de promover um conjunto de boas práticas não está diretamente ligado a normas, tecnologias ou outros
de desenvolvimento de software análogo à arquitetura de detalhes de práticas de implementação, mas procura oferecer
referência, há diferenças entre esses dois conceitos que devem uma semântica comum que pode ser usada de forma não
ser mencionadas: ambígua por diferentes implementações. Por outro lado, uma
• Arquiteturas de referência são definidas em um alto nível de arquitetura de referência abrange o conhecimento sobre como
abstração se comparado com arquiteturas de software devido projetar arquiteturas concretas, portanto ela deve abordar as
à sua natureza mais geral; regras de negócio, padrões/estilos arquiteturais, melhores
• Arquitetura de software possui um grupo definido das práticas de desenvolvimento de software e elementos de
partes interessadas no projeto, enquanto que na arquitetura de software que apoiam o desenvolvimento de sistemas para
referência essa definição não é clara devido à composição de determinado domínio.
grupos heterogêneos de partes interessadas que pode evoluir Modelo de referência, padrões/estilos arquiteturais e arqui-
em diferentes empresas; teturas de referência não são arquiteturas, mas conceitos úteis
• Arquitetura de referência tem de resolver mais atributos que capturam elementos de uma arquitetura. Tais conceitos
de qualidade arquiteturais comparados a uma arquitetura são resultados de decisões de projetos anteriores, conforme
de software. Há também requisitos não funcionais que são visualizado na Figura 1.
importantes apenas para arquiteturas de referência tais como
a aplicabilidade ou viabilidade da arquitetura;
• Arquitetura de software consiste em um grupo de especi-
ficações que direcionam o desenvolvimento individual dos
módulos de software pertencentes a um sistema.

Padrão arquitetural e estilo arquitetural são conceitos análo-


Figura 1. Relação entre modelo de referência, padrões de arquitetura,
gos e correspondem a uma descrição dos elementos e dos tipos arquiteturas de referência e arquiteturas de software
de relacionamentos juntamente com um conjunto de restrições
sobre como eles podem ser utilizados. Tal conceito é mais
abrangente, pois define um conjunto de restrições quanto à Arquitetura de Referência
forma e a estrutura de uma família de arquiteturas de software. Arquitetura de referência é considerada um padrão pré-
Além disso, ele é construído abrangendo experiências bem- definido projetado para um determinado contexto de negócio.
sucedidas de profissionais de desenvolvimento de software Tal conceito faz uso de artefatos muitas vezes concebidos em
que aplicam esses padrões em novos projetos. projetos anteriores. Para isso, ela deve possuir conhecimento

48 Engenharia de Software Magazine Copyright


- Medição de- Software
Proibidonocopiar
CMMIou
e MPS.BR
distribuir. Todos os direitos reservados para DevMedia
48
ENgENhARiA

e informação adquirida. Além disso, uma AR alcança a com- para os elementos de uma arquitetura de aplicação específica,
preensão de domínios específicos bem reconhecidos, promo- bem como a avaliação das regras de AR para uma arquitetura
vendo a reutilização de experiências em projetos e facilitando de aplicativo. Além disso, outra vantagem está no potencial de
o desenvolvimento, padronização, qualidade e evolução de aumento da interoperabilidade, tanto dentro das corporações,
sistemas de software. bem como dentro das indústrias e domínios.
Em síntese, uma AR deve abranger três conceitos principais:
• Elementos técnicos: fornece soluções em tecnologia abran- Diferenças entre Arquitetura de LPS e Arquitetura de
gendo os padrões de projeto e padrões arquiteturais; Referência
• Modelo de negócio: abrange os modelos de negócio e ciclo de Arquitetura de Referência e Arquitetura de Linha de Produto
vida do projeto, além de guiar as decisões no domínio técnico; de Software (ALPS) são conceitos frequentemente considerados
• Necessidade dos clientes: as orientações são fornecidas por equivalentes, pois ambos têm como objetivo melhorar o desen-
processos e considerações do domínio empresarial, cliente e volvimento do sistema de software por meio da padronização das
usuário. arquiteturas de um conjunto de sistemas de software. Apesar das
semelhanças entre AR e ALPS existem diferenças importantes
A Figura 2 mostra a união da arquitetura de negócio, ar- entre esses dois conceitos que devem ser mencionadas. A Figura
quitetura técnica e de contexto do cliente representando uma 3 e os itens a seguir apresentam as diferenças entre elas:
arquitetura de referência. O único denominador comum são • ALPS geralmente se aplica a um conjunto de produtos
os requisitos onde as características (Features) e funções são dentro de uma organização ou empresa e pode ser baseada
modelados de forma independente no produto. em uma AR;
• ALPS são AR, mas nem todas as ARs são ALPS;
• ALPS pertence ao núcleo de artefatos de uma linha de produ-
to e, por ser um artefato, ela dita “o que o projeto é”, enquanto que
as ARs ditam os padrões e princípios para a implementação,
ou seja, “o que o projeto deve ser”;
• ALPS são mais especializadas, com foco, por vezes, em um
subconjunto específico de sistemas de um domínio de software
com fornecimento de soluções padronizadas para uma família
menor de sistemas e preocupados com as variabilidades entre
os produtos;
• ARs estão, em geral, em um nível mais alto de abstração em
comparação com ALPS.

Pode-se observar que a ALPS é produzida no núcleo de artefa-


tos na engenharia de domínio e também envolve as atividades
Figura 2. Modelo de negócios, Elementos técnicos e Necessidade dos de gerenciamento que engloba as atividades que representam
clientes formam juntos a Arquitetura de Referência
variabilidades em artefatos de software. Entretanto, uma AR
Portanto, AR é uma arquitetura generalizada com base nas possui um nível de abstração maior, envolvendo conceitos,
melhores práticas e pode ser aplicada a várias soluções como terminologias e conhecimento relacionados ao projeto arqui-
no meio automotivo, aviação e robótica. Um exemplo de AR tetural e melhores práticas. A relação entre esses dois conceitos
é um compilador. Há uma noção geral dos elementos básicos é que temos uma AR e uma possível instância dessa AR pode
de um compilador (por exemplo, front-end, back-end, tabela de ser uma ALPS como também pode ser uma arquitetura de
símbolos), o que devem fazer, e como eles estão interligados. software normal. Consequentemente, uma ALPS pode ser
Se algum arquiteto de softwares for idealizar um novo compi- uma instância da AR e quando se instancia uma ALPS, as
lador não irá começar do zero, mas sim com uma arquitetura variabilidades são resolvidas e como resultado obtêm-se uma
básica de referência em mente. arquitetura de um produto.
Um dos objetivos da AR é capturar o conhecimento implícito
para simplificar o desenvolvimento de novos produtos. Uma Benefícios e limitações das Arquiteturas de Referência
das vantagens é a de facilitar a reutilização e, assim, obter Apesar de muitas vantagens em se utilizar uma AR como, por
maior economia por meio da redução de ciclos de tempo, cus- exemplo, facilitar o reuso em projetos de software, há também
to e risco, além de um aumento da qualidade. O controle de algumas desvantagens que devem ser consideradas antes de
qualidade é realizado por meio da verificação de conformidade iniciar uma atividade tão abrangente como projetar uma AR.
dos sistemas em desenvolvimento para AR. Esta verificação de
conformidade pode ser realizada semiautomática e continu- Benefícios
amente, automatizando passos importantes como a extração A arquitetura de referência ajuda a garantir que os usuá-
da arquitetura do aplicativo real, a ligação de funções da AR rios finais e desenvolvedores possuam mais confiança na

Edição 75 - Engenharia de Software Magazine 49


Copyright - Proibido copiar ou distribuir. Todos os direitos reservados para DevMedia 49
tecnologia desenvolvida por meio da reutiliza-
ção de experiência em projetos. Esse e outros
benefícios da arquitetura de referência podem
ser vistos a seguir:
• Reduz o risco de implantação, pois conta com
soluções conhecidas e testadas;
• Simplifica a tomada de decisão;
• Fornece modelos mais consistentes;
• Aumenta a confiança da equipe de de-
senvolvimento por contar com soluções
comprovadas;
• Reduz as lacunas culturais entre as organi-
zações, pois une a experiência e conhecimento
de diferentes seguimentos em um modelo
comum;
• Fornece orientação para várias organizações
que evoluem ou criam novas arquiteturas;
• Aumento da interoperabilidade, tanto den-
tro das corporações, assim como dentro das
indústrias e domínios.

Outros motivos para se utilizar arquiteturas Figura 3. Diferenças entre Arquitetura de Referência e Arquitetura de LPS.
de referência são:
• Fazendo uso de AR é possível iniciar o desenvolvimento de System Architecture), para o domínio automóvel, “Continua”
aplicações desde o primeiro dia seguindo decisões de arqui- para sistemas de saúde pessoal, e UniversAAL, para Ambient
tetura já tomadas; Assisted Living (AAL). Em particular, essas arquiteturas têm
• Uma AR indica as diretrizes a serem seguidas pelos desen- sido desenvolvidas por consórcios que envolvem grandes
volvedores de aplicativos; parceiros industriais tais como, fabricantes, fornecedores e
• Uma AR reduz a complexidade no desenvolvimento de apli- pesquisadores.
cações porque parte das funcionalidades já estão resolvidas;
• Uma AR aumenta o controle sobre aplicações por meio da AUTOSAR
sua homogeneidade. Isso gera uma redução do custo de ma- Automotive Open System Architecture (AUTOSAR) é uma arqui-
nutenção das aplicações; tetura de referência criada para definir regras para o desenvolvi-
• Uma AR ajuda a melhorar os processos de negócio de uma mento de hardware, software e comunicação entre os módulos
organização. automotivos, objetivando o reuso destes desenvolvimentos entre
montadoras. O AUTOSAR é uma cooperação mundial entre as
Limitações montadoras, fornecedores e outras empresas do ramo.
Apesar das vantagens citadas, deve-se considerar alguns AUTOSAR é distinta em aplicação e peças de software
aspectos que podem se tornar um risco em projetos de arqui- básicas que se comunicam entre si por meio de um midd-
tetura de referência: leware de ambiente de tempo real Runtime Environment (RTE).
• Uma AR implica em um treinamento adicional para a equipe Os seus componentes encapsulam e caracterizam o software
envolvida no projeto aumentado a curva de aprendizado; e permitem uma troca de dados apenas por meio de interfaces
• Aplicações dependem dos módulos reutilizáveis da AR. Se bem definidas.
for necessário fazer mudanças em tais módulos, desenvolve- A Figura 4 apresenta a arquitetura AUTOSAR. Todos os
dores terão de aguardar até que a alteração seja concluída; módulos eletrônicos internos são conectados por meio do AU-
• O uso de um RA implica em seguir suas orientações durante TOSAR Runtime Environment RTE. Este ambiente é um centro
o desenvolvimento de aplicativos e adotar seu projeto arquite- de troca de informações entre os componentes de software.
tural. Se as necessidades de negócio exigirem um tipo diferente O RTE possui uma interface que precisa ser customizada para
de aplicação, a AR limitaria essa flexibilidade. cada componente:
• Application Layer: a camada de aplicação está fora do escopo
Exemplos de Arquitetura de Referência do AUTOSAR e corresponde à aplicação do cliente;
Diferentes domínios já encapsularam experiências e conheci- • AUTOSAR Runtime Environment (RTE): fornece serviços
mento de projetos em arquiteturas de referência com o objetivo de comunicação para os componentes de software AUTOSAR
de padronizar, divulgar e reutilizar essas experiências em no- e/ou para os componentes do sensor do atuador do sistema
vos projetos. Bons exemplos são AUTOSAR (AUTomotive Open AUTOSAR;

50 Engenharia de Software Magazine Copyright


- Medição de- Software
Proibidonocopiar
CMMIou
e MPS.BR
distribuir. Todos os direitos reservados para DevMedia
50
ENgENhARiA

• Services Layer (System Services, Memory-Services e para uma topologia de referência. As interfaces de rede
COM Services): fornece serviços básicos para os módulos de estão no centro dos objetivos de interoperabilidade do Con-
software da aplicação, tais como: operação de funcionalidades tinua e são o ponto crucial das metas de teste e certificação
do sistema; serviços de comunicação; gerenciamento de redes para garantir que os produtos de diferentes fornecedores
de veículos; serviços de memória; serviços de diagnóstico; trabalhem juntos. O nível mais alto do Continua identifica
gerenciamento de estado da ECU (Electronic Control Units); as seguintes interfaces:
• ECU Abstraction Layer: a camada abstrata da unidade de • Personal Area Network (PAN): é a interface para a comunicação
controle eletrônico fornece interfaces para os drivers na camada em torno de uma pessoa;
Microcontroller Abstraction Layer e componentes de drivers para • Local Area Network (LAN): interface para comunicação em
os dispositivos externos. Isso é feito por meio de uma API de um local ou instalação;
acesso a periféricos e dispositivos independentemente da sua • Wide Area Network (WAN): interface para comunicação em
localização física e conectividade; casa/escritório/prestadores de serviços, e;
• Microcontroller Abstraction Layer: a camada de abstração • Health Reporting Network (HRN): interface de rede para gerar
de microcontrolador é a camada mais baixa do software básico. os relatórios de serviços à saúde aos sistemas corporativos tais
É composta por controladores internos com acesso direto aos como hospitais, prestadores de serviços de telesaúde.
periféricos internos do microchip e dispositivos externos de
memória mapeada;
• Microcontroller: é a camada do microcontrolador do sistema
AUTOSAR;
• Complex Drivers: é a camada que dispõe dos drivers com-
plexos do sistema AUTOSAR.

Figura 5. Arquitetura de Referência do Continua

UniversAAL
UniversAAL é uma plataforma universal aberta e uma espe-
cificação de referência para ambiente de vida assistida Ambient
Figura 4. Arquitetura de Referência AUTOSAR Assisted Living. Esta especificação fornece uma abordagem
padronizada tornando-se técnica e economicamente viável
A vantagem da AUTOSAR está em sua flexibilidade. Ela pode para desenvolver soluções AAL.
transferir funções entre módulos se necessário, para garantir A Figura 6 apresenta a plataforma UniversAAL que consiste
a customização em diferentes empresas gerando diversas em três partes principais que são: Runtime Support, Development
características e tipos de veículos variados. Support e Community Support.
Runtime Support consiste em um ambiente de software que
Continua fornece serviços de núcleo AAL para a execução de aplicações
Continua Health Alliance é uma organização sem fins lucrativos AAL e também é um ambiente de software que disponibili-
que une organizações prestadoras de cuidados a saúde e em- za assistência aos serviços para a execução das aplicações.
presas de tecnologia. O objetivo desta colaboração é a melhoria É composto por:
da qualidade da saúde pessoal por meio de desenvolvimento • Execution Environment (API, OS and Hardware): é o
de padrões de projeto e ferramentas de testes para acelerar a nível mais baixo do ambiente Runtime Support e fornece uma
implantação de dispositivos interoperáveis ligados à saúde interface comum para abstrair recursos, por exemplo, sensores
pessoal. Além disso, desenvolve sistemas de gestão da saúde, que enviam dados através da plataforma universAAL. Essa
melhorando os resultados clínicos e a qualidade de vida. camada lida com a heterogeneidade de componentes e facilita
A arquitetura de referência do Continua é uma arquitetura a integração e comunicação entre eles;
end-to-end (E2E) e está representada na Figura 5. • Generic Platform Services: software que adiciona funcio-
A arquite s de serviços genéricos ao UniversAAL;
cionalidad atform Services: são softwares que proporcionam
e quatro in idades em nível empresarial ao UniversAAL.

Edição 75 - Engenharia de Software Magazine 51


Copyright - Proibido copiar ou distribuir. Todos os direitos reservados para DevMedia 51
Development Support inclui documenta-
ção, ferramentas e um repositório on-line
de vários recursos de desenvolvimento. É
composto por:
• Developers Depot: é um repositório onde a
comunidade de desenvolvedores AAL pode
navegar, baixar e publicar novos serviços;
• Developers Tools: um ambiente de de-
senvolvimento integrado proporcionando
editores UML e de código adaptados à
UniversAAL;
• Reference Architecture e Guidelines:
conjunto de modelos que definem o domínio
AAL e são usados para apoiar o desenvolvi-
mento da plataforma e os serviços.
Figura 6. Arquitetura de Referência do UniversAAL
Community Support inclui treinamento e
uma ferramenta online que fornece serviços informações ao projeto de uma AR. Tal AR serve como base
e aplicativos AAL. Consiste dos seguintes componentes: para desenvolver novas ferramentas de GV;
• uStore: permite aos provedores de serviços especificarem • Etapa 2. Estabelecimento dos requisitos arquiteturais: com
serviços AAL completos; base nas fontes selecionadas, três conjuntos de elementos são
• Example Services: são os exemplos de serviços prestados; identificados. Em primeiro lugar, o conjunto de requisitos
• Training material: material de treinamento focado nos as- de sistemas de software de domínio são identificados e, com
pectos técnicos do UniversAAL; base nesses requisitos, o conjunto de requisitos da AR é então
• Roadmaps: definição de roteiros e fornecimento de recomen- estipulado. Em seguida, o conjunto de conceitos que devem ser
dações da arquitetura de referência UniversAAL. considerados nessa arquitetura de referência é estabelecido;
• Etapa 3. Projeto arquitetural: nesta etapa a descrição ar-
Processos para Construção de Arquiteturas de Referências quitetural é construída utilizando os estilos e os padrões de
Nesta seção abordaremos dois processos que apoiam o arquitetura, bem como uma combinação destes e de outros
desenvolvimento de arquiteturas de referência. O primeiro estilos, provavelmente identificados no Passo 1. Estes estilos
processo, conhecido por ProSA-RA, sistematiza os passos e padrões são a base sobre a qual os conceitos previamente
para construção de uma AR para que se alcance um produto identificados são organizados. Textos e diagramas UML podem
de qualidade. O segundo processo fornece um ciclo para o ser utilizados para representação da AR em diferentes visões
desenvolvimento de uma arquitetura de referência. arquiteturais como: visão estrutural, visão de implantação,
visão de tempo de execução, etc.;
Processo ProSA-RA • Etapa 4. Avaliação Arquitetural: verificar a descrição da
O desenvolvimento de Arquiteturas de Referências não é algo arquitetura junto às partes interessadas com o objetivo de
trivial e por isso exige conhecimento do domínio e processos detectar defeitos na descrição da arquitetura. Pode-se utilizar
sistemáticos para consolidar uma proposta de AR de quali- checklist e frameworks de avaliação disponíveis no mercado.
dade. O ProSA-RA é um processo iterativo que sistematiza
os passos para construir, representar e avaliar arquitetura de É fundamental a definição do escopo, que pode ser realizado
referência (AR). com base no conjunto de sistemas que se destinam a ser pro-
O ProSA-RA, conforme ilustrado na Figura 7, é dividido em duzidos a partir da arquitetura de referência.
quatro etapas:
• Etapa 1. Investigação das fontes de informações: obtidas Segundo Processo
de pessoas, sistemas de softwares, publicações de revistas, A Arquitetura de Referência captura experiências anteriores,
livros, outros modelos de referência, ontologias de domínio, por exemplo, mineração ou generalização de arquiteturas exis-
etc. As informações adquiridas devem envolver os proces- tentes que estejam documentadas utilizando algum framework
sos e atividades que podem ser suportados por sistemas de arquitetural. Além disso, a arquitetura de referência depende
software do domínio a ser desenvolvido. Deve-se, portanto, da visão baseada nas necessidades (futuras) de clientes e de
obter conhecimento abrangente sobre o domínio. A Figura 8 negócios. Estas necessidades são exploradas e analisadas para
apresenta uma visão conceitual de captura de conhecimento serem transformados em requisitos futuros para o portfólio
e informação do domínio de ferramentas de gerenciamento de produtos.
de variabilidade (GV) para o projeto de AR. Observe que um A Figura 9 mostra esse fluxo de conceitos comprovados e
conjunto de ferramentas de GV pode ser utilizado para fornecer problemas conhecidos a partir de arquiteturas existentes e

52 Engenharia de Software Magazine Copyright


- Medição de- Software
Proibidonocopiar
CMMIou
e MPS.BR
distribuir. Todos os direitos reservados para DevMedia
52
ENgENhARiA

visões derivadas das necessidades dos projetar arquiteturas de software de estilos arquiteturais, melhores práticas
clientes/ negócio. Observa-se que no um determinado domínio de aplicação. e elementos de software que suportam
ciclo a arquitetura de referência deve Pode-se observar que uma arquitetura o domínio.
evoluir continuamente e deve ser ativa- de referência deve abranger conceitos Entre as vantagens citadas sobre arqui-
mente mantida e refatorada. relacionados a modelos de referência tetura de referência está a reutilização de
Este artigo apresentou uma visão e padrões arquiteturais somados à conhecimento e experiência de projetos o
geral de arquiteturas de referência que necessidade dos clientes. Portanto, ela que fornece mais qualidade e agilidade
abrangem conhecimento sobre como deve abordar as regras de negócio, no processo de desenvolvimento. Há
várias iniciativas de arquiteturas de
referência em diferentes domínios como
robótica, setor automotivo, saúde e se-
gurança. Basicamente, uma arquitetura
de referência deve ser compreensível,
atualizada e de fácil manutenção.

Links:

Bass, L., Clements, P. & Kazman, R., 2003.


Software Architecture in Practice. 2 ed. s.l.:
Addison Wesley.
Figura 7. Etapas do Processo ProSA-RA Cloutier, R. et al., 2010. The Concept of Re-
ference Architectures. Systems Engineering,
13(1), p. 14–27.

Martínez-fernández, S., Ayala, C. P., Franch, X. &


Marques, H. M., 2013. REARM: A Reuse-Based Eco-
nomic Model for Software Reference Architectures.
Safe and Secure Software Reuse, 7925(Lecture
Notes in Computer Science), pp. 97-112.

Nakagawa, E. Y. et al., 2014. Consolidating a


process for the design, representation, and eva-
luation of reference architectures. Proceedings
of the 2014 IEEE/IFIP Conference on Software
Architecture, Washington, DC, USA, p. 143–152.

Figura 8. Visão conceitual para aquisição de conhecimento para o desenvolvimento de AR OliveiraJr, E. & Allian, A. P., 2015. Do Reference
Architectures can Contribute to Standardizing
Variability Management Tools? Proceedings of
the 1st International Workshop on Exploring
Component-based Techniques for Constructing
Reference Architectures (CobRA), Montreal
Canadá, May, pp. 9-12.

Você gostou deste artigo?

Dê seu voto em
www.devmedia.com.br/esmag/feedback
Ajude-nos a manter a qualidade da revista!

Figura 9. Entradas de uma Arquitetura de Referência

Edição 75 - Engenharia de Software Magazine 53


Copyright - Proibido copiar ou distribuir. Todos os direitos reservados para DevMedia 53

Você também pode gostar