Fakultät für Informatik Arbeitsgruppe Datenbanken

M.Sc Sagar Sunkle

Otto-von-Guericke-University Magdeburg
Department of Computer ScienceImage: Sagar Sunkle
Institute for Technical and Business Information Systems
Database Research Group
P.O. Box 4120, D-39016 Magdeburg, Germany

Office: Building 29, Room 126

Phone: ++49 391 67-11291
Fax:     ++49 391 67-12020
Email:

 

 

 

Research Interests:

  • Feature-oriented Programming, Software Product Lines, Metaprogramming, and Program Families
  • Domain Specific Langauges, Extensibility of Parsers, Compilers, and Languages
  • Tailor-made Data Management, Features of SQL and Databases

First-class Features -

 

 

 

fjwordle.jpg

FeatureJ * is a prototype that realizes our vision of the first-class features in Java. FeatureJ is created using the JastAdd extensible compiler system and its implementation of Java 1.4 and 1.5 frontends and backends. Product lines, product variants, and features are first-class entities in FeatureJ (implemented as types) and can be treated like classes and object in Java. FeatureJ consists of a domain specific language (DSL) that contains a set of keywords and expressions which capture the main concepts related to feature-oriented software development. The FeatureJ DSL enables a developer to express all the concepts related to features and feature models at a higher level of abstraction.

 

 

rbFeatures * implements features as first-class entities in the Ruby programming language. It is a pure Ruby implementation and does not require compiler extensions or additional libraries. Developers express features and code belonging to the features directly in the source code. Using rbFeatures embeds product line semantics into the programming language. rbFeatures is based on Ruby 1.8.6 implementation and is also compatible with Ruby 1.9. It has been tested with both MRI and JRuby VM.

rbfWordle.jpg

    
For further explanation, examples, and source, visit here.

Current Projects:

Publications:

   

No.

Publications

Year

 

Referreed

 

 

1.

New Publication Sebastian Günther and Sagar Sunkle. Feature-oriented programming with Ruby. Science of Computer Programming, Elsevier—Special Issue on Feature-Oriented Software Development, 2011. To appear.

 

PhD -2010

2.

Sagar Sunkle and Mario Pukall. Using Reified Contextual Information for Safe Run-time Adaptation of Software Product Lines. In Proceedings of the 7th ECOOP Workshop on Reflection, AOP and Meta-Data for Software Evolution, June 2010.

 

Software product lines (SPLs) is a paradigm to implement software products based on features. Contemporary SPL implementation techniques provide support for compile-time composition of features. Many approaches have been suggested for run-time adaptation of product lines which do not consider safe composition properties. This paper presents FeatureJ which enables safe compile-time and run-time composition of multiple product lines. We identify four compilation techniques necessary to achieve safe run-time adaptation of product lines in FeatureJ: a) type checking of feature modules, b) availability of contextual information at run-time, c) resolving class-loading issues for multiple updated variants, and d) an application container for executing and updating multiple variants. Accordingly, we show how an existing approach can be integrated with FeatureJ to support safe run-time adaptation.

 

In ACM

 

3.

Sagar Sunkle. Assessing Modularity of Feature Concern. In Proceedings of 4th Workshop on Assessment of Contemporary Modularization Techniques (ACOM) at SPLC, 2010. Short Paper

 

In this paper, we put forth five observations regarding the implementation of feature concern using contemporary modularity mechanisms. Based on these observations, we propose a concern-centric approach for the assessment of feature modularity that uses syntactic and semantic reduction functions that separate the feature concern from variants containing it. We propose how the modularity of separated feature concern may be assessed using such functions.

 

In Web

 

4.

Sebastian Günther and Sagar Sunkle. Dynamically Adaptable Software Product Lines Using Ruby Metaprogramming. In Proceedings of International Workshop on Feature-oriented Software Development (FOSD), 2010.

 

Software product lines (SPLs) is a paradigm to structure software development assets in a common and reusable form. Out of this common asset base, which includes the application's source code, concrete product variants can be created. The variants are differing in terms of the features, which are basically an increment in functionality important for a stakeholder. Feature-oriented programming (FOP) provides the capability to compose those different variants. In earlier work we presented rbFeatures, a FOP implementation in Ruby. With rbFeatures, developers add disciplined annotation to the source code to capture code belonging to a feature. Thereby, the features are provided as first-class entities of the application. This paper presents an extension to rbFeatures that brings SPLs and their variants as first-class entities too. The entities allow powerful runtime-adaptation and configuration, like to add new features or constraints to the SPL and the instantiate several variants with different feature configurations. The particular contribution is to show how Ruby's metaprogramming capabilities are used to design first-class entities, and explain the usage of our approach with a common case study.

 

In ACM

 

5.

Sebastian Günther and Sagar Sunkle. Enabling Feature-Oriented Programming in Ruby. Technical Report 16, Very Large Business Application Lab, University of Magdeburg, Magdeburg, Germany, November 2009.

 

Feature-oriented programming (FOP), captures requirements and functionality of software at a higher level of abstraction. Modular software can be built using features which are both conceptual entities in the analysis phase and concrete entities in the design and implementation phases of software development. Most research in FOP addresses static languages like Java and C++. In this paper, we describe FOP in the context of the dynamic programming language Ruby. Ruby is a dynamic language featuring a fully object-oriented implementation and rich meta-programming facilities. Developers can manipulate the program behavior to a large extent, which gives flexibility in designing software. In order to implement features, three programming mechanisms can be identified: Basic expressions (object-oriented mechanisms), meta-programming and reflection (run-time modifications of variables and methods), and holistic manipulations (treating the program as a string). We discuss and compare these mechanisms for their ability to satisfy the four central feature properties namely, naming, identification, expressing, and composition. Furthermore, we sketch two implementations of FOP in Ruby. The first implementation uses annotations in the form of comments to express feature-related code. The second implementation one is a DSL which adds features as types to the Ruby language.

PhD -2009

6.

Sagar Sunkle, Sebastian Günther, and Gunter Saake. Representing and Composing First-class Features with FeatureJ. Technical Report 17, Department of Computer Science, Otto-von-Guericke University of Magdeburg, Magdeburg, Germany, November 2009.

 

Software product lines (SPLs) enable creating product families, set of products that differ in terms of features. Traditionally, techniques for implementing features have sided with one of the two views of features: as distinguishable characteristics or as increments/changes in program functionality of the software under consideration. We argue that in order to realize the full potential of features as a separation of concerns mechanism or a modularity mechanism in its own right, both of these views must be supported by the representation of features. Furthermore, the composition of such uniformly represented features should be streamlined so that both can evolve together. Towards this end, we present FeatureJ, an implementation technique that integrates features, variants, and product lines as first-class entities, namely types, in the Java programming language. We review the trends in the representation and composition of features in the current implementation techniques and arrive at a set of requirements to represent features as first-class entities. We demonstrate the syntax of FeatureJ and explain its compiler architecture with a running example of a product line. We compare our implementation approach with other approaches in terms of the representation and composition of features and state the advantages that our approach brings to the implementation of SPLs.

 

7.

Marko Rosenmüller, Christian Kästner, Norbert Siegmund, Sagar Sunkle, Sven Apel, Thomas Leich, and Gunter Saake. SQL à la Carte – Toward Tailor-made Data Management. In Datenbanksysteme in Business, Technologie und Web (BTW), pages 117–136, March 2009.

 

The size of the structured query language (SQL) continuously increases. Extensions of SQL for special domains like stream processing or sensor networks come with own extensions, more or less unrelated to the standard. In general, underlying DBMS support only a subset of SQL plus vendor specific extensions. In this paper, we analyze application domains where special SQL dialects are needed or are already in use. We show how SQL can be decomposed to create an extensible family of SQL dialects. Concrete dialects, e.g., a dialect for web databases, can be generated from such a family by choosing SQL features à la carte. A family of SQL dialects simplifies analysis of the standard when deriving a concrete dialect, makes it easy to understand parts of the standard, and eases extension for new application domains. It is also the starting point for developing tailor-made data management solutions that support only a subset of SQL. We outline how such customizable DBMS can be developed and what benefits, e.g., improved maintainability and performance, we can expect from this.

 

In DBLP

 

8.

Syed Saif ur Rahman, Marko Rosenmüller, Norbert Siegmund,  Sagar Sunkle, Gunter Saake and Sven Apel. Data Management for Embedded Systems: A Cell-based Approach In DEXA'2009 Workshop on Embedded Data-Centric Systems (EDACS). IEEE Computer Society, Sept. 2009.

 

Existing data management systems are very complex and provide a multitude of functionalities. Due to complexity and their monolithic architecture, these data management systems are not suitable for data-centric embedded systems. In order to cope with complexity of data management in such systems, we propose a novel approach to DBMS architecture, called Cellular DBMS, that is inspired by biological systems. Cellular DBMS is composed of multiple customizable embedded database instances, called Cells.We

illustrate how multiple atomic cells can be used together to provide scalable, resource efficient data management for embedded systems.

 

In Web

 

9.

Sebastian Günther and Sagar Sunkle. Feature-oriented programming with Ruby. In FOSD '09: Proceedings of the First International Workshop on Feature-Oriented Software Development, pages 11–18, New York, NY, USA, 2009. ACM.

 

Features identify core characteristics of software in order to produce families of programs. Through configuration, different versions of a program can be composed. Our approach is to design features as first-class entities of a language. With this approach, features can be constructed and returned by methods, stored in variables and used in many expressions of the language. This paper introduces rbFeatures, an implementation of first-class features in the dynamic programming language Ruby. Our goal is to show how such a language extension works with respect to its dynamic host language and the applicability of our results. In particular, we present a step-by-step walk-through how to use rbFeatures in order to implement known case-studies like the Expression Product Line and the Graph Product Line. Since we created a pure Ruby language extension, rbFeatures can be used with any existing programs and in any virtual machine implementing Ruby.

 

In ACM

 

10.

Sagar Sunkle, Marko Rosenmüller, Norbert Siegmund, Syed Saif ur Rahman, Gunter Saake, and Sven Apel.

Features as First-class Entities : Toward a Better Representation of Features. In Workshop on Modularization, Composition, and Generative Techniques for Product Line Engineering, number MIP-0802, pages 27–34. Department of Informatics and Mathematics, University of Passau, October 2008.

 

Features are distinguishable characteristics of a system relevant to some stakeholder. A product line is a set of products that differ in terms of features. Features do not have first-class status in contemporary programming languages. We argue that various problems related to features are a result of this abstraction and representation mismatch and that features should be elevated to a first-class status. We propose an extension to Java that implements features as first-class entities. We give examples of the syntax and semantics of this extension and explain how the new representation can handle features better.

 

In Web

 

PhD -2008

 

11.

Sagar Sunkle, Martin Kuhlemann, Norbert Siegmund, Marko Rosenmüller, and Gunter Saake. Generating Highly Customizable SQL Parsers. In Workshop on Software Engineering for Tailor-made Data Management, pages 29–34, March 2008.

 

Database technology and the Structured Query Language (SQL) have grown enormously in recent years. Applications from different domains have different requirements for using database technology and SQL. The major problem of current standards of SQL is complexity and unmanageability. In this paper we present an approach based on software product line engineering which can be used to create customizable SQL parsers and consequently different SQL dialects. We give an overview of how SQL can be decomposed in terms of features and how different features can be composed to create tailor-made parsers for SQL.

 

In ACM

 

 

 

1.

Non-Referreed

Sagar Sunkle. Feature-Oriented Decomposition of SQL:2003. Master‘s thesis, University of Magdeburg, Germany, October 2007.

 

In this thesis we explain how features and feature modeling form the analysis phase of Software Product Line Engineering and show that SQL:2003 can be decomposed on the basis of feature concept. Specifically, we -

Decompose SQL:2003 into features using various SQL:2003 ISO/ANSI standards and present these features in terms of feature diagrams.

Present an example of how to construct sub-grammars of SQL:2003 based on decomposed features and show how to compose them to obtain customized parsability for SQL:2003.

Review related feature implementation models and compare         them within the context of SQL:2003 features.

Master DKE - 2007

2.

Sagar Sunkle, Dietmar Rösner, and Manuela Kunze. Coreference in UIMA. Labor Praktikum, 2007. Labor Praktikum.

 

We extend IBM's UIMA (Unstructured Information Management Architecture), which is an open, industrial-strength, scalable and extensible platform for creating, integrating, and deploying unstructured information management solutions from combinations of semantic analysis and search components, with OpenNLP coreference component.

Master DKE - 2007

   

 Seminar Presentations

 

No.

Presentation

Year

1.

EDBT Workshop at Nantes, France -  Generating Highly Customizable SQL Parsers

2008

2.

Dagstuhl Seminar – 08281: software engineering for tailor-made data management / S. Apel, D. Batory, G. Graefe, G. Saake, and O. Spinczyk - Feature-oriented Query Processing

3.

RAM’SE Workshop at Maribor, Slovenia - Using Reified Contextual Information for Safe Run-time Adaptation of Software Product Lines

2010




   * FeatureJ and rbFeatures images have been created using Wordle.

   Social Networks -
   You can find me on major social networks listed below :

- FacebookTwitterLinked-In

   I had a general blog on Windows Live Spaces which is now exported to Wordpress

  Wordpress

 
  My previous work at Master in Computer Science at the University of Mumbai involved various Soft Computing Methodologies. In this work, I compared three soft computing methodologies, namely neural networks, fuzzy logic, and genetic algorithms as artificial intelligence paradigms in terms of representation, reasoning, and learning. I showed that their problem-solving characteristics derive from and are substantially influenced by the system of knowledge representation adopted by them with the help of several case-studies.

 

<Webmaster> - webmaster@iti.cs.uni-magdeburg.de

 

Last modified: Fri 14-05-2010 .