Escolar Documentos
Profissional Documentos
Cultura Documentos
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,
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.
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;
• 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.
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.
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:
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.
Dê seu voto em
www.devmedia.com.br/esmag/feedback
Ajude-nos a manter a qualidade da revista!