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.