Design Issues in a Component-based Software Product Line



Similar documents
Applying 4+1 View Architecture with UML 2. White Paper

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture

Taxicab Driver Sample Forms. 1. Tasks. Task 1. Task 2

Object Oriented Analysis and Design and Software Development Process Phases

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

Karunya University Dept. of Information Technology

Basic Unified Process: A Process for Small and Agile Projects

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Software Architecture

A Flexible Approach for Assessing Service Compatibility at Element Level

AIPLE-IS: An Approach to Develop Product Lines for Information Systems Using Aspects

To introduce software process models To describe three generic process models and when they may be used

One approach to the use of the practices of CMMI- DEV V1.3 level 2 in a process of development of Embedded Systems

Unit 1 Learning Objectives

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools

BCS HIGHER EDUCATION QUALIFICATIONS. BCS Level 5 Diploma in IT. Software Engineering 1. June 2015 EXAMINERS REPORT



IT3205: Fundamentals of Software Engineering (Compulsory)

Life Cycle Activity Areas for Component-Based Software Engineering Processes

Object-Oriented Systems Analysis and Design

Chap 1. Introduction to Software Architecture

Unification of AOP and FOP in Model Driven Development

Engineering Process Software Qualities Software Architectural Design

The Helicoidal Life Cycle as a Tool for Software Development and Enhancement

Methods and tools for data and software integration Enterprise Service Bus

Automating the process of building. with BPM Systems

Intent NBI for Software Defined Networking

Tackling Fare Evasion on Calgary s CTrain System

Components Based Design and Development. Unit 2: Software Engineering Quick Overview

Managing TM1 Projects

Managing Software Product Line

TAXI. Redefining the. industry. Add a smile with every mile TAXI

Software Engineering. Software Testing. Based on Software Engineering, 7 th Edition by Ian Sommerville

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

IT governance in Brazil:

How To Understand Software Engineering

Student Tracking & Auto Relay Systems (STARS) Integrating student and transportation asset tracking with intelligent Geographic Information Systems

University of Guelph Transportation Demand Management (TDM) Plan Changing Our Travel Habits 2009/ /20

CT30A8901 Chapter 10 SOA Delivery Strategies

Component Based Development in Software Engineering

PROCESSING OF AISI M2 HSS WITH ADDITION OF NbC BY MECHANICAL ALLOYING USING TWO DIFFERENT TYPES OF ATTRITOR MILLS

LECTURE 11: PROCESS MODELING

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

Systems and software product lines: the new frontier for business innovation.

Why a single source for assets should be. the backbone of all your digital activities

The 10 Best Ideas in Software Development

KWIC Implemented with Pipe Filter Architectural Style

Office of Internal Audit

BPM and SOA require robust and scalable information systems

A Framework for Virtual Enterprise Support Services

Building Service-oriented User Agents using a Software Product Line Approach

FREQUENTLY ASKED QUESTIONS. Oracle Applications Strategy

A METHOD FOR REWRITING LEGACY SYSTEMS USING BUSINESS PROCESS MANAGEMENT TECHNOLOGY

Software Testing and Software Development Lifecycles

IDENTIFYING PATTERNS OF WORKFLOW DESIGN RELYING ON ORGANIZATIONAL STRUCTURE ASPECTS

Abstract

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

Energy Generation with Landfill Biogas

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

ENTERPRISE ARCHITECTUE OFFICE

Definition of SOA. Capgemini University Technology Services School Capgemini - All rights reserved November 2006 SOA for Software Architects/ 2

Thesis seminar THE7TF007

The strategic role and objectives of operations

Basic Trends of Modern Software Development

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

Business Family Engineering: Does it make sense?

Plan-Driven Methodologies

SOA Adoption Challenges

Iterative Project Management 1

WHITE PAPER: STRATEGIC IMPACT PILLARS FOR EFFICIENT MIGRATION TO CLOUD COMPUTING IN GOVERNMENT

K.U.Leuven cooperation with Brazil. Landenexpertengroep Brazilië 19 december 2011

Transit Cost Analysis

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI.

The WebShop E-Commerce Framework

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Introduction to SOA governance and service lifecycle management.

Chapter 3. Technology review Introduction

Brazilian perspec-ve on the future of learning and teaching.

CHAPTER 1: INTRODUCTION TO RAPID APPLICATION DEVELOPMENT (RAD)

Building a Corporate Application Security Assessment Program

SOA REFERENCE ARCHITECTURE: WEB TIER

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

Visual design and UX services for cloud based applications, services and sites

Design Patterns for Complex Event Processing

Project Based Learning First Grade: Science- Plants and Animals By: Nikki DiGiacomo

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Transforming mining maintenance Higher system productivity and reliability through advanced services

Software Development Methodologies

Introduction. UML = Unified Modeling Language It is a standardized visual modeling language.

Initially pupils put the description of the stages of Brazil s railway network into the correct order (d, a, e, b, c).

Verification and Validation of Software Components and Component Based Software Systems

PUR1311/19. Request for Information (RFI) Provision of an Enterprise Service Bus. to the. European Bank for Reconstruction and Development

Procedure document. Department of Transport School Bus Centre Review

Overview Component-based Software Engineering State of the Art Report

Transcription:

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Design Issues in a Component-based Software Product Line Paula M. Donegan, Paulo C. Masiero {donegan, masiero}@icmc.usp.br Fundação de Amparo à Pesquisa do Estado de São Paulo LabES Laboratório de Engenharia de Software

Summary Introduction and objectives SPL to control Electronic Transportation Cards (ETC-SPL) Development process of SPLs Development of the ETC-SPL Design decisions for features of the SPL Using a code generator Final considerations 2

Introduction The design of an SPL can use various design techniques that facilitate reuse: components, code generators, features diagrams, etc. Difficulty of gathering, representing and implementing variabilities in SPLs 3

Objectives Illustrate different solutions based on components to represent variabilities of an SPL Discuss how these solutions are influenced by: i) the adopted development process ii) the decision to use black-box or white-box components iii) the decision of automating the composition process 4

The Electronic Transportation Cards Software Product Line (ETC-SPL) Integration and automation of the transport network Maintain the data of passengers, cards, routes, buses and journeys Validator on bus reads a card and communicates with the central system to debit the fare on the passenger s card There may be a bus integration system so that the user can pay a single fare for multiple trips Analysis of 3 ETC systems in Brazilian cities: São Carlos (São Paulo) Fortaleza (Ceará) Campo Grande (Mato Grosso do Sul) 5

Development Process of SPLs Begin with the domain analysis Then there are 2 alternatives: 1) Elaborate the design for the entire domain and implement afterwards (in one version or in various increments) 2) Design and implement the SPL in a version only with kernel features, and then increment the design and implementation of subgroups of optional and alternative variabilities 6

Increments of SPLs Vertical and horizontal increments Horizontal increments Include a subgroup of features that attend to a specific application but do not necessarily contain all possible variabilities of each feature included 7

Increments of SPLs Vertical and horizontal increments Vertical increments Implement all the variabilities of a subgroup of chosen features, but do not necessarily produce a specifically desired application 8

Development of the ETC-SPL We considered it important to have a complete application early on: Option of using horizontal iterative cycles generating one application in each increment Iteration 1 Comprising only features of the kernel (Version 1) Iteration 2 Iteration 3 Iteration 4 Iteration 5 Version 1 + features and variabilities of the application of Fortaleza Version 2 + features and variabilities of the application of Campo Grande Version 3 + features and variabilities of the application of São Carlos Version 4 with all variabilities + automatically generated with an Application Generator 9

Development of the ETC-SPL Features diagram for the kernel ETC-SPL 10

Development of the ETC-SPL Kernel architecture of the ETC-SPL 11

Additional Features of the ETC systems Fortaleza Form of Integration - Transport Hub Card Payment User Companies Campo Grande Additional Access Form of Integration - Transport Hub - Integration * Time * Integration Route * Number of Integration Trips Card Restriction - Number of Cards User Companies São Carlos Additional Access Passenger Authentication Form of Integration - Integration * Time * Integration Route Card Restriction - Card Combination Trips Limit 12

Design Decisions for Features of the SPL How design decisions are influenced by: the decisions taken related to the SPL development process adopted the type of component the manner of composition (manual or automated) Features Form of Integration: uses new classes Card Payment: uses subclasses (with new attributes and methods) 13

Feature: Transport Hub Part of the features diagram Fragment of the class model New class required 14

Without internal access to the implementation of developed components RouteMgr is reused without any alteration Fortaleza version: Feature: Transport Hub Composed component RouteTransportHubMgr 15

Feature: Integration Route New class required Part of the features diagram Fragment of the class model 16

Feature: Integration Route RouteTransportHubMgr developed for Fortaleza is reused Campo Grande version: Composed component RouteTransportHubIntegrationMgr 17

Feature: Integration Route RouteMgr is reused IntegratedRouteMgr developed for Campo Grande is reused São Carlos version: Composed component RouteIntegrationMgr 18

Feature: Card Payment Part of the features diagram Variation points in the classes PassengerType and Payment Altering attributes and operations of these classes (not necessary to insert a new class into the model) 19

Feature: Card Payment Option 1: Use parameterized classes Option 2: Use classes with variation points and separate the Card Payment feature in a new component called PaymentMgr Interests separated and black-box components 20

Feature: Card Payment New attributes required Fragment of the class model Both classes stay in one component because they have the same interest and are always used together 21

Features: Card Payment CardMgr is reused without any alteration Fortaleza version: Composed component CardPaymentMgr 22

Using a Code Generator List of features: initial sketch of the Application s Modeling Language (AML) White-box components: Generator performs changes inside each component thereby generating additional classes and modifying other elements inside the components The generator would be much more complex and act as a composer Black-box components: Generator acts like a configurator, starting from the kernel architecture, replacing and including necessary components, and generating glue code for components being composed 23

Using a Code Generator (II) Automating the composition process influences the design as well as the moment of introducing the automation in the SPL If automation is used from the first version Design of new versions of the SPL is influenced Each new horizontal iteration requires considerable rework in the generator We intend to use the configurable code generator Captor developed by our research group 24

Final Considerations Development of the ETC-SPL: The kernel and version 2 (Fortaleza) have already been designed Some other features have also been designed vertically with the intention of investigating different solutions The implementation of the kernel is ongoing Having decided to evolve the line in horizontal iterations: Important to take some time to analyse how feature groups will evolve in the following iterations before committing to a design that cannot be easily modified or reused The examples show trade-offs between horizontal and vertical development The decision of using black box or white box components is crucial 25

Thanks for your attention! Questions? Contact: Paula Donegan: donegan@icmc.usp.br Paulo C. Masiero: masiero@icmc.usp.br