From System Specifications to Component Behavioral Models Ivo Krka George Edwards Yuriy Brun Nenad Medvidovic.

Slides:



Advertisements
Similar presentations
Design by Contract.
Advertisements

TOPIC : SYNTHESIS DESIGN FLOW Module 4.3 Verilog Synthesis.
Seyedehmehrnaz Mireslami, Mohammad Moshirpour, Behrouz H. Far Department of Electrical and Computer Engineering University of Calgary, Canada {smiresla,
The "if structure" is used to execute statement(s) only if the given condition is satisfied.
Native x86 Decompilation Using Semantics-Preserving Structural Analysis and Iterative Control-Flow Structuring Edward J. Schwartz *, JongHyup Lee ✝, Maverick.
Hoare’s Correctness Triplets Dijkstra’s Predicate Transformers
The State of the Art in Distributed Query Processing by Donald Kossmann Presented by Chris Gianfrancesco.
Opmaker2: Efficient Action Schema Acquisition T.L.McCluskey, S.N.Cresswell, N. E. Richardson and M.M.West The University of Huddersfield,UK
1 Design by Contract Building Reliable Software. 2 Software Correctness Correctness is a relative notion  A program is correct with respect to its specification.
Karolina Muszyńska Based on
Analysis of Software Architectures. What Is Architectural Analysis? Architectural analysis is the activity of discovering important system properties.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Web Ontology Language for Service (OWL-S). Introduction OWL-S –OWL-based Web service ontology –a core set of markup language constructs for describing.
CS 290C: Formal Models for Web Software Lecture 10: Language Based Modeling and Analysis of Navigation Errors Instructor: Tevfik Bultan.
Smart Redundancy for Distributed Computation George Edwards Blue Cell Software, LLC Yuriy Brun University of Washington Jae young Bang University of Southern.
1 Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors Nenad Medvidovic with Marija Rakic and Barry Boehm University.
Software Testing and Quality Assurance
Karolina Muszyńska Based on
1 Scenario-based Analysis of UML Design Class Models Lijun Yu October 4th, 2010 Oslo, Norway.
Real-Time System Requirements & Design Specs Shaw - Chapters 3 & 4 Homework #2: 3.3.1, 3.4.1, Add Error states to Fig 4.1 Lecture 4/17.
Chapter 10: Architectural Design
Verification technique on SA applications using Incremental Model Checking 컴퓨터학과 신영주.
Chapter 10 Architectural Design
Combining Exact and Metaheuristic Techniques For Learning Extended Finite-State Machines From Test Scenarios and Temporal Properties ICMLA ’14 December.
Warren He, Devdatta Akhawe, and Prateek MittalUniversity of California Berkeley This subset of the web application generates new requests to the server.
Software Development Stephenson College. Classic Life Cycle.
Li Yi, APSEC ‘12 Constructing Feature Models Us­­ing a Cross-Join Merging Operator.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
Models of Computation: FSM Model Reading: L. Lavagno, A.S. Vincentelli and E. Sentovich, “Models of computation for Embedded System Design”
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Dynamic software reconfiguration using control supervisors Ugo Buy 13 June 2005.
Introduction to Problem Solving. Steps in Programming A Very Simplified Picture –Problem Definition & Analysis – High Level Strategy for a solution –Arriving.
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.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
Final Class Diagram for C++ Implementation Clickermatic Software Clicker.
Software Deployment and Mobility. Introduction Deployment is the placing of software on the hardware where it is supposed to run. Redeployment / migration.
Towards Interoperability Test Generation of Time Dependent Protocols: a Case Study Zhiliang Wang, Jianping Wu, Xia Yin Department of Computer Science Tsinghua.
MIS 3200 – Unit 3.2 Page_Load method AutoPostBack property of controls IsPostBack method of the Page object Understanding web page life cycle.
 CMMI  REQUIREMENT DEVELOPMENT  SPECIFIC AND GENERIC GOALS  SG1: Develop CUSTOMER Requirement  SG2: Develop Product Requirement  SG3: Analyze.
Refining the Use Cases 1. How Use Cases Evolve  Early efforts typically define most of the major use cases.  The refining stages complete the process.
Sept. 2005EE37E Adv. Digital Electronics Lesson 4 Synchronous Design Architectures: Control Unit Design (part three)
Synthesizing Partial Component- Level Behavior Models Ivo Krka.
Synthesizing Component- Level Behavior Models from Scenarios and Constraints Ivo Krka.
Improving System Availability in Distributed Environments Sam Malek with Marija Mikic-Rakic Nels.
C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.
Metadata Driven Aspect Specification Ricardo Ferreira, Ricardo Raminhos Uninova, Portugal Ana Moreira Universidade Nova de Lisboa, Portugal 7th International.
Improvement of Apriori Algorithm in Log mining Junghee Jaeho Information and Communications University,
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
Systems Architectures System Integration & Architecture.
George Edwards Computer Science Department Center for Systems and Software Engineering University of Southern California
VIEWS b.ppt-1 Managing Intelligent Decision Support Networks in Biosurveillance PHIN 2008, Session G1, August 27, 2008 Mohammad Hashemian, MS, Zaruhi.
 The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements.  However,
Mechanisms for Requirements Driven Component Selection and Design Automation 최경석.
Implementation of Classifier Tool in Twister Magesh khanna Vadivelu Shivaraman Janakiraman.
Trading Timeliness and Accuracy in Geo-Distributed Streaming Analytics
Model-Driven Analysis Frameworks for Embedded Systems
File service architecture
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Comparison between UML Activity Diagrams and Use Case Maps
The Extensible Tool-chain for Evaluation of Architectural Models
ICIEV 2014 Dhaka, Bangladesh
John D. McGregor Session 5 Error Modeling
Software Development Cycle
Comparison between UML Activity Diagrams and Use Case Maps
Presentation transcript:

From System Specifications to Component Behavioral Models Ivo Krka George Edwards Yuriy Brun Nenad Medvidovic

Background Early development specifications Partial System-level Scenarios and properties Mapping early specifications to more comprehensive behavioral models is beneficial

Problem Statement Early development phases Partial Specifications System-level E.g., scenarios and properties Mapping early specifications to more comprehensive behavioral models is beneficial How can we synthesize more comprehensive behavioral models from early specifications?

Web Cache Example responseCache pre: cached = true post: none requestServer pre: cached = false post: none responseServer pre: none post: cached = true dataUpdate pre: none post: cached = false dataChanged pre: none post: cached = false ClientCacheServer requestCache requestServer responseServer responseCache requestCache responseCache

ClientCacheServer requestCache requestServer responseServer responseCache requestCache responseCache Current Solutions Component-level model synthesis [1] S1 S2 S4 S3 S5 requestCacherequestServer responseServer responseCache requestCache responseCache -- pre: cached = true; post: none requestServer -- pre: cached = false; post: none responseServer -- pre: none; post: cached = true dataUpdate -- pre: none; post: cached = false dataChanged -- pre: none; post: cached = false Synthesize Cache Can Client request data twice in a row? Can Server send data without Cache’s request? Etc.

Modeling Partial Behavior Modal Transition Systems (MTS) Required behavior Potential behavior Marked with “?” sign S1 S2 S3 S4 e1 e2 e1? e3 e3? e1? e2 MTS M

Current Solutions System-level partial behavioral model synthesis [2] Shortcomings Potential errors – system-level perspective Components cannot satisfy the specification Overlook discrepancies among specifications Scale, analyzability and comprehensibility

Our Approach Generating Component-Level Partial-Behavior Models (MTSs) NEW IDEA:

Component-Level MTS Synthesis Inputs Sequence diagrams Pre/post constraints Outputs Component MTSs

Component-Level MTS Synthesis Specs Component- level constraints generation Sequence diagram annotation Initial MTS generation Final MTS generation

Phase 1 Pre/post constraints System-level Pre/post constraints Each component Cache responseCache pre: cached = true post: none requestServer pre: cached = false post: none responseServer pre: none post: cached = true dataUpdate pre: none post: cached = false dataChanged pre: none post: cached = false responseCache pre: cached = true post: none requestServer pre: cached = false post: none responseServer pre: none post: cached = true dataChanged pre: none post: cached = false Specs Sequence diagram annotation Initial MTS generation Final MTS generation Component- level constraints generation

Phase 2 Component pre/post constraints Initial MTS Only potential transitions S1 (F) S2 (T) requestCache?, requestServer?, dataChanged? responseServer? dataChanged? requestCache?, responseCache?, responseServer? Cache Specs Component-level constraints generation Sequence diagram annotation Final MTS generation Initial MTS generation

Phase 3 Pre/post constraints Scenarios Annotated scenarios Conditions must hold F T F F T T T Cache responseCache pre: cached = true post: none requestServer pre: cached = false post: none responseServer pre: none post: cached = true dataChanged pre: none post: cached = false Cache requestCache requestServer responseServer responseCache requestCache responseCache Specs Component-level constraints generation Sequence diagram annotation Initial MTS generation Final MTS generation The data is initially not cached.

Phase 4 Initial MTS Annotated SDs Final MTS Strong refinement S1 (F) S2 (F) dataChanged? requestCache dataChanged? S3 (F) requestServer requestCache? requestServer? S4 (T) responseServer? requestCache?requestServer? responseServer? responseServer dataChanged? S5 (T) responseCache responseServer? S6 (T) requestCache responseCache responseCache?requestCache? responseServer? Cache Specs Component-level constraints generation Sequence diagram annotation Initial MTS generation Final MTS generation The scenario is incorporated into the MTS as required behavior.

Scenario cannot execute Constraint violated Component cannot reach desirable state Missing events Utilization 1: Discovery of Specification Discrepancies ClientCacheServer requestCache requestServer responseServer responseCache requestCache responseCache dataUpdate

Utilization 2: Requirements Elicitation Propose new scenarios Infer/propose new properties □ ((requestPending  ¬ cached ) →○ (requestPending )) ClientCacheServer requestCache requestServer responseServer dataUpdate dataChanged requestServer When the data is not cached and the request is pending, the request will be pending in the next state

Utilization 3: OTS Component Selection Multiple candidate components Satisfaction of required behavior No proscribed behavior Selection

Utilization 4: As-intended vs. As-implemented Comparison Introduced proscribed behavior? Missing required behavior? Architectural drift S1 S2 S3 e1 e1? e3 e3? e2 S1 S2 S3 e1 e2 e3? e2

Conclusions Synthesis algorithm the first step Component-level MTSs Notable potential contributions

Thank you! Questions?