Condensation of class diagrams using machine learning

Publicerad

Typ

Examensarbete för masterexamen
Master Thesis

Modellbyggare

Tidskriftstitel

ISSN

Volymtitel

Utgivare

Sammanfattning

Although class diagrams can be a useful asset within software development, the size of reverse engineered diagrams may quickly become overwhelming in a large scale software environment. One way of keeping diagrams small is to condense them by removing the least important classes while keeping the remainder. This can be done through the use of machine learning where metrics of a class are used determine how important the class is. As not very many metrics have been used in this setting, the purpose of this thesis is to identify what metrics that are considered to be relevant for di erent stakeholders and then to nd how well the identi ed metrics work within the machine learner. Furthermore, the thesis also aims at evaluating if the method as a whole is useful within an industrial setting. The work was started by interviews in collaboration with Ericsson where their opinion regarding the importance of classes was gathered. Then followed the creation of a tool for condensing diagrams and an analysis of the performance of the machine learner. Additionally, condensed diagrams were compared to reverse engineered diagrams. Several new high performing metrics were found and extending the previous set of metrics improved the performance of the machine learner overall. Some aws were identi ed with the condensed diagrams, however they still managed to perform better than reverse engineered diagrams with all classes remaining and thus, the method should be considered advantageous in an industrial setting.

Beskrivning

Ämne/nyckelord

Informations- och kommunikationsteknik, Data- och informationsvetenskap, Information & Communication Technology, Computer and Information Science

Citation

Arkitekt (konstruktör)

Geografisk plats

Byggnad (typ)

Byggår

Modelltyp

Skala

Teknik / material

Index

item.page.endorsement

item.page.review

item.page.supplemented

item.page.referenced