Π-AAL: An Architecture Analysis Language for Formally Specifying and Verifying Structural and Behavioral Properties of Software Architectures Presented.

Slides:



Advertisements
Similar presentations
Copyright 2000 Cadence Design Systems. Permission is granted to reproduce without modification. Introduction An overview of formal methods for hardware.
Advertisements

Semantics Static semantics Dynamic semantics attribute grammars
ICE1341 Programming Languages Spring 2005 Lecture #6 Lecture #6 In-Young Ko iko.AT. icu.ac.kr iko.AT. icu.ac.kr Information and Communications University.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
A component- and message-based architectural style for GUI software
Architecture Representation
Formal Semantics of Programming Languages 虞慧群 Topic 6: Advanced Issues.
Hoare’s Correctness Triplets Dijkstra’s Predicate Transformers
1 How to transform an analyzer into a verifier. 2 OUTLINE OF THE LECTURE a verification technique which combines abstract interpretation and Park’s fixpoint.
Rigorous Software Development CSCI-GA Instructor: Thomas Wies Spring 2012 Lecture 11.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
ISBN Chapter 3 Describing Syntax and Semantics.
1/22 Programs : Semantics and Verification Charngki PSWLAB Programs: Semantics and Verification Mordechai Ben-Ari Mathematical Logic for Computer.
Formal Methods of Systems Specification Logical Specification of Hard- and Software Prof. Dr. Holger Schlingloff Institut für Informatik der.
Train Control Language Teaching Computers Interlocking By: J. Endresen, E. Carlson, T. Moen1, K. J. Alme, Haugen, G. K. Olsen & A. Svendsen Synthesizing.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Model Checking. Used in studying behaviors of reactive systems Typically involves three steps: Create a finite state model (FSM) of the system design.
CS 330 Programming Languages 09 / 18 / 2007 Instructor: Michael Eckmann.
Temporal Logic of Actions (TLA) Leslie Lamport
Software Engineering, COMP201 Slide 1 Protocol Engineering Protocol Specification using CFSM model Lecture 30.
CS 330 Programming Languages 09 / 16 / 2008 Instructor: Michael Eckmann.
Describing Syntax and Semantics
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
Propositional Calculus Math Foundations of Computer Science.
MCA –Software Engineering Kantipur City College. Topics include  Formal Methods Concept  Formal Specification Language Test plan creation Test-case.
02/06/05 “Investigating a Finite–State Machine Notation for Discrete–Event Systems” Nikolay Stoimenov.
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
Systems Architecture I1 Propositional Calculus Objective: To provide students with the concepts and techniques from propositional calculus so that they.
The Architecture of Secure Systems Jim Alves-Foss Laboratory for Applied Logic Department of Computer Science University of Idaho By, Nagaashwini Katta.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Introduction to Formal Methods Based on Jeannette M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8-24, September,
CS6133 Software Specification and Verification
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
Paper written by Flavio Oquendo Presented by Ernesto Medina.
Formal Verification Lecture 9. Formal Verification Formal verification relies on Descriptions of the properties or requirements Descriptions of systems.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Advanced Topics in Software Engineering Marjan Sirjani Tehran University Faculty of Engineering ECE Department Tehran,
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Semantics In Text: Chapter 3.
9/30/98 Prof. Richard Fikes Inference In First Order Logic Computer Science Department Stanford University CS222 Fall 1998.
CS6133 Software Specification and Verification
16/11/ Semantic Web Services Language Requirements Presenter: Emilia Cimpian
Formal Specification Of Web Services For Dependable Systems contribution to the PISA Workshop (25. – ) on the IP DeSIRE and the NoE DeFINE.
Lecture 5 1 CSP tools for verification of Sec Prot Overview of the lecture The Casper interface Refinement checking and FDR Model checking Theorem proving.
Model Checking for Simple Java Programs Taehoon Lee, Gihwon Kwon Department of Computer Science Kyonggi University, Korea IWFST, Shanghai, China,
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.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
CSC3315 (Spring 2009)1 CSC 3315 Languages & Compilers Hamid Harroud School of Science and Engineering, Akhawayn University
IS 2620: Developing Secure Systems Formal Verification/Methods Lecture 9 March 15, 2012.
6/12/20161 a.a.2015/2016 Prof. Anna Labella Formal Methods in software development.
Model Checking Early Requirements Specifications in Tropos Presented by Chin-Yi Tsai.
CENG 424-Logic for CS Introduction Based on the Lecture Notes of Konstantin Korovin, Valentin Goranko, Russel and Norvig, and Michael Genesereth.
Propositional Calculus: Boolean Functions and Expressions
Web Service Modeling Ontology (WSMO)
Web Ontology Language for Service (OWL-S)
Propositional Calculus: Boolean Functions and Expressions
Mathematical Structures for Computer Science Chapter 1
Logics for Data and Knowledge Representation
IS 2935: Developing Secure Systems
Formal Methods in software development
Formal Methods in software development
CSCI1600: Embedded and Real Time Software
Paper written by Flavio Oquendo Presented by Ernesto Medina
Protocols CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 8) Meyer, B., Applying design by contract, Computer,
Formal Methods in software development
Presentation transcript:

π-AAL: An Architecture Analysis Language for Formally Specifying and Verifying Structural and Behavioral Properties of Software Architectures Presented by Carlos Rubio Medrano CS5381 Topics in Software Design: Software Architecture Department of Computer Science The University of Texas at El Paso April 2008 Radu Mateescu and Flavio Oquendo

Outline Problem Description Approach Description Property Specification User-Defined Properties Examples Questions? Group Exercise

Outline Problem Description Approach Description Property Specification User-Defined Properties Examples Questions? Group Exercise

Problem Description ADLs good to express structural representations Limited support for architectural properties, e.g., actions a system executes relations among actions behaviors of components and connectors Limited support for automatic verification and validation

Outline Problem Description Approach Description Property Specification User-Defined Properties Examples Questions? Group Exercise

Approach Description Architecture Analysis Languages (AAL) complement ADLs specify and support semantic properties interleave structural and behavioral aspects well-suited for automated verification π-AAL extends π-ADL to specify structural and behavioral properties

π-AAL Formal language: based on mathematics Core abstract and enhanced syntax with well- defined semantics Based on μ-calculus Combines predicate and temporal logic Intended for model checking and theorem proving Approach Description

Illustrative Architecture F1F2P i1o1i2o2 Approach Description

π-AAL Semantic Model Approach Description Predicate-extended labeled transition system (pLTS) StateSet, non empty set of states ActionSet, set of actions TransitionRelationSet, set of transition relations of the form StateSet X ActionSet X StateSet PredicateSetLabelling, set of all predicates true in a given state of StateSet

pLTS of Illustrative Architecture Approach Description

Outline Problem Description Approach Description Property Specification User-Defined Properties Examples Questions? Group Exercise

Property Specification Properties specified in terms of logical formulas Predicate formulas Action formulas Regular formulas State formulas Connection formulas

Property Specification Properties specified in terms of logical formulas Predicate formulas Action formulas Regular formulas State formulas Connection formulas

Predicate Formulas Used to write formulas over a set of data value expressions value ::= variable | function (value 1, …, value n ) where function(value 1, …, value n ) can be any in-line data expression Property Specification

Predicate Formulas Functions applied to collections use navigational operators Property Specification value ::= collectionValue. function (value 1,…,value 2 ) | collectionValue −> function (value 1,…,value 2 ) where collectionValue is a sequence, set, or bag

Predicate Formulas Defined by the following syntax Property Specification predicateFormula ::= value | false | not predicateFormula | predicateFormula1 or predicateFormula 2 | exists variable : Type. predicateFormula where value is of boolean type and boolean literals are false and true

Predicate Formulas Useful for expressing structural properties, e.g., Property Specification forall f1, f2 : Filter. forall c1, c2 : Connection. ( (f1.connections −> includes c1) and (f2.connections −> includes c2) ) implies not connect (c1, c2) - A filter cannot be connected to another filter

Property Specification Properties specified in terms of logical formulas Predicate formulas Action formulas Regular formulas State formulas Connection formulas

Action Formulas Used to write action predicate formulas over connections and data values Property Specification actionFormula ::= action | actionWithWildcard | unobservable | false | not actionFormula | actionFormula 1 or actionFormula 2 | exists variable : Type. actionFormula action ::= via name send value 1,…, value n | via name receive value 1,…, value n actionWithWildcard ::= via name send any | via name receive any

Property Specification Properties specified in terms of logical formulas Predicate formulas Action formulas Regular formulas State formulas Connection formulas

Regular Formulas Property Specification Used to write regular expressions defined over action formulas regularFormula ::= actionFormula | regularFormula 1. regularFormula 2 | regularFormula 1 | regularFormula 2 | regularFormula*

Regular Formulas Property Specification Example (via i2 send any). (not (via o2 receive any)). (via i1 send any) Denotes the relation { (s7, s5) }, source and target states of sequence s7 -> s6 -> s2 -> s5

Property Specification Properties specified in terms of logical formulas Predicate formulas Action formulas Regular formulas State formulas Connection formulas

State Formulas Property Specification Used to write formulas over regular formulas and value variables stateFormula ::= predicateFormula | not stateFormula | stateFormula1 or stateFormula2 | exists variable : Type. stateFormula | 〈 regularFormula 〉 stateFormula | Variable (value) | (minimal fixpoint Variable (parameter : Type).stateFormula) (value)

State Formulas Property Specification Example: communication protocol -no reception before an emission initially [ (not (via s send any))*. (via r receive any) ] false

Property Specification Properties specified in terms of logical formulas Predicate formulas Action formulas Regular formulas State formulas Connection formulas

Connection Formulas Property Specification Used to write formulas on connections as first- class elements Tailored for dynamic changes in the architectural structure Parameter cIn denotes set of sending connections Parameter cOut denotes set of receiving connections

Outline Problem Description Approach Description Property Specification User-Defined Properties Examples Questions? Group Exercise

User-Defined Properties Abstract syntax: PropertyDefinition ::= with { name : Abstraction } name is property (x 1,…,x n ) { Formula } PropertyApplication ::= using { abstractionValue } verify { Formula }

Outline Problem Description Approach Description Property Specification User-Defined Properties Examples Questions? Group Exercise

Examples F1F2P i1o1i2o2

Examples component Filter is abstraction() { type Data is Any. port is { connection input is in(Data). connection output is out(Data) } assuming { protocol is { ( via input receive any. true*. via output send any )* } }. behaviour is { transform is function(d : Data) : Data { unobservable }. via input receive d : Data. via output send transform(d). behaviour() }

Examples connector Pipe is abstraction() { type Data is Any. port is { connection input is in(Data). connection output is out(Data) } assuming { protocol is { (via input receive d : Data. via output send d)* } }. behaviour is { via input receive d : Data. via output send d. behaviour() }

Examples architecture Pipeline is abstraction() { behaviour is compose { F1 is Filter() and P is Pipe() and F2 is Filter() } where { F1::input as i1 and P::input unifies F1::output as o1 and P::output unifies F2::input as i2 and F2::output as o2 }

Examples with { pl : Pipeline } connectivityBetweenFilters is property() { -- a filter port cannot be connected to another filter port pl.components −> forall { f1, f2 | f1.ports.connections −> forall { cf1 | f2.ports.connections −> forall { cf2 | not (cf1 unifies cf2) } }

Outline Problem Description Approach Description Property Specification User-Defined Properties Examples Questions? Group Exercise

Questions?

Outline Problem Description Approach Description Property Specification User-Defined Properties Examples Questions? Group Exercise

Use π-ADL and π-AAL to define a C2-style architecture, called C2PiAAL with the following: Two components, Artist and ADTController One connector, C2Connector Artist sends updateADT request ADTController sends ADTUpdated notification upon receiving updateADT and applying function processMessage(updateADT) C2Connector simply forwards all messages to all component connected to it Create a property, called C2ConnectionSafety, to prevent components from connecting to each other

Group Exercise Artist ADTController UpdateADTADTUpdated