 
 
 
 
 
   
Expected Publication Date: Early Spring 2005
Outline of a Series of Text- &
    Handbooks on
Formal & Practical Aspects of
SOFTWARE ENGINEERING
Springer-Verlag, Berlin - Heidelberg
Dines Bjørner,
Professor of Computing Science
E-Mail: db"ad"imm.dtu.dk
Monday, May 31, 2004, 3:30 am
Current volume 1-2-3 *.ps files are DRAFTS
All three volumes will be edited during
    Winter and Spring 2004.
Final version will go to Publisher no later
    than 30 June 2004.
Publisher is SPRINGER-VERLAG:
[EATCS] Texts in Theoretical Computer
    Science
During Spring of 2004 this home page will
      change.
I will gradually phase out URLs to volumes
      1+2+3.
And I will gradually phase in:
(1) General Course Material - for prospective
      lecturers.
(2) URLs to relevant Formal Methods pages - See
      Sect. [5.].
(3) ... and much, much more ...
- There is a need for text- & handbooks that tell the formal methods
      "story" from the broader software engineering viewpoint.
- Volumes 1-2-3 should serve the above need.
 
- There is, independently thereof, a need for a text- cum handbook
      which links the potential uses of formal methods to the
      usual - or a new - process model(s) for software engineering.
- Volume 3, in particular, should serve the latter need.
 
- The usual software engineering "management stuff" need be
      re-told - now in the context of formal methods.
- Volume 4 should serve that need.
- Claim: 
Some people claim that
 
- 
Formal Methods
- 
do not go, or, that it has not been shown how
    they go together with
 
- 
"Best Practices"
- 
of current
 
Software Engineering
 
      
approaches.
 
 
- Counterclaim: 
Volumes 1+2+3 will show you
- 
that they do,
- 
how they do,
- 
and what one does in order to practice
- 
Formal Methods
 
when doing
  
Software Engineering.
 
 
 
- Claim: 
Some people claim that
- 
Software Engineering
 
- 
managers 
    do not know how to incorporate
 
- 
Formal
      Methods
 
- 
into any
 
- 
"Best
      Practice"
 
- 
process model.
 
 
- Counterclaim: 
Volume 4,
 in more
    details than Volume 3, 
tells managers how to incorporate
- 
Formal Methods,
 
as an integral part,
  
- 
into the planning, monitoring and 
  control of small, medium, large scale, and very large scale
- 
Software Development
 
projects.
 
 
- 
So now - with these volumes - there can no
    longer be any excuses !
- 
Formal Methods fit naturally into any
    Software Development project.
 
More specifically:
- I expect, currently, four volumes:
- SE 1: 
Abstraction and Modelling
- SE 2: 
Specification of Systems and Languages
- SE 3: 
Domains, Requirements, and Software Design
- SE 4: 
Project and Product Management
 
- Currently volumes 1+2+3 are being written:
- 
Volume
    1: Abstraction and
    Modelling
  
- 
Volume
    2: Specification of Systems and
    Languages
  
- 
Volume
    3: Domains, Requirements, and Software
    Design
 
- S-V has been promised
   final versions of Volumes 1-2-3 to be ready by
  30 June 2004.  
- For volume 4 I expect 
- first "full" draft version to be ready by 31 December 2004, 
- with a final version 30 June 2005. 
 
- This is not a series of text- & handbooks propagating a special
  notation. 
- These text- & handbooks will use
- The 
RAISE Specification Language RSL
- ER cum UML-like 
Class Diagrams
- Condition Event, Place Transition
  and Coloured 
Petri Nets
 
- Message Sequence and 
Live Sequence Charts.
- 
Statecharts.
- The Temporal Logic of the 
Duration Calculus.
 
- The emphasis is on methods, principles, techniques.
- The emphasis will be on specification and informal, yet rigorous
  transformation of specifications.
- The present four volumes will not cover verification (sic !).
- We are "UML-ising" uses of formal techniques rather than using
  formalised versions of UML.
Volumes 3 and 4, as will be noted below, can be used in either of
two ways: Without or with formulas.
This gives rise to the following sequence of uses of the four, thus
actually six volumes, in up to six one semester courses:
- I3: Non-formula, ie., Informal version of Volume 3.
- I4: Non-formula, ie., Informal version of Volume 4.
- F1: Volume 1.
- F2: Volume 2.
- F3: Formula, ie., Formal version of Volume 3.
- F4: Formula , ie., Formal version of Volume 4.
The following sequences of courses are therefore possible:
- I3 Undergraduate, College or Univ. BSc. SE, single module
- I3+I4 Undergraduate, College or Univ. BSc. SE, double module
- F1 Graduate, Univ. MSc. SE / MSc. CS
- F1+F2 Graduate, Univ. MSc. SE / MSc. CS 
- F1+F2+F3 Graduate, Univ. MSc. SE / MSc. CS
- F1+F2+F3+F4 Graduate, Univ. MSc. SE / MSc. CS
If, for example, for a graduate course, in F3 or F4, course I3,
resp. I4 is assumed to have been followed,
then that graduate course in F3, resp. F4, should be organised 
as a single module course,
otherwise as a double module course.
Other combinations are possible.
Not all material in all volumes need be covered.
Some material, for example early material in vol.1, may be covered in
already existing courses on Discrete Mathematics.
Material not covered can - anyway - be studied by students.
In all volumes we present numerous examples.
And in all volumes we provide explicit listings of development
procedures. Too numerous to recall.
Therefore:
- Initially the volumes can be used as textbooks.
- Thereafter students can use them as handbooks, for future
  reference.  
 
The First volume, SE 1., will contain an approximately 900 entry
Glossary:
We believe that this Glossary is quite a unique feature of this series of
text and handbooks.
 
Left: 
One of my wife's Patchwork &
  Quilts:
  
Multi-
coloured
Asters
 
Abstract:
 Software engineering: The art, craft,
  discipline, logic, practice and science of developing large scale
  software products is in increasing need of a trustworthy, believable
  and professional base. This book is one, in presently a series of
  three volumes, devoted to fill this need. The present series of
  strongly related text
  books combine informal, engineeringly sound approaches with the
  rigour of formal, mathematics based approaches.
The present volume covers the basic principles and techniques of abstraction and modeling.
First the 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 the book goes on to teach and train 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, will be 
propagated here through he use of the  RAISE specification
language RSL. 
Finally the book will cover basic principles of functional, imperative 
and parallel specification programming -- the latter based on the use 
of CSP: Hoare's language of Communicating Sequential Processes.
 
The present book is targeted at at university undergraduate students and at college lecturers.
- Part I: 
Opening
- 1. 
Introduction
- Part II: 
Discrete Mathematics
- 2. 
Numbers
- 3. 
Sets
- 4. 
Cartesians
 
- 5. 
Types
- 6. 
Functions
- 7. 
Lambda-Calculus
- 8. 
Algebras
- 9. 
Logics
- Part III: 
Simple RSL
- 10. 
Atomic Types & Values in RSL
- 11. 
Function Definitions in RSL
- 12. 
Property & Model Oriented Abstractions
- 13. 
Sets in RAISE
- 14. 
Cartesians in RAISE
- 15. 
Lists in RAISE
- 16. 
Maps in RAISE
- 17. 
Higher-order Functions in RAISE
- Part IV: 
Specification Types
- 18. 
Types in RAISE
- Part V: 
Specification Programming
- 19. 
Applicative Specification Programming
- 20. 
Imperative Specification Programming
- 21. 
Parallel Specification Programming
- Part VI: 
And So On !
- 22. 
Etcetera !
- Part VII: 
Appendices
- 
References
- A. 
Glossary
- B. 
Indexes
 
Left: 
One of my wife's Patchwork &
  Quilts:
 
Green
and
 
Pink
Harlequin
  
Abstract:
 Software engineering: The art, craft,
  discipline, logic, practice and science of developing large scale
  software products is in increasing need of a trustworthy, believable
  and professional base. This book is one, in presently a series of
  three volumes, devoted to fill this need. The present series of
  strongly related text
  books combine informal, engineeringly sound approaches with the
  rigour of formal, mathematics based approaches.
The present volume covers the basic principles and techniques of specifying systems and languages.
First the book teaches and trains its readers in advanced principles
and techniques: Hierarchical versus compositional, denotational
versu
computational, and configurational: Abstracting and modeling
contexts
and states.
Then the book goes on to teach and train its readers in basic
principles and techniques of modeling the semiotics: Pragmatics,
semantics and syntax of systems and languages.
An important part covers principles and techniques of modeling
  spatial and simple temporal phenomena.
A major section of the book is devoted to such specialised topics as:
Modularity (incl. UML's Class Diagrams); Petri Nets; Live Sequence
Charts;
Statecharts; and Temporal Logics, including the Duration Calculus.
This part epitomises the adage: We ``UML''-lise formal
  techniques.
Thus the reader is brought, on a firm, precise, formal basis, on to
  the
(trustworthy, believable and) professional use of such ideas as are
 also the mainstay of UML.
Finally the book presents principles and techniques for developing
the
basis for sound and efficient interpreter and compiler development
of
functional, imperative, modular and parallel programming languages.
 
The present book is targeted at late undergraduate to early graduate university students,
at college lecturers and at researchers of programming methodology.
Volume 2 has Volume 1 of this series as a prerequisite text. 
Chapters 12-14 incl.: Main Author: Christian Krog Madsen
- Part I: 
Opening
 - "empty"
- 1. 
Introduction
- Part II: 
Specification Facets
- 2. 
Hierarchies & Compositions
- 3. 
Denotations & Computations
- 4. 
Configurations: Contexts and States
- Part III: 
A Universal Domain Facet
- 5. 
Time, Space & Time/Space
- Part IV: 
Linguistics
- 6. 
Pragmatics
- 7. 
Semantics
- 8. 
Syntax
- 9. 
Semiotics
- Part V: 
Specification Techniques
- 10. 
Modularisation
- 11. 
Automata & Machines
- 12. 
Petri Nets
 Main Author: Christian
    Krog Madsen
- 13. 
Message Sequence and Live Sequence Charts
 Main Author:  Christian Krog Madsen.
- 14. 
Statecharts
 Main Author: Christian
    Krog Madsen.
- 15. 
Varieties of Temporal Logics
 - "empty"
- Part VI:  
Language Definitions
- 16. 
SAL: Simple Applicative Language
- 17. 
SIL: Simple Imperative Language
- 18. 
SMIL: Simple Modular, Imperative Language
- 19. 
SPL: Simple Parallel Language
- Part VII: 
Closing
- 20. 
Conclusion
- Part VIII: 
Appendices
- 
References
 
- A. 
Indexes
 
Left: 
One of my wife's Patchwork &
  Quilts:
 
Fence
Rails
 
Abstract:
 Software engineering: The art, craft,
  discipline, logic, practice and science of developing large scale
  software products is in increasing need of a trustworthy, believable
  and professional base. This book is one, in presently a series of
  three volumes, devoted to fill this need. The present series of
  strongly related text
  books combine informal, engineeringly sound approaches with the
  rigour of formal, mathematics based approaches.
The present volume covers the basic principles and techniques of overall software development: From  domains via
requirements to software designs.
Thus the book advocates a novel approach to software
  engineering
based on the adage: Before requirements can be formulated one must
understand the application domain.
The book is therefore structured this way: From (i) the principles
and
techniques for the development of domain descriptions, via (ii)
principles
and techniques for the derivation of requirements prescriptions from
domain models, to (iii) principles and techniques for the refinement 
of requirements into software designs: Architectures and component design.
Emphasis in the coverage of domain and requirements engineering is
on `what goes into a proper domain description', respectively
`requirements prescription', and on `how does one acquire and analyse the
domain knowledge', respectively `the requirements expectations, and
`how does one validate and verify domain and requirements models'.
 
The present book is structured so as to be targetable for two rather
different audiences: In one clearly marked structure -- focusing only
on the informal parts -- the book is targeted 
at undergraduate students in a second
semester course on software engineering, as well as at college
lecturers in that field. In another -- for the full version of the book
-- it is targeted at advanced students, lecturers and researchers.
This is a novel feature for textbooks. 
As such Volume 3 -- in the first, simple
version -- has no prerequisite texts. In the full version Volume 3
has Volume 2 as a prerequisite text.
- Part I,     
OPENING
- Chapter 1,  
The TripTych Software
      Engineering Paradigm
 
- Chapter 2,  
Documents
 
- Part II,    
CONCEPTUAL FRAMEWORK
- Chapter 3,  
Methods & Methodology
 
- Chapter 4,  
Models & Modelling
 
- Part III,   
DESCRIPTIONS: THEORY &
      PRACTICE
- Chapter 5,  
Phenomena & Concepts
 
- Chapter 6,  
On Defining and On
      Definitions
  
- Chapter 7,  
Jackson's Description
      Principles
 
- Part IV,    
DOMAIN ENGINEERING
- Chapter 8,  
An Overview of Domain
      Engineering
  
- Chapter 9,  
Domain Stakeholders
- Chapter 10,  
Domain Attributes
- Chapter 11,  
Domain Facets
- Chapter 12, 
Domain Acquisition
- Chapter 13, 
Domain Analysis & Concept
      Formation
 
- Chapter 14, 
Domain Validation &
      Verification
 
- Chapter 15, 
Towards Domain Theories
 
- Chapter 16, 
The TripTych Domain
      Engineering Process Model
 
- Part V, 
REQUIREMENTS ENGINEERING
- Chapter 17, 
An Overview of
      Requirements Engineering
 
- Chapter 18, 
Requirements Stakeholders
- Chapter 19, 
Requirements Facets
- Chapter 20, 
Requirements Acquisition
- Chapter 21, 
Requirements Analysis &
      Concept Formation
 
- Chapter 22, 
Requirements Validation &
      Verification
 
- Chapter 23, 
Requirements
      Satisfiability & Feasibility
 
- Chapter 24, 
The TripTych Requirements
      Engineering Process Model
 
- Part VI, 
COMPUTING SYSTEMS DESIGN
- Chapter 25, 
Hardware/Software Co-design
- Chapter 26, 
Software Architecture Design
- Chapter 27, 
A Case Study in
      Component Design
 
- Chapter 28, 
Domain Specific Architectures
- 
To be finished late May 2004
      Chapter 29, 
&c.: Programming,
      Coding, and All That !
 
- 
To be finished early June 2004
      Chapter 30, 
The TripTych Computing
      Systems Design Process Model
 
- Part VII, 
CLOSING
- 
To be finished early June 2004
      Chapter 31, 
The TripTych Development
      Process Model
 
- Chapter 33, 
Conclusion
- Part VII, 
APPENDICES
- 
References
 
- Appendix A, 
Indexes
 
Volume 3 represents a break with past traditions in teaching
software engineering, and it represents
a break with my own, past,
practice of teaching software engineering only by using formal techniques.
The "non-formula" version of Volume 3 will cover essentially the
same "ground", that is: Principles and techniques as will
the
"formula" version of Volume 3. The 'thesis' being that if the
major principles propagated in the "formula"
version
of Volume III are worth "their salt", then they should be able to
"stand on their own", ie., without the formalisation. 
The techniques of the "formula" version of Volume III, go well
beyond those of the "non-formula" version of Volume III. 
Needless to say: 
- It is only through formal reasoning that we can hope to
achieve a dramatic increase in trust in our software.
Thus:
- The "non-formula" version of Volume 3 will emphasize the
  process "technology" (ie., principles), while
- the "formula" version of Volume 3 additionally will
  emphasize the production "technology" (ie., techniques).
The present state of this volume is: It is mere
  speculation !
This volume will, as for volume 3, have two versions:
- One without formulas,
- one with formulas.
The formulas will meta-model:
- The ontology of software development.
- Version control and configuration management.
- Planning, monitoring and control.
- Specification and program analysis tools.
- Specification and verification tools.
- Document tools.
- Acquisition gathering and analysis tools.
- And many other facets of software engineering management.
A tentative layout is suggested:
- 
Part I,
 
OPENING
- Chapter 1,  
Introduction
- Chapter 2,  
The Software Life Cycle:
      Ontologies of Development, etc.
- 
Part II,
 
SOFTWARE DEVELOPMENT
      PROJECT MANAGEMENT
  
- Chapter 3,  
Engineering Management:
  Study, Experiment, Apply 
- Chapter 4,  
Configuration
      Management:
 Version Monitoring and Control
- Chapter 5,  
People Management:
      Capability Maturity Model
- Chapter 6,  
Risk Management
- Chapter 7,  
Quality Management
- Chapter 8,  
Project Planning, Monitoring and
      Control:
 Project Graphs, Resource Allocation & Scheduling, etc. 
- Chapter 9,  
Development Cost Management
- Chapter 10,  
Contracts & Contract Management
- 
Part III,
 
SOFTWARE
      PRODUCT MANAGEMENT
 
- Chapter 11,  
Market Analysis
- Chapter 12, 
Product Cost Estimates
- Chapter 13, 
Consultancy &
      Instantiation Costs
 
- Chapter 14, 
Marketing & Sales
- Chapter 15, 
Maintenance & Service
- 
Part IV,
 
SOFTWARE
      HOUSE MANAGEMENT
 
- Chapter 16, 
Business Plans
- Chapter 17, 
Financial Matters
- Chapter 18, 
People Management
- 
Part V,
 
TOOL
      SUPPORT TECHNOLOGIES
 
- Chapter 19, 
Specification &
      Verification Tools
 
- Chapter 20, 
Specification Analysis Tools
- Chapter 22, 
Other Document Tools
- Chapter 23, 
Domain Engineering Tools
- Chapter 24, 
Requirements Engineering Tools
- Chapter 25, 
Software Design Tools
- Chapter 26, 
Planning, Monitoring and
      Control Tools
 
- Chapter 27, 
Cost Estimation Tools
- 
Part VI,
  
STANDARDISATION &c.
 
- Chapter 28, 
ISO 9000, 9001, 9000-3
- Chapter 29, 
IEEE and ACM Standards
- Chapter 30, 
Software Tool Standards:
      UML, VDM, ..., Z 
- 
Part VII,
    
CLOSING
- Chapter 31, 
Conclusion
- 
References
 
- 
Part VIII,
  
APPENDICES
- Chapter A,  
Glossary
- Chapter B,  
Indexes
You may not have heard of the term "formal method" (we ourselves
prefer the term: "formal techniques"). 
Therefore, please take time to browse below references.
[5.1]    Formal Methods Home Pages
- 
General
- 
Formal
    Methods
 or
    
Formal
    Methods
 
- 
"The" Formal Methods Home
    Page
 
- 
FME: Formal Methods
    Europe
 
- 
Industry
- 
ForTIA: a Formal
    Techniques Industry Association
 
- 
SRI Intl.: Formal Methods and
    Dependable
    Systems
 
- 
Government
  
- 
US Govt.: NASA Langley Formal Methods
    Site
   
- 
US Govt.:
    NASA Formal Methods
    Guidebooks
 
- 
US Govt.: Center for High Assurance
    Computer Systems.
 
- 
ICASE: Formal Methods for Aviation
    Safety
- 
Natl. Inst. of Aerospace (US Govt.):
    Formal Methods for Aviation Safety 
 
- 
Universities and Research Centres
 - ordered
  (approx.) by "city"/country:
  
- 
Århus
 University (DK): 
Formal
    Methods
- 
Bell
 Labs.: 
Formal Methods at Bell
    Labs.
- University of 
Bremen
 (FRG): 
Formal Methods
 
- Univ. of 
Cambridge
 (UK): 
Formal Methods
    Literature
- University of 
Eindhoven
 (NL): 
Formal
    Methods
 
- Rice Univ., 
Houston,
 TX (USA): 
Computer-Aided
Verification and Reasoning 
Group
- 
India:
 
Formal
      methods
 
- 
Ireland:
 
Irish Formal Methods Interest
    Group
- 
Italian
 Research Council: 
CNR Formal
    Methods and Tools Group
 
- 
Korea
 Univ.: 
Theory and Formal Methods
    lab.
  
- University of 
London,
 Royal Holloway (UK):
  
Formal
    Methods
  
- 
London
 Southbank University (UK): 
Formal
    Methods
 
- 
Manchester
 Univ. (UK): 
Formal
    Methods
- University of 
Maryland
 (ML, USA): 
Formal Methods in
  Interface Design
- University of 
Minho
 (PT): 
Logic and
    Formal Methods
- 
Ohio
 State and Clemson University (USA): 
On 
    Formal Methods
 
- 
Pittsburgh:
 CMU + SEI (PA, USA): 
- 
Formal Methods in
    Describing Architectures
 
- 
Video Course on Formal
  Methods and Software
  Engineering
- 
Strategic Directions in
    Computing Research Formal Methods Working Group
 
- University of 
Toronto
 (CND): 
Formal
    Methods
 
- University of 
Twente
 (NL): 
Formal Methods and
    Tools
- University of 
Waikato
 (NZ): 
Formal
    Methods Lab.
 
- 
Organisations
  
- ERCIM Working Group: 
Formal Methods for
    Industrial Critical Systems
    (FMICS)
 
- 
A Software Engineering Resource List
for Formal Methods and Formal Methods in Software
Architecture
 
- 
Personal, Individual
    
- Dines Bjørner: 
My Research Interests:
    Formal Methods
- Alan Dix: 
Formal Methods in
    HCI
 
- Georges Mariano: 
mariano's bookmarks: Formal
    Methods
- Paul Trafford: 
Research Page in Formal
    Methods
 
- R.B.Jones: 
A personal home page on Formal
    Methods
 
- 
Publishers
- Kluwer: 
Journal: Formal Methods in Systems
    Design
 
- Springer: 
Journal: Formal Aspects of
    Computing
 
[5.2]  Papers/Reports/Company ''Flyers'' on Formal
  Methods
 
- 
Formal Methods and the Certification of
    Critical
    Systems,
 319
  pages, December 1993 - I can recommend also its Appendix on Logic
- 
Formal Methods and their Rôle in the
    Certification of Critical
    Systems,
 60
  pages, 1995
- 
NASA Langley's Research and
    Technology-Transfer Program in Formal Methods
    (1995)
 
- 
SRI
    Intl.: Formal Methods and Dependable
    Systems
  
- 
Formal Methods
    Publications
- 
Somewhat dated:
Formal Methods Education Resources
...
...
IMM
:
Informatics and Mathematical 
  Modelling
Rooms 106-110, 1st Floor, Building
  322,
 
  Richard Petersens Plads
Technical University of
  Denmark
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
latex2html -split 0 -toc_depth 6 /home/db/the-se-books/the-se-books
Back to DB Home Page
 
 
This document was generated using the
LaTeX2HTML translator Version 2K.1beta (1.47)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos, 
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore, 
Mathematics Department, Macquarie University, Sydney.
The command line arguments were: 
 latex2html -split 0 -toc_depth 6 the-se-books
The translation was initiated by  on 2004-05-31
 
 
 
 
 
   
2004-05-31