SOPLE-DE: An Approach to Design Service-Oriented Product Line Architectures



Similar documents
An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

Developing SOA solutions using IBM SOA Foundation

Business Process Lines to develop Service-Oriented Architectures through the the Software Product Lines paradigm

Using Provenance to Improve Workflow Design

Chapter 18 Variability in Web Services

Data Mining Governance for Service Oriented Architecture

The UML «extend» Relationship as Support for Software Variability

Methodology of performance evaluation of integrated service systems with timeout control scheme

Variability in Service-Oriented Systems: An Analysis of Existing Approaches

Empirical Model Building and Methods Exercise

Enterprise Service Bus Defined. Wikipedia says (07/19/06)

Federal Enterprise Architecture and Service-Oriented Architecture

The Role of Controlled Experiments in Software Engineering Research

Goals and Scenarios to Software Product Lines: the GS2SPL Approach

Analysis and Design Techniques for Service-Oriented Development and Integration

VARIABILITY MODELING FOR CUSTOMIZABLE SAAS APPLICATIONS

A Regression Testing Approach for Software Product Lines Architectures

Variation Management for Software Production Lines 1

A Service Oriented Product Line Architecture for E- Government

SOMA, RUP and RMC: the right combination for Service Oriented Architecture

RUP Design. Purpose of Analysis & Design. Analysis & Design Workflow. Define Candidate Architecture. Create Initial Architecture Sketch

Architecture Definitions

A Comparison of SOA Methodologies Analysis & Design Phases

Basic Unified Process: A Process for Small and Agile Projects

Service Oriented Architecture

MODELING OF SERVICE ORIENTED ARCHITECTURE: FROM BUSINESS PROCESS TO SERVICE REALISATION

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Chap 1. Introduction to Software Architecture

Software Service Engineering Architect s Dream or Developer s Nightmare?

Lina khalid Ahmed Department of Software Engineering Zarqa University Amman, Jordan

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

The Advantages of Dynamic Software Product Lines

A Variability Viewpoint for Enterprise Software Systems

Empirical Software Engineering Introduction & Basic Concepts

Service Oriented Architecture: A driving force for paperless healthcare system

Business Process Management Enabled by SOA

Object Oriented Design

Improving Decision Making in Software Product Lines Product Plan Management

An Analysis of Business Agility Indicators in SOA Deployments

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS

Applying SOA to OSS. for Telecommunications. IBM Software Group

Managing Variation in Services in a Software Product Line Context

Managing Variability in Software Architectures 1 Felix Bachmann*

A Pattern-based Approach to Business Process Modeling and Implementation in Web Services

e-gateway SOLUTION OVERVIEW Financials HCM ERP e-gateway Web Applications Mobile Devices SharePoint Portal

An Approach for Developing Service Oriented Product Lines

A Unified Messaging-Based Architectural Pattern for Building Scalable Enterprise Service Bus

Software Design. Design (I) Software Design Data Design. Relationships between the Analysis Model and the Design Model

Scenario-based Evaluation of Software Architecture Styles from the Security Viewpoint

A Model for Component Based E-governance Software Systems

UML Modeling of Network Topologies for Distributed Computer System

Monitoring services in Service Oriented Architecture 1

TOGAF usage in outsourcing of software development

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

TOWARDS AN AUTOMATED EVALUATION PROCESS FOR SOFTWARE ARCHITECTURES

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

Six Strategies for Building High Performance SOA Applications

Linking BPMN, ArchiMate, and BWW: Perfect Match for Complete and Lawful Business Process Models?

Data-Aware Service Choreographies through Transparent Data Exchange

Keywords: - Software Product Lines (SPLs), Product Line Engineering (PLE), Core Assets, Software Product Line Development.

A Risk Management Approach for Software Product Line Engineering

Service Oriented Architecture

SOA: The missing link between Enterprise Architecture and Solution Architecture

Experiences with Product Line Development of Embedded Systems at Testo AG *

Software Product Lines and Service Oriented Architectures: can they be connected?

Strategic Release Planning Challenges for Global Information Systems A Position Paper

Managing Software Product Line

Service Oriented Architecture 1 COMPILED BY BJ

An Approach for e-commerce On-Demand Service-oriented Product line Development

Object-oriented design methodologies

Software Architecture Professional Certificate

Foundations of Model-Driven Software Engineering

Reactive Variability Realization with Test-Driven Development and Refactoring

Corresponding Author

Service Oriented Architecture and Its Advantages

Chapter 4 Software Lifecycle and Performance Analysis

An Integrated Quality Assurance Framework for Specifying Business Information Systems

Embedded System Software Testing Based On SOA For Mobile Service

VALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur

Fourth generation techniques (4GT)

Understanding SOA Migration Using a Conceptual Framework

Towards Collaborative Requirements Engineering Tool for ERP product customization

Service-Oriented Architectures

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Background: Business Value of Enterprise Architecture TOGAF Architectures and the Business Services Architecture

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

UML based performance modeling of object-oriented distributed systems

A Framework for Software Architecture Visualization and Evaluation

An Electronic Negotiation Coordinator for Software Development in Service-Oriented Environments

The IBM Rational Software Development Platform..Role focused tools help simplification via Separation of Concerns

Designing Real-Time and Embedded Systems with the COMET/UML method

Structuring Product-lines: A Layered Architectural Style

A Knowledge-Based Perspective for Preparing the Transition to a Software Product Line Approach

9 Research Questions Resolved

Enterprise Application Integration (EAI) Architectures, Technologies, and Best Practices

Event based Enterprise Service Bus (ESB)

A standards-based approach to application integration

The role of integrated requirements management in software delivery.

Service-Oriented Architecture and its Implications for Software Life Cycle Activities

Service Oriented Architecture Design and Development Method. Name: René van Donselaar. Universiteit Utrecht

Transcription:

SOPLE-DE: An Approach to Design -Oriented Product Line Architectures Flávio M. Medeiros, Eduardo S. de Almeida 2, and Silvio R.L. Meira Federal University of Pernambuco (UFPE) 2 Federal University of Bahia (UFBA) {fmm2,srlm}@cin.ufpe.br, esa@dcc.ufba.br Abstract. Software reuse is crucial for enterprises interested in software quality and productivity gains. In this context, Software Product Line (SPL) and -Oriented Architecture (SOA) are two reuse strategies that share common goals and can be used together to increase reuse and produce service-oriented systems faster, cheaper and customizable to specific customers. In this sense, this work investigates the problem of designing software product lines using service-oriented architectures, and presents a systematic approach to design software product lines based on services. The proposed approach provides guidance to identify, design and document architectural components, services, service compositions and their associated flows. In addition, an initial experimental study performed with the intention of validating and refining the approach is also depicted demonstrating that the proposed solution can be viable. Keywords: -Oriented Architecture (SOA), Software Product Line (SPL), Software Architecture and Software Development Processes. Introduction Software reuse is a key factor for enterprises interested in reducing development costs and increasing software quality []. In this context, SPL and SOA are two reuse strategies that share common goals, i.e., they both support the reuse of existing software and capabilities during the development of new systems and encourage the development of flexible and cost-effective software systems [2]. In this way, SPL and SOA concepts can be used together with the purpose of increasing and systematizing reuse during the -Oriented Development (SOD) and producing service-oriented systems faster, cheaper and customizable to specific customers [3]. Moreover, some service characteristics, e.g., dynamic discoverability and binding, can be used to support the development of Dynamic Software Product Lines (DSPL) [4]. This work investigates the problem of designing -Oriented Product Line Architectures (SO-PLA). This combination raises several challenges, such as how to identify and design services for the domain, decide the variation points to be considered in the context of SOD, identify service variability implementation mechanisms and define architectural views to represent the SO-PLA. J. Bosch and J. Lee (Eds.): SPLC 2, LNCS 6287, pp. 456 46, 2. c Springer-Verlag Berlin Heidelberg 2

SOPLE-DE 457 In this sense, a systematic design approach with a set of activities, with clearly defined inputs and outputs, and performed by a predefined set of roles is described in this work with the purpose of providing guidance to solve the problems of designing a SO-PLA. A service-oriented product line is considered as a set of similar service-oriented systems that supports the business processes of a specific domain and can be developed from a common set of core assets [5]. In order to define a SO-PLA, an approach is essential to provide guidance to the team, specify the artifacts to be produced, and associate activities with specific roles and the team as a whole. Without it, the development team may develop software in an ad-hoc manner, with success relying on the efforts of a few dedicated individual participants [6]. 2 Related Work An approach for developing service-oriented product lines was presented in [4]. In this work, a method to identify services and service compositions from feature models is depicted. In our work, we also provide methods to identify service candidates, not only from feature models, but also using business processes, use cases and quality attributes scenarios. In addition, some architectural views are proposed to represent the interactions among architectural elements. The concept of Business Process Line (BPL) is used in [3]. This work provides a process to develop service-oriented product lines based on business processes that contain variability and can be customized to specific customers. Our work also considers variability in the business processes, but we also use feature models to represent variability in an easy and exploitable way. In [7], an initial process for service-oriented product lines is presented. This work discusses the characteristics of SOA and SPL processes, but a systematic process for service-oriented product lines is not provided. The key difference of our work is the systematization of design. In addition, our approach was validated and refined through an initial experimental study. 3 The Proposed Approach (SOPLE-DE) The SOPLE-DE is a top-down approach for the systematic identification, design and documentation of service-oriented core assets supporting the non-systematic reuse of SOD. It is divided in two cycles as SPL engineering. The core asset development cycle aims to provide guidelines and steps to identify, design and document architectural elements with variability. In the product development cycle, the architectural elements are specialized to a particular context according to specific customer requirements [5]. The SOPLE-DE considers the architectural style shown in Figure. This architectural style presents the layers that are commonly used in SOA [8]. Thus, SOPLE-DE provides guidelines to identify, design and document architectural elements for these layers. We use this architectural style because we believe that these layers are essential for any SOA solution.

458 F.M. Medeiros, E.S. de Almeida, and S.R.L. Meira Graphical User Interfaces (GUI) Orchestrations Quality Attributes Monitoring Identification Variability Analysis Design Decisions Documentation Architecture Specification Roles. Domain Architect 2. SOA Architect 3. Designer Activities / Roles Identification Roles:, 2 and 5 Variability Analysis Roles: Architecture Specification Roles: and 2 s 4. Domain Designer Specification Roles: 3 and 4 Specification Design Decisions Components 5. Business Analyst Documentation Roles: and 2 Legend: Variability Component Alternative GUI Component Optional Activity Begin End Flow Fig.. Layered Architectural Style / SOPLE-DE Activities and Roles The SOPLE-DE considers that a SO-PLA supports two variability levels as described next [3]: Configuration variability, in which architectural elements are selected from the core assets in order to obtain the target system, i.e., optional and alternative architectural elements are selected or excluded; Customization variability, in which architectural elements already selected for the architecture are customized according to specific requirements, i.e., architectural elements with variability are customized internally. SOPLE-DE also considers variability in the communication among the architectural elements, e.g., different protocols can be used for communication and the messages exchanged can be sent in a synchronous or asynchronous way. The activities and roles of the SOPLE-DE are presented in Figure. It starts with the architectural elements identification activity, which receives the domain feature model, the business process models and the quality attribute scenarios as mandatory inputs. The domain use cases are optional inputs. It produces a list of components, services and service orchestration candidates for the SO-PLA. Moreover, the communication flows among these elements are also defined. Subsequently, there is the variability analysis activity. It receives the list of components, services, service orchestrations and their flows identified previously, and defines and documents key architectural decisions regarding variability. In this activity, it is defined how the variability will be implemented. It refines the architectural elements identified previously. Architecture specification is the next activity, in which the architecture is documented using different views in order to represent the concerns of the different stakeholders involved in the project [9]. An architecture is a complex entity that should be represented and documented upon several views (see Figure 2). In the architectural elements specification activity, the low-level design of components and services is performed. SOPLE-DE suggests some UML diagrams to document the internal behavior of the architectural elements []. In parallel with these four activities described, the design decisions documentation activity is performed concurrently. In this activity, important design decisions, such as the selection of technologies and variability mechanisms, are documented.

SOPLE-DE 459 Orchestration Task Entity Layer View Utility ESB Hub-and-spoke Peer-to-peer Integration View A B C Component View A B C REST REST Interaction View 4 Experimental Study Fig. 2. Architectural Views An experimental study on the Travel Reservation domain was performed with the purpose of evaluating and refining the SOPLE-DE. In this experiment, the process of Wohlin [] was used to define, plan and execute the experimental study. In addition, the Goal Question Metric (GQM) framework was also used to define the experiment [2]. The goal of this experiment was to analyze the SOPLE-DE for the purpose of evaluation with respect to its efficacy from the point of view of researcher in the context of service-oriented product line projects. After collecting the information about the service coupling, instability and cohesion, the data collected was analyzed. Figure 3 shows the metric results for the services identified by the subjects. In the graphics, the axis (X) shows the ID of the subjects, while the axis (Y) represents the service coupling mean, service instability mean and the average cohesion of the service operations. 2.5.75.83 2.63.5.83.94..7.5 Coupling 2 3 4 5 6 7 8 Subjects ID Coupling SC(s) = number of service providers used by a service consumer (s), where (s) is a service of a given system. 2.8.59.47.5.54.6.35.36.4.24.7.2 Instability 2 3 4 5 6 7 8 Subjects ID Instability SI(s) = P / (P + C), where C is the number of service consumers that call service (s), and P is the number of service providers that service (s) uses..5.5 Cohesion.7.7..8.3.7.3 2 3 4 5 6 7 8 Subujects ID Operation Cohesion LSC (s) = Number of business entities accessed by the operations of service (s). Fig. 3. Metric Results The subjects with Id =, 2, 3 and 4 used the SOPLE-DE during the experiment, while subjects with Id = 5, 6, 7 and 8 designed the project without following a structured method. As it can be seen in Figure 3, the coupling, instability and cohesion of the services generated using the SOPLE-DE are lower when compared with the services identified by the subjects without use the method. The full description of this experiment can be found in [].

46 F.M. Medeiros, E.S. de Almeida, and S.R.L. Meira 5 Conclusions and Future Work This work proposed an approach to design service-oriented product lines focusing on increasing reuse and flexibility, and supporting the development of serviceoriented systems faster, cheaper and customizable to specific customers. The SOPLE-DE approach was based on an extensive review of the available service-oriented processes, their weak and strong points and gaps in the area []. It can be seen as a systematic way to design service-oriented product line architectures through a well-defined sequence of activities with clearly defined inputs and outputs. Additionally, the approach was evaluated in an experimental study that presented findings that the SOPLE-DE can be viable to aid software architects to design service-oriented product line architectures with good coupling and instability, and identify services with cohesive operations. Even it being a relevant contribution for the field, new routes need to be investigated in order to define a more complete process that consider all the software development disciplines, such as requirements, design and implementation, for product lines based on services. In addition, new experiments in different domains are necessary to gather more evidences about the efficacy of the proposed approach. Experiments in industry are also considered as future work. References. Krueger, C.W.: Software reuse. ACM Computing Surveys 24(2) (992) 2. Medeiros, F.M., de Almeida, E.S., Meira, S.R.L.: Towards an approach for serviceoriented product line architectures. In: L 29 (29) 3. Boffoli, N., Caivano, D., Castelluccia, D., Maggi, F.M., Visaggio, G.: Business process lines to develop service-oriented architectures through the software product lines paradigm. In: L, pp. 43 47 (28) 4. Lee, J., Muthig, D., Naab, M.: An approach for developing service-oriented product lines. In: SPLC, pp. 275 284. IEEE Computer Society, Los Alamitos (28) 5. Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Reading (2) 6. Booch, G.: Managing the Object-Oriented Project. Addison-Wesley, Reading (995) 7. Günther, S., Berger, T.: -oriented product lines: Towards a development process and feature management model for web services. In: L (28) 8. Arsanjani, A.: -oriented modeling and architecture. Technical report, -Oriented Architecture and Web services Center of Excellence, IBM (24) 9. Bass, L., Clements, P., Kazman, R.: Software Architecture in Practices. Addison- Wesley Longman Publishing Co., Inc., Boston (23). Medeiros, F.M.: An approach to design service-oriented product line architectures. Master s thesis, Federal University of Pernambuco (2). Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslen, A.: Experimentation in Software Engineering: An Introduction. Springer, Heidelberg (2) 2. Basili, V., Caldiera, G., Rombach, D.H.: The goal question metric approach. In: Encyclopedia of Software Engineering. Wiley, Chichester (994)