Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Abrial, J.-R.: The B Book: Assigning Programs to Meanings. Tracts in Theoretical Computer Science. Cambridge University Press, Cambridge (1996)
Abrial, J.-R.: Modeling in Event-B: System and Software Engineering. Cambridge University Press, Cambridge (2009)
Araki, K., Galloway, A., Taguchi, K. (eds.): IFM 1999: Integrated Formal Methods. LNCS, vol. 1945. Springer, Heidelberg (1999)
Bjørner, D.: Software Engineering. Abstraction and Modelling. Texts in Theoretical Computer Science, the EATCS Series, vol. 1. Springer, Heidelberg (2006)
Bjørner, D.: Software Engineering. In: Specification of Systems and Languages, ch. 12-14 are primarily authored by Christian Krog Madsen. Specification of Systems and Languages. Texts in Theoretical Computer Science, the EATCS Series, vol. 2. Springer, Heidelberg (2006)
Bjørner, D.: Software Engineering. In: Domains, Requirements and Software Design. Texts in Theoretical Computer Science, the EATCS Series, vol. 3. Springer, Heidelberg (2006)
Bjørner, D.: From Domains to Requirements: The Triptych Approach to Software Engineering. Submitted to Springer for evaluation in 2009. Slightly incomplete draft version, approximately XXVII+160+25 pages (frontmatter, main text, appendices) (2009), http://www.imm.dtu/~db/de+re-p.pdf
Bjørner, D.: Domain Theory: Practice and Theories, Discussion of Possible Research Topics. In: Jones, C.B., Liu, Z., Woodcock, J. (eds.) ICTAC 2007. LNCS, vol. 4711, pp. 1–17. Springer, Heidelberg (2007)
Bjørner, D., Henson, M.C. (eds.): Logics of Specification Languages. EATCS Monograph in Theoretical Computer Science. Springer, Heidelberg (2008)
Bjorner, D., Jones, C.B. (eds.): The Vienna Development Method: The Meta-Language. LNCS, vol. 61. Springer, Heidelberg (1978)
Bjørner, D., Jones, C.B. (eds.): Formal Specification and Software Development. Prentice-Hall, Englewood Cliffs (1982)
Bjørner, D.: On Mereologies in Computing Science Festschrift for Tony Hoare. In: Roscoe, B. (ed.) History of Computing. Springer, UK (2009)
Bjørner, D.: An Emerging Domain Science – A Rôle for Stanisław Leśniewski’s Mereology and Bertrand Russell’s Philosophy of Logical Atomism. In: Higher-order and Symbolic Computation. Springer, Heidelberg (2009)
Boiten, E.A., Derrick, J., Smith, G.P. (eds.): IFM 2004. LNCS, vol. 2999. Springer, Heidelberg (2004)
Butler, M., Petre, L., Sere, K. (eds.): IFM 2002. LNCS, vol. 2335. Springer, Heidelberg (2002)
Cansell, D., Méry, D.: Logical Foundations of the B Method. Computing and Informatics 22(1-2) (2003)
Damm, W., Harel, D.: LSCs: Breathing life into Message Sequence Charts. Formal Methods in System Design 19, 45–80 (2001); Early version appeared as Weizmann Institute Tech. Report CS98-09, April 1998. An abridged version appeared in Proc. 3rd IFIP Int. Conf. on Formal Methods for Open Object-based Distributed Systems (FMOODS 1999), pp. 293–312. Kluwer, Dordrecht (1999)
Fitzgerald, J.S.: The Typed Logic of Partial Functions and the Vienna Development Method. In: Logics of Specification Languages [9], pp. 453–487. Springer, Heidelberg (2008)
Fitzgerald, J.S., Larsen, P.G.: Developing Software using VDM-SL. Cambridge University Press, Cambridge (1997)
George, C., Haxthausen, A.E.: The Logic of the RAISE Specification Language. In: Logics of Specification Languages [9]. Springer, Heidelberg (2008)
George, C.W., Haff, P., Havelund, K., Haxthausen, A.E., Milne, R., Nielsen, C.B., Prehn, S., Wagner, K.R.: The RAISE Specification Language. The BCS Practitioner Series. Prentice-Hall, Hemel Hampstead (1992)
George, C.W., Haxthausen, A.E.: The Logic of the RAISE Specification Language. Computing and Informatics 22(1-2) (2003)
George, C.W., Haxthausen, A.E., Hughes, S., Milne, R., Prehn, S., Pedersen, J.S.: The RAISE Method. The BCS Practitioner Series. Prentice-Hall, Hemel Hampstead (1995)
Grieskamp, W., Santen, T., Stoddart, B. (eds.): IFM 2000. LNCS, vol. 1945. Springer, Heidelberg (2000)
Hansen, M.R.: Duration Calculus. In: Logics of Specification Languages [9], pp. 299–347. Springer, Heidelberg (2008)
Harel, D.: Statecharts: A visual formalism for complex systems. Science of Computer Programming 8(3), 231–274 (1987)
Harel, D., Marelly, R.: Come, Let’s Play – Scenario-Based Programming Using LSCs and the Play-Engine. Springer, Heidelberg (2003)
Harel, D., Naamad, A.: The STATEMATE semantics of Statecharts. ACM Transactions on Software Engineering and Methodology (TOSEM) 5(4), 293–333 (1996)
Henson, M.C., Deutsch, M., Reeves, S.: Z Logic and Its Applications. In: Logics of Specification Languages [9], pp. 489–596. Springer, Heidelberg (2008)
Henson, M.C., Reeves, S., Bowen, J.P.: Z Logic and its Consequences. Computing and Informatics 22(1-2) (2003)
Hoare, T.: Communicating Sequential Processes. C.A.R. Hoare Series in Computer Science. Prentice-Hall International, Englewood Cliffs (1985)
Hoare, T.: Communicating Sequential Processes. Published electronically (2004), http://www.usingcsp.com/cspbook.pdf Second edition of [31], http://www.usingcsp.com/
ITU-T. CCITT Recommendation Z.120: Message Sequence Chart (MSC) (1992)
ITU-T. ITU-T Recommendation Z.120: Message Sequence Chart (MSC)(1996)
ITU-T. ITU-T Recommendation Z.120: Message Sequence Chart (MSC)(1999)
Jackson, D.: Software Abstractions Logic, Language, and Analysis. The MIT Press, Cambridge (2006)
Jensen, K.: Coloured Petri Nets. In: Kurt Jensen. EATCS Monographs in Theoretical Computer Science, vol. 1: Basic Concepts (234 pages + xii), vol. 2: Analysis Methods (174 pages + x), vol. 3: Practical Use (265 pages + xi). Springer, Heidelberg (1985); revised and corrected second version (1997)
Lamport, L.: The Temporal Logic of Actions. Transactions on Programming Languages and Systems 16(3), 872–923 (1995)
Lamport, L.: Specifying Systems. Addison–Wesley, Boston (2002)
Manna, Z., Pnueli, A.: The Temporal Logic of Reactive Systems: Specifications. Addison Wesley, Reading (1991)
Manna, Z., Pnueli, A.: The Temporal Logic of Reactive Systems: Safety. Addison Wesley, Reading (1995)
Merz, S.: On the Logic of TLA+. Computing and Informatics 22(1-2) (2003)
Merz, S.: The Specification Language TLA + . In: Merz, S. (ed.) Logics of Specification Languages [9], pp. 401–451. Springer, Heidelberg (2008)
Mossakowski, T., Haxthausen, A., Sannella, D., Tarlecki, A.: Casl – the Common Algebraic Specification Language. In: Logics of Specification Languages [9], pp. 241–298. Springer, Heidelberg (2008)
Mossakowski, T., Haxthausen, A.E., Sanella, D., Tarlecki, A.: CASL — The Common Algebraic Specification Language: Semantics and Proof Theory. Computing and Informatics 22(1-2) (2003)
Moszkowski, B.C.: Executing Temporal Logic Programs. Cambridge University Press, Cambridge (1986)
Petri, C.A.: Kommunikation mit Automaten. Institut für Instrumentelle Mathematik, Schriften des IIM Nr. 2, Bonn (1962)
Pnueli, A.: The Temporal Logic of Programs. In: Proceedings of the 18th IEEE Symposium on Foundations of Computer Science, IEEE CS FoCS, Providence, Rhode Island, pp. 46–57. IEEE CS, Los Alamitos (1977)
Reisig, W.: A Primer in Petri Net Design, 120 pages. Springer, Heidelberg (1992)
Reisig, W.: Petri Nets: An Introduction. EATCS Monographs in Theoretical Computer Science, vol. 4. Springer, Heidelberg (1985)
Reisig, W.: Elements of Distributed Algorithms: Modelling and Analysis with Petri Nets, xi + 302 pages. Springer, Heidelberg (1998)
Reisig, W.: The Expressive Power of Abstract State Machines. Computing and Informatics 22(1-2) (2003)
Reisig, W.: Abstract State Machines for the Classroom. In: Logics of Specification Languages [9], pp. 15–46. Springer, Heidelberg (2008)
Romijn, J.M.T., Smith, G.P., van de Pol, J. (eds.): IFM 2005. LNCS, vol. 3771. Springer, Heidelberg (2005)
Roscoe, A.W.: Theory and Practice of Concurrency. C.A.R. Hoare Series in Computer Science. Prentice-Hall, Englewood Cliffs (1997), http://www.comlab.ox.ac.uk/people/bill.roscoe/publications/68b.pdf
Schneider, S.: Concurrent and Real-time Systems — The CSP Approach. Worldwide Series in Computer Science. John Wiley & Sons, Ltd., Baffins Lane (2000)
Spivey, J.M.: Understanding Z: A Specification Language and its Formal Semantics. Cambridge Tracts in Theoretical Computer Science, vol. 3. Cambridge University Press, Cambridge (1988)
Spivey, J.M.: The Z Notation: A Reference Manual, 2nd edn. Prentice Hall International Series in Computer Science (1992)
Woodcock, J.C.P., Davies, J.: Using Z: Specification, Proof and Refinement. Prentice Hall International Series in Computer Science (1996)
Zhou, C.C., Hansen, M.R.: Duration Calculus: A Formal Approach to Real–time Systems. Monographs in Theoretical Computer Science. An EATCS Series. Springer, Heidelberg (2004)
Zhou, C.C., Anthony, C., Hoare, R.: A Calculus of Durations. Information Proc. Letters 40(5) (1992)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bjørner, D. (2010). Rôle of Domain Engineering in Software Development—Why Current Requirements Engineering Is Flawed !. In: Pnueli, A., Virbitskaite, I., Voronkov, A. (eds) Perspectives of Systems Informatics. PSI 2009. Lecture Notes in Computer Science, vol 5947. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-11486-1_2
Download citation
DOI: https://doi.org/10.1007/978-3-642-11486-1_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-11485-4
Online ISBN: 978-3-642-11486-1
eBook Packages: Computer ScienceComputer Science (R0)