ABSTRACT
The Software Product Lines (SPL) paradigm has arisen for taking advantage of existing common aspects between different products, while also considering product-specific features. The architecture of a SPL comprises a model that will result in product architectures, and may include solutions leading to bad (architectural) design. One way to assess such design decisions is through the identification of architectural bad smells, which are properties that prejudice the overall software quality, but are not necessarily faulty or errant. In this paper, we conduct an exploratory study that aims at characterizing bad smells in the context of product line architectures. We analyzed an open source SPL project and extracted its architecture to investigate the occurrence or absence of four smells initially studied in single systems. In addition, we propose a smell specific to the SPL context and discuss possible causes and implications of having those smells in the architecture of a product line. The results indicate that the granularity of the SPL features may influence on the occurrence of smells.
- S. Apel and D. Beyer. Feature cohesion in software product lines: an exploratory study. In Proceedings of the 33rd International Conference on Software Engineering, ICSE '11, pages 421--430, New York, NY, USA, 2011. ACM. Google ScholarDigital Library
- R. Arcoverde, I. Macia, A. Garcia, and A. von Staa. Automatically detecting architecturally-relevant code anomalies. In Recommendation Systems for Software Engineering (RSSE), 2012 Third International Workshop on, pages 90--91, june 2012.Google ScholarCross Ref
- W. J. Brown, R. C. Malveau, H. W. McCormick, III, and T. J. Mowbray. AntiPatterns: refactoring software, architectures, and projects in crisis. John Wiley & Sons, Inc., New York, NY, USA, 1998. Google ScholarDigital Library
- J. Feigenspan, C. Kästner, M. Frisch, R. Dachselt, and S. Apel. Visual support for understanding product lines. In The 18th IEEE International Conference on Program Comprehension, ICPC 2010, Braga, Minho, Portugal, June 30-July 2, 2010, pages 34--35, 2010. Google ScholarDigital Library
- M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston, MA, USA, 1999. Google ScholarDigital Library
- J. Garcia, D. Popescu, G. Edwards, and N. Medvidovic. Toward a catalogue of architectural bad smells. In Proceedings of the 5th International Conference on the Quality of Software Architectures: Architectures for Adaptive Software Systems, QoSA '09, pages 146--162, Berlin, Heidelberg, 2009. Springer-Verlag. Google ScholarDigital Library
- K. C. Kang, S. G. Cohen, J. A. Hess, W. E. Novak, and A. S. Peterson. Feature-oriented domain analysis (foda) feasibility study. Technical report, Carnegie-Mellon University Software Engineering Institute, November 1990.Google Scholar
- R. Kazman, M. Klein, and P. Clements. Atam: Method for architecture evaluation. Technical Report CMU/SEI-2000-TR-004, Carnegie Mellon Uiversity, Software Engineering Institute, 2000.Google ScholarCross Ref
- M. Lippert and S. Roock. Refactoring in Large Software Projects: Performing Complex Restructurings Successfully. Wiley, 1 edition, May 2006.Google Scholar
- I. Macia, J. Garcia, D. Popescu, A. Garcia, N. Medvidovic, and A. von Staa. Are automatically-detected code anomalies relevant to architectural modularity?: an exploratory analysis of evolving systems. In Proceedings of the 11th annual international conference on Aspect-oriented Software Development, AOSD '12, pages 167--178, New York, NY, USA, 2012. ACM. Google ScholarDigital Library
- K. Pohl, G. Böckle, and F. J. v. d. Linden. Software Product Line Engineering: Foundations, Principles and Techniques. Springer-Verlag New York, Inc., Secaucus, NJ, USA, 2005. Google ScholarDigital Library
- J. Rosik, A. Le Gear, J. Buckley, M. A. Babar, and D. Connolly. Assessing architectural drift in commercial software development: a case study. Softw. Pract. Exper., 41(1):63--86, Jan. 2011. Google ScholarDigital Library
- T. Thüm, C. Kästner, F. Benduhn, J. Meinicke, G. Saake, and T. Leich. Featureide: An extensible framework for feature-oriented software development. Science of Computer Programming, 2012. to appear; accepted 7 Jun 2012.Google Scholar
- J. van Gurp and J. Bosch. Design erosion: problems and causes. J. Syst. Softw., 61(2):105--119, Mar. 2002. Google ScholarDigital Library
Index Terms
- Architectural bad smells in software product lines: an exploratory study
Recommendations
Bad Smells in Software Product Lines: A Systematic Review
SBCARS '14: Proceedings of the 2014 Eighth Brazilian Symposium on Software Components, Architectures and ReuseSoftware product line (SPL) is a set of software systems that share a common, managed set of features satisfying the specific needs of a particular market segment. Bad smells are symptoms that something may be wrong in system design. Bad smells in SPL ...
Identifying Architectural Bad Smells
CSMR '09: Proceedings of the 2009 European Conference on Software Maintenance and ReengineeringCertain design fragments in software architectures can have a negative impact on system maintainability. In this paper, we introduce the concept of architectural "bad smells," which are frequently recurring software designs that can have non-obvious and ...
Investigating Variability-aware Smells in SPLs: An Exploratory Study
SBES '19: Proceedings of the XXXIII Brazilian Symposium on Software EngineeringVariability-aware smell is a concept referring to artifact shortcomings in the context of highly-configurable systems that can degrade aspects such as program comprehension, maintainability, and evolvability. To the best of our knowledge, there is very ...
Comments