Integrating Formal Methods in XP—A Conceptual Solution

Abstract

Formal methods can be used at any stage of product development process to improve the software quality and efficiency using mathematical models for analysis and verification. From last decade, researchers and practitioners are trying to establish successful transfer of practices of formal methods into industrial process development. In the last couple of years, numerous analysis approaches and formal methods have been applied in different settings to improve software quality. In today’s highly competitive software development industry, companies are striving to deliver fast with low cost and improve quality solutions and agile methodologies have proved their efficiency in acquiring these. Here, we will present an integration of formal methods, specifications and verification practices in the most renowned process development methodology of agile i.e. extreme programming with a conceptual solution. That leads towards the development of a complete formalized XP process in future. This will help the practitioners to understand the effectiveness of formal methods using in agile methods that can be helpful in utilizing the benefits of formal methods in industry.

Share and Cite:

Shafiq, S. and Minhas, N. (2014) Integrating Formal Methods in XP—A Conceptual Solution. Journal of Software Engineering and Applications, 7, 299-310. doi: 10.4236/jsea.2014.74029.

Conflicts of Interest

The authors declare no conflicts of interest.

References

[1] Boca, P., Bowen, J.P. and Siddiqi, J.I. (2010) Formal Methods: State of the Art and New Directions. Springer-Verlag London Limited, Berlin. http://dx.doi.org/10.1007/978-1-84882-736-3
[2] Woodcock, J., Larsen, P.G., Bicarregui, J. and Fitzgerald, J. (2009) Formal Methods: Practice and Experience. ACM Computing Surveys, 41, 1-36. http://dx.doi.org/10.1145/1592434.1592436
[3] Wolff, S. (2012) Scrum Goes Formal: Agile Methods for Safety-Critical System. 2012 Formal Methods in Software Engineering: Rigorous and Agile Approaches (FormSERA), Zurich, 2 June 2012, 23-29. http://dx.doi.org/10.1109/MC.2009.284
[4] Schwaber, K. (2004) Agile Project Management with Scrum. Prentice Hall, Upper Saddle River.
[5] Black, S., Boca, P.P., Bowen, J.P., Gorman, J. and Hinchey, M. (2009) Formal versus Agile: Survival of the Fittest? IEEE Computer, 42, 37-45.
[6] Larsen, P.G., Fitzgerald, J. and Wolff, S. (2010) Are Formal Methods Ready for Agility? A Reality Check. 2nd International Workshop on Formal Methods and Agile Methods, Pisa, 17 September 2010, 13 Pages.
[7] Johnson, S.C. and Butler, R.W. (2001) Formal Methods. CRC Press LLC, Boca Raton.
[8] Grunerand, S. and Rumpe, B. (2010) GI-Edition. Lecture Notes in Informatics. 2nd International Workshop on Formal Methods and Agile Methods, Vol. 179, 13-25.
[9] Beck, K. (1999) Extreme Programming Explained. Addison-Wesley, Boston.
[10] Beck, K. (2003) Test-Driven Development. Addison-Wesley, Boston.
[11] (2013) Extreme Programming: A Gentle Introduction. http://www.extremeprogramming.org/.
[12] Wood, W.A. and Kleb, W.L. (2003 Exploring XP for Scientific Research. IEEE Software, 20, 30-36.
[13] Dijkstra, E.W. (1972) Notes on Structured Programming, Structured Programming. In: Dahl, O.-J., Hoare, C.A.R. and Dijkstra, E.W., Eds., Structured Programming, Academic Press, London, 1-82.
[14] Dijkstra, E.W. (1968) A Constructive Approach to the Problem of Program Correctness. BIT Numerical Mathematics, 8, 174-186. http://dx.doi.org/10.1007/BF01933419
[15] Kemmerer, R.A. (1990) Integrating Formal Methods into the Development Process. IEEE Software, 7, 37-50. http://dx.doi.org/10.1109/52.57891
[16] Eleftherakis, G. and Cowling, A.J. (2003) An Agile Formal Development Methodology. Proceedings of 1st South-East European Workshop on Formal Methods, SEEFM’03, Thessaloniki, 20 November 2003, 36-47.
[17] Ostroff, J.S., Makalsky, D. and Paige, R.F. (2004) Agile Specification-Driven Development. Lecture Notes in Computer Science, 3092, 104-112.
[18] Broy, M. and Slotosch, O. (1998) Enriching the Software Development Process by Formal Methods. Lecture Notes in Computer Science, 1641, 44-61.
[19] Liu, S. and Sun, Y. (1995) Structured Methodology + Object-Oriented Methodology + Formal Methods: Methodology of SOFL. Proceedings of First IEEE International Conference on Engineering of Complex Computer Systems, Ft. Landerdale, 6-10 November 1995, 137-144.
[20] Liu, S. (2009) An Approach to Applying SOFL for Agile Process and Its Application in Developing a Test Support Tool. Innovations in Systems and Software Engineering, 6, 137-143.
http://dx.doi.org/10.1007/s11334-009-0114-3
[21] Suhaib, S.M., Mathaikutty, D.A., Shukla, S.K. and Berner, D. (2005) XFM: An Incremental Methodology for Developing Formal Models. ACM Transactions on Design Automation of Electronic Systems, 10, 589-609. http://dx.doi.org/10.1145/1109118.1109120
[22] Schwaber, K. and Beedle, M. (2002) Agile Software Development with Scrum. Prentice-Hall, Upper Saddle River.
[23] Karlstr?m, D. (2002) Introducing Extreme Programming—An Experience Report. Proceedings 3rd International Conference on Extreme Programming and Agile Processes in Software Engineering, Alghero.
[24] Holstrom, H., Fixgerald, B., Agerfalk, P.J. and Conchuir, E.O. (2006) Agile Practices Reduce Distance in Global Software Development. Information and Systems Management, 23, 7-18.
http://dx.doi.org/10.1201/1078.10580530/46108.23.3.20060601/93703.2
[25] ISO TC 22 SC3 WG16 Functional Safety, Convenor Ch. Jung. Introduction in ISO WD26262 (EUROFORM-Seminar, April 2007).
[26] Drobka, J., Noftzd, D. and Raghu, R. (2004) Piloting XP on Four Mission Critical Projects. IEEE Software, 21, 70-75. http://dx.doi.org/10.1109/MS.2004.47
[27] Wils, A., Baelen, S., Holvoet, T. and De Vlamincs, K. (2006) Agility in the Avionics Software World. 7th International Conference, XP 2006, Oulu, 17-22 June 2006, 123-132.
[28] Boehm, B. and Turner, R. (2003) Balancing Agility and Discipline. Addison Wesley, Boston.
[29] Pikkarainen, M. and Mantyniemi, A. (2006) An Approach for Using CMMI in Agile Software Development Assessments: Experiences of Three Case Studies. 6th International SPICE Conference, Luxembourg, 4-5 May 2006, 1-11.
[30] Herranz, á. and Moreno-Navarro, J.J. (2003) Formal Agility, How Much of Each? Taller de Metodologías ágiles en el Desar-Rollo del Software, VIII Jornadas de Ingeniería del Software Bases de Datos (JISBD 2003), Grupo ISSI, 47-51.
[31] Thomson, C. and Holcombe, M. (2005) Using a Formal Method to Model Software Design in XP Projects. Annals of Mathematics, Computing and Tele-Informatics, 1, 44-53.
[32] Thomson, C. and Holcombe, W. (2003) Applying XP Ideas Formally: The Story Card and Extreme X-Machines. 1st South-East European Workshop on Formal Methods, Thessaloniki, 21-23 November 2003, 57-71.
[33] Ostroff, J.S., Makalsky, D. and Paige, R.F. (2004) Agile Specification-Driven Development. Lecture Notes in Computer Science, 3092, 104-112.
[34] Canos, J., Jaen, J., Carsi, J. and Penades, M. (2003) On the Use of XP in the Development of Safety-Oriented Hypermedia Systems. Proceedings of XP 2003, Genova, 25-29 May 2003, 201-203.
[35] Baumeister, H. (2002) Formal Methods and Extreme Programming. Proceedings of Workshop on Evolutionary Formal Software Development, in Conjunction with FME, Copenhagen, 189-193, 1-2.
[36] Holcombe, M. and Thomson, C. (2007) 20 Years of Teaching and 7 Years of Research: Research When You Teach. Proceedings of the 3rd South-East European Workshop on Formal Methods, Thessaloniki, 30 November-1 December 2007, 1-13.
[37] Herranz, A. and Moreno-Navarro, J.J. (2003) Formal Extreme (and Extremely Formal) Programming. In: Marchesi, M. and Succi, G., Eds., 4th International Conference on Extreme Programming and Agile Processes in Software Engineering, XP 2003, LNCS, No. 2675, Genova, 88-96.

Copyright © 2023 by authors and Scientific Research Publishing Inc.

Creative Commons License

This work and the related PDF file are licensed under a Creative Commons Attribution 4.0 International License.