Current experience in the development of service-oriented systems indicates that tasks such as discovery, systematic reuse, and appropriate composition of services are difficult and error prone. For addressing these issues, the application of Software Product Line Engineering (SPLE) appears to be a promising approach. SPLE promotes systematic reuse in the development of systems with similar requirements. SPLE promotes reuse by development of comprehensive sets of systems (aka software families) as a whole (domain engineering), and later configuring them according to the functionality requested by the stakeholders (application engineering). Furthermore, the reuse of services that are part of a software product line is enhanced, since each time a member of SPL is instantiated and deployed, services that are used in the instantiated member are reused. The research community have recognized and proposed several promising solutions to the development of service-oriented systems based on the SPLE principles; however, there have been little results that report on concrete tools that automate and thus, reduce the amount of efforts needed for completing specific tasks of a development process. In this paper, we first introduce a process for developing service-oriented families. Then, we investigate the use of Semantic Web technologies and ontologies to support service discovery, context description, and verification in domain engineering; and staged configuration and service composition generation in application engineering of the introduced development process. We evaluate the effectiveness of our Semantic Web-based proposals in terms of optimizing the amount of efforts necessary for completing relevant tasks in the discussed development process.
['Marko Bošković', 'Dragan Gasevic', 'Bardia Mohabbati', 'Mohsen Asadi', 'Marek Hatala', 'Nima Kaviani', 'J. Jeffrey Rusk', 'Ebrahim Bagheri']
Developing Families of Software Services: A Semantic Web Approach