Formal Specification of Software Systems

Similar documents
Seite 1. "Formal specifications may become for software engineers what, say, differential equations are for engineers of other fields.

Software Design, Modelling and Analysis in UML

Lecture 02: Semantical Model

1 Formal Specification of Software: Why and When?

UML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools

LESSON PLAN SUB NAME : OBJECT ORIENTED ANALYSIS AND DESIGN UNIT SYLLABUS

Lecture #2 on Object-Oriented Modeling

Combining UML and Z in a Software Process

Improving the Definition of UML

Software Development Methodologies

The UML Extension Mechanisms

MEMOCenterNG A full-featured modeling environment for organization modeling and model-driven software development

SOFTWARE ENGINEERING

Objectives. UML Extension Mechanisms. What is UML? Is the UML enough? UML Extension Mechanisms. Specifications. By Jasmine Farhad

Formal Methods for Software Engineers

Defining UML Family Members Using Prefaces

SOFTWARE ENGINEERING

Exploiting Visual Languages Generation and UML Meta Modeling to Construct Meta-CASE Workbenches

Unified Modelling Language User Guide READ ONLINE

Harmony: An Environment for the Combined Use of UML and Z++ in Software Specification

The Unified Modeling Language User Guide

USING TRANSFORMATIONS TO INTEGRATE TASK MODELS IN

Improving System Usability Through the Automation of User's Routine Intentions: an Image Edition Tool Case Study

Business Activity. predecessor Activity Description. from * successor * to. Performer is performer has attribute.

Lecture 2: Software Engineering (a review)

UML-Based Conceptual Modeling of Pattern-Bases

System Structure Modeling

3.4 Deduction and Evaluation: Tools Conditional-Equational Logic

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

02291: System Integration

Language engineering and Domain Specific Languages

Chapter 12. UML and Patterns. Copyright 2008 Pearson Addison-Wesley. All rights reserved

Open Work of Two-Hemisphere Model Transformation Definition into UML Class Diagram in the Context of MDA

Introduction to Information Systems (IS)

An Approach to Software Component Specification

TIME-BASED CONSTRAINTS IN THE OBJECT CONSTRAINT LANGUAGE OCL

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language

Object-Oriented Analysis and Design

Dresden OCL2 in MOFLON

Paradigms of computer programming

2 nd UML 2 Semantics Symposium: Formal Semantics for UML

Christian Doppler Laboratory

OCL. Heinrich Hussmann, Birgit Demuth, and Frank Finger. Dresden University of Technology, Department of Computer Science

Semantics-Based Integration of Embedded Systems Models

The University of Aizu School of Computer Science and Engineering Introduction to Programming. Course Syllabus (Special Track for Foreign Students)

Requirements Modelling and Software Systems Implementation Using Formal Languages

Model Driven Development Unified Modeling Language (UML)

Comparative Analysis of Architectural Views Based on UML

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business.

Langara College Spring archived

Formal Foundations of Software Engineering

Programming 1. Outline (111) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

Software Architectures

Langara College Spring archived

Object-Oriented Design

Available online at ScienceDirect. Procedia Computer Science 56 (2015 )

What Is Computer Science? The Scientific Study of Computation. Expressing or Describing

Level: M.Ed. Credit Hour: 3 (2+1) Semester: Second Teaching Hour: 80(32+48)

CS560 Lecture: Software Architecture Includes slides by I. Sommerville

Introduction to Linear-Time Temporal Logic. CSE 814 Introduction to LTL

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

CONSTRAINT SPECIFICATIONS USING PATTERNS IN OCL

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

Static Safety Analysis of UML Action Semantics for Critical Systems Development

The Unified Modeling Language (UML)

Test Case Generation Based on Sequence Diagrams

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com

Software Language Engineering of Architectural Viewpoints

RIGOROUSLY AUTOMATING TRANSFORMATIONS OF UML BEHAVIOR MODELS

CIS* Programming

A (Very) Short Introduction to Model-Driven Development (MDD)

Flight Systems are Cyber-Physical Systems

UML MODEL FOR MIS OF BRIDGE BASED ON B/S ARCHITECTURE

Software Engineering from a

Compositional Model Based Software Development

Object-Oriented Design

Pattern-Based Architectural Design Process Model

IT-2670: C/C++ PROGRAMMING LANGUAGE

Software Design, Modelling and Analysis in UML

Proposal of a Supporting Method for Diagrams Generation with the Transformation Rules in UML

Topic 13 Object-oriented Analysis

Executable Modeling with UML - A Vision or a Nightmare? -

21) Functional and Modular Design

7. Introduction to Denotational Semantics. Oscar Nierstrasz

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics

Seminar: Specification and Verification of Object-oriented Software. The KeY Tool

Outline. Database Theory. Prerequisites and Admission. Classes VU , SS 2018

Principles of Software Construction: Objects, Design and Concurrency. Just enough UML. toad

Evaluation of Commercial Web Engineering Processes

Software Design, Modelling and Analysis in UML

System Architecture Design

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh

Index. business modeling syntax 181 business process modeling 57 business rule 40

Model Driven Engineering (MDE)

Course Administration

21) Functional and Modular Design

Object-Oriented Software Development Goal and Scope

w3.ualg.pt/~jvo/poo

Transcription:

Formal Specification of Software Systems Lecture Notes Winter Term 2001 / 2002 Heinrich Hußmann Technische Universität Dresden

Formal Specification of Software Systems Summary: Construction of large software systems requires notations and techniques for abstract modelling of software structures. Current development practice mainly relies on diagrammatic, informal notations, but there is a clear long-term trend towards higher formalisation in software specification. This lecture builds a bridge between practically used specification notations from software engineering (like the Unified Modeling Language UML) and pure formal specification approaches based on mathematical logic. This lecture is located right in the middle between the two areas of formal methods and traditional software engineering methods. The lecture deliberately takes a different approach to most textbooks on formal specification. Traditionally, formal methods are presented like a sub-discipline of mathematical logic, with strong emphasis on the mathematical foundations. In this lecture, a pragmatic, application-driven approach to formal concepts is taken. Mathematical definitions and concepts are used only where there is a clear advantage from their usage. Technically, the lecture puts particular emphasis to an algebraic approach for formal system specification, but briefly covers also several other specification formalisms. For the software engineering side, an object-oriented approach based on the UML notation is assumed. The main topics are: general discussion of specification and formality in the software development process introduction into algebraic formal specification languages and related tools using a concrete example language and system (CafeOBJ) very brief introduction into the model-oriented formal specification method "Z" discussion of alternative specification styles in formal specification definition of a formal sub-language of UML and its mathematical semantics introduction into the formal "Object Constraint Language" (OCL) for UML formal methods and quality assurance safety-critical and highly reliable software: standards, certification Page: i

Status of these notes: These notes are supplementary material to lectures hold in winter term 2001/2002 at TU Dresden, based on earlier versions of the lecture held in summer 1999 and summer 2000. These notes cannot replace literature study and lecture attendance. The notes may be subjected to updates announced in the lecture. These notes are for internal use at TU Dresden. It is not allowed to pass on these notes to outside TU Dresden without explicit agreement of the author. Copyright 2001 Heinrich Hußmann, TU Dresden. Literature: B. Meyer, On Formalism in Specifications, IEEE Software, January 1985, pp. 6-26. J. M. Wing, A Specifier s Introduction to Formal Methods, IEEE Computer, September 1990, pp. 8-24. G. Booch, J. Rumbaugh, I. Jacobson, The Unified Modeling Language, A User s Guide, Addison-Wesley 1998. V.S. Alagar, K. Periyasamy, Specification of software systems, Springer 1998. J. Warmer, A. Kleppe, The Object Constraint Language OCL, Addison-Wesley 1999. R. Diaconescu, K. Futatsugi, CafeOBJ Report, World Scientific Publishing 1998. B. Potter, J. Sinclair, D. Till, An Introduction to Formal Specification and Z, 2 nd ed., Prentice Hall 1996. J. B. Wordsworth, Software Development with Z, Addison-Wesley 1992. A. Hall, Seven Myths of Formal Methods, IEEE Software, September 1990, pp. 11-19. Page: ii

Outline: 1. Formal Specification of Software: Why and When? 1.1 Purpose of Specifications 1.2 Specification Examples 1.3 Formality 1.4 Overview of Formal Specification Languages 1.5 Reminder on Mathematical Notation 2. Software Models in Software Engineering 2.1 Large Software Projects 2.2 Models and Modeling from the Software Engineering Point of View 2.3 Application Areas of Specification Languages 3. Algebraic Specification (Abstract Data Types) 3.1 Syntax of Data Types: Signatures 3.2 Algebraic Semantics: Heterogeneous Algebras 3.3 Axiomatic Specification 3.4 Deduction and Evaluation: Tools 3.5 Structured Specifications 3.6 Constructive vs. Observational Specification 4. UML Class Diagrams as a Formal Specification Language 4.1 Object-oriented Specification with the Unified Modeling Language (UML) 4.2 UML Class Diagrams: Formal Syntax and Semantics 4.3 Object-Oriented Specification and Object-Oriented Programs 5. The Object Constraint Language (OCL) for UML 5.1 Object Constraints in OCL: Principles and Syntax 5.2 Formal Semantics of OCL 5.3 Collection Types 5.4 Methodical Use of of OCL 6. Dynamic Models in UML as a Formal Specification Language 6.1 Statecharts in UML: Sketch of Formal Semantics 6.2 State Models and OCL 6.3 Sequence Diagrams in UML: Sketch of Formal Semantics 7. Outlook 7.1 Overview of the Formal Specification Language Z 7.2 IT Security and Formal Specification 7.3 Practical Usability of Formal Methods Page: iii