# 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.

Concise Guide to Databases: A Practical Introduction (Undergraduate Topics in Computer Science)

Multi-Agent Machine Learning: A Reinforcement Approach

Computation and Storage in the Cloud: Understanding the Trade-Offs

Building Software for Simulation: Theory and Algorithms, with Applications in C++

Computation 506 20.8.2 A Type Theory for the A-Calculus 506 20.8.3 Source Program Transformation Works 507 20.8.4 Laws of Imperative Programming 507 Exercises 508 XXXVIII Contents 21 Concurrent Specification Programming 21.1 Behaviour and Process Abstractions 21.1.1 Introduction 21.1.2 On Process and Other Abstractions 21.2 Intuition 21.2.1 Illustrative Rendezvous Scenarios 21.2.2 Diagram and Notation Summary 21.2.3 On a Trace Semantics 21.2.4 Some Characterisations: Processes, Etcetera 21.2.5

to be developed, then costs could be based on fixed hourly rates and some usually negotiable rough time estimates. Precise numbers cannot be given since much, unforeseeable interaction needs to take place between the contracting parties. Or if a domain description is to be developed—in which case the project is basically a joint research effort—then the costs are usually negotiable, and billed on a, say, monthly basis. A contract would (further considerations) refer to legal conditions. Many

derive from natural numbers by including those numbers that are negations of natural numbers. That is, if i is an integer, and — i = j is its negation, then i+ j = 0. Properties Let a, b and c stand for integers. Some important properties of integers are: [ Associativity and Commutativity of + and *: ] a+(b+c) = (a+b)+c, a+b = b + a a*(b*a) = (a*b)*c, a*b = b*a [ Distributivity of* over +: ] a*(b+c) = a*b + a*c [ Properties of 0 and 1: ] 0+a = a, l*a = a, 0*a = 0 [ Properties of —: ] (—a)+a = 0,

Evaluation 97 Correspondingly, we can talk of two bases of evaluating the Fibonacci function. Based on the relational representation above we can very informally sketch one form of evaluation by: fib = {(1,1),(2,1),(3,2),(4,3),(5,5),(6,8),...} evaluate (fib,4) = evaluate({(l,l),(2,l),(3,2),(4,3),(5,5),(6,8),...},4) = select the pair (i,j) whose first element = 4 and yield its second element, here 3 We shall later return to this form of function representation (Sect. 6.7). We shall call the

are still many corners of software engineering t h a t I have to write about, think and experience. Meanwhile, this is what you get! These volumes thus represent my chef d'ceuvre. Role of These Volumes in an SE Education Programme W h o are the target readers of these volumes? T h a t question is indirectly answered in the following. W h a t roles do we see these volumes serve in the larger context of an academic software engineering education, one t h a t leads to a Master's degree in the