The PLA Model: On the Combination of Product-Line Analyses 2013.04.03 강태준.

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Testing and Quality Assurance
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Presenter: PCLee – This paper outlines the MBAC tool for the generation of assertion checkers in hardware. We begin with a high-level presentation.
ISBN Chapter 3 Describing Syntax and Semantics.
CS 355 – Programming Languages
The Z Specification Language
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
Today’s Agenda  HW #1 Due  Quick Review  Finish Input Space Partitioning  Combinatorial Testing Software Testing and Maintenance 1.
Train Control Language Teaching Computers Interlocking By: J. Endresen, E. Carlson, T. Moen1, K. J. Alme, Haugen, G. K. Olsen & A. Svendsen Synthesizing.
Constraint Logic Programming Ryan Kinworthy. Overview Introduction Logic Programming LP as a constraint programming language Constraint Logic Programming.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Software Requirements
Describing Syntax and Semantics
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Course Instructor: Aisha Azeem
Churning the Most Out of IP-XACT for Superior Design Quality Ayon Dey Lead Engineer, TI Anshuman Nayak Senior Product Director, Atrenta Samantak Chakrabarti.
Data Structures and Programming.  John Edgar2.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
System/Software Testing
C++ Code Analysis: an Open Architecture for the Verification of Coding Rules Paolo Tonella ITC-irst, Centro per la Ricerca Scientifica e Tecnologica
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
An Introduction to Software Architecture
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Software Requirements Presented By Dr. Shazzad Hosain.
Introduction Algorithms and Conventions The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
1 Introduction to Software Engineering Lecture 1.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
Introduction to Problem Solving. Steps in Programming A Very Simplified Picture –Problem Definition & Analysis – High Level Strategy for a solution –Arriving.
Enabling Reuse-Based Software Development of Large-Scale Systems IEEE Transactions on Software Engineering, Volume 31, Issue 6, June 2005 Richard W. Selby,
Today’s Agenda  Reminder: HW #1 Due next class  Quick Review  Input Space Partitioning Software Testing and Maintenance 1.
ISBN Chapter 3 Describing Semantics.
Requirements Engineering Lesson 2. Terminologies:  Software Acquisition is where requirement engineering significantly meets business strategy.  Software.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
An Undergraduate Course on Software Bug Detection Tools and Techniques Eric Larson Seattle University March 3, 2006.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Software Quality Assurance and Testing Fazal Rehman Shamil.
PROGRAMMING TESTING B MODULE 2: SOFTWARE SYSTEMS 22 NOVEMBER 2013.
The Hashemite University Computer Engineering Department
Introduction to Modeling Extracted from textbook: Object Oriented Modeling and Design with UML M. Blaha, J. Rumbaugh.
Quality Assurance in the Presence of Variability Kim Lauenroth, Andreas Metzger, Klaus Pohl Institute for Computer Science and Business Information Systems.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
CS412/413 Introduction to Compilers Radu Rugina Lecture 11: Symbol Tables 13 Feb 02.
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
OCR A Level F453: The function and purpose of translators Translators a. describe the need for, and use of, translators to convert source code.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
1 Software Requirements Descriptions and specifications of a system.
 System Requirement Specification and System Planning.
Implementation Topics Describe –Characteristics of good implementations –Best practices to achieve them Understand role of comments Learn debugging techniques.
Topic 2: Hardware and Software
Advanced Computer Systems
Software Testing.
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Multiple Aspect Modeling of the Synchronous Language Signal
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
From Use Cases to Implementation
Chapter 9: Implementation
Presentation transcript:

The PLA Model: On the Combination of Product-Line Analyses 강태준

Index Introduction Product-Line Analysis Classification of Analysis Analysis Examples Conclusion

Introduction Software Product-Line Engineering? –Develop a set of similar software products based on a common code base for a particular domain –Differences between products are features –Different feature set is called configuration –Configuration defines each different products with specific functional characteristics

Introduction Software analyses –To gather knowledge about the characteristics fo the products –From simple statistics to complex analyses –Analysis methods: Type checking, Model checking, Deductive verification, Testing

Introduction Variability-aware analysis –PLE’s problem: take time, duplicated jobs –PLE + consider variability + exploit similarities –Faster than comparable analyses that do not consider variability –BUT has some disadvantages that limit scalability and efficiency Induces higher memory consumption Depends on implementation approach and analysis used

Introduction The Product-Line Analysis model –Formal model for comparison of product-line analyses –Based on existing classification –Includes traditional and variability-aware analyses

Introduction Contributions –Suggests PLA model, a formal model for the classification and comparison of product-line analyses –Suggests a notation for the visualization of product- line analyses based on the PLA model –Makes an application of the model on three product- line analyses and a summary –Discussion of perspectives that arise from the PLA model from the field of product-line analysis

Product-line Analyses Terminology and running example –Feature Model: Describes relationships and constraints between features –Feature Model has 2 constraints Mandatory: Must be enabled in all products Sub Features(or selected by feature) –Valid configuration: Configuration satisfy feature model –Partial configuration: Can be extended to a valid configuration by adding features

Product-line Analyses Terminology and running example –Printer Example –Valid Configuration: {BasicPrinter}, {BasicPrinter, Duplex} Feature BasicPrinter (Mandatory) class Printer { // basic printing method public void print(Page p) { … } // manual duplex printing public void printDuplex(Page front, Page back) { print(front); … // ask user to turn and re-insert page print(back); } Feature Duplex class Printer { // automatic duplex printing public void printDuplex(Page front, Page back) { … } Feature Scan class Printer { // scanning of one page public void scan() { … } Feature Copy class Printer { // scans one page and prints it public void copy() { print(scan()); }

Product-line Analyses Terminology and running example –Printer Example Product {BasicPrinter, Scan, Copy} class Printer { // basic printing method public void print(Page p) { … } // manual duplex printing public void printDuplex(Page front, Page back) { print(front); … // ask user to turn and re-insert page print(back); } // scanning of one page public void scan() { … } // scans one page and prints it public void copy() { print(scan()); }

Product-line Analyses Product Line Analysis Strategies –Input of product-line analysis Domain implementation (feature modules) Feature model –Property of the product line Static code property (software metrics) Form of correctness (well-typedness or functional correctness) Non-functional property (e.g. Average throughput)

Product-line Analyses Product Line Analysis Strategies –Sample-based Analysis Select subset of all valid configurations (select sample set from all possible products) Generate all corresponding products and analyze (in general purpose languages) –Drawbacks If not all valid configurations have been considered, it can’t be general statement for whole product line It generates many similar products  Analysis may be done with similar products repeatedly

Product-line Analyses Product Line Analysis Strategies –Variability-aware Analysis Exploiting similarities among products by shared code or behaviors (Covers Sample-based Approach’s drawback) Instead, Run directly or pre-process the features and implementations to produce a representation suitable for efficient analysis –Steps Integration: Combine features Processing: Process features or combiations to produce a result

Product-line Analyses Product Line Analysis Strategies –Compound Analysis Consists of multiple integration and processiong steps Said as Product-based testing –Steps Integration: Combine features from where different products are built from code Processing: All products are tested separately, result separately Re-integrate: Combine all results

Product-line Analyses Product Line Analysis Strategies –Family-based Analysis Takes features and variability information Creates a product simulator (Integration Step) –Includes code of all features –Can simulate behaviors of all valid products Feature selection is fixed after product generation at compile time With one simulator, whole set of vaild products can be analyzed (Process Step) Product Simulator {BasicPrinter, Duplex} class Printer { static boolean _FeatureDuplex_enabled; // basic printing method public void print(Page p) { … } public void printDuplex(Page front, Page back) { if(_FeatureDuplex_enabled) { … // code from Duplex feature } else { print(front); … // ask user to turn and re-insert page print(back); } Variability is implemented with conditional statement

Classification of analyses Dimensions of Classification –3 Dimensions of the classification of product-line analyses The PLA Cube Visualization of the space of possible combinations of product-line analyses

Classification of analyses Dimensions of Classification –Sampling Represents the fraction of products of a product line (subject to analysis) For huge product For analyze small piece of product –Drawback Not considering all valid products (may contains bug)

Classification of analyses Dimensions of Classification –Feature Grouping Granuarity and size of feature combinations(considered during analysis) If not grouped, features are isolated (Feature-based) If grouped, can check all valid configurations (for product)

Classification of analyses Dimensions of Classification –Variability Encoding Extent to which variability is preserved and used during analysis Separation vs. All Features with simulator Both of all analysis devides the product line into sub product lines

Classification of analyses Formal Model –Operators The model defines four operators – can be used recursively to build complex expressions can be used to describe any product-line analysis BUT, not complete. Need to be extended by textual descriptions –Objective To give abstract descriptions of existing complex analyses To develop and describe new analyses

Classification of analyses Formal Model –Operators

Classification of analyses Formal Model –Operators – Fixed Combinator Takes 2 objects and combines them to a (partial) product If operands have variability, preserved in the result (fixed) –Operators – Variability Combinator Takes 2 objects and feature model, combines objects to one object Combinator retains variability information (according to feature model) Result is simulator, includes variability of product C and V are Variabilities

Classification of analyses Formal Model –Operators – Variability Restriction Used when existing variability needs to be fully or partially eliminated –Operators – Processing Step Represents an analysis or a pre processing step performed on object Result depends on the input

Classification of analyses Formal Model –Combination of Operators Operators can be combined to form complex and powerful analyses Possible Operator combinations Always applied from left to right Fixed Combinator + Process each step Variability Combinator (Create simulator) + Process Process each step + Variability Combinator

Classification of analyses Formal Model –Formalization F: set of all feature implementations F = {BasicPrinter, Duplex, Scan, Copy} C: set of partial product C = p({BasicPrinter, Duplex, Scan, Copy}) P: set of valid products according to the feature model P = {{BasicPrinter}, {BasicPrinter, Duplex}, {BasicPrinter, Scan}, {BasicPrinter, Scan, Duplex}, {BasicPrinter, Scan, Copy}, {BasicPrinter, Scan, Duplex, Copy}} *P != p *p: 부분집합

Classification of analyses Notation Sugar –Integrate some operations into one

Analysis Examples –Product-line verification with variability encoding Past: Verification was often limited to the abstract models of sample set of product Now: With variability encoding technique, all valid products of product line can be checked with simulator or model checking etc. –Modular verification of product lines Developed in isolation (as module)  need to prove feature compativility With feature-based processing step, analyze each feature and extract interfaces Need less effort than analyzing all concrete products

Analysis Examples –Detection of non-functional feature interactions Analysis technique to automatically detect feature interactions based on performance measurements Determines whether there is an interaction between feature and any other feature in the product line –Type checking variability-aware ASTs C language based Type Checking Analysis Used to check files in linux kernel For each file: Parse C Code  Type Check  Type Interface and Linker Check Use fixed combinaton on objects containing variability

Conclusion Analyzing each product of a product line individually is infeasible –So in this paper, built a model for classification and comparison of analyses (Called PLA Model) –Compared with existing product-line analyses, proved usefulness of the model –Make product-line analyses easier to understand and to simplify the development fo future product-line analyses

Application With PLA Model, can be applied to analyze application in various ways with simulator Combining with other method of reuse? –It may considered?

The PLA Model: On the Combination of Product-Line Analyses