Synthesizing Partial Component- Level Behavior Models Ivo Krka.

Slides:



Advertisements
Similar presentations
A Method for Validating Software Security Constraints Filaret Ilas Matt Henry CS 527 Dr. O.J. Pilskalns.
Advertisements

Andrea Maurino Web Service Design Methodology Batini, De Paoli, Maurino, Grega, Comerio WP2-WP3 Roma 24/11/2005.
Seyedehmehrnaz Mireslami, Mohammad Moshirpour, Behrouz H. Far Department of Electrical and Computer Engineering University of Calgary, Canada {smiresla,
From System Specifications to Component Behavioral Models Ivo Krka George Edwards Yuriy Brun Nenad Medvidovic.
Translation-Based Compositional Reasoning for Software Systems Fei Xie and James C. Browne Robert P. Kurshan Cadence Design Systems.
A Randomized Dynamic Program Analysis for Detecting Real Deadlocks Koushik Sen CS 265.
Unit 2. Software Lifecycle
Software Testing and Quality Assurance
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Copyright © 2006 Software Quality Research Laboratory DANSE Software Quality Assurance Tom Swain Software Quality Research Laboratory University of Tennessee.
1 SWE Introduction to Software Engineering Lecture 5.
System behaviors: state machine diagrams
The Complexity of Adding Failsafe Fault-tolerance Sandeep S. Kulkarni Ali Ebnenasir.
Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language.
Using the Vanderbilt Generic Modeling Environment (GME) to Address SOA QoS Sumant Tambe Graduate Intern, Applied Research, Telcordia Technologies Inc.
1 Program Comprehension through Dynamic Analysis Visualization, evaluation, and a survey Bas Cornelissen (et al.) Delft University of Technology IPA Herfstdagen,
End-to-End Design of Embedded Real-Time Systems Kang G. Shin Real-Time Computing Laboratory EECS Department The University of Michigan Ann Arbor, MI
1 SWE Introduction to Software Engineering Lecture 11 - Requirements Engineering Processes.
1 Scenario-based Analysis of UML Design Class Models Lijun Yu October 4th, 2010 Oslo, Norway.
Discussion #9 1/9 Discussion #9 Tautologies and Contradictions.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
FRANCISCO J. GALAN AND AHMED RIVERAS UNIVERSITY OF SEVILLE SEMANTIC WEB SERVICES IN A TRANSACTIONAL CONTEXT PROLE 2013 (MADRID)
Transitioning From Software Requirements Models to Design Models
Introduction to Software Testing Chapter 9.4 Model-Based Grammars Paul Ammann & Jeff Offutt
1 Yolanda Gil Information Sciences InstituteJanuary 10, 2010 Requirements for caBIG Infrastructure to Support Semantic Workflows Yolanda.
Software Development Stephenson College. Classic Life Cycle.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
Instructor: Peter Clarke
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Agenda 1. Introduction 2. Overview of SU-MoVal 3. OCL-based Model Validation 4. QVT-based Transformations 5. Demo of SU-MoVal 6. Conclusion and Future.
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Microsoft Research, Foundations of Software EngineeringW. Grieskamp et. al: Behavioral Compositions in Symbolic Domains Behavioral Composition in Symbolic.
Ch. 2. Specification and Modeling 2.1 Requirements Describe requirements and approaches for specifying and modeling embedded systems. Specification for.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
1 Context-dependent Product Line Practice for Constructing Reliable Embedded Systems Naoyasu UbayashiKyushu University, Japan Shin NakajimaNational Institute.
Supporting Scenario-Based Requirements Engineering IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 24, NO. 12, DECEMBER, 1998 A. G. Sutcliffe, N. A. M.
Object-Oriented Design and Implementation of the OE-Scheduler in Real-time Environments Ilhyun Lee Cherry K. Owen Haesun K. Lee The University of Texas.
Automata Based Method for Domain Specific Languages Definition Ulyana Tikhonova PhD student at St. Petersburg State Politechnical University, supervised.
Intelligent Space 國立台灣大學資訊工程研究所 智慧型空間實驗室 Service Behavior Consistency in the OSGi Platform Authors Y.Qin, H.Hao,L.Jun, G.Jidong and L.Jian Proceedings.
Lab 5 CPIT 250 System Analysis and Design.
Gregor v. Bochmann, University of Ottawa Based on Powerpoint slides by Gunter Mussbacher(2009) with material from Amyot User Requirements Notation (URN)
Towards Interoperability Test Generation of Time Dependent Protocols: a Case Study Zhiliang Wang, Jianping Wu, Xia Yin Department of Computer Science Tsinghua.
Behavioral Comparison of Process Models Based on Canonically Reduced Event Structures Paolo Baldan Marlon Dumas Luciano García Abel Armas.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Notes on temperature programming: unique assembly verification Days 30 and 31 of Comp Sci 480.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
© Duminda Wijesekera, 2003 Consistent and Complete Access Control Policies in Use Cases Khaled Alghathbar George Mason University, USA and King Saud University,
1 CEN 4020 Software Engineering PPT4: Requirement analysis.
Synthesizing Component- Level Behavior Models from Scenarios and Constraints Ivo Krka.
A UML-Based Pattern Specification Technique Presented by Chin-Yi Tsai IEEE TRANSACTION ON SOFTWARE ENGINEERING, VOL. 30, NO. 3, MARCH 2004 Robert B. France,
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Symbolic Model Checking of Software Nishant Sinha with Edmund Clarke, Flavio Lerda, Michael Theobald Carnegie Mellon University.
George Edwards Computer Science Department Center for Systems and Software Engineering University of Southern California
Object Oriented Analysis & Design By Rashid Mahmood.
On Combining Multi-formalism Knowledge to Select Models for Model Transformation Testing Sagar Sen (1 st year PhD student), Benoit Baudry, Jean-Marie Mottu.
 The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements.  However,
Automated Object’s Statechart Generation and Testing from Class-Method Contracts Atul Gupta PhD Scholar, IIT Kapur, India.
TQS - Teste e Qualidade de Software (Software Testing and Quality) Test Case Design – Model Based Testing João Pascoal.
Unified Modeling Language
APPLICATION OF DESIGN PATTERNS FOR HARDWARE DESIGN
Model-Driven Analysis Frameworks for Embedded Systems
The Extensible Tool-chain for Evaluation of Architectural Models
Programming Languages 2nd edition Tucker and Noonan
The Extensible Tool-chain for Evaluation of Architectural Models
Programming Languages 2nd edition Tucker and Noonan
Unit III – Chapter 3 Path Testing.
Presentation transcript:

Synthesizing Partial Component- Level Behavior Models Ivo Krka

Outline 1.Motivation and Background 2.The Synthesis Algorithm 3.Discovery of Discrepancies 4.Conclusions

Motivation Early in a software system’s life cycle Uncertainty Incomplete (partial) information Utilized behavior specifications Intuitive and straightforward Focused and partial System-level Our work leverages Properties (OCL constraints) Scenarios (UML sequence diagrams)

Web Cache Scenario ClientCacheServer requestCache requestServer responseServer responseCache requestCache responseCache

Web Cache Constraints pre: pending = false post: pending = true requestCache pre: cached = true and pending = true post: pending = false responseCache pre: cached = false and pending = true post: empty requestServer pre: empty post: cached = true responseServer pre: empty post: cached = false dataUpdate cached: true if the data is cached and false otherwise pending: true if there is a pending client request for data, and false otherwise System domain variables

Synthesis of Behavioral Models Behavioral models proven useful Validation, analysis, etc. Complete component-level models E.g., Whittle [1], Mäkinen [2], Damas [3] Overlook the partiality of specs (Uchitel [4])

Abstracting the Problem

Modal Transition Systems (MTS) Two types of transitions Required and maybe (marked with ?) S1 S2 S3 ab? MTS M

The Proposed Algorithm Partial-behavior models Behavior required by scenarios Behavior prohibited by constraints Behavior neither required nor prohibited Component-level models Better scaling with system size Discovery of specification discrepancies

Algorithm Overview OCL, SDs Component Constraint Generation Initial MTS Generation Sequence Diagram Annotation Final MTS Generation Comp. MTSs 12 34

Phase 1: Component Constraint Generation Initial MTS Generation Sequence Diagram Annotation Final MTS Generation Component Constraint Generation pre: pending = false post: pending = true requestCache pre: cached = true and pending = true post: pending = false responseCache pre: cached = false and pending = true post: empty requestServer pre: empty post: cached = true responseServer pre: empty post: cached = false dataUpdate pending: significant variable from Client’s perspective cached: does not directly affect Client’s behavior Client component pre: pending = false post: pending = true requestCache pre: pending = true post: pending = false responseCache Not all variables affect each component Reduction in state space size

Phase 2: Initial MTS Generation Sequence Diagram Annotation Final MTS Generation Component Constraint Generation Initial MTS Generation S1 (F,F) S2 (F,T) S3 (T,F) respServ? MTS Cache (p,c) reqCache? respServ? S4 (T,T) reqCache? reqServ? respCache? respServ? Initial MTS captures all legal behavior

Phase 3: Sequence Diagram Annotation Initial MTS Generation Final MTS Generation Component Constraint Generation Sequence Diagram Annotation Cache reqCache reqServ respServ respCache reqCache respCache annotations:

Phase 3: Sequence Diagram Annotation Initial MTS Generation Final MTS Generation Component Constraint Generation Sequence Diagram Annotation Cache reqCache reqServ respServ respCache reqCache respCache annotations:

Phase 3: Sequence Diagram Annotation Initial MTS Generation Final MTS Generation Component Constraint Generation Sequence Diagram Annotation Cache reqCache reqServ respServ respCache reqCache respCache annotations:

Phase 3: Sequence Diagram Annotation Initial MTS Generation Final MTS Generation Component Constraint Generation Sequence Diagram Annotation Cache reqCache reqServ respServ respCache reqCache respCache annotations: <T,F><T,F>

Phase 3: Sequence Diagram Annotation Initial MTS Generation Final MTS Generation Component Constraint Generation Sequence Diagram Annotation Cache reqCache reqServ respServ respCache reqCache respCache <T,F><T,F> We know the traversed execution states

Phase 4: Final MTS Generation Initial MTS Generation Component Constraint Generation Sequence Diagram Annotation Final MTS Generation S1 (F,F) S2 (F,T) S3 (T,F) respServ? MTS Cache reqCache? respServ? S4 (T,T) reqCache? reqServ? respCache? respServ? reqCache Current invocation

Phase 4: Final MTS Generation Initial MTS Generation Component Constraint Generation Sequence Diagram Annotation Final MTS Generation S1 (F,F) S2 (F,T) S3 (T,F) respServ? MTS Cache reqCache respServ? S4 (T,T) reqCache? reqServ? respCache? respServ? reqServ Current invocation

reqCache respCache Phase 4: Final MTS Generation Initial MTS Generation Component Constraint Generation Sequence Diagram Annotation Final MTS Generation S1 (F,F) S2 (F,T) S3 (T,F) respServ? MTS Cache respServ? S4 (T,T) reqCache reqServ? respServ respServ? S3’ (T,F) reqServ S4’ (T,T) S2’ (F,T) respServ? respCache

Phase 4: Final MTS Generation Initial MTS Generation Component Constraint Generation Sequence Diagram Annotation Final MTS Generation respCache reqCache S1 (F,F) S2 (F,T) S3 (T,F) respServ? MTS Cache respServ? S4 (T,T) reqCache reqServ? respServ respServ? S3’ (T,F) reqServ S4’ (T,T) S2’ (F,T) respServ? respCache All legal behavior Required behavior

Implementation Prototype MTSGen tool Warns about discrepancies Results can be visualized in MTSA Performance evaluation The algorithm is exponential in the worst case Used specifications 50 components 300 distinct operations 200 domain variables 200 scenarios Average running time 36 seconds Models of approx. 60 states

Scenario Cannot Execute As Specified ClientCacheServerAdmin requestCache responseCache requestCache requestServer dataUpdate responseServer responseCache dataChanged

System and Component Views Differ ClientCacheServerAdmin requestCache removePermission responseCache requestCache requestServer responseServer responseCache System viewpoint: permission = false Cache viewpoint: permission = true

Conclusions Novel synthesis algorithm Inputs: constraints and scenarios Outputs: component-level MTSs Discovery of specification discrepancies Prototype implementation Future work Support for requirements elicitation Support in OTS component selection

References 1.Whittle and Schumann, ICSE Mäkinen and Systä, ICSE Damas et al., FSE Uchitel et al., ESEC/FSE 2003.

Authors Ivo Krka Yuriy Brun George Edwards Nenad Medvidovic Tool download Initial MTS Generation Component Constraint Generation Sequence Diagram Annotation Final MTS Generation