Formal Specification Languages: Features, Challenges and Future Directions

  • Abstract
  • Keywords
  • References
  • PDF
  • Abstract

    Natural language is used as a popular way for Software Requirements Specification (SRS) to ensure successful communication between stakeholders. However, natural language suffers from ambiguity which motivated software community to devise Formal Specification Languages (FSLs) to state requirements precisely. Since the advent of FSLs, a heated debate among researchers and practioners was raised to judge on the practical use of FSLs in industry. In this research, a contemporary review is conducted to shed light upon the features, challenges and future directions of FSLs.



  • Keywords

    Requirements specification; formal specification, formal methods.

  • References

      [1] Agerholm, S., & Larsen, P. G. (1998). A lightweight approach to formal methods. In In International Workshop on Current Trends in Applied Formal Methods (pp. 168–183).

      [2] Alagar, V. S., & Periyasamy, K. (2011). Specification of software systems. (D. Gries & F. B. Schneider, Eds.) (2nd ed.). Springer Science & Business Media.

      [3] Alexander, P. (1995). Best of both worlds [formal and semi-formal software engineering]. IEEE Potentials, 14(5), 29–32.

      [4] Bollin, A., & Rauner-reithmayer, D. (2014). Formal specification comprehension: the art of reading and writing z. In In Proceedings of the 2nd FME Workshop on Formal Methods in Software Engineering (pp. 3–9). ACM.

      [5] Bourque, P., & Fairley, R. E. (2014). Guide to the Software Engineering Body of Knowledge (3.0). IEEE Computer Society Press.

      [6] Cataño, N. (2017). An empirical study on teaching formal methods to millennials. In In Proceedings of the 1st International Workshop on Software Engineering Curricula for Millennials (pp. 3–8). IEEE Press.

      [7] Clarke, E. M., & Wing, J. M. (1996). Formal methods: State of the art and future directions. ACM Computing Surveys (CSUR), 28(4), 626–643.

      [8] Diamantopoulos, T., Roth, M., Symeonidis, A., & Klein, E. (2017). Software requirements as an application domain for natural language processing. Language Resources and Evaluation, 51(2), 495–524.

      [9] Fraser, M. D., Kumar, K., & Vaishnavi, V. K. (1991). Informal and Formal Requirements Specification Languages: Bridging the Gap. IEEE Transactions on Software Engineering, 17(5), 454–466.

      [10] Huertas, C., Gómez-ruelas, M., Juárez-Ramírez, R., & Plata, H. (2011). A formal approach for measuring the lexical ambiguity degree in natural language requirement specification: Polysemes and Homonyms focused. In In Uncertainty reasoning and knowledge engineering (URKE), 2011 International Conference (pp. 115–118).

      [11] Hussain, A., & Mkpojiogu, E. O. (2016). Requirements: Towards an understanding on why software projects fail. In In AIP Conference Proceedings. AIP Publishing.

      [12] Hussain, A., Mkpojiogu, E. O., & Kamal, F. M. (2016). The role of requirements in the success or failure of software projects. International Review of Management and Marketing, 6, 306–311.

      [13] Jones, C. B. (1990). Systematic software development using VDM (2nd ed.). Englewood Cliffs: Prentice Hall.

      [14] Kassab, M., Neill, C., & Laplante, P. (2014). State of practice in requirements engineering: contemporary data. Innovations in Systems and Software Engineering, 10(4), 235–241.

      [15] Lamsweerde, A. Van. (2000). Formal Specification : a Roadmap. In In Proceedings of the Conference on the Future of Software Engineering (pp. 147–159). ACM.

      [16] Lee, S. (1992). A formal methodology for the specification of distributed systems from an object perspective. Louisiana State.

      [17] Mandrioli, D. (2015). On the heroism of really pursuing formal methods: title inspired by Dijkstra’s On the Cruelty of Really Teaching Computing Science. In In Proceedings of the Third FME Workshop on Formal Methods in Software Engineerin (pp. 1–5). IEEE Press.

      [18] Martin, B., Bogusch, R., Fraga, A., & Rudat, C. (2016). Bridging the Gap between Natural Language Requirements and Formal Specifications. In In REFSQ Workshops.

      [19] Meyer, B. (1993). On formalism in specifications. In Program Verification (pp. 155–189).

      [20] Olajubu, O. (2015). A textual domain specific language for user interface modelling. In In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering (pp. 1060–1062). ACM.

      [21] Pang, C., Pakonen, A., Buzhinsky, I., & Vyatkin, V. (2016). A study on user-friendly formal specification languages for requirements formalization. In In Industrial Informatics (INDIN), 2016 IEEE 14th International Conference (pp. 676–682). IEEE.

      [22] Pressman, R. S. (2010). Software engineering: a practitioner’s approach (7th ed.). Palgrave Macmillan.

      [23] Robie, M. A. M., Baharom, F., & Mohd, H. (2014). Functional requirements specification for e-tendering system using requirement template. In In Knowledge Management International Conference (KMICe), Langkawi, Malaysia.

      [24] Ronen, B. (2017). Excessive software development : Practices and penalties, 35, 13–27.

      [25] Ryan, K. (1993). The role of natural language in requirements engineering. In In Requirements Engineering, 1993., Proceedings of IEEE International Symposium (pp. 240–242).

      [26] Smith, G. (2012). The Object-Z specification language. Springer Science & Business Media.

      [27] Sommerville, I. (2010). Software Engineering: Pearson New International Edition. Pearson Education Limited.

      [28] Spivey, J. (1992). The Z notation : A Reference Manual. Prentice Hall International.

      [29] Szmuc, T., & Szpyrka, M. (2015). Formal methods—Support or scientific decoration in software development? In In Mixed Design of Integrated Circuits & Systems (MIXDES), 2015 22nd International Conference (pp. 24–31). IEEE.

      [30] Tse, T. H., & Pong, L. (1991). An examination of requirements specification languages. The Computer Journal, 34(2), 143–152.

      [31] Wang, X., & Miao, W. (2016). Automatic support for formal specification construction using pattern knowledge. In In Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD) (pp. 363–372).

      [32] Wiegers, K., & Beatty, J. (2013). Software requirements (3rd Editio). Pearson Education.

      [33] Wing, J. M. (1990). A specifier’s introduction to formal methods. Computer, 32(9), 8–22.

      [34] Woodcock, J. I. M., PETER GORM, L., Bicarregui, J., & JOHN, F. (2009). Formal Methods : Practice and Experience Engineering College of Aarhus. ACM Computing Surveys (CSUR), 41(4), 1–40.




Article ID: 22040
DOI: 10.14419/ijet.v7i4.19.22040

Copyright © 2012-2015 Science Publishing Corporation Inc. All rights reserved.