Um Estilo Arquitetural para Linhas de Produtos de Software
Resumo
Esse artigo propõe um estilo arquitetural para a definição de arquiteturas de linhas de produtos de software e também uma estratégia para instanciação de produtos específicos derivados da arquitetura. Esse estilo é definido como extensão a linguagem AspectualACME, caracterizando a linguagem de descrição arquitetural PL-AspectualACME que aproveita os elementos originais de ACME e restrições formais de Armani de modo a assegurar descrições bem-formadas. Arquiteturas de linhas de produtos específicas podem ser derivadas do estilo. Como estudo de caso, o artigo apresenta a especialização do estilo arquitetural para a linha de produtos do Mobile Media, resultando em uma arquitetura de linha de produtos, e define a derivação de um produto específico a partir desta arquitetura.
Referências
Adachi, E. et al. (2009) "Variability Management in Aspect-Oriented Architecture Description Languages: An Integrated Approach." a ser publicado no SBES 2009, Fortaleza-CE.
Bashroush, R. et al. (2005) "ADLARS: An Architecture Description Language for Software Product Lines." Proceedings of the 2005 Annual IEEE/NASA Software Engineering Workshop (SEW).
Batista, T. et al. (2006) "Reflections on Architectural Connection: Seven Issues on Aspects and ADLs." Workshop on Early Aspects Aspect-Oriented Requirements Engineering and Architecture Design, ICSE'06, Shanghai, China, May, p. 178-187.
Clements, P ; Northrop, L. (2001). Software product lines: practices and patterns. Addison-Wesley.
Czarnecki, K., Eisenecker, U. (2000) "Generative Programming: Methods, Tools, and Applications", Addison-Wesley.
Dashofy, E. M., van der Hoek, A. Taylor, R. N. (2001) "A highly-extensible, XML-based architecture description language". Proceedings of the Working IEEE/IFIP Conference on Software Architecture (WICSA 2001), Amsterdam, Aug., p. 103-112.
Figueiredo, et al (2008) "Evolving Software Product Lines with Aspects: An Empirical Study on Design Stability". Proceedings of the 30th International Conference on Software Engineering (ICSE'08) , Leipzig.
Garlan, D., Monroe, R., Wile, D. (1997) "ACME: An Architecture Description Interchange Language". Proc. of the CASCON '97, Toronto, Nov., p. 169-183.
Loughran, et al. (2008) "Language Support for Managing Variability in Architectural Models". Proc. of the 7th Intl. Symposium on Software Composition, SC2008. Berlin: Springer Berlin / Heidelberg, v. 4954., p. 36-51.
Monroe, R. (2000) "Capturing Software Architecture Design Expertise With Armani", CMU School of Computer Science Technical Report CMU-CS-98-163.
Shaw, M. and Clements, P. (1996) "Toward boxology: preliminary classification of architectural styles." In Joint Proceedings of the Second international Software Architecture Workshop (ISAW-2) Workshops
Van der Hoek, A. et al. (2001) "Taming Architectural Evolution" in Proceedings of the Joint 8th European Software Engineering Conference.
Van Ommering, R. et al. (2000) The Koala Component Model for Product Families in Consumer Electronics Software. IEEE Computer, 2000. 33(2): pp. 78-85.