Empirical Software Engineering

, Volume 19, Issue 4, pp 1169–1194 | Cite as

Experiences with incorporating formal techniques into industrial practice

  • Ammar OsaiweranEmail author
  • Mathijs Schuts
  • Jozef Hooman
Experience Report


We report about experiences at Philips Healthcare with component-based development supported by formal techniques. The formal Analytical Software Design (ASD) approach of the company Verum has been incorporated into the industrial workflow. The commercial tool ASD:Suite supports both compositional verification and code generation for control components. For other components test-driven development has been used. We discuss the results of these combined techniques in a project which developed the power control service of an interventional X-ray system.


Component-based development Formal methods Analytical software design Test-driven development Software quality 



We would like to thank the anonymous reviewers for their useful comments on the text of this article.


  1. Abrial J-R (1996) The B-book: assigning programs to meanings. Cambridge University Press, New York, NY, USACrossRefzbMATHGoogle Scholar
  2. Beck K (2002) Test driven development: by example. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USAGoogle Scholar
  3. Bicarregui J, Fitzgerald J, Larsen PG, Woodcock J (2009) Industrial practice in formal methods: a review. In: Cavalcanti A, Dams D (eds) FM 2009: formal methods. Second World Congress, Lecture Notes in Computer Science, vol 5850. Springer-Verlag, pp 810–813Google Scholar
  4. Broadfoot G (2005) Introducing formal methods into industry using cleanroom and CSP. Dedic Syst Mag, Tools Q1:1–13Google Scholar
  5. Broadfoot GH, Broadfoot PJ (2003) Academia and industry meet: some experiences of formal methods in practice. In: 10th Asia-Pacific software engineering conference (APSEC 2003), pp 49–58Google Scholar
  6. ClearSy, Atelier B (2011) Industrial tool supporting the B method. Accessed Oct 2012
  7. CSK Systems Corporation (2011) VDMTools. Industrial tool supporting VDM+ +. Accessed Oct 2012
  8. Esterel Technologies (2011) SCADE Suite. Model based development environment dedicated to critical embedded software. Accessed Oct 2012
  9. Fitzgerald J, Larsen PG, Mukherjee P, Plat N, Verhoef M (2005) Validated designs for object-oriented systems. Springer, New York. Examples are available at zbMATHGoogle Scholar
  10. Formal Systems (2010) (Europe) Ltd and Oxford University computing laboratory: failures-divergence refinement – FDR2 user manual, 9th ednGoogle Scholar
  11. Formal Systems (2011) (Europe) Ltd. FDR2 model checker. Accessed Oct 2012
  12. Groote JF, Osaiweran A, Wesselius JH (2011) Analyzing the effects of formal methods on the development of industrial control software. In: Proceedings of the 27th IEEE ICSM 2011. Williamsburg, VA, USA, pp 467–472Google Scholar
  13. Groote JF, Osaiweran A, Wesselius JH (2012) Experience report on developing the front-end client unit under the control of formal methods. In: Proceedings of the 27th ACM symposium on applied computing (SAC’12), ACM, pp 1183–1190Google Scholar
  14. Hoare CAR (1985) Communicating sequential processes. Prentice-HallGoogle Scholar
  15. Hooman J, Huis in ’t Veld R, Schuts M (2011) Experiences with a compositional model checker in the healthcare domain. In: FHIES 2011, LNCS 7151, Springer-Verlag, pp 93–110, 2012 In: Pre-symposium Proceedings foundations of health information engineering and systems (FHIES 2011), pp 92–109. UNU-IIST Report 454, McSCert Report 5.
  16. Hooman J (1991) Specification and compositional verification of real-time systems. Lecture notes in computer science, vol 558. SpringerGoogle Scholar
  17. Hopcroft PJ, Broadfoot GH (2005) Combining the box structure development method and CSP for software development. Electron Notes Theor Comp Sci 128(6):127–144CrossRefGoogle Scholar
  18. IBM ClearCase (2011) Accessed Oct 2012
  19. Linger RC (1994) Cleanroom process model. IEEE Softw 11(2):50–58CrossRefGoogle Scholar
  20. McConnell S (2004) Code complete, 2nd edn. Microsoft Press, Redmond, WA, USAGoogle Scholar
  21. Mills HD (1988) Stepwise refinement and verification in box-structured systems. Comput 21:23–36CrossRefGoogle Scholar
  22. Osaiweran A, Schuts M, Hooman J, Wesselius JH (2012) Incorporating formal techniques into industrial practice: an experience report. In: Proceedings of the 9th International workshop on formal engineering approaches to software components and architectures (FESCA’12) ENTCS (pages in press)Google Scholar
  23. Osaiweran A, Groote JF, Schuts M, Hooman J, van Rijnsoever BJ (2012) Evaluating the effect of formal techniques in industry. Computer Science Report No. 12–13. Eindhoven: Technische Universiteit Eindhoven, pp 21Google Scholar
  24. Prowell S, Trammell C, Linger R, Poore J (1999) Cleanroom software engineering: technology and process. Addison-WesleyGoogle Scholar
  25. Prowell SJ, Poore JH (2003) Foundations of sequence-based software specification. IEEE Trans Softw Eng 29:417–429CrossRefGoogle Scholar
  26. Schuts M (2010) Improving software development. Masters thesis, Radboud University Nijmegen, The NetherlandsGoogle Scholar
  27. Stellman A, Greene J (2005) Applied software project management. O’Reilly MediaGoogle Scholar
  28. TIOBE homepage (2011) Accessed Oct 2012
  29. Verum homepage (2011) Accessed Oct 2012
  30. Woodcock J, Larsen PG, Bicarregui J, Fitzgerald J (2009) Formal methods: practice and experience. ACM Comput Surv 41(4):1–36CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2013

Authors and Affiliations

  1. 1.Eindhoven University of TechnologyEindhovenThe Netherlands
  2. 2.Philips HealthcareBestThe Netherlands
  3. 3.Embedded Systems Innovation by TNORadboud University NijmegenNijmegenThe Netherlands

Personalised recommendations