Several different information items can be recommended
Several different information items can be recommended to support the software engineer in his/her task according to his/her needs. These items types include source code within a project, reusable source code, code examples, operations and people (Robillard et al., 2014). We witness several works on this Flavopiridol hydrochloride field, among which we cite: CodeBroker (Ye and Fischer, 2002), Erose (Zimmermann et al., 2005), Strathcona (Holmes et al., 2005), XSnippet (Sahavechaphan and Claypool, 2006), Suade (Warr and Robillard, 2007), Code Conjurer (Hummel et al., 2008), Selene (Takuya and Masuhara, 2011), Quick Fix Scout (Muşlu et al., 2012) and a code reviewer recommender system (Hannebauer et al., 2016). Gasparic and Janes (2016) find in their recent research that the majority of recommender systems in software engineering recommend source code. Files, either digital documents or binary ones representing deployed source code are also the concern of some recommender systems. In turn, Web services, seen as software components where implementation details are hidden behind the interfaces (Yu et al., 2007), are the focus of some recommender systems. Indeed, we cite some existing papers about recommendation in the field of Web service discovery (Ma, Sheng, Liao, Zhang, Ngu, 2012, Xu, Martin, Powley, Zulkernine, 2007, Chan, Gaaloul, Tata, 2012), Web service selection (Manikrao, Prabhakar, 2005, Zheng, Ma, Lyu, King, 2009, Zheng, Ma, Lyu, King, 2011), and Web service composition (Chen, 2012, Garg, Mishra, 2008, Maaradji, Hacid, Daigremont, Crespi, 2010). The reader may refer to Kasmi et al. (2016) for the mashup context. Semantics play an important role in software component-based development as they improve components identification, selection and integration through, among others, the use of ontologies (Kaur and Mishra, 2017). Analogously, they allow to improve discovery, composition and reuse in the context of Web services (Cardoso, Sheth, 2005, Chen, Feng, Chen, Huang, Tan, Zhang, 2015). A great deal of research effort is invested towards the semantic Web services (Wang et al., 2015). Several works propose specific ontologies such as OWL-S (Fensel et al., 2006), WSMO (Roman et al., 2005) and SAWSDL (Kopeck et al., 2007). Moreover, ontologies intended to represent domain knowledge are incorporated in recommender systems in order to generate more accurate recommendations (de Gemmis et al., 2015). To the best of our knowledge, no ontology-based recommender system has been proposed to assist software engineers in identifying coarse-grained software components. The remaining of this paper is structured as follows. Section 2 presents the high-level architecture of the proposed recommender system. Section 3 is dedicated to the COTS components ontology elaborated for item knowledge representation. Section 4 presents an overview of the user model constructed to incorporate the context in the recommendation process. Section 5 describes the ontology-based recommendation process. Section 6 deals with the experimentation carried out to evaluate the recommendation relevance. Finally, the paper ends with a conclusion.