Formale Techniken in der Software-Entwicklung



Similar documents
1 Business Modeling. 1.1 Event-driven Process Chain (EPC) Seite 2

A Case Study in Using ACL2 for Feature-Oriented Verification

UML-based Test Generation and Execution

Microsoft Outlook 2013

User Guidance in Business Process Modelling

Über die Semantik von Modellierungssprachen

Chapter 8 Software Testing

Policy Based Encryption Z. Administrator Guide

Variation Management for Software Production Lines 1

Advanced Topics in model-based Software Development

RS MDM. Integration Guide. Riversand

Using UML Part Two Behavioral Modeling Diagrams

3.06. Understand the use of direct marketing to attract attention and to build brand

User Guide. Version 3.0 April 2006

MICROSOFT OUTLOOK 2011 SEND AND RESPOND TO S

A Static Analyzer for Large Safety-Critical Software. Considered Programs and Semantics. Automatic Program Verification by Abstract Interpretation

Mailbox control panel. User guide

The Electronic Stamp Mail Server and Client Project Part 3: Software Design Specifications. SDS Final November 3, 2003

Policy Based Encryption E. Administrator Guide

Policy Based Encryption E. Administrator Guide

SL1100 InMail Quick Reference Sheet for Multiline Display Telephone

Configuring Mozilla Thunderbird to Access Your SAS Account

Using Voltage Secur

PL/SQL Overview. Basic Structure and Syntax of PL/SQL

Secure Frequently Asked Questions

Towards an Integration of Process Modeling and Project Planning

Test Design Strategies

Microsoft Outlook 2013 Part 1: Introduction to Outlook


Modeling Stochastic Inventory Policy with Simulation

Modelling and Verification of Business Processes

Document Management Solutions

Automated Program Behavior Analysis

Variability in Service-Oriented Systems: An Analysis of Existing Approaches

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao

Getting Started with University Gmail

Architecture. Reda Bendraou

Secure A Guide for Users

25.1 Translational Frameworks (MDA with transformations)

Static Analysis and Validation of Composite Behaviors in Composable Behavior Technology

µfup: A Software Development Process for Embedded Systems

The Entity-Relationship Model

Process Modelling from Insurance Event Log

Enhancing ECA Rules for Distributed Active Database Systems

Menouer Boubekeur, Gregory Provan

Release Notes for Cisco IronPort Security Plug-in 7.3.1

Modeling Agile Manufacturing Cell using Object-Oriented Timed Petri net

CHAPTER 20 TESING WEB APPLICATIONS. Overview

Housekeeping & Maintenance Work Orders

i. Node Y Represented by a block or part. SysML::Block,

Veri cation and Validation of Simulation Models

The SPES Methodology Modeling- and Analysis Techniques

-- Reading and Printing

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Digital Cable TV. User Guide

Service based Software Specification

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

Official List Procedure

Getting Started 2. How to Use Voice Mail 4

HTTPS Traffic Classification

Reliable & Secure . Professional, Dependable, Complete Easy to Learn, Use and Grow

The Software Development Process

management with Policy Patrol

How To Design Software

Semantic Web. Semantic Web: Resource Description Framework (RDF) cont. Resource Description Framework (RDF) W3C Definition:

Using Webmail. Document Updated: 9/08. Technical Manual: User Guide. The Webmail Window. Displaying and Hiding the Full Header.

Chapter 4 Getting the Data

EA-Analyzer: Automating Conflict Detection in Aspect-Oriented Requirements

Enhanced concept of the TeamCom SCE for automated generated services based on JSLEE

Business Analyst Interview Questions And Answers

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

Using Webmail. Document Updated: 11/10. Technical Manual: User Guide. The Webmail Window. Logging In to Webmail. Displaying and Hiding the Full Header

Outlook . User Guide IS TRAINING CENTER. 833 Chestnut St, Suite 600. Philadelphia, PA

Improving the Quality of Requirements with Scenarios

Formal Verification Toolkit for Requirements and Early Design Stages

Formal Verification by Model Checking

Corporate Office DX. Supervisor s User Guide

Applying SOA to OSS. for Telecommunications. IBM Software Group

Stewart Secure User Guide. March 13, 2015

Evaluation paradigm selection according to Common Criteria for an incremental product development

Advanced Testing Techniques

Creating a New Search

Software Modeling and Verification

Secure Information for Sending and Receiving for both DIDD Staff and Providers or Other Outside entities.

Microsoft Outlook 2010 Part 1: Introduction to Outlook

Consistency of Business Process Models and Object Life Cycles

Empowered by Innovation. User s Guide. P/N July 2006 Printed in U.S.A.

Transcription:

Formale Techniken in der Software-Entwicklung Verfeinerungskonzepte für Zustandsdiagramme Christian Prehofer in Zusammenarbeit mit Christian Kroiß SS 2011

Überblick Vorlesung Block 3: Verfeinerung von Zustandsdiagrammen Motivation, Beispiel Verfeinerungskonzepte und Regeln 2 Literatur Cornel Klein, Christian Prehofer und Bernhard Rumpe, Feature Specification and Refinement with State Transition Diagrams, In: Fourth IEEE Workshop on Feature Interactions in Telecommunications Networks and Distributed Systems, IOS-Press, 1997. Christian Prehofer, Plug-and-Play Composition of Features and Feature Interactions with Statechart Diagrams, Sosym, 2004, Springer-Verlag

Refinement Concepts and Statecharts 3 Goal: Statecharts to describe behavior of objects Here, focus is on specification, less implementation Semantics is loose, i.e. all behavior which is compatible with the specification is permitted Behavior is modeled by traces on Input/Output Black-box view of a component Only consider stream of input and output events as behavior This is considered a trace of a system An automaton specifies many possible traces

Statecharts Statechart describes behavior of an object Transition by external function call or internal action called_function() [condition] / action This creates trace of input/output events Also internal and silent transitions possible

Example Statechart Model 5

Refinement on Statecharts Refinement of a statechart means to add behavior Or implementation detail 6 Refinement as system development process Start simple and add more details incrementally Semantic view on refinement Refinement can restrict behavior, but not invalidate all traces Establishes compatibility Refined statechart can be used in place of original one

Email arrived deliver() Waiting Verfeinerung Kompatibilität incoming() deliver() Plain Mail {reply_active} Reply Verfeinerung Hinzufügen von Details Weiterentwicklung /decrypt() {reply_inactive} {mail_wasencrypted()} / replycrypto() / BasicEmail.deliver() Reply Done {else} /reply() Email arrived incoming() Waiting

8 Correct Graphical Refinement Rules 1. Addition of new states. New states may be introduced, since they are unreachable and therefore do not affect the behavior. 2. Removal of states. Likewise, states which are not reachable may be removed. 3. Refinement of states. A state may be partitioned into several ones, if all transitions leaving or ending in the state are partitioned accordingly. 4. Addition of transitions. If in a state s no transition exists for a certain input i, the behavior of the component sfor the input is completely unspecified. Therefore, an arbitrary set of transitions labeled with as source state and as input message can be added. 1. Note, that if an internal transition with the same source state exists and the precondition does not evaluate to false, the internal transition can always be taken and therefore no addition of transitions is allowed. 5. Removal of transitions. If in a state several transitions with the same input message exists, then one of them is chosen nondeterministically or some transition is taken. Therefore, these transitions may be removed, as long as there exists at least one transition labeled with this input or with 6. Removal of initial states. Initial states may be removed, as long as at least one initial state remains.

Feature-oriented Design with Statecharts Modularity for statechart diagrams Cross-cut complex statecharts into small parts (features) Modular composition of statecharts from features Graphical description of features Features & interactions are specified with partial statecharts Refinement rules for combining partial statechart diagrams Based on refinement concepts for statechart diagrams Interaction handlers ( adaptors ) as a glue for combining features Adaptors are represented graphically

Example Telecomunication: Features to be modeled 10

Basic Model of a Call 11

12 Adding new states Abandoning Phone Calls

13 State Refinement Subscriber / Phone Abstraction

Call Blockiging Features 14

Call blocking and Forwarding 15

Example: Email Features Features of an Email System (R. Hall, FIW 2000) Encryption of Emails Forwarding Emails Auto-reply Filtering of Emails Virus scanner... Feature Interactions Encryption and Forwarding forward only encrypted Encryption and Auto-reply Titel of email sent in plain as reply

Feature-based Design with Statecharts Problem: Statecharts can get large and bulky Goal: Modular representation of features of a statechart Composition of statecharts from Features Object specification: statechart Feature: partial statechart Feature composition: statechart refinement Modular development of statecharts from features

Feature model with partial statecharts Example: 3 features which add states domaintenance() Email Error resume() entermaintenance() Mainten ance error() leavemaintenance() Email arrived deliver() Waiting incoming()

Classes of Features/Statecharts 1. Base features with a complete statechart includes an initial state. 2. State-oriented features with a partial statechart some states and transitions, but initial/final states not required E.g. feature MaintenanceMode with one new state Only reachable by new transitions from other features. 3. Transition-oriented features which define transitions No (persistent) state Interaction specification ( adaptors ) according to these classes Combination rules according to these classes

Combination of 2 Features Email Error error() resume() Email arrived deliver() Waiting incoming()

Composition as Semantic Refinement Use Chaos -Semantic based on external black box view Permit as many traces as possible If unspecified action occurs, anything is possible ( chaos ) Refinement shall adds specific details Reduces the number of possible traces Refinement steps for statechart diagrams Add new behavior, which was not specified before e.g. add new states and new transitions Eliminate transitions if alternatives exits Add internal or compatible behavior; do not change old behavior Need to abstract from new operations E.g. refine transition by statechart with internal transitions only Eliminate/restrict transitions for exceptional cases Conditional refinement

Combination of 3 Features error() Email Error entermaintenance() resume() entermaintenance() Mainten ance domaintenance() [ noerrors] / leavemaintenance() Email arrived deliver() Waiting incoming()

Feature Description (2) Forwarding and Auto-Reply Features Transitions with internal actions Feature Forwarding: forward() {forward_active} Forward /do_forward() {forward_inactive} Feature Reply: reply() {reply_active} Reply /do_reply() {reply_inactive}

Combination Rules for Features Combination by refinement of transitions Rules for adapting one feature to the other ( interaction handling ) BasicEmail Decryption/Forwarding Refinement describes the internal behavior of a transition by a statecharts BasicEmail Decryption: deliver() /decrypt() Plain Mail /deliver() BasicEmail Forwarding: deliver() /forward() Fwd Mail /deliver()

Basic Email and Forwarding deliver() Transition Refinement [forward active] Forward /do_forward() [forward inactive] Fwd Mail /BasicEmail.deliver() Email arrived deliver() incoming() Waiting

Combination of 3 Features (1) Basic Email, Forwarding and Decryption deliver() Forward /do_forward() Fwd Mail [forward_active] [forward_inactive] /decrypt() /BasicEmail.deliver() Plain Mail Email incoming() arrived Waiting

Combination of 3 Features (2) Basic Email, Auto Reply und Decryption deliver() Plain Mail {reply_active} Reply {mail_wasencrypted()} / replycrypto() {else} /reply() /decrypt() {reply_inactive} / BasicEmail.deliver() Reply Done Email arrived incoming() Waiting

Conclusions Cross-cutting state description diagrams Modularity concepts for statechart diagrams Supports flexible composition of features Classify different kinds of partial statechart diagrams Main benefit is graphical combination of features Compose just models of desired features Includes feature interactions Different variations or extensions of a software component are needed.