Definição de um guia de apoio às decisões em definições de
arquiteturas de software
Júlio César de Paula Silva1 , André Luiz Peron Martins Lanna2 ,
Carlos Alberto Marques Pietrobon3,4
1
2
Faculdade Cotemig - Belo Horizonte - MG
CEFET-MG - Campus VIII - Varginha - MG
3
PUC-MG - Belo Horizonte - MG
4
UFOP - Ouro Preto - MG
[email protected], [email protected], [email protected]
Abstract. The software architecture has an important role at software quality.
This paper shows that architectural evaluation techniques are not being largely
used by software organizations. From this analysis, architectural scenarios were
proposed for attending the most common requirements, what allows companies
to develop their software from scenarios previously defined and evaluated.
1. Introdução
Qualidade de software é um tema que ultimamente tem recebido bastante atenção, devido
aos impactos positivos que dela podem decorrer. Organizações (privadas, governamentais, de pesquisa e de ensino) têm apresentado diversas propostas para tratar deste assunto,
considerando-o sob diferentes aspectos [Lanna and Pietrobon 2010]. Dentre as abordagens existentes destacam-se o reúso de software (artefatos, ideias, boas práticas, dentre
outros) e arquiteturas de software.
A arquitetura de um software pode ser vista como a infraestrutura sobre a qual o
software será construı́do através da integração (reúso) de componentes que determinarão
suas funcionalidades. Apesar de uma boa arquitetura não garantir que os requisitos de
um software serão atendidos, uma arquitetura ruim dificilmente permitirá que tais requisitos sejam satisfeitos[Hofmeister et al. 1999]. Além disso, é na arquitetura de um software que está concentrada grande parte dos requisitos, sobretudo aqueles relacionados a
atributos de qualidade tais como confiabilidade, modificabilidade, reusabilidade, dentre
outros. Estes requisitos são acoplados fortemente de modo que uma alteração em algum
requisito pode impactar no atendimento aos demais requisitos[Sommerville 2006]. Assim
a definição da arquitetura de um software é o resultado da priorização de seus requisitos
e de uma série de decisões tomadas para melhor atendê-los. Diversos métodos têm sido
propostos para avaliar arquiteturas tais como Quality Attribute Workshop (QAW) e Architecture Tradeoff Analysis Method (ATAM), apresentados em [Clements et al. 2002].
2. Resultados preliminares, a pesquisa e o método
A utilização de métodos de avaliação arquiteturais parece não ser uma prática bem estabelecida entre as organizações. Em entrevista realizada pelos autores em organizações
públicas e privadas de diversos tamanhos, foi identificado que apenas uma dentre as vinte
e uma empresas consultadas aplica métodos de avaliação arquitetural como ferramenta
de apoio às decisões dos arquitetos. Nas demais empresas a definição da arquitetura é
Figura 1. Método de definição de esboços arquiteturais.
realizada baseada no expertise dos arquitetos ou como resultado de discussões da equipe
de desenvolvimento quando não há a figura de um arquiteto na organização.
Baseado neste cenário propõem-se a criação de um guia de suporte a decisões e
definições arquiteturais, inicialmente voltado para arquiteturas J2EE. Este guia consiste
em uma série de protótipos arquiteturais organizados conforme os atributos de qualidade
definidos pela ISO-9126 e avaliados pelo método ATAM. Para cada protótipo participante
do guia são identificados os requisitos arquiteturais (através de cenários e do método
QAW), são propostos esboços arquiteturais baseado em uma lista de API’s candidatas
e, por fim, tais esboços arquiteturais são avaliados pelo método ATAM, confrontando-os
com os atributos de qualidade definidos pela ISO-9126. Este método para definição de
esboços arquiteturais está representado na figura 1.
Para elucidar os atributos de qualidade mais comuns um segundo questionário foi
aplicado nas empresas. Os resultados apontam que a utilização de recursos e o tempo
de resposta são os atributos da ISO-9126 que aparecem freqüentemente e recebem maior
atenção por parte das empresas. Neste momento estão sendo propostos esboços arquiteturais que atendam a estes atributos de qualidade para posteriormente serem avaliados pelo
método ATAM e incluı́dos no guia. Para os demais atributos de qualidade da ISO-9126
outros esboços arquiteturais serão posteriormente propostos e avaliados.
Por fim pode-se afirmar que esta pesquisa é relevante ao prover esboços arquiteturais voltados ao atendimento a atributos de qualidade que freqüentemente aparecem como
requisitos de software em desenvolvimento. Deste modo acredita-se que com a utilização
deste guia pelas organizações a qualidade de seus software aumente pela reutilização de
protótipos arquiteturais previamente definidos e avaliados.
Referências
Clements, P., Kazman, R., and Klein, M. (2002). Evaluating Software Architectures:
Methods and Case Studies. Addison Wesley.
Hofmeister, C., Nord, R., and Soni, D. (1999). Applied Software Architecture. AddisonWesley.
Lanna, A. L. P. M. and Pietrobon, C. A. M. (2010). Reuso de processos de software
baseado na componentização de processos e conhecimento. In Concurso de Teses e
Dissertação em Qualidade de Software, Belem.
Sommerville, I. (2006). Software Engineering. Addison-Wesley.
Download

Definiç ˜ao de um guia de apoio `as decis˜oes em definiç ˜oes de