Formalizing ODP Computational Viewpoint Specification in Maude Raúl Romero and Antonio Vallecillo EDOC 2004 Dpto. Lenguajes y Ciencias de la Computación.

Slides:



Advertisements
Similar presentations
Service Oriented Architecture Reference Model
Advertisements

Modeling the ODP Computational Viewpoint with UML 2.0
Design by Contract.
Jose E. Rivera, Antonio Vallecillo Universidad de Málaga, Spain TOOLS Europe 2008, Zurich.
Formal Modelling of Reactive Agents as an aggregation of Simple Behaviours P.Kefalas Dept. of Computer Science 13 Tsimiski Str Thessaloniki Greece.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
UML for ODP system specifications ITU-T X.906 | ISO/IEC (A work-in-progress presentation) Antonio Vallecillo Universidad de Málaga Dept. Lenguajes.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
Formal Methods of Systems Specification Logical Specification of Hard- and Software Prof. Dr. Holger Schlingloff Institut für Informatik der.
Nathalie Moreno and Antonio Vallecillo Dept. Lenguajes y Ciencias de la Computación Universidad de Málaga COTS component/ Legacy.
Open Distributed Processing
Train Control Language Teaching Computers Interlocking By: J. Endresen, E. Carlson, T. Moen1, K. J. Alme, Haugen, G. K. Olsen & A. Svendsen Synthesizing.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
Chapter Object-Oriented Practices. Agenda Object-Oriented Concepts Terminology Object-Oriented Modeling Tips Object-Oriented Data Models and DBMSs.
Using UML for Writing and Reasoning about ODP Policies Javier Herrador, Francisco Durán, Antonio Vallecillo Felipe García, Manuel Roldán Dept. Lenguajes.
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 7 Title : Object Oriented Analysis and Design Reading: I. Sommerville,
UML for ODP system specifications ITU-T X.906 | ISO/IEC (A work-in-progress presentation) Antonio Vallecillo Universidad de Málaga Dept. Lenguajes.
Using Architecture Frameworks
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 18 Program Correctness To treat programming.
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 91 Formal Specification l Techniques for the unambiguous specification of software.
Chapter 1 Principles of Programming and Software Engineering.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Foundations This chapter lays down the fundamental ideas and choices on which our approach is based. First, it identifies the needs of architects in the.
Course Instructor: Aisha Azeem
Software Engineering Tools and Methods Presented by: Mohammad Enamur Rashid( ) Mohammad Rashim Uddin( ) Masud Ur Rahman( )
C++ fundamentals.
OMG ADTF, 24 June ITU-T X.906 | ISO/IEC Use of UML for ODP system specifications Bryan Wood Convenor, JTC1/SC7/WG19, Modelling Languages.
International Telecommunication Union ITU-T Study Group 17, Moscow, 30 March – 8 April 2005 New Recommendations on ODP Arve Meisingset Rapporteur Q15.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps.
Using MDA in Web Software Architectures Santiago Meliá Cristina Cachero Jaime Gómez Universidad de Alicante Spain.
DOT’98 Heidelberg 1 A. Hoffmann & M. Born Requirements for Advanced Distribution and Configuration Support GMD FOKUS Andreas Hoffmann & Marc Born
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
A language to describe software texture in abstract design models and implementation.
1 A Model-Driven Approach For Information System Migration Raymonde Le Delliou 1, Nicolas Ploquin 2, Mariano Belaunde 3, Reda Bendraou 4, Louis Féraud.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
1 5 Nov 2002 Risto Pohjonen, Juha-Pekka Tolvanen MetaCase Consulting AUTOMATED PRODUCTION OF FAMILY MEMBERS: LESSONS LEARNED.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
A new viewpoint for change management in RM-ODP systems Nesrine Yahiaoui 1,2, Bruno Traverson 1, Nicole Lévy 2 1 EDF R&D - 2 UVSQ PRiSM Workshop on ODP.
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.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Modeling the ODP Computational Viewpoint with UML 2.0: The Templeman Library Example José Raúl Romero, Antonio Vallecillo Universidad de Málaga, Spain.
Science and Technology Norwegian University of NTNU Rolv Bræk, January Introduction to Systems Engineering by Rolv Bræk NTNU.
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
GYTE - Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Bölümü GYTE - Bilgisayar Mühendisliği Bölümü AN ARCHITECTURE FOR NEXT GENERATION MIDDLEWARE.
Cs7100 (Prasad)L2SpecIntro1 Motivation for Language Specification.
Workshop on ODP for Enterprise Computing WODPEC 05 An RM-ODP based Ontology and a CAD Tool for Modeling Hierarchical Systems in Enterprise Architecture.
System Monitoring using Constraint Checking as part of Model Based System Management 2007 Monitoring using Constraint Checking as part.
XASTRO-2 Presentation CCSDS SAWG th November 2004.
DCMI Abstract Model Analysis Resource Model Jorge Morato– Information Ingeneering Universidad Carlos III de Madrid
DISCUSSION ABOUT REGISTRATION OF RM-ODP LIBRARY EXAMPLE BASED ON MFI Yuan Lin, Wang Jian, Wang Chong, Liang Peng, Feng Zaiwen.
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,
MDD-Kurs / MDA Cortex Brainware Consulting & Training GmbH Copyright © 2007 Cortex Brainware GmbH Bild 1Ver.: 1.0 How does intelligent functionality implemented.
INTRODUCTION: This report contains the results of the International Council of System Engineer (INCOSE) UML/SySML Team efforts to produce UML/SySML Architecture.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini VII. System Specification (I)
Principles of Programming & Software Engineering
Security analysis of COM with Alloy
Web Ontology Language for Service (OWL-S)
Daniel Amyot and Jun Biao Yan
Service-centric Software Engineering
UML profiles.
Motivation for Language Specification
Chapter 5 Architectural Design.
Motivation for Language Specification
Presentation transcript:

Formalizing ODP Computational Viewpoint Specification in Maude Raúl Romero and Antonio Vallecillo EDOC 2004 Dpto. Lenguajes y Ciencias de la Computación Universidad de Málaga, Spain {jrromero,

Contents 1.Motivation 2.The ODP Computational Viewpoint 3.Maude 4.Writing CV specifications in Maude 5.An example 6.Conclusions

Motivation: RM-ODP RM-ODP is a framework for ODP standardization and system specification covering all aspects of distributed systems: enterprise business, system, technology, distribution,… comprehensive and coherent object-oriented modelling concepts viewpoints viewpoint specifications Transparencies Common functions Viewpoints Different abstractions of the same system Reflect different concerns Expressed in terms of specific viewpoint languages Powerful mechanism for dealing with the complexity of distributed systems!

Motivation: ODP Viewpoints ODPSystem Enterprise Computation Information Technology Engineering

Motivation: The Computational Viewpoint The Computational Viewpoint describes the functionality of the ODP system and its environment through the decomposition of the system into objects which interact at interfaces – in a distribution transparent manner

Motivation: The Computational Viewpoint Computational objects and interfaces are usually specified by Computational Object Templates and Computational Interface Templates (*) Binding Objects are computational objects which support a binding between a set of other computational objects. A computational interface template comprises an interface signature a behaviour specification an environment contract (*) “A Template is the specification of the common features of a collection of s in sufficient detail that an can instantiated using it”.

Computational Viewpoint Specifications A Computational Specification describes the functional decomposition of an ODP system, in distribution transparent terms, as:  Configuration of computational objects  Internal actions of those objects  Interactions among those objects  Environment contracts

The Computational Viewpoint [[ METAMODEL ]] CV Metamodel

Motivation ODP Viewpoint languages are abstract, i.e., ODP does not prescribe any particular notation for expressing Viewpoint specifications Without a concrete syntax… it is difficult to write ODP specifications There is no tool support No analysis of the specifications (formal or informal) Formal methods are convenient/needed for enabling Precise, unambiguous, and abstract interpretation of ODP concepts and specifications The development of tools that support writing and analyzing ODP specifications … but traditionally useless

Maude Formal notation (and system) that supports equational and rewriting logic specification and programming Supports OO specifications and computations Classes: class C | a 1 : S 1, …., a n : S n Objects: Messages: msg m : S 1 … S n -> Msg. A configuration is a multiset of objects and messages that evolves by rewriting rules: crl [r] : M 1, …M m … => … M 1 ’ … M q ’ if Cond.

Maude A simple example class Account | balance : Int. msg deposit : Oid Int -> Msg. msg transfer : Oid Oid Int -> Msg. crl [1] : deposit(O,M) => if M > 0. crl [2] : transfer(A,B,X) => if X <= M.

Modeling the CV in Maude Mappings ODP concept Maude concept Computational object templateMaude class (inheriting from CV-Object ) Computational objectMaude object Computational object configuration Maude Configuration Binding object Maude object Signals Maude messages Operations and FlowsIn terms of signals Computational interfaces Maude object (inheriting from class CV-Interface ) Behaviour specificationRewrite rules Environment contractsa) Guards on rewrite rules b) Invariants

Modeling the CV in Maude An abstract platform (CV-Infrastructure) provides the basic concepts and mechanisms defined in the ODP Computational Viewpoint CV Infrastructure (I) class CV-Object | conf : Configuration. class CV-Interface | uniqueId : Oid, objectRole : Causality, bind : Oid, input : Configuration, output : Configuration. Two basic classes: CV-Object and CV-Interface.

Modeling the CV in Maude The CV Infrastructure also provides some predefined operations to Maude objects representing computational objects: CV Infrastructure (and II) Initiate signal (message M) at interface I: send(I, M) Signal (message M) from object O’ at I’ received at local interface I: receive(O’, I’, I, M) Instantiate computational interface template: instantiateInterface(..) Create binding from interface I to I’ and destroy a binding in I: bind(I, I’) unBind(I) Use Trading Function to search for an interface: lookup(UID, IFClass, O) lookupResponse(UID, IFClass, O, I) Instantiate computational object template: instantiateObject(..)

Example A multimedia system composed by listeners who want to receive audio frames from an audio streamer (i.e. Internet radio station). A binding object manages the multicast of audio frames from a audio streamer to its registered listeners. It control QoS parameters. A service manager object de-/registers and manages the listener selections. Description

Example The Maude specification — same as the CV specification — is divided into three parts: 1.Computational templates 2.Behaviour specifications 3.Initial configuration Maude modules provide the mechanisms to support them An example of a computational interface template is: Formalizing Objects and Interfaces (omod IAUDIOCHANNEL-TEMPLATE is pr CV-INTERFACE. class IAudioChannel. subclass IAudioChannel < CV-Interface. msg selectAudioStreamer : Qid -> Msg. msg selectAudioStreamerResponse : Qid Oid -> Msg. msg selectAudioStreamerFailure : Qid -> Msg. endom)

Example For each computational object, we specify (in terms of Maude rules) how interactions are achieved and how the system evolves Formalizing Behaviour crl [selectAudioStreamer-failure]: < O : ServiceMgr | streams : PF, conf : ( receive(O’, I’, I, selectAudioStreamer(Q)) < I : IAudioChannel | bind : BO, objectRole : server, uniqueId : ‘IAudioChannel > CONF ) > => < O : ServiceMgr | conf : ( send(I, selectAudioStreamerFailure(Q)) CONF ) > if BO =/= nil and search(PF, Q) == null. A failure indication is returned to the listener A listener requests its service manager to select the channel defined by parameter Q Only if the binding is established and the service manager does not know anything about channel Q

Why should we? Maude is executable and counts with a toolkit that allows formal reasoning of the specifications produced:  Run-time verification  Model checking  Monitoring  Theorem proving  etc… We can see how the system behaves based on its specifications (more than 3 million rewrites per second on standard PCs) We can check some properties of the system We can make the Maude specifications co-exist with partial implementations Advantages of Maude

Examples We can (model)check whether a given predicate will hold for the system: Maude> (mc initState |=t >[] ~ duplicatedFrame in time < 1000.) Result Bool : true Maude> (mc initState |=t >[] ~ unOrderedFrame in time < 1000.) Result ModelCheckResult : counterexample( … ) Maude> (mc initState |=t ><> allFramesArrive with no time limit.) Result Bool : true Reasoning about the system

Conclusions Maude seems to be a good alternative for specifying the ODP CV More expressive than other formal languages (Z,Object-Z) Executable specifications Counts with a Toolkit for formal analysis of systems Use Maude to support (i.e., provide some semantics for) other graphical notations that can be more sexy for specifying ODP systems (e.g. UML!) Make the Maude toolkit available from a UML environment Prototyping of UML specs of ODP systems Model checking of UML specs of ODP systems … Our plans now It is verbose and not very appealing, though…. Tool Support for ODP!

Thanks! Raúl Romero and Antonio Vallecillo Dpto. Lenguajes y Ciencias de la Computación Universidad de Málaga, Spain {jrromero, EDOC 2004