Marko Rosenmüller - University of Magdeburg, Germany 1 Feature-oriented Refactoring of Berkeley DB Dagstuhl Seminar on Software Engineering for Tailor-made.

Slides:



Advertisements
Similar presentations
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Advertisements

What is Software Design?. Systems Development Life- Cycle Planning Analysis Design Implementation Design.
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Jens Knodel
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Software Design & Development Year 12. Structure of the Course Development and Impact of Software Solutions Development and Impact of Software Solutions.
July 11 th, 2005 Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 16, 17 and 18 Fred Durão.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
Ch3: Software Engineering Principles 1 What is a principle?  Definition:  Goals of accounting principles:  Goals of software engineering principles?
McGraw-Hill/Irwin Copyright © 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 2 Introduction to Database Development.
Introduction to Database Development. 2-2 Outline  Context for database development  Goals of database development  Phases of database development.
Software Engineering CSE470: Systems Engineering 35 Computer System Engineering Computer System Engineering is a problem-solving activity. Itemize desired.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Ekrem Kocaguneli 11/29/2010. Introduction CLISSPE and its background Application to be Modeled Steps of the Model Assessment of Performance Interpretation.
Formalizing and Analyzing Feature models in Alloy
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Database Design, Application Development, and Administration, 5 th Edition Copyright © 2011 by Michael V. Mannino All rights reserved. Chapter 2 Introduction.
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
Using Runtime Information for Adapting Enterprise Java Beans Application Servers Mircea Trofin *, John Murphy ** Performance Engineering Laboratory * DCU,
Secure Systems Research Group - FAU Aspects and mobile applications Sergio Soares Paulo Borba, “PaDA: A Pattern for Distribution Aspects” In Second Latin.
1 Modularity in Abstract Software Design: A Theory and Applications Yuanfang Cai Dept. of Computer Science University of Virginia Dissertation Proposal.
Computer Science Open Research Questions Adversary models –Define/Formalize adversary models Need to incorporate characteristics of new technologies and.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Supporting Heterogeneous Users in Collaborative Virtual Environments using AOP CoopIS 2001 September 5-7, Trento, Italy M. Pinto, M. Amor, L. Fuentes,
Physical Database Design & Performance. Optimizing for Query Performance For DBs with high retrieval traffic as compared to maintenance traffic, optimizing.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Aspect Oriented Programming Scott Nykl CSSE 411 Senior Seminar.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Michael Soffner A Variability Model for Query Optimizers Michael Soffner 1, Norbert Siegmund 1, Marko Rosenmüller 1, Janet Siegmund 1, Thomas.
1 ENERGY 211 / CME 211 Lecture 26 November 19, 2008.
Aspect Oriented Programming Gülşah KARADUMAN.
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
On the Modularity Assessment of Aspect- Oriented Multi-Agent Systems Product Lines: a Quantitative Study Camila Nunes
Efficiently Processing Queries on Interval-and-Value Tuples in Relational Databases Jost Enderle, Nicole Schneider, Thomas Seidl RWTH Aachen University,
Generative Programming. Automated Assembly Lines.
Team Think For You. Outline  Introduction  Process  Requirements Engineering  Architecture  Detailed Design  Testing  Demo  Extensibility  Conclusions.
Introduction Better Faster Cheaper (pick any two) On-going issue that continues to motivate research in software engineering Applications: –continue to.
Aspect-Oriented Requirements Engineering David Schaefer, Joao Araujo, Isabel Brito, Awais Rashid, Claudia Mesquita.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
Towards Multi-Paradigm Software Development Valentino Vranić Department of Computer Science and Engineering Faculty of Electrical Engineering.
University of Toronto Department of Computer Science Lifting Transformations to Product Lines Rick Salay, Michalis Famelis, Julia Rubin, Alessio Di Sandro,
Introducing Allors Applications, Tools & Platform.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Requirements Engineering-Based Conceptual Modelling From: Requirements Engineering E. Insfran, O. Pastor and R. Wieringa Presented by Chin-Yi Tsai.
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.
Aspect Mining Jin Huang Huazhong University of Science & Technology, China
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Performance and Energy Efficiency Evaluation of Big Data Systems Presented by Yingjie Shi Institute of Computing Technology, CAS
Advanced Software Development Karl Lieberherr CSG 260 Fall Semester
Migrating Embedded Systems from Assembler to C Using the Fermat Transformation System.
Towards A QoS Modeling and Modularization Framework for Component-based Systems Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale Amogh Kavimandan (Presenter)
Introduction to Yan Cui Aspect Oriented Programming by
Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software.
L’origine dei mali: le dipendenze tra componenti Stefano Leli 14° Workshop DotNetMarche Venerdì 16 aprile
A Vision for Integration of Embedded System Properties Via a Model-Component-Aspect System Architecture Christopher D. Gill Department.
Csontos Péter, Porkoláb Zoltán Eötvös Loránd Tudományegyetem, Budapest ECOOP 2001 On the complexity of exception handling.
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
The PLA Model: On the Combination of Product-Line Analyses 강태준.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Otto-von-Guericke-University of Magdeburg
Software Design Methodology
The Extensible Tool-chain for Evaluation of Architectural Models
Component Based Software Engineering
Implementation of the INFOD System using AOP
Implementing Language Extensions with Model Transformations
MATERI PL/SQL Procedures Functions Packages Database Triggers
Implementing Language Extensions with Model Transformations
A Case Study of Variation Mechanism in an Industrial Product Line
Presentation transcript:

Marko Rosenmüller - University of Magdeburg, Germany 1 Feature-oriented Refactoring of Berkeley DB Dagstuhl Seminar on Software Engineering for Tailor-made Datamangement Juli 7th, 2008

Marko Rosenmüller - University of Magdeburg, Germany 2 Outline Data Management for Embedded Systems Feature-oriented Programming Berkeley DB Refactoring Evaluation

Marko Rosenmüller - University of Magdeburg, Germany 3 Data Management for Embedded Systems Diverse hardware and application scenarios Restricted resources –Memory, –Performance, –Power consumption Recurring functionality Results in redevelopment of data management functionality Tailor-made solutions to avoid functional overhead  Software Product Lines

Marko Rosenmüller - University of Magdeburg, Germany 4 Berkeley DB Embedded DBMS –Embedded into application; used via API –Binary size of 480 – 680 KB Static activation / deactivation of 11 features using #ifdef –indexes, –replication, –encryption, –etc.

Marko Rosenmüller - University of Magdeburg, Germany 5 Berkeley DB Source Code C language and #ifdef –Often used in embedded domain Missing separation of concerns High development effort and maintenance costs Nested preprocessor statements

Marko Rosenmüller - University of Magdeburg, Germany 6 Components Why not use components for embedded systems? –Too much overhead –Small components needed but decreasing performance and increasing memory usage for smaller components –Inability to modularize crosscutting concerns –Additional development effort to implement components

Marko Rosenmüller - University of Magdeburg, Germany 7 Software Product Lines – New Paradigms New programming paradigms to implement product lines: –Aspect-oriented programming (AOP) and –Feature-oriented programming (FOP)  Decomposition of DBMS with respect to features  Modularization of crosscutting concerns  Generate customized / downsized DBMS

Marko Rosenmüller - University of Magdeburg, Germany 8 Feature-oriented Programming Decomposition of OOP classes into base classes and refinements Refinements implement class extensions needed for a feature Composition of classes according to feature selection

Marko Rosenmüller - University of Magdeburg, Germany 9 FeatureC++ FOP for C++ and thus embedded domain Integration of AOP (AspectC++) Modularization of crosscutting features Based on code transformation to C++ Resource consumption? –Important in embedded domain –C++ vs. C. What abut FeatureC++? –Static optimizations to avoid any overhead –Support for low-level languages (assembler)  Evaluation using Berkeley DB

Marko Rosenmüller - University of Magdeburg, Germany 10 Berkeley DB – Refactoring Decomposition of Berkeley DB according to features –Transformation from C code into FeatureC++ code –Further extraction of features 35 features, 24 optional 400,000 different variants possible Mandatory Optional Alternative OR

Marko Rosenmüller - University of Magdeburg, Germany 11 Berkeley DB – Binary Size and Performance Binary size compared to original version Performance comparison (Oracle reading benchmark) No negative impact of FOP Functional overhead increases binary size and decreases performance Marko Rosenmüller - University of Magdeburg, Germany

12 Berkeley DB – Refactored Source Code Separated / modularized features –Feature not entangled –Smaller methods / classes due to separated feature code –Less source code needed to understand functionality

Marko Rosenmüller - University of Magdeburg, Germany 13 Problems Observed High effort to refactor into a large number of features Feature interactions –Can be modularized but even higher effort Problems with fine-grained refactorings –Extensions of method signatures –Small parts of methods (e.g., single statements) Mixed granularity to reduce development effort –Fine granularity for features used in DBMS for very small systems –Larger extension features used in bigger systems

Marko Rosenmüller - University of Magdeburg, Germany 14 Summary FOP applicable to embedded systems –modularization of crosscutting concerns –No negative impact on resource consumption or performance Separation into base code and extending features may reduce complexity to understand source code Tradeoff between granularity and development effort Design for extensibility needed (FAME-DB)