首页 | 本学科首页   官方微博 | 高级检索  
     


Learning from optimization: A case study with Apache Ant
Affiliation:1. Informatics Department (DIN), State University of Maringá (UEM), CEP 87020-900, Maringá, Brazil;2. Computer Science Department (DInf), Federal University of Paraná (UFPR), CP 19.081, CEP 81.531-970, Curitiba, Brazil;1. University of New South Wales, Sydney, Australia;2. Universidade Federal do Rio Grande do Sul, Porto Alegre, Brazil;3. The University of Sydney, Sydney, Australia;4. Monash University, Melbourne, Australia
Abstract:ContextSoftware architecture degrades when changes violating the design-time architectural intents are imposed on the software throughout its life cycle. Such phenomenon is called architecture erosion. When changes are not controlled, erosion makes maintenance harder and negatively affects software evolution.ObjectiveTo study the effects of architecture erosion on a large software project and determine whether search-based module clustering might reduce the conceptual distance between the current architecture and the design-time one.MethodTo run an exploratory study with Apache Ant. First, we characterize Ant’s evolution in terms of size, change dispersion, cohesion, and coupling metrics, highlighting the potential introduction of architecture and code-level problems that might affect the cost of changing the system. Then, we reorganize the distribution of Ant’s classes using a heuristic search approach, intending to re-emerge its design-time architecture.ResultsIn characterizing the system, we observed that its original, simple design was lost due to maintenance and the addition of new features. In optimizing its architecture, we found that current models used to drive search-based software module clustering produce complex designs, which maximize the characteristics driving optimization while producing class distributions that would hardly be acceptable to developers maintaining Ant.ConclusionThe structural perspective promoted by the coupling and cohesion metrics precludes observing the adequate software module clustering from the perspective of software engineers when considering a large open source system. Our analysis adds evidence to the criticism of the dogma of driving design towards high cohesion and low coupling, at the same time observing the need for better models to drive design decisions. Apart from that, we see SBSE as a learning tool, allowing researchers to test Software Engineering models in extreme situations that would not be easily found in software projects.
Keywords:Apache Ant  Heuristic search  Software module clustering  Experimental Software Engineering
本文献已被 ScienceDirect 等数据库收录!
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号