Do maintainers utilize deployed design patterns effectively?

Abstract:One claimed benefit of deploying design patterns is facilitating maintainers to perform anticipated changes. However, it is not at all obvious that the relevant design patterns deployed in software will invariably be utilized for the changes. Moreover, we observe that many well-known design patterns consist of three types of programming elements (called participants), and that performing an anticipated change typically entails multiple tasks related to different types of participants. This paper studies empirically whether maintainers utilize deployed design patterns, and when they do, which tasks they more commonly perform. Our experiments show that almost all subjects perform the task of adding new concrete participants, fewer perform the tasks involving clients, whereas even fewer perform the tasks involving abstract participants. Furthermore, utilizing deployed design patterns (by performing whichever of the corresponding tasks) is found to be statistically associated with the delivery of less faulty codes.
Grants:HKUST DAG05/06.EG40, CityU 1166/04E
Links:PDF, DOI
Citation:T.H. Ng, S.C. Cheung, W.K. Chan and Y.T. Yu, "Do maintainers utilize deployed design patterns effectively?," in Proceedings of the 29th International Conference on Software Engineering (ICSE 2007), Minneapolis, MN, USA, May 20-26, pages 168-177, IEEE Computer Society Press, Los Alamitos, California, USA (2007).
Remarks:[Acceptance rate: 15.0%, 50 out of 334]
Related Papers:-

Selected Tags

Tag Groups


ACM SigSoft
IEEE Software Engineering Online