# Software Engineering 1: Abstraction and Modelling (Texts in Theoretical Computer Science. An EATCS Series)

Language: English

Pages: 714

ISBN: 3642059392

Format: PDF / Kindle (mobi) / ePub

The art, craft, discipline, logic, practice, and science of developing large-scale software products needs a believable, professional base. The textbooks in this three-volume set combine informal, engineeringly sound practice with the rigour of formal, mathematics-based approaches.

Volume 1 covers the basic principles and techniques of formal methods abstraction and modelling. First this book provides a sound, but simple basis of insight into discrete mathematics: numbers, sets, Cartesians, types, functions, the Lambda Calculus, algebras, and mathematical logic. Then it trains its readers in basic property- and model-oriented specification principles and techniques. The model-oriented concepts that are common to such specification languages as B, VDM-SL, and Z are explained here using the RAISE specification language (RSL). This book then covers the basic principles of applicative (functional), imperative, and concurrent (parallel) specification programming. Finally, the volume contains a comprehensive glossary of software engineering, and extensive indexes and references.

These volumes are suitable for self-study by practicing software engineers and for use in university undergraduate and graduate courses on software engineering. Lecturers will be supported with a comprehensive guide to designing modules based on the textbooks, with solutions to many of the exercises presented, and with a complete set of lecture slides.

Note on Observer Functions Exercises XXXIII 258 260 13 Sets in RSL 13.1 Sets: The Issues 13.2 The Set Data Type 13.2.1 Set Types: Definitions and Expressions 13.2.2 Set Value Expressions 13.2.3 Set Binding Patterns and Matching 13.2.4 Nondeterminism 13.3 Examples of Set-Based Abstractions 13.3.1 Representation I 13.3.2 File Systems I 13.3.3 Representation II 13.4 Abstracting and Modelling With Sets 13.4.1 Modelling Networks 13.4.2 Modelling Pseudo-hierarchies 13.4.3 Modelling a Telephone System

modelling some universe of discourse phenomenon by means of numbers, is not in the deeper numbertheoretic properties, 1 but in the simpler, rather more shallow properties: Numbers are strictly ordered and reals are densely packed. There are many kinds of numbers, to wit: natural numbers: 0,1,2, . . . ; integers: . . . , —2,—1,0,1,2, . . . ; rationals: consisting of both integer (viz., ijj) and fractions, | , for all integers i, j where j / 0; irrational numbers; real, imaginary and complex

graphs: GiiS^C.K)1 S stands for a set of segments. For example, {si,S2 ; £3}- C stands for a set of connectors. For example, {01,02,03,04}, as in either of subfigures [A] and [B] of Fig. 5.1 on the preceding page, or {01,02,03} as in subfigure [C] of Fig. 5.1 on the page before. K stands for the specific connections of segments to connectors. For example, [sr> {01,02}] as in subfigure [A] of Fig. 5.1 on the preceding page. The gist of Chaps. 12-18 is that we offer several ways in which roadnets

general and specific principles, techniques and tools (i) for analysing problems amenable to solution or support through computing; (ii) for synthesising such (program, such as software) solutions; (iii) for doing this analysis and synthesis in large projects, that is, projects involving more than one developer, and/or projects for which the resulting software is to be used by other (people) than the developer (s); and (iv) for managing such projects and products (including planning, budgeting,

A-calculus. The pure A-calculus does not contain general expressions. The A-notation, see later, will. We define the set of all A-expressions in an informal, yet precise style, one that we shall often be using. Definition. A-expression syntax. • • Basis clause: If a; is a variable, then x is a A-expression. Inductive clause: If a; is a variable and e, / , a are A-expressions, then so are Xx*e and f(a). 2 This construct has been used in very many functional programming and computer science