Petri nets: an introduction
Communicating sequential processes
Communicating sequential processes
Executing temporal logic programs
Executing temporal logic programs
Statecharts: A visual formalism for complex systems
Science of Computer Programming
Understanding Z: a specification language and its formal semantics
Understanding Z: a specification language and its formal semantics
The temporal logic of reactive and concurrent systems
The temporal logic of reactive and concurrent systems
The Z notation: a reference manual
The Z notation: a reference manual
ACM Transactions on Programming Languages and Systems (TOPLAS)
The STATEMATE semantics of statecharts
ACM Transactions on Software Engineering and Methodology (TOSEM)
Using Z: specification, refinement, and proof
Using Z: specification, refinement, and proof
The B-book: assigning programs to meanings
The B-book: assigning programs to meanings
Elements of distributed algorithms: modeling and analysis with Petri nets
Elements of distributed algorithms: modeling and analysis with Petri nets
The Theory and Practice of Concurrency
The Theory and Practice of Concurrency
Concurrent and Real Time Systems: The CSP Approach
Concurrent and Real Time Systems: The CSP Approach
Primer in Petri Net Design
The Vienna Development Method: The Meta-Language
The Vienna Development Method: The Meta-Language
Proceedings of the 1st International Conference on Integrated Formal Methods
IFM '99 Proceedings of the 1st International Conference on Integrated Formal Methods
LSCs: Breathing Life into Message Sequence Charts
Proceedings of the IFIP TC6/WG6.1 Third International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS)
Come, Let's Play: Scenario-Based Programming Using LSC's and the Play-Engine
Come, Let's Play: Scenario-Based Programming Using LSC's and the Play-Engine
Duration Calculus: A Formal Approach to Real-Time Systems (Monographs in Theoretical Computer Science. an Eatcs Seris)
Software Engineering 1: Abstraction and Modelling (Texts in Theoretical Computer Science. An EATCS Series)
Software Engineering 3: Domains, Requirements, and Software Design (Texts in Theoretical Computer Science. An EATCS Series)
Software Abstractions: Logic, Language, and Analysis
Software Abstractions: Logic, Language, and Analysis
Logics of Specification Languages (Monographs in Theoretical Computer Science. An EATCS Series)
Logics of Specification Languages (Monographs in Theoretical Computer Science. An EATCS Series)
The temporal logic of programs
SFCS '77 Proceedings of the 18th Annual Symposium on Foundations of Computer Science
Domain theory: practice and theories a discussion of possible research topics
ICTAC'07 Proceedings of the 4th international conference on Theoretical aspects of computing
Modeling in Event-B: System and Software Engineering
Modeling in Event-B: System and Software Engineering
Application logic patterns reusable elements of user-system interaction
MODELS'10 Proceedings of the 13th international conference on Model driven engineering languages and systems: Part I
SFM'12 Proceedings of the 12th international conference on Formal Methods for the Design of Computer, Communication, and Software Systems: formal methods for model-driven engineering
Hi-index | 0.00 |
We introduce the notion of domain descriptions (D) in order to ensure that software (S) is right and is the right software, that is, that it is correct with respect to written requirements (R) and that it meets customer expectations (D). That is, before software can be designed (S) we must make sure we understand the requirements (R), and before we can express the requirements we must make sure that we understand the application domain (D): the area of activity of the users of the required software, before and after installment of such software. We shall outline what we mean by informal, narrative and formal domain descriptions, and how one can systematically — albeit not (in fact: never) automatically — go from domain descriptions to requirements prescriptions. As it seems that domain engineering is a relatively new discipline within software engineering we shall mostly focus on domain engineering and discuss its necessity. The paper will show some formulas but they are really not meant to be read, let alone understood. They are merely there to bring home the point: Professional software engineering, like other professional engineering branches rely on and use mathematics. And it is all very simple to learn and practise anyway ! We end this paper with, to some, perhaps, controversial remarks: Requirements engineering, as pursued today, researched, taught and practised, is outdated, is thus fundamentally flawed. We shall justify this claim.