Treffer: Role stereotypes in software designs and their evolution.

Title:
Role stereotypes in software designs and their evolution.
Authors:
Ho-Quang, Truong1 (AUTHOR) truongh@chalmers.se, Nurwidyantoro, Arif2 (AUTHOR) arif.nurwidyantoro@monash.edu, Rukmono, Satrio Adi1,3,4 (AUTHOR) sar@itb.ac.id, Chaudron, Michel R.V.1,4 (AUTHOR) m.r.v.chaudron@tue.nl, Fröding, Fabian1 (AUTHOR), Ngoc, Duy Nguyen1 (AUTHOR)
Source:
Journal of Systems & Software. Jul2022, Vol. 189, pN.PAG-N.PAG. 1p.
Database:
Business Source Premier

Weitere Informationen

Role stereotypes are abstract characterisations of the responsibilities of the building blocks of software applications. The role a class plays within a software system reflects its design intention. Wirfs-Brock introduced the following six role stereotypes: Information Holder, which knows information, Structurer, which maintains object relationships, Service Provider, which offers computing services, Coordinator, which delegates tasks to others, Controller, which directs other's actions, and Interfacer, which transforms information. Knowledge about class role stereotypes can help various software development and maintenance tasks, such as program understanding, program summarisation, and quality assurance. This paper presents an automated machine learning-based approach for classifying the role-stereotype of classes in Java projects. We analyse this approach's performance against a manually labelled ground truth for three open source projects that contain 1,500+ Java classes altogether. The contributions of this paper include: (i) a machine learning (ML) approach to address the problem of automatically inferring role-stereotypes of classes in Object-Oriented Programming Languages, (ii) the manually labelled ground truth, (iii) an evaluation of the performance of the classifier, (iv) an evaluation of the generalisability of the approach, and (v) an illustration of new uses of role-stereotypes. The evaluation shows that the Random Forest algorithm yields the best classification performance. We find, however, that the performance of the ML-classifier varies a lot for different role stereotypes. In particular, its performance degrades when classifying rarer stereotypes. Among the 23 features that we study, features related to the classes' collaboration characteristics and complexity stand out as the best discriminants of role stereotypes. [Display omitted] • The role stereotype of classes within a software system reflect design intention. • The role stereotype of a class can be automatically determined by machine learning. • Role stereotypes can be used to tailor anti-pattern detection technique. • A significant change in the ratio of role stereotypes reflects a major design change. • Knowledge of role stereotypes is useful for architecture recovery. [ABSTRACT FROM AUTHOR]

Copyright of Journal of Systems & Software is the property of Elsevier B.V. and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)