Proposed Solution
Our work contemplates the definition of an approach for implementing core assets in service-oriented product lines.
The approach focuses on SPL and SOA concepts and includes the support of variability mechanisms decisions implemented
under a technology to control the life-cycle of the core assets.
Our approach is the result of an investigation of how current approaches aforementioned in the problem statement, which resulted
in an assessment (case study) on technologies combined with variability mechanisms in order to achieve its purpose. The result of the assessment
resulted in a decision model for recommending technologies. The assessment and its artifacts are presented in the case studies section.
Based on this experience, we propose our approach, which is built on top of these aspects. The approach uses OSGI as the main
technology, since it was pointed out as a suitable technology that fits well in the service-oriented product lines implementation.
Moreover, the approach recommends three variability mechanisms that can be used within OSGi and can model some
variabilities identified in the approach. Moreover, the approach is defined through a set of
activities, sub activities, steps, tasks, roles, inputs, and outputs, which are essential
to provide the guidance for software engineers specify the artifacts to be produced.
The approach is composed by three main activities: Implement Services and Components,
Refine Services and Components Specification, and Assess Services and Components
integrated in a macro flow that guides all approach activities. In summary,
the implement services and components provide guidelines for the software engineer to
specify and implement services and components in the provider and consumer side; refine services and
components specification aims to perform the refinement of the detailed design and the service and
components specification and implementation; and, finally, assess services and components aims at assess
through software metrics the service providers/consumers and components implemented in order to guarantee
that its implementation is in accordance with some criteria (e.g., modularity and complexity).
Approach Context
Our work is part of the Reuse in Software Engineering Group (RiSE),
formerly called RiSE Project, whose goal is to develop a robust framework for software reuse in order to
enable the adoption of a reuse program. RiSE Labs is influenced by a series of areas, such as
software measurement, architecture, quality, environments and tools, and so on, in order to achieve its goal.
The influence areas are depicted in the following Figure.
Based on these areas, the RiSE Labs is divided in several different projects related to
Software reuse, as shown in the following Figure.
Our work is placed on the SOPLE project, which consists in the development of a methodology for SPL on SO/SOA concepts.
Contributions
As a result of the work presented, a list of the main contributions may be enumerated:
The definition of a decision model for guiding software engineers on the task of choosing technologies with the support of variability implementation mechanisms to implement core assets in service-oriented product lines;
The definition, planning, analysis of case study on the technologies to implement core assets in service-oriented product lines;
The definition of an implementation approach for service-oriented product lines; and
The definition, planning, analysis of a case study in order to evaluate the service- oriented product lines implementation approach.