Lyra – A service-oriented and component-based method for the development of communicating systems (by Sari Leppänen, Nokia/NRC) Traditionally, the design,

Slides:



Advertisements
Similar presentations
Synthesis of Protocol Converter Using Timed Petri-Nets Anh Dang Balaji Krishnamoorthy Manoj Iyer Presented by:
Advertisements

Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Lecture 6: Software Design (Part I)
Presentation by Prabhjot Singh
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
The Application of Black Box Theory to System Development
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
1 CODE TESTING Principles and Alternatives. 2 Testing - Basics goal - find errors –focus is the source code (executable system) –test team wants to achieve.
1 SYSTEM and MODULE DESIGN Elements and Definitions.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
Describing Syntax and Semantics
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
Formal Service-Oriented Development of Fault Tolerant Communicating Systems Linas Laibinis, Elena Troubitsyna, Johan Lilius, Qaisar Malik (Åbo Akademi)
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
Smart Learning Services Based on Smart Cloud Computing
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Chapter 6: The Traditional Approach to Requirements
The Systems Development Environment. Learning Objectives Define information systems analysis and design. Describe the different types of information systems.
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
CompSci 230 Software Design and Construction
Chapter 1 The Systems Development Environment
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 8: Modelling Interactions and Behaviour.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
ECE 720T5 Winter 2014 Cyber-Physical Systems Rodolfo Pellizzoni.
An Introduction to Software Architecture
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
The Architecture of Secure Systems Jim Alves-Foss Laboratory for Applied Logic Department of Computer Science University of Idaho By, Nagaashwini Katta.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Architecting Web Services Unit – II – PART - III.
Introduction to Formal Methods Based on Jeannette M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8-24, September,
SOFTWARE DESIGN.
Large Scale Software Systems Derived from Dr. Fawcett’s Notes Phil Pratt-Szeliga Fall 2010.
NETWORKING CONCEPTS. PROTOCOLS In a n/w communication occurs b/w 2 entities Entity means anything that is capable of sending and receiving information.
1 6 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 6 The Traditional Approach to Requirements.
Design Concepts By Deepika Chaudhary.
 What is Modeling What is Modeling  Why do we Model Why do we Model  Models in OMT Models in OMT  Principles of Modeling Principles of Modeling 
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Requirements Engineering-Based Conceptual Modelling From: Requirements Engineering E. Insfran, O. Pastor and R. Wieringa Presented by Chin-Yi Tsai.
Formal Methods and Testing: Possible Attributes for Success A. J. Cowling Department of Computer Science University of Sheffield.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
10 Aug 2010 ECE/BENG-492 SENIOR ADVANCED DESIGN PROJECT Meeting #4.
Yu, et al.’s “A Model-Driven Development Framework for Enterprise Web Services” In proceedings of the 10 th IEEE Intl Enterprise Distributed Object Computing.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Basic Characteristics of Object-Oriented Systems
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.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Chapter 6 The Traditional Approach to Requirements.
Architecture Concept Documents
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
About the Presentations
Designing Software for Ease of Extension and Contraction
From Use Cases to Implementation
Presentation transcript:

Lyra – A service-oriented and component-based method for the development of communicating systems (by Sari Leppänen, Nokia/NRC) Traditionally, the design, testing and implementation phases of protocol design have been too independent of each other Moreover, the testing phase could not be started before the implementation was finished. SOLUTION: Let’s design a methodology, that does design, testing and verification in parallel! Sari Leppänen’s work centers on this idea. Method uses and combines theories of formal specification, verification and testing WHAT’S NEEDED? We need a good (verified) service specification of a protocol, which is recursively refined. Every refinement step must be proven to be sound. Design phase provides inputs to testing phase.

Lyra – Basic Concepts The Lyra methodology can be defined into 4 phases: 1.Service Specification 2.Service Decomposition 3.Service Distribution 4.Service Implementation Basically, three first steps correspond to the stages in protocol standardization However, Lyra methodology is general – I.e. it can be applied to the development of any service-oriented, communicating system. Design phases can be applied to the system architecture design as well as to the implementation of a protocol

Service Specification In the service specification phase, we model the service as a BLACK BOX We define the LOGICAL COMMUNICATION POINTS of the system (for provided services and used services) and specify the signalling in these in terms of STATEMACHINES. Basically, the service specification phase shows how the service interacts with its environment, i.e. describes the externally observable behaviour of the system. Service Specification model provides an executable model of the functional requirements set for the system Service Specification is canonical – i.e. every refinement step must produce the same external behaviour as Service Specification Formal verification used for validation (visual verification, model checking…)

Service Specification - Example data_ind(data) ABP sender_port receiver_port receiver ABP data_req(data) data_cnf sender ABP

Service Specification with Tau/Developer here, the state machine describes only the signalling on external interfaces. The state machine is non-deterministic and hierarchical

Service Specification with Tau/Developer this is an example of a hierarchical state with one named entry point and two named exit points.

Service Specification with Tau/Developer

Service Decomposition In the Service Decomposition phase, a black-box view of the service is broken down into glass-box view. Internal architecture of the system providing the service is defined The service is broken down into Service Components (SCs) which may communicate with each other. Service Specification process is executed for each new Service Component. The externally observable behaviour of the system stays exactly the same. Existing interfaces may be decomposed (i.e. refined) and new (system internal) interfaces between the SCs may be added to the model. Behavior for all new interfaces is defined. The principle of defining only the externally observable behavior of a Service Component together with recursive decomposition process produces stepwise refinement process Service Decomposition phase is recursive (producing a “decomposition tree”), and it may be necessary to do a few iterations until sufficient detail is reached. To prove the refinements, the externally observable behaviour of Service Components and their various parallel compositions are compared to the externally observable behaviour of the Service Component on higher abstraction level (and finally to the model produced in Service Specification phase). Equivalence/preorder relation, chosen semantics

Service Decomposition in Tau/Developer these are service components with an internal interface

Service Decomposition in Tau/Developer This picture describes the state machine for a single service component. It has six states, four of which are hierarchical.

Service Decomposition in Tau/Developer

Service Distribution In Service Distribution, the Service Components (SCs) from the previous phase are allocated to actual network elements. Typically, this step has to be made in close co-operation with the design engineers. Distribution cases: 1. a separate, non-communicating SC located as such into a NW element 2. communicating SCs located into various NW elements -> inter- component interfaces opened up as PDU interfaces 3. a single SC distributed over several NW elements -> peer statemachines for communicating peer entities and PDU interfaces between them defined Hierarchical statemachines used to differentiate various types of communication: PDUs and service primitives. The externally observable behaviour must stay constant in this phase as compared to the two previous ones.

Service Decomposition in Tau/Developer Here, each of the network elements contains just a single service component. The internal interface between the service components is opened up as a PDU interface

Service Implementation In Service Implementation phase, all the platform specific issues must be taken care of. We define e.g. timers and dynamic process management. Also, the encoding/decoding and routing issues must be resolved. All this is encapsulated by a separate entity, PEER PROXY or RED, which hides the implementation of virtual PDU communication from the computational entity (<-SC). Once this is done, C code may be generated for the application automatically. We use the models from Service Specification, Service Decomposition and Service Distribution phase to test the implementation Automatic test case generation from design models Exploration testing (or on-the-fly testing)

Sending RED Sending ABP sending_user_port lower_layer_port Sending_ABP_implementation

Conclusion Model Based testing with Lyra is a nice hybrid between testing and verification Lyra methodology is a systematic and ”down-to-earth” formal method – a quality which is extremely important in introducing formal methods to the industrial environment There have been successful case studies on Lyra done inside Nokia. White paper describing model-based design case according to (early) Lyra method in The first publications on the subject of Lyra should appear still this year.