Skip to main content

Rôle of Domain Engineering in Software Development—Why Current Requirements Engineering Is Flawed !

  • Conference paper
Book cover Perspectives of Systems Informatics (PSI 2009)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5947))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abrial, J.-R.: The B Book: Assigning Programs to Meanings. Tracts in Theoretical Computer Science. Cambridge University Press, Cambridge (1996)

    MATH  Google Scholar 

  2. Abrial, J.-R.: Modeling in Event-B: System and Software Engineering. Cambridge University Press, Cambridge (2009)

    Google Scholar 

  3. Araki, K., Galloway, A., Taguchi, K. (eds.): IFM 1999: Integrated Formal Methods. LNCS, vol. 1945. Springer, Heidelberg (1999)

    Google Scholar 

  4. Bjørner, D.: Software Engineering. Abstraction and Modelling. Texts in Theoretical Computer Science, the EATCS Series, vol. 1. Springer, Heidelberg (2006)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. Bjørner, D.: Software Engineering. In: Domains, Requirements and Software Design. Texts in Theoretical Computer Science, the EATCS Series, vol. 3. Springer, Heidelberg (2006)

    Google Scholar 

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

  8. 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)

    Chapter  Google Scholar 

  9. Bjørner, D., Henson, M.C. (eds.): Logics of Specification Languages. EATCS Monograph in Theoretical Computer Science. Springer, Heidelberg (2008)

    Google Scholar 

  10. Bjorner, D., Jones, C.B. (eds.): The Vienna Development Method: The Meta-Language. LNCS, vol. 61. Springer, Heidelberg (1978)

    MATH  Google Scholar 

  11. Bjørner, D., Jones, C.B. (eds.): Formal Specification and Software Development. Prentice-Hall, Englewood Cliffs (1982)

    MATH  Google Scholar 

  12. Bjørner, D.: On Mereologies in Computing Science Festschrift for Tony Hoare. In: Roscoe, B. (ed.) History of Computing. Springer, UK (2009)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. Boiten, E.A., Derrick, J., Smith, G.P. (eds.): IFM 2004. LNCS, vol. 2999. Springer, Heidelberg (2004)

    MATH  Google Scholar 

  15. Butler, M., Petre, L., Sere, K. (eds.): IFM 2002. LNCS, vol. 2335. Springer, Heidelberg (2002)

    MATH  Google Scholar 

  16. Cansell, D., Méry, D.: Logical Foundations of the B Method. Computing and Informatics 22(1-2) (2003)

    Google Scholar 

  17. 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)

    Article  MATH  Google Scholar 

  18. 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)

    Chapter  Google Scholar 

  19. Fitzgerald, J.S., Larsen, P.G.: Developing Software using VDM-SL. Cambridge University Press, Cambridge (1997)

    Google Scholar 

  20. George, C., Haxthausen, A.E.: The Logic of the RAISE Specification Language. In: Logics of Specification Languages [9]. Springer, Heidelberg (2008)

    Google Scholar 

  21. 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)

    Google Scholar 

  22. George, C.W., Haxthausen, A.E.: The Logic of the RAISE Specification Language. Computing and Informatics 22(1-2) (2003)

    Google Scholar 

  23. 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)

    MATH  Google Scholar 

  24. Grieskamp, W., Santen, T., Stoddart, B. (eds.): IFM 2000. LNCS, vol. 1945. Springer, Heidelberg (2000)

    MATH  Google Scholar 

  25. Hansen, M.R.: Duration Calculus. In: Logics of Specification Languages [9], pp. 299–347. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  26. Harel, D.: Statecharts: A visual formalism for complex systems. Science of Computer Programming 8(3), 231–274 (1987)

    Article  MATH  MathSciNet  Google Scholar 

  27. Harel, D., Marelly, R.: Come, Let’s Play – Scenario-Based Programming Using LSCs and the Play-Engine. Springer, Heidelberg (2003)

    Google Scholar 

  28. Harel, D., Naamad, A.: The STATEMATE semantics of Statecharts. ACM Transactions on Software Engineering and Methodology (TOSEM) 5(4), 293–333 (1996)

    Article  Google Scholar 

  29. Henson, M.C., Deutsch, M., Reeves, S.: Z Logic and Its Applications. In: Logics of Specification Languages [9], pp. 489–596. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  30. Henson, M.C., Reeves, S., Bowen, J.P.: Z Logic and its Consequences. Computing and Informatics 22(1-2) (2003)

    Google Scholar 

  31. Hoare, T.: Communicating Sequential Processes. C.A.R. Hoare Series in Computer Science. Prentice-Hall International, Englewood Cliffs (1985)

    MATH  Google Scholar 

  32. Hoare, T.: Communicating Sequential Processes. Published electronically (2004), http://www.usingcsp.com/cspbook.pdf Second edition of [31], http://www.usingcsp.com/

  33. ITU-T. CCITT Recommendation Z.120: Message Sequence Chart (MSC) (1992)

    Google Scholar 

  34. ITU-T. ITU-T Recommendation Z.120: Message Sequence Chart (MSC)(1996)

    Google Scholar 

  35. ITU-T. ITU-T Recommendation Z.120: Message Sequence Chart (MSC)(1999)

    Google Scholar 

  36. Jackson, D.: Software Abstractions Logic, Language, and Analysis. The MIT Press, Cambridge (2006)

    Google Scholar 

  37. 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)

    Google Scholar 

  38. Lamport, L.: The Temporal Logic of Actions. Transactions on Programming Languages and Systems 16(3), 872–923 (1995)

    Article  Google Scholar 

  39. Lamport, L.: Specifying Systems. Addison–Wesley, Boston (2002)

    Google Scholar 

  40. Manna, Z., Pnueli, A.: The Temporal Logic of Reactive Systems: Specifications. Addison Wesley, Reading (1991)

    MATH  Google Scholar 

  41. Manna, Z., Pnueli, A.: The Temporal Logic of Reactive Systems: Safety. Addison Wesley, Reading (1995)

    Google Scholar 

  42. Merz, S.: On the Logic of TLA+. Computing and Informatics 22(1-2) (2003)

    Google Scholar 

  43. Merz, S.: The Specification Language TLA + . In: Merz, S. (ed.) Logics of Specification Languages [9], pp. 401–451. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  44. 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)

    Chapter  Google Scholar 

  45. 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)

    Google Scholar 

  46. Moszkowski, B.C.: Executing Temporal Logic Programs. Cambridge University Press, Cambridge (1986)

    Google Scholar 

  47. Petri, C.A.: Kommunikation mit Automaten. Institut für Instrumentelle Mathematik, Schriften des IIM Nr. 2, Bonn (1962)

    Google Scholar 

  48. 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)

    Google Scholar 

  49. Reisig, W.: A Primer in Petri Net Design, 120 pages. Springer, Heidelberg (1992)

    MATH  Google Scholar 

  50. Reisig, W.: Petri Nets: An Introduction. EATCS Monographs in Theoretical Computer Science, vol. 4. Springer, Heidelberg (1985)

    MATH  Google Scholar 

  51. Reisig, W.: Elements of Distributed Algorithms: Modelling and Analysis with Petri Nets, xi + 302 pages. Springer, Heidelberg (1998)

    MATH  Google Scholar 

  52. Reisig, W.: The Expressive Power of Abstract State Machines. Computing and Informatics 22(1-2) (2003)

    Google Scholar 

  53. Reisig, W.: Abstract State Machines for the Classroom. In: Logics of Specification Languages [9], pp. 15–46. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  54. Romijn, J.M.T., Smith, G.P., van de Pol, J. (eds.): IFM 2005. LNCS, vol. 3771. Springer, Heidelberg (2005)

    MATH  Google Scholar 

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

    Google Scholar 

  56. Schneider, S.: Concurrent and Real-time Systems — The CSP Approach. Worldwide Series in Computer Science. John Wiley & Sons, Ltd., Baffins Lane (2000)

    Google Scholar 

  57. 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)

    MATH  Google Scholar 

  58. Spivey, J.M.: The Z Notation: A Reference Manual, 2nd edn. Prentice Hall International Series in Computer Science (1992)

    Google Scholar 

  59. Woodcock, J.C.P., Davies, J.: Using Z: Specification, Proof and Refinement. Prentice Hall International Series in Computer Science (1996)

    Google Scholar 

  60. 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)

    MATH  Google Scholar 

  61. Zhou, C.C., Anthony, C., Hoare, R.: A Calculus of Durations. Information Proc. Letters 40(5) (1992)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics