1 Formal Specification of Software: Why and When?
|
|
- Grant Poole
- 6 years ago
- Views:
Transcription
1 1 Formal Specification of Software: Why and When? 1.1 Purpose of Specifications Definitions Specification is the precise definition of properties of a technical product or its development process. The term specification refers either to a phase or activity in the development process, or a document resulting from a specification activity. Specifications of software systems can be classified according to their usage in the development process: requirements specification: general definition of properties to be fulfilled by the developed system; problem specification (or functional specification): definition of tasks to be performed by the developed system; design specification: definition of the internal structure of the developed system and of corresponding specific tasks to be performed in the system implementation; module / class specification: definition of the tasks to be performed by a specific part of the software system, possibly including a definition of the internal structure of this part; test specifications: definition of tasks to be performed to demonstrate the correct functioning of the developed system; process specifications: general definition of tasks to be performed in the process of developing a software system. This classification largely follows the well-known basic structure of the software development process, where there exist (independent of any specific process model) the clearly defined activities of analysis (of requirements and proposed solution), design (on various levels) and validation, accompanied by a "meta-level" of process control. A different classification can be made according to the aspect of the system being described: File: fss1 Page: 1
2 functional aspect structural aspect dynamic aspect behavioural aspect non-functional aspect development process aspect Each of these views can be applied to the system as a whole (globally) and on particular parts of a system (locally). Not all aspects are equally important for all usage of specifications in software development: requirements specification: global functional and non-functional aspects problem specification: global functional aspect and global structural aspect design specification: all kinds of aspects, mainly global aspects module / class specification: local aspects only process specifications: development process aspect and global structural aspect test specifications: development process aspect, functional and behavioural aspects In the context of formal specification, the term specification is often (but without any true reason) restricted to requirements and problem specifications. 1 Nevertheless, for this lecture, specifications will be essentially treated as regarding the problem, design and module/class usage from a functional aspect. Other variants of specification can be treated formally as well, of course Why do we need specifications? Specifications are key to development contracts and procurement decisions. Specifications are key to resource and time planning of a development project. 1 B.Meyer, On Formalism in Specifications: Specification is the software lifecycle phase concerned with precise definition of the tasks to be performed by the system. File: fss1 Page: 2
3 Specifications are key to software documentation, software understanding and software adaptation Languages used for specifications Still the most frequent choice for specification languages in practice is natural language combined with informal graphical illustrations. However, for many aspects of system specification, there are wellestablished languages ( language meant as including graphical languages here). The most important examples are: functional aspect: global functional aspects: data flow diagrams, use case diagrams local functional aspects: "pseudo-code" structural aspect: class diagrams, entity-relationship diagrams, block diagrams, physical deployment diagrams dynamic aspect: state machines (with in/output) behavioural aspect: interface definition languages, sequence diagrams, process descriptions non-functional aspect: tables with measurable values development process aspect: workflow description formalisms These languages have gradually found their way into industrial development practice as part of so-called software development methods. The recently standardised Unified Modeling Language (UML) 2 contains well-defined diagrammatic notations for all aspects mentioned above. It is obvious that the functional aspect is not yet covered appropriately by the above-mentioned languages. Therefore, functional aspects are still mostly covered by natural language specifications, even where UML is in use. The next section illustrates some of the problems with specification of system functionality. 2 See G. Booch et al, The Unified Modeling Language. Online UML resource center: File: fss1 Page: 3
4 1.2 Specification Examples Natural language specification: The Seven Sins of the Specifier 3 The following example specification is a problem specification dealing with the functional aspect of a small system. It is taken from the literature and was prepared with special care for preciseness and completeness, as is proven by some history of attempts to properly specify the problem. Nevertheless, it shows clear deficiencies. Example 1: 4 The program s input is a stream of characters whose end is signaled with a special end-of-text character, ET. There is exactly one ET character in each input stream. Characters are classified as: break characters BL (blank) or NL (new line); nonbreak characters all others except ET; the end-of-text indicator ET. A word is a nonempty sequence of nonbreak characters. A break is a sequence of one or more break characters. Thus, the input can be viewed as a sequence of words separated by breaks, with possibly leading and trailing breaks, and ending with ET. The program s output should be the same sequence of words as in the input, with the exception that an oversize word (i.e. a word containing more than MAXPOS characters, where MAXPOS is a positive integer) should cause an error exit from the program (i.e. a variable, Alarm, should have the value TRUE). Up to the point of an error, the program s output should have the following properties: 1. A new line should start only between words and at the beginning of the output text, if any. 2. A break in the input is reduced to a single break character in the output. 3 This section based on B. Meyer, On Formalism in Specifications. 4 J. Goodenough, S. Gerhart, Towards a theory of test: Data selection criteria, in Current Trends in Programming Methodology Vol. 2, T. Yeh (ed.), Prentice-Hall 1977, pp Cited according to B. Meyer. File: fss1 Page: 4
5 3. As many words as possible should be placed on each line (i. e. between successive NL characters). 4. No line may contain more than MAXPOS characters (words and BLs). B. Meyer identifies the following seven sins of the specifier : Noise (dt. Rauschen): Unnecessary text that diverts the attention of the reader. - Repetitions should not be avoided in specifications. Variant: Remorse (dt. Reue bzw. Nachtrag): Restrictions to a specification element are made where the element is used and not where it is defined. Silence (dt. Schweigen bzw. Auslassung): Omission of specification elements that are considered obvious by the specifier. Contradiction (dt. Widerspruch): Inconsistent statements made in the specification. Overspecification (dt. Überspezifikation): Description of a solution instead of pointing out the problem. - Error handling should not be described in detail in a functional specification. Ambiguity (dt. Mehrdeutigkeit): Statements that can be interpreted in several different ways. Forward reference (dt. Vorwärtsverweis): Usage of a concept before its proper definition. Wishful thinking (dt. Wunschdenken): Description of features in such a way that solutions cannot realistically be validated against the feature Mathematical formulation B. Meyer gives a precise mathematical specification of Example 1. Below some parts of the problem are reformulated to illustrate his way of specification. Example 1 (Meyer s version): Short breaks. Let a be a sequence of characters. We define SINGLE_BREAKS(a) as the set of subsequences of a such that no two consecutive characters are break characters. File: fss1 Page: 5
6 SINGLE_BREAKS(a) = def {s SUBSEQUENCE(a) i 2..length(s) s(i 1) BREAK_CHAR s(i) BREAK_CHAR} Next, we define COMPACTED(a) as the subset of SINGLE_BREAKS(a) containing those sequences of maximum length: COMPACTED(a) = def MAX_SET(SINGLE_BREAKS(a), length) (In a similar style, here follow definitions for the line length limitation, for the usage of a minimal number of lines and for the combination of the three conditions.) This style of definition achieves high precision, by applying mathematical thinking to software specification. However, readability and acceptance by the software engineering community are very poor Use case diagram When applying the diagrammatic notations of UML (or other software development methods) to Example 1, a rather trivial diagram is obtained like the following use-case diagram in UML: format text <<include>> <<include>> break lines fill lines reduce breaks <<include>> Motivation for formal specification languages The examples show an obvious gap in the description of functional properties of software systems. Formal specification languages intend to File: fss1 Page: 6
7 achieve the same level of precision as a purely mathematical approach, apply structuring concepts known from programming languages, make specifications machine-processable, keep the specifications as readable as possible. (But: Special education will always be required for dealing with highprecision specifications.) 1.3 Formality Definitions A typical definition of the term formal is something like: A method/language is formal if it has a sound mathematical basis. A more practical definition is derived from a philosophical idea from the 17 th century (G.W. Leibniz), with roots even in classical philosophy (Aristoteles). Leibniz formulated the vision that at some point in time there will be no need for philosophical disputes since philosophers simply could sit down and calculate which opinion is right. This applied formal logic idea is behind modern formal software specification languages. Definition: A language is called formal if it has a precisely defined semantics that relates the syntactical form of a specification in the language with a precisely defined semantic domain. A language is informal if it is not formal, i.e. if its semantics rely on human interpretation of the specifications, in particular on the chosen identifiers. A language is semi-formal if it contains formal as well as informal sublanguages or language layers. A good test for formality of a specification is to rename all identifiers to meaningless symbols like a and x, and to check whether the semantics is still equivalent. More precisely, a formal specification language is defined as follows 5 : 5 According to J. Wing, A specifier s introduction to formal methods. File: fss1 Page: 7
8 Definition A formal specification language is a triple <Syn, Sem, Sat> where Syn and Sem are sets and Sat Syn Sem is a relation between them. Syn is called the syntactic domain of the language, Sem is called its semantic domain and Sat is called its satisfaction relation. Typically, the syntactic domain of a formal specification language is defined in the same way as the syntax of a programming language, i.e. by a context-free grammar and context conditions. The ultimate semantic domain of software specification is, of course, the set of programs. This is appropriate for specifications to be applied on the level of fine-grain module and class design. However, for more abstract specifications, e.g. problem and requirement specifications, it is necessary to use more abstract concepts as semantic domains (e.g. algebras or set-theoretic models). These concepts introduce intermediate layers of abstraction between programs and specifications. Warning: Theoreticians and practicians have a completely different idea of formality. The above definition is the theoretician s view. For a practician, everything is formal which puts some restriction onto the form of the text being written Application areas for formal specification Some of the pioneers of formal specification claimed a revolutionary paradigm shift in software development from traditional informal development to tool-supported formal development. This has turned out as unrealistic but still there is some truth in this prediction. Software development for large systems does not use, and will not use for the foreseeable future, formal specifications as a complete replacement for other notations and development methods. However, the practically used specification languages show a clear trend towards higher formalisation, in order to enable better tool support. Moreover, there are a number of application areas where formal specification plays a very important role: Highly reliable systems for safety-critical applications Definition of standards File: fss1 Page: 8
9 Local enhancements of semi-formal specifications Contract-proof definition of black box software (componentware) Semantics definition for semi-formal specification languages Formal specification languages have had a rather slow (mathematics-like) evolution in the past. However, the convergence with practical engineering may lead to rather fast developments within the years to come. 1.4 Overview of Formal Specification Languages History of Software Specification Languages For a long period starting in the 1960s, many completely different and competing specification languages and development methods existed. Moreover, there was a clear separation between formal specification languages (research on which was mathematically oriented) and pragmatic software engineering methods (which were developed by industry consultants mainly). The most important steps of development in the area of formal specification were: C.A.R. Hoare writes on An Axiomatic Basis for Computer Programming 6 and Proof of Correctness of Data Representations 7, and describes the idea of specification of a program by its properties B. Liskov/S.N. Zilles 8 and J. Guttag 9 introduce the concept of an abstract data type E.W. Dijkstra defines the calculus of weakest preconditions Clear is described by R.Burstall and J. Goguen probably the first algebraic specification language. 6 Communications of the ACM Vol. 12, 1969, pp Acta Informatica Vol. 1, 1972, pp B. Liskov, S.N. Zilles, Specification Techniques for Data Abstractions, IEEE Transactions on Software Engineering Vol. 1, 1975, pp J. Guttag, The Specification and Application to Programming of Abstract Data Types, Ph.D. Thesis, University of Toronto, E.W. Dijkstra, A Discipline of Programming, Prentice-Hall File: fss1 Page: 9
10 1988 The algebraic specification language OBJ3 is developed at the SRI (Stanford) C. Jones defines VDM the Vienna Definition Method The Oxford Programming Research Group develops the Z specification language 13. A more programming-oriented variant of it called B 14 is developed with high industrial engagement (BP Laboratories) The algebraic specification language Larch 15 is developed at MIT and Digital SRC. since 1991 Development of object-oriented extensions of specification languages, e.g. Object-Z 16 and CafeOBJ Development of the "unifying" algebraic specification language CASL (Common Algebraic Specification Language) in the context of the European CoFI (Common Framework Initiative) project. Several separate lines of development are contained in this list, each of them again separated into different schools. Algebraic and axiomatic approaches (Clear, OBJ, Larch, CafeOBJ) Model-based approaches (VDM, Z, B) 11 J. Goguen (ed.), Algebraic Specification with OBJ, Cambridge University Press, to appear. 12 C. Jones, Systematic Software Development with VDM, Prentice.Hall 1986 (2 nd ed. 1990). 13 J. M. Spivey, The Z Notation A Reference Manual, Prentice-Hall 1988 (2 nd ed. 1992). 14 J.-R. Abrial, The B-Book, Cambridge University Press J. Guttag, J. Horning, Larch: languages and tools for formal specification, Springer S. Stepney, R. Barden, D. Cooper (eds.), Object-orientation in Z, Springer R. Diaconescu, K. Futatsugi, CafeOBJ Report, Wolrd Scientific File: fss1 Page: 10
11 Hoare logic Dijkstra calculus VDM Clear OBJ CafeOBJ Maude Abstract data types Larch CASL Z B Approaches for Concurrent/Reactive Systems For concurrent/reactive systems, even a greater wealth of notations was developed, starting from formalisms like CSP 18, CCS 19 and Petri nets. Unfortunately, the integration with specification languages for sequential systems is still rather limited. Examples for formal specification languages in this area are LOTOS, Esterel and RAISE C.A.R. Hoare, Communicating Sequential Processes, Prentice-Hall R. Milner, A calculus of communicating systems, Springer LNCS Vol. 92, An overview of the current state of the art including real-time extensions is given in G. Blair et al., Formal Specification of Distributed Multimedia Systems, UCL Press File: fss1 Page: 11
12 1.5 Reminder on Mathematical Notation In this section, some basic mathematical notation is recalled which is used at various places throughout this lecture. The purpose of this section is just to make clear the meaning of the formulae that are used at various places in this lecture Sets A set is a collection of elements such that for a given element and a given set it is possible to decide whether the element is contained in the set or not. Construction of a set by enumeration of its elements: BREAK_CHAR = def { BL, NL, TAB } DIGIT = def { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } LETTER = def { A,..., Z, a,..., z } Membership predicate for an element of a set: BL BREAK_CHAR Construction of a set by set operations: ALFANUM = def LETTER DIGIT Construction of a set by set comprehension: ALFANUM = def { c c LETTER c DIGIT } Set comprehension over a given set: ALFANUM = def { c CHAR c LETTER c DIGIT } Side remark on mathematical background: Russell s paradox: X = def { S ALL_SETS S S } Question: Does X X hold? Construction of sets: Do not use the set of all sets! Set construction should always start from concrete given sets using a number of safe constructions, like power set, tuple, or sequence. File: fss1 Page: 12
13 The power set of a given set: P(S) = { T T S } Note the difference between x and {x}: x S and {x} P(S)! Example: DIGIT P(CHAR) Tuples and Sequences The Cartesian product of sets: S 1 S n = { (x 1,,x n) x 1 S 1 x n S n } Example: CODE = LETTER DIGIT The sequences over a given set: S * = { <x 1,,x n > x 1 S x n S n N } Example: input CHAR * Sequence as function: Let s S *, i.e. s = <x 1,,x n>. Then from s a function can be derived which is also called s: s: {1,,n} S s(i) = x i Example: WORD = def { s CHAR * ( i {1,,length(s)} s(i) ALFANUM) length(s) 0 } Relations and Functions A relation R between sets A and B is a subset of A B. The notation R(x,y) or x R y is used to denote (x, y) R. R is called a function if x A, y1 B, y2 B R(x,y1) R(x,y2) y1 = y2 A is called the from-set of R, B is called the to-set of R. The notation R: A B denotes that R is a function with from-set A and to-set B. File: fss1 Page: 13
14 A proper definition of a function or relation has to define the domain, the range and the relation between domain and range. Please note that this definition describes what is often called a partial function. It is allowed that for some elements of the from-set there is no value of the function. The term domain is often used to denote the elements of the from-set for which the function is defined (and analogously co-domain for the elements in the to-set). Unfortunately, in a part of the literature domain and co-domain are also used as synonyms for from-set and to-set (in the context of total functions). Examples: ISSORTED: N * B ISSORTED(s) = def i {2,,length(s)} s(i 1) < s(i) Let X be an arbitrary set. SUBSEQUENCE: X * P(X * ) SUBSEQUENCE(s) = def { t CHAR * <i 1,,i k > N * t = <s(i 1 ),,s(i k )> ISSORTED(<i 1,,i k >) } Sometimes it is useful to define functions that contain other functions in their domain or range. Example: MAX_SET: X (X N) P(X) MAX_SET(S,f) = def { x X x X f(x) f(x ) } Example The definitions from above give a complete explanation for the example from chapter 1: SINGLE_BREAKS: CHAR * P(CHAR * ) SINGLE_BREAKS(a) = def {s SUBSEQUENCE(a) i {2,...,length(s)} s(i 1) BREAK_CHAR s(i) BREAK_CHAR} File: fss1 Page: 14
15 COMPACTED: CHAR * P(CHAR * ) COMPACTED(a) = def MAX_SET(SINGLE_BREAKS(a), length) File: fss1 Page: 15
Seite 1. "Formal specifications may become for software engineers what, say, differential equations are for engineers of other fields.
Formal Specification of Software Systems Heinrich Hußmann TU Dresden A Comparison "Formal specifications may become for software engineers what, say, differential equations are for engineers of other fields."
More informationFormal Specification of Software Systems
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
More informationRecall from previous lecture
Recall from previous lecture Understanding customer requirements is critical to success of any software development effort Major process tasks: Requirements elicitation/analysis Drafting a requirements
More informationIntroduction to Formal Methods
2008 Spring Software Special Development 1 Introduction to Formal Methods Part I : Formal Specification i JUNBEOM YOO jbyoo@knokuk.ac.kr Reference AS Specifier s Introduction to Formal lmethods Jeannette
More information3.4 Deduction and Evaluation: Tools Conditional-Equational Logic
3.4 Deduction and Evaluation: Tools 3.4.1 Conditional-Equational Logic The general definition of a formal specification from above was based on the existence of a precisely defined semantics for the syntax
More informationFormal Methods in Software Design. Markus Roggenbach
Formal Methods in Software Design Markus Roggenbach October 2001 2 Formal Methods Use of mathematics in software development main activities: writing formal specifications 2 Formal Methods Use of mathematics
More informationDistributed Systems Programming (F21DS1) Formal Verification
Distributed Systems Programming (F21DS1) Formal Verification Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Focus on
More informationQ Body of techniques supported by. R precise mathematics. R powerful analysis tools. Q Rigorous, effective mechanisms for system.
Introduction to Formal Methods 1 Introduction to Formal Methods 2 Formal Specification Requirements specification R notational statement of system services Software specification R formal abstract depiction
More informationTechniques for the unambiguous specification of software
Formal Techniques for the unambiguous of software Objectives To explain why formal techniques help discover problems in system requirements To describe the use of algebraic techniques for interface To
More informationLECTURE 6: INTRODUCTION TO FORMAL METHODS. Software Engineering Mike Wooldridge
LECTURE 6: INTRODUCTION TO FORMAL METHODS Mike Wooldridge 1 What are Formal Methods? Formal methods is that area of computer science that is concerned with the application of mathematical techniques to
More informationChapter 3. Describing Syntax and Semantics
Chapter 3 Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings of Programs:
More information1 A question of semantics
PART I BACKGROUND 1 A question of semantics The goal of this chapter is to give the reader a glimpse of the applications and problem areas that have motivated and to this day continue to inspire research
More informationFormal Methods. CITS5501 Software Testing and Quality Assurance
Formal Methods CITS5501 Software Testing and Quality Assurance Pressman, R. Software Engineering: A Practitioner s Approach. Chapter 28. McGraw-Hill, 2005 The Science of Programming, David Gries, 1981
More informationJOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2002 Vol. 1, No. 2, July-August 2002 The Theory of Classification Part 2: The Scratch-Built
More informationGraph Representation of Declarative Languages as a Variant of Future Formal Specification Language
Economy Informatics, vol. 9, no. 1/2009 13 Graph Representation of Declarative Languages as a Variant of Future Formal Specification Language Ian ORLOVSKI Technical University of Moldova, Chisinau, Moldova
More informationChapter 10 Formal Specification
Chapter 10 Formal Specification Ian Sommerville 2000 Software Engineering, Chapter 10 Slide 1 Objectives To explain why formal specification helps discover problems in system requirements. To describe
More informationChapter 1. Introduction
1 Chapter 1 Introduction An exciting development of the 21st century is that the 20th-century vision of mechanized program verification is finally becoming practical, thanks to 30 years of advances in
More informationProgramming Languages Third Edition
Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand
More informationAn Annotated Language
Hoare Logic An Annotated Language State and Semantics Expressions are interpreted as functions from states to the corresponding domain of interpretation Operators have the obvious interpretation Free of
More informationŁabiak G., Miczulski P. (IIE, UZ, Zielona Góra, Poland)
UML STATECHARTS AND PETRI NETS MODEL COMPARIS FOR SYSTEM LEVEL MODELLING Łabiak G., Miczulski P. (IIE, UZ, Zielona Góra, Poland) The system level modelling can be carried out with using some miscellaneous
More informationThis is already grossly inconvenient in present formalisms. Why do we want to make this convenient? GENERAL GOALS
1 THE FORMALIZATION OF MATHEMATICS by Harvey M. Friedman Ohio State University Department of Mathematics friedman@math.ohio-state.edu www.math.ohio-state.edu/~friedman/ May 21, 1997 Can mathematics be
More informationUML-Based Conceptual Modeling of Pattern-Bases
UML-Based Conceptual Modeling of Pattern-Bases Stefano Rizzi DEIS - University of Bologna Viale Risorgimento, 2 40136 Bologna - Italy srizzi@deis.unibo.it Abstract. The concept of pattern, meant as an
More informationChapter 1 Introduction
Chapter 1 Introduction We hardly need to point out the importance of business process modelling and of respective automation in this place (see, e.g. [39, 45, 58, 110, 141]). Also the advantages and shortcomings
More informationCITS5501 Software Testing and Quality Assurance Formal methods
CITS5501 Software Testing and Quality Assurance Formal methods Unit coordinator: Arran Stewart May 1, 2018 1 / 49 Sources Pressman, R., Software Engineering: A Practitioner s Approach, McGraw-Hill, 2005
More informationSemantics via Syntax. f (4) = if define f (x) =2 x + 55.
1 Semantics via Syntax The specification of a programming language starts with its syntax. As every programmer knows, the syntax of a language comes in the shape of a variant of a BNF (Backus-Naur Form)
More informationRequirements Modelling and Software Systems Implementation Using Formal Languages
Requirements Modelling and Software Systems Implementation Using Formal Languages Radek Kočí Brno University of Technology, Faculty of Information Technology Czech Republic koci@fit.vutbr.cz ICSEA 2018,
More informationFormal Foundations of Software Engineering
Formal Foundations of Software Engineering http://d3s.mff.cuni.cz Martin Nečaský Pavel Parízek CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Goals of the course Show methods and tools
More informationLectures 20, 21: Axiomatic Semantics
Lectures 20, 21: Axiomatic Semantics Polyvios Pratikakis Computer Science Department, University of Crete Type Systems and Static Analysis Based on slides by George Necula Pratikakis (CSD) Axiomatic Semantics
More informationFlight Systems are Cyber-Physical Systems
Flight Systems are Cyber-Physical Systems Dr. Christopher Landauer Software Systems Analysis Department The Aerospace Corporation Computer Science Division / Software Engineering Subdivision 08 November
More informationChapter 3. Semantics. Topics. Introduction. Introduction. Introduction. Introduction
Topics Chapter 3 Semantics Introduction Static Semantics Attribute Grammars Dynamic Semantics Operational Semantics Axiomatic Semantics Denotational Semantics 2 Introduction Introduction Language implementors
More informationSOFTWARE ENGINEERING
SOFTWARE ENGINEERING INTRODUCTION TO SOFTWARE ENGINEERING. COURSE STRUCTURE AND REQUIREMENTS Saulius Ragaišis saulius.ragaisis@mif.vu.lt WHAT IS SOFTWARE ENGINEERING? First definition Software engineering
More informationPROPER TECHNIQUE OF SOFTWARE INSPECTION USING GUARDED COMMAND LANGUAGE
International Journal of Computer Science and Communication Vol. 2, No. 1, January-June 2011, pp. 153-157 PROPER TECHNIQUE OF SOFTWARE INSPECTION USING GUARDED COMMAND LANGUAGE Neeraj Kumar Singhania University,
More informationSOFTWARE ENGINEERING
SOFTWARE ENGINEERING INTRODUCTION TO SOFTWARE ENGINEERING. COURSE STRUCTURE AND REQUIREMENTS Saulius Ragaišis saulius.ragaisis@mif.vu.lt WHAT IS SOFTWARE ENGINEERING? First definition Software engineering
More information! Use of formal notations. ! in software system descriptions. ! for a broad range of effects. ! and varying levels of use. !
What Are Formal Methods? David S. Rosenblum ICS 221 Winter 2001! Use of formal notations! first-order logic, state machines, etc.! in software system descriptions! system models, constraints, specifications,
More informationTowards a Logical Reconstruction of Relational Database Theory
Towards a Logical Reconstruction of Relational Database Theory On Conceptual Modelling, Lecture Notes in Computer Science. 1984 Raymond Reiter Summary by C. Rey November 27, 2008-1 / 63 Foreword DB: 2
More informationSOFTWARE ENGINEERING DESIGN I
2 SOFTWARE ENGINEERING DESIGN I 3. Schemas and Theories The aim of this course is to learn how to write formal specifications of computer systems, using classical logic. The key descriptional technique
More informationModule 3. Requirements Analysis and Specification. Version 2 CSE IIT, Kharagpur
Module 3 Requirements Analysis and Specification Lesson 6 Formal Requirements Specification Specific Instructional Objectives At the end of this lesson the student will be able to: Explain what a formal
More informationSyntactic Measures of Complexity
A thesis submitted to the University of Manchester for the degree of Doctor of Philosophy in the Faculty of Arts 1999 Bruce Edmonds Department of Philosophy Table of Contents Table of Contents - page 2
More informationMaster Thesis Project Plan. Reusable Mathematical Models
Master Thesis Project Plan Reusable Mathematical Models Tobias K. Widmer widmer@id.ethz.ch Supervisors: Prof. Dr. B. Meyer B. Schoeller Chair of Software Engineering Department of Computer Science, ETH
More informationChapter 3 (part 3) Describing Syntax and Semantics
Chapter 3 (part 3) Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings
More informationPrograms with infinite loops: from primitive recursive predicates to the arithmetic hierarchy
Programs with infinite loops: from primitive recursive predicates to the arithmetic hierarchy ((quite) preliminary) Armando B. Matos September 11, 2014 Abstract Infinite time Turing machines have been
More informationImplementation of Axiomatic Language
Implementation of Axiomatic Language Walter W. Wilson 1 1 Dept. of Computer Science & Engineering The University of Texas at Arlington Arlington, Texas 76019, USA wwwilson@acm.org Abstract This report
More informationLecture 6,
Lecture 6, 4.16.2009 Today: Review: Basic Set Operation: Recall the basic set operator,!. From this operator come other set quantifiers and operations:!,!,!,! \ Set difference (sometimes denoted, a minus
More informationLecture 5: The Halting Problem. Michael Beeson
Lecture 5: The Halting Problem Michael Beeson Historical situation in 1930 The diagonal method appears to offer a way to extend just about any definition of computable. It appeared in the 1920s that it
More informationLecture 5 - Axiomatic semantics
Program Verification March 2014 Lecture 5 - Axiomatic semantics Lecturer: Noam Rinetzky Scribes by: Nir Hemed 1.1 Axiomatic semantics The development of the theory is contributed to Robert Floyd, C.A.R
More information1.1 Software Life Cycle
1 Introduction The development of complex software systems on a large scale is usually a complicated activity and process. It may involve many developers, possibly with different backgrounds, who need
More informationAn Operational Semantics for Parallel Execution of Re-entrant PLEX
Licentiate Thesis Proposal An Operational Semantics for Parallel Execution of Re-entrant PLEX Johan Erikson Department of Computer Science and Electronics Mälardalen University,Västerås, SWEDEN johan.erikson@mdh.se
More informationKnowledge Representation
Knowledge Representation References Rich and Knight, Artificial Intelligence, 2nd ed. McGraw-Hill, 1991 Russell and Norvig, Artificial Intelligence: A modern approach, 2nd ed. Prentice Hall, 2003 Outline
More informationLecture 02: Semantical Model
Software Design, Modelling and Analysis in UML Lecture 02: Semantical Model 2014-10-23 02 2014-10-23 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany Contents
More informationSoftware Design, Modelling and Analysis in UML
Software Design, Modelling and Analysis in UML Lecture 02: Semantical Model 2013-10-23 02 2013-10-23 main Prof. Dr. Andreas Podelski, Dr. Bernd Westphal Albert-Ludwigs-Universität Freiburg, Germany Contents
More informationModelling ODP Viewpoints. 1 Introduction. 2 Basic Modelling and Specification Concepts
Richard O. Sinnott and Kenneth J. Turner. Modelling ODP viewpoints. In B. Cameron, C. Geldrez, A. Hopley, D. Howes, B. Mirek, and M. Plucinska, editors, Proc. OOPSLA 94 Workshop on Precise Behavioural
More information7. Introduction to Denotational Semantics. Oscar Nierstrasz
7. Introduction to Denotational Semantics Oscar Nierstrasz Roadmap > Syntax and Semantics > Semantics of Expressions > Semantics of Assignment > Other Issues References > D. A. Schmidt, Denotational Semantics,
More informationhijac UTP Semantics for Safety-Critical Java University of York hijac Workshop 15 November 2011
UTP Semantics for Safety-Critical Java University of York Workshop 15 November 2011 1 / 27 Outline 1 Unifying Theories of Programming 2 SCJ-Circus 3 UTP SCJ Memory Model 4 COMPASS 5 Conclusions 2 / 27
More informationChapter 3. Describing Syntax and Semantics ISBN
Chapter 3 Describing Syntax and Semantics ISBN 0-321-49362-1 Chapter 3 Topics Describing the Meanings of Programs: Dynamic Semantics Copyright 2015 Pearson. All rights reserved. 2 Semantics There is no
More informationFUZZY SPECIFICATION IN SOFTWARE ENGINEERING
1 FUZZY SPECIFICATION IN SOFTWARE ENGINEERING V. LOPEZ Faculty of Informatics, Complutense University Madrid, Spain E-mail: ab vlopez@fdi.ucm.es www.fdi.ucm.es J. MONTERO Faculty of Mathematics, Complutense
More informationThe Formal Semantics of Programming Languages An Introduction. Glynn Winskel. The MIT Press Cambridge, Massachusetts London, England
The Formal Semantics of Programming Languages An Introduction Glynn Winskel The MIT Press Cambridge, Massachusetts London, England Series foreword Preface xiii xv 1 Basic set theory 1 1.1 Logical notation
More informationthe application rule M : x:a: B N : A M N : (x:a: B) N and the reduction rule (x: A: B) N! Bfx := Ng. Their algorithm is not fully satisfactory in the
The Semi-Full Closure of Pure Type Systems? Gilles Barthe Institutionen for Datavetenskap, Chalmers Tekniska Hogskola, Goteborg, Sweden Departamento de Informatica, Universidade do Minho, Braga, Portugal
More informationModeling Issues Modeling Enterprises. Modeling
Modeling Issues Modeling Enterprises SE502: Software Requirements Engineering Modeling Modeling can guide elicitation: It can help you figure out what questions to ask It can help to surface hidden requirements
More informationLogic and its Applications
Logic and its Applications Edmund Burke and Eric Foxley PRENTICE HALL London New York Toronto Sydney Tokyo Singapore Madrid Mexico City Munich Contents Preface xiii Propositional logic 1 1.1 Informal introduction
More informationUnit 4 Relational Algebra (Using SQL DML Syntax): Data Manipulation Language For Relations Zvi M. Kedem 1
Unit 4 Relational Algebra (Using SQL DML Syntax): Data Manipulation Language For Relations 2016 Zvi M. Kedem 1 Relational Algebra in Context User Level (View Level) Community Level (Base Level) Physical
More informationCSC Discrete Math I, Spring Sets
CSC 125 - Discrete Math I, Spring 2017 Sets Sets A set is well-defined, unordered collection of objects The objects in a set are called the elements, or members, of the set A set is said to contain its
More informationΗΜΥ 317 Τεχνολογία Υπολογισμού
ΗΜΥ 317 Τεχνολογία Υπολογισμού Εαρινό Εξάμηνο 2008 ΙΑΛΕΞΗ 11: Τυποποιημένες (Formal) Προδιαγραφές ΧΑΡΗΣ ΘΕΟΧΑΡΙ ΗΣ Λέκτορας ΗΜΜΥ (ttheocharides@ucy.ac.cy) [Προσαρμογή από Ian Sommerville, Software Engineering,
More informationComputation Club: Gödel s theorem
Computation Club: Gödel s theorem The big picture mathematicians do a lot of reasoning and write a lot of proofs formal systems try to capture the ideas of reasoning and proof in a purely mechanical set
More informationPrinciples of Program Analysis. Lecture 1 Harry Xu Spring 2013
Principles of Program Analysis Lecture 1 Harry Xu Spring 2013 An Imperfect World Software has bugs The northeast blackout of 2003, affected 10 million people in Ontario and 45 million in eight U.S. states
More informationIntroduction to Axiomatic Semantics
Introduction to Axiomatic Semantics Meeting 10, CSCI 5535, Spring 2009 Announcements Homework 3 due tonight Homework 2 is graded 13 (mean), 14 (median), out of 21 total, but Graduate class: final project
More informationPetri-net-based Workflow Management Software
Petri-net-based Workflow Management Software W.M.P. van der Aalst Department of Mathematics and Computing Science, Eindhoven University of Technology, P.O. Box 513, NL-5600 MB, Eindhoven, The Netherlands,
More informationStatic Safety Analysis of UML Action Semantics for Critical Systems Development
Static Safety Analysis of UML Action Semantics for Critical Systems Development Zsigmond Pap, Dániel Varró Dept. of Measurement and Information Systems Budapest University of Technology and Economics H-1521
More informationChapter 3. Describing Syntax and Semantics ISBN
Chapter 3 Describing Syntax and Semantics ISBN 0-321-49362-1 Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the
More informationTopic Formal Methods. ICS 121 Lecture Notes. What are Formal Methods? What are Formal Methods? Formal Specification in Software Development
Lecture Notes What are? 1 Formal Method (FM) = specification language + formal reasoning Body of techniques supported by precise mathematics powerful analysis tools Rigorous effective mechanisms for system
More informationChapter 3. Describing Syntax and Semantics
Chapter 3 Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings of Programs:
More informationMethods for requirements engineering
Methods for requirements engineering Objectives To explain the role of methods and techniques in requirements engineering To introduce data-flow modelling To introduce semantic data modelling To introduce
More informationDefinition of Information Systems
Information Systems Modeling To provide a foundation for the discussions throughout this book, this chapter begins by defining what is actually meant by the term information system. The focus is on model-driven
More informationProducing Graphical User Interface from Activity Diagrams Ebitisam K. Elberkawi, Mohamed M. Elammari
Producing Graphical User Interface from Activity Diagrams Ebitisam K. Elberkawi, Mohamed M. Elammari Abstract Graphical User Interface (GUI) is essential to programming, as is any other characteristic
More information1 Introduction CHAPTER ONE: SETS
1 Introduction CHAPTER ONE: SETS Scientific theories usually do not directly describe the natural phenomena under investigation, but rather a mathematical idealization of them that abstracts away from
More informationTowards Formalization of ARD+ Conceptual Design and Refinement Method
Proceedings of the Twenty-First International FLAIRS Conference (2008) Towards Formalization of ARD+ Conceptual Design and Refinement Method Grzegorz J. Nalepa and Igor Wojnicki Institute of Automatics,
More informationp x i 1 i n x, y, z = 2 x 3 y 5 z
3 Pairing and encoding functions Our aim in this part of the course is to show that register machines can compute everything that can be computed, and to show that there are things that can t be computed.
More information40 Behaviour Compatibility
40 Behaviour Compatibility [2] R. De Nicola, Extentional Equivalences for Transition Systems, Acta Informatica, vol. 24, pp. 21-237, 1987. [3] J. Gray, Notes on Data Base Operating Systems, in Operating
More informationFormal Methods for Software Engineers
Formal Methods for Software Engineers Professor Ray Welland Department of Computing Science University of Glasgow ray@dcs.gla.ac.uk INF3120-FM 1 Overview Motivation Why have formal specifications? Where
More informationPropositional Logic. Part I
Part I Propositional Logic 1 Classical Logic and the Material Conditional 1.1 Introduction 1.1.1 The first purpose of this chapter is to review classical propositional logic, including semantic tableaux.
More informationFormal Specification. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 10 Slide 1
Formal Specification Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 10 Slide 1 Objectives To explain why formal specification techniques help discover problems in system requirements To
More informationUnit 4 Relational Algebra (Using SQL DML Syntax): Data Manipulation Language For Relations Zvi M. Kedem 1
Unit 4 Relational Algebra (Using SQL DML Syntax): Data Manipulation Language For Relations 2014 Zvi M. Kedem 1 Relational Algebra And SQL SQL is based on relational algebra with many extensions Some necessary
More informationComponent Composition in Business and System Modeling
Stuart Kent *, Kevin Lano **, Juan Bicarregui **, Ali Hamie *, John Howse *1 * Division of Computing, University of Brighton, Lewes Rd., Brighton, UK. ** Department of Computing, Imperial College of Science
More information1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.
1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered
More informationPart I Logic programming paradigm
Part I Logic programming paradigm 1 Logic programming and pure Prolog 1.1 Introduction 3 1.2 Syntax 4 1.3 The meaning of a program 7 1.4 Computing with equations 9 1.5 Prolog: the first steps 15 1.6 Two
More informationXI International PhD Workshop OWD 2009, October Fuzzy Sets as Metasets
XI International PhD Workshop OWD 2009, 17 20 October 2009 Fuzzy Sets as Metasets Bartłomiej Starosta, Polsko-Japońska WyŜsza Szkoła Technik Komputerowych (24.01.2008, prof. Witold Kosiński, Polsko-Japońska
More informationFormal specification of semantics of UML 2.0 activity diagrams by using Graph Transformation Systems
Formal specification of semantics of UML 2.0 activity diagrams by using Graph Transformation Systems Somayeh Azizi 1, Vahid Panahi 2 Computer science department, Sama Technical and vocational, Training
More informationSpecification-based Testing
Dependable Software Systems Specification-based Testing Material drawn from [Mancoridis, Vokolos] Specifications Specification Requirements Specification Requirements Specification: Precise and detailed
More informationA Hoare Logic Contract Theory: An Exercise in Denotational Semantics
A Hoare Logic Contract Theory: An Exercise in Denotational Semantics Dilian Gurov and Jonas Westman Abstract We sketch a simple theory of Hoare logic contracts for programs with procedures, presented in
More informationGuarded Operations, Refinement and Simulation
Guarded Operations, Refinement and Simulation Steve Reeves and David Streader Department of Computer Science University of Waikato Hamilton, New Zealand stever,dstr@cs.waikato.ac.nz Abstract Simulation
More information6. Hoare Logic and Weakest Preconditions
6. Hoare Logic and Weakest Preconditions Program Verification ETH Zurich, Spring Semester 07 Alexander J. Summers 30 Program Correctness There are many notions of correctness properties for a given program
More informationEquations for Asynchronous Message Passing
Equations for Asynchronous Message Passing Ludwik Czaja 1,2 1 Institute of Informatics, The University of Warsaw 2 University of Economics and Computer Science Vistula in Warsaw lczaja@mimuw.edu.pl 1 Introduction
More informationProving the Correctness of Distributed Algorithms using TLA
Proving the Correctness of Distributed Algorithms using TLA Khushboo Kanjani, khush@cs.tamu.edu, Texas A & M University 11 May 2007 Abstract This work is a summary of the Temporal Logic of Actions(TLA)
More informationUML Semantics FAQ. ECOOP 99 Workshop Proposal
UML Semantics FAQ ECOOP 99 Workshop Proposal 1 Cover Page Title: UML Semantics FAQ Organizers: on behalf of puml (precise UML group), http://www.cs.york.ac.uk/ puml/ Stuart Kent (primary contact), Computing
More informationRecursively Enumerable Languages, Turing Machines, and Decidability
Recursively Enumerable Languages, Turing Machines, and Decidability 1 Problem Reduction: Basic Concepts and Analogies The concept of problem reduction is simple at a high level. You simply take an algorithm
More informationIntroduction to Axiomatic Semantics (1/2)
#1 Introduction to Axiomatic Semantics (1/2) How s The Homework Going? Remember that you can t just define a meaning function in terms of itself you must use some fixed point machinery. #2 #3 Observations
More informationEngineering and Computer Job Fair
08- Notation-Formal Rick Adrion Engineering and Computer Job Fair Campus Center on October 1 from 10 am - 3 pm Microsoft, Mitre, GE, FAA and BAE seeking Computer Science students for permanent, summer
More informationApplication: Programming Language Semantics
Chapter 8 Application: Programming Language Semantics Prof. Dr. K. Madlener: Specification and Verification in Higher Order Logic 527 Introduction to Programming Language Semantics Programming Language
More informationExample - Booking Office
09 Requirements Readings [jmw90] Wing, J. M., A Specifier's Introduction to Formal Methods, IEEE Computer, September 1990, pp.8--24. [avl00] van Lamsweerde, Axel, Formal Specification: a Roadmap, Future
More information2.4 The Z Notation. [Reference: M. Spivey: The Z Notation, Prentice Hall] Modellbasierte Softwareentwicklung
Modellbasierte Softwareentwicklung 2.4 The Z Notation [Reference: M. Spivey: The Z Notation, Prentice Hall] Properties of Z Is a very expressive formal language (well-defined syntax and semantics). Based
More informationCONSTRAINT SPECIFICATIONS USING PATTERNS IN OCL
CONSTRAINT SPECIFICATIONS USING PATTERNS IN OCL Ali Hamie. University of Brighton, Brighton, UK a.a.hamie@brighton.ac.uk ABSTRACT Constraint patterns are very useful for specifying OCL constraints on UML
More information