In rated by other users. The main challenge

Topics: BusinessIndustry


Sample donated:

Last updated: December 24, 2019

In this section, we review relevant literature on recommender systems, including traditional recommender systems, recommender systems for software engineering and recommender systems for UML models.        subsection{Traditional Recommender Systems}        RS approaches are usually classified into three categories: collaborative filtering, content-based filtering and knowledge-based filtering.                The idea of collaborative filtering models are to predict the utility of items for a user based on the items previously rated by other users. The main challenge in designing collaborative filtering methods as presented by citep{aggarwal2016recommender} is that the underlying rating matrices are sparse. Several collaborative systems were developed in the academia and the industry. The first one was the Grundy system citep{rich1979user}, which used stereotypes based on the amount of information specified for each user to build user models. After it, we had GroupLens citep{konstan1997grouplens}, Ringo citep{shardanand1995social} and Video Recommender citep{hill1995recommending}, the first recommender systems to use collaborative filtering to predict users preferences.

We did not find any publicly available repository of interaction data between users and UML models, precluding us, thus, to propose recommendations using collaborative filtering.                On the other hand, the content-based approach is based on the content of the items that are recommended citep{baeza1999modern}. It recommends items that are similar to others that a user liked in the past citep{mooney2000content}. Each user has a profile that can be matched with item descriptions to make recommendations citep{aggarwal2016recommender}.            Knowledge-based techniques exploit background knowledge about the recommendable items in order to improve recommendation accuracy. As an example, the system Entr'{e}e citep{trewin2000knowledge} uses domain knowledge about cuisines and foods to recommend restaurants to users. Usually, knowledge-based recommendation approaches have been developed for application domains where domain knowledge is readily available in some structured machine-readable form, e.g.

Don't use plagiarized sources.
Get Your Custom Essay on "In rated by other users. The main challenge..."
For You For Only $13.90/page!

Get custom paper

, as an ontology citep{RecSysHandbChapter07CARecSys}. As examples, the Quickstep and Foxtrot systems citep{middleton2004ontological} use a topic ontology in order to recommend online research articles to the users. In this paper we also propose to exploit the rich metadata of UML models, in the form of a handcrafted ontology, for recommending UML models.

                To the best of our knowledge, this is one of the first research works concerned with applying RS for different kinds of UML models.            subsection{Recommender Systems for Software Engineering}        The idea of building RS for Software Engineering artifacts is not new, but most of them are related to recommending source code, experts and other software artifacts like bug reports citep{RSSE_5235134}.                In the context of Software Engineering, RS are used to minimize the effort of the developer and help her have faster access to artifacts of her interest. Most works aim to increase reusability, providing ease of maintenance, improving productivity and making suggestions according to the preferences of the developer.

        citet{Hipikat}, for example, exploits RS for bug fixes. citet{CodeBroker}, citet{Mendel}, and citet{Rascal} propose to recommend classes and methods based on the current class being used by the developer.        citet{Dhruv} go beyond recommendation methods and indicate artifacts based on the bug fix process. citet{Dhruv} differs from citet{Hipikat} by the approach adopted in the bug fix process. They both use information from different developers to correct a defect. Finally, citet{DPROverview} recommends project artifacts, specifically design patterns, taking a different approach than the others because it is more focused on identifying problem contexts.            citet{MoogleLucredio} investigated a way to use metamodel information to build a search mechanism to software models (including UML models).

They use Information Retrieval techniques to extract data from UML models to perform their searches. The difference to our work is that besides using information retrieval techniques for recommendations, we also proposed more specific user/item representations based on high level features extracted from the UML metamodel.                 %add{Their approach is general, while we focus on extracting information that are specific for class and sequence diagrams. Thus, we expect to present an approach that is more directed to these diagrams instead of trying to recommend any of them.}        In previous work we proposed a bag-of-words and a content-based approach for recommending UML sequence diagrams with different users’ and items’ profiles citep{cerqueiracontent}. This work is broadly extended here as mentioned in the introduction.

                citet{UMLClassRecSoftDesign} proposed a Recommender System for UML classes that uses only the similarity between names of classes, attributes and operations to compute the recommendations. The recommendations concern only single UML classes that are suggested while developers design their class diagrams. In our work we consider a larger number of more sophisticated high level content features.

Moreover, we recommend entire UML class and sequence diagrams instead of singleton UML classes.                 %The recommendations are collected from UML class diagrams and are computed by using the semantic relations existing between their characteristics. Our work recommends entire diagrams, presenting different content based approaches (considering the metamodel and related metrics instead of the name of classes, attributes and methods) and also proposes a knowledge based approach, while doing the same also for UML sequence diagrams.}

Choose your subject


I'm Jessica!

Don't know how to start your paper? Worry no more! Get professional writing assistance from me.

Click here