Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Component software: beyond object-oriented programming
Component software: beyond object-oriented programming
Product-line architectures in industry: a case study
Proceedings of the 21st international conference on Software engineering
A Classification and Comparison Framework for Software Architecture Description Languages
IEEE Transactions on Software Engineering
Software Architecture in Practice
Software Architecture in Practice
Mining Patterns to Support Software Architecture Evaluation
WICSA '04 Proceedings of the Fourth Working IEEE/IFIP Conference on Software Architecture
A Critical Look at Open Source
Computer
Succeeding with Open Source (Addison-Wesley Information Technology Series)
Succeeding with Open Source (Addison-Wesley Information Technology Series)
Studying Software Engineers: Data Collection Techniques for Software Field Studies
Empirical Software Engineering
A Tool for Managing Software Architecture Knowledge
SHARK-ADI '07 Proceedings of the Second Workshop on SHAring and Reusing architectural Knowledge Architecture, Rationale, and Design Intent
Analysis of Architecture Pattern Usage in Legacy System Architecture Documentation
WICSA '08 Proceedings of the Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008)
Using Patterns to Capture Architectural Decisions
IEEE Software
The transformation of open source software
MIS Quarterly
Design and evaluation of a process for identifying architecture patterns in open source software
ECSA'11 Proceedings of the 5th European conference on Software architecture
Hi-index | 0.00 |
Background: Open Source Software (OSS) is increasingly used in product development. Besides some much-reported benefits of this approach, using OSS products also presents new challenges. One such challenge is identifying relevant, high-quality OSS products among the hundreds of thousands that are available. One approach for doing that is to identify architectural patterns, since these patterns have a direct effect on a product's quality attributes, such as performance and reliability. However, there are no well-defined methods or tools available to identify architectural patterns. Research aim: Our goal is to identify approaches taken by novice software engineers that have no or little experience in identifying architectural patterns. We aim to get insight into how these novices tackle this problem, what challenges they encounter and what suggestions they have for improving this process. Method: We collected data from seven M. Sc. student teams that performed a pattern identification assignment. We conducted semi-structured interviews with eight students from two teams. We studied reflection reports from four teams that reported their experiences as part of their final report. Furthermore, during his M. Sc. course, one of the authors performed the assignment as a member of a team. We also included his experiences. Results and conclusions: We identified a number of approaches that students have taken in order to identify architectural patterns, as well as a number of challenges that they encountered in this task. Furthermore, based on suggestions from the students, we present a proposal to improve this process.