An Object-Z / CSP Based Approach for the Specification of Architectural Connectors Mourad Maouche Philadelphia University Jordan Mohamed Bettaz MESRS Algeria.

Slides:



Advertisements
Similar presentations
CommUnity, Tiles and Connectors joint work with Roberto Bruni José Luiz Fiadeiro Antónia Lopes Ugo Montanari Ivan Lanese Dipartimento di Informatica Università.
Advertisements

Addressing Non-Functional Properties in Software Architecture using ADL Christopher Van Eenoo Osama Hylooz Khaled Khan University of Western Sydney ASWEC.
Translation-Based Compositional Reasoning for Software Systems Fei Xie and James C. Browne Robert P. Kurshan Cadence Design Systems.
Component Oriented Programming 1 Chapter 2 Theory of Components.
A component- and message-based architectural style for GUI software
Architecture Representation
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
DERI Innsbruck Seminar – March 2004 Robert Allen and David Garlan: A Formal Basis for Architectural Connection Uwe Keller.
Unified Modeling Language
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Software Testing and Quality Assurance
UML – Class Diagrams.
Chapter Object-Oriented Practices. Agenda Object-Oriented Concepts Terminology Object-Oriented Modeling Tips Object-Oriented Data Models and DBMSs.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Unified Modeling (Part I) Overview of UML & Modeling
New insights on architectural connectors joint work with Roberto Bruni University of Pisa, Italy Ugo Montanari University of Pisa, Italy José Luiz Fiadeiro.
1 SWE Introduction to Software Engineering Lecture 15 – System Modeling Using UML.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Course Instructor: Aisha Azeem
Chapter 10: Architectural Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
The Unified Modeling Language (UML) Class Diagrams.
Architectural Design.
02/06/05 “Investigating a Finite–State Machine Notation for Discrete–Event Systems” Nikolay Stoimenov.
Chapter 10 Architectural Design
1 Chapter 14 Architectural Design 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
Mathematical Modeling and Formal Specification Languages CIS 376 Bruce R. Maxim UM-Dearborn.
Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Lecture 9: Chapter 9 Architectural Design
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.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
1 Software Design Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13, 5 th edition and Ch. 10, 6 th edition.
 FOAL 2010 Modeling Aspects by Category Theory Serge P. Kovalyov Novosibirsk, Russia.
1 Software Design Overview Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13.
An Object-Z based Metamodel for Wright Joint work with M. Maouche 2, and M. Mosteghanemi 1 Presented by M. Bettaz 1 1 MESRS/ESI Algeria 2 Philadelphia.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Requirements Engineering Methods for Requirements Engineering Lecture-30.
TAL7011 – Lecture 4 UML for Architecture Modeling.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
Lab 5 CPIT 250 System Analysis and Design.
1 Formal Methods in SE Abstract Model Specification Lecture # 19.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Wright ADL Liz White INFT Software Architecture.
Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,
1 Abstract Model Specification. 2 Explicitly describes behavior in terms of a model using well-defined types (viz. set, sequences, relations, functions)
1 5/18/2007ã 2007, Spencer Rugaber Acme Architectural interchange language – CMU and ISI Extensible Tool support –AcmeStudio.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Basic Concepts and Definitions
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
1 A Multi-Paradigm Approach to Describe Software Systems presented by Adel Smeda.
Evolution of UML.
University of Central Florida COP 3330 Object Oriented Programming
Web Ontology Language for Service (OWL-S)
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Logical architecture refinement
Introduction to UML.
Chapter 20 Object-Oriented Analysis and Design
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Architecture Description Languages
Chapter 9 Architectural Design.
Presentation transcript:

An Object-Z / CSP Based Approach for the Specification of Architectural Connectors Mourad Maouche Philadelphia University Jordan Mohamed Bettaz MESRS Algeria IFIP WG 1.3 Sierra Nevada, Spain, January , 2008

Objective Propose an Object-Z / CSP based approach for the specification of architectural connectors which are seen as explicit semantic entities. The approach has to support incremental development of specifications, and allow for verification of properties.

Background Start: Software architecture = collection of computational components together with a collection of connectors. Follow: Formal basis by R. Allen and D. Garlan, “A formal Basis for architectural connection”, connector definition rely on the definition of notions such as: component, port, role, glue, connector, attachment, etc.

Motivation Why more than one language? – Few specifications languages are suited for modeling all aspects of software architectures. Why Z and CSP? – Both of them have been advocated for specifying different aspects of software architectures.

Motivation (cont.) Why Object-Z / CSP? – Object-Z is a semi-graphical notation - visual appeal: suitable for representing system and software components in general (readability). – CSP is suitable for specifying the interactions between such components (conciseness). Both languages have common semantic basis (Object-Z classes might be given semantics of CSP processes): this enables using and / or developing unified method of refinement for the integrated notation.

The approach Roles, ports (refinements of roles) and glue, are seen as components. (Computational) components, roles, ports and glue are specified by Object-Z classes. Internal behavior of roles, glue, and ports (method execution) is governed by preconditions on adequate state variables. Behavior of the connector is specified by a parallel composition of roles and glue. Attachment of ports as roles is specified by a CSP process parameterized by Object-Z classes.

Similar Work R. Allen and D. Garlan: Using of CSP-like notation. G. Abowd, R. Allen and D. Garlan – Using Z. – No notion of glue. – ports and roles are specified as basic types (not as schemas).

Similar Work (cont.) J.L.Fiadeiro et al. : CommUnity – Components, glue, roles are CommUnity “component designs” – Ports are not defined explicitly. They are represented by input and output variables in the description of the components. – A connector is a finite set of connections with the same glue. – A connection consists of a glue, a role, a signature, and two category morphisms connecting a glue with a role. – The semantics of a connector is the colimit of the diagram formed by its connections. – A component (to be connected to a role) is seen as a refinement (according to CommUnity meaning) of this role.

Example: A simple a client-server relationship Basic types: [State, Request, Result, Invocation, Return] State == pending | ready We suppose that the C-S_Connector handles only one service.

Roles The role describes the behavior that is expected of each of the interacting parts.

Client_Role: The attributes

Client_Role: The methods The client calls a service The client receives the result

Server_Role: The attributes

Server_Role: The methods The server accepts the invocation The server returns a value

Glue The glue describes how the activities of the roles are coordinated.

Glue: The Attributes

Glue: The methods The glue allows the client to call a service The glue allows the server to accept an invocation

Glue: The methods (cont.) The glue allows the server to return a value The glue allows the client to receive the result

C-S_Connector Behavior Parallel composition of roles and glue. C-S_ConnectorBehaviour = Client_Role || Glue || Server_Role

Ports In our example ports are identical to roles, since our client server provides just one service.

Attachment of ports as roles Attachement = CS_ConnectorBehaviour [Client_Port / Client_Role ; Server_Port / Server_Role]

Conclusion and future work Look for a unified method of refinement for the integrated notation (not necessarily process based). Tackle the problem of verification.

References R. Allen and D. Garlan, A Formal Basis for Architectural Connection, 1998 G. Abowd, R. Allen and Garlan, Formalizing style to understand descriptions of software architectures, 1994 M. Shaw and D. Galan, Formulations and Formalisms in Software Architecture, 1996 G. Smith and J. Derrick, specification,refinement and verification of concurrent systems – an integration of Object-Z and CSP, 2001 G. Smith and J. Derrick, Refinement and Verification of Concurrent systems specified in Object-Z and CSP, 1997 G. Smith and J. Derrick, Abstract Specification in Object-Z and CSP, 2002 J. Derrick and G. Smith, Structural Refinement in Object-Z / CSP, 2000 G. Smith, A Semantic Integration of Object-Z and CSP for the Specification of Concurrent Systems, 1998 J.L. Fiadeiro, A. Lopes and M. Wermelinger, A Mathematical Semantics for Architectural Connectors, 2002 T. McComb and G. Smith, Architectural Design in Object-Z, 2004 T. Bures, Generating Connectors for Homogeneous and Heterogeneous Deployment, 2006