Software engineering and formal methods

Mike Hinchey, Michael Jackson, Patrick Cousot, Byron Cook, Jonathan P. Bowen, Tiziana Margaria

Research output: Contribution to journalArticle


The software engineering community has applied formal methods to improve software reliability and dependability to specify, design, analyze, and implement a hardware or software system. The challenges while developing a formal model is met by experience accumulated in each particular product class and captured in a normal design discipline. Formal verification methods also include defining of semantics and specification of a complex systems. Abstract interpretation aids in reducing the complexity inherent in proving properties and correctness of complex software systems, resulting in automating reasoning. Computer-aided formal method engineering targets knowledge understanding and solves problems heterogeneously at a meta level, where whole methods and paradigms are combined.

Original languageEnglish (US)
Pages (from-to)54-59
Number of pages6
JournalCommunications of the ACM
Issue number9
StatePublished - Sep 1 2008

ASJC Scopus subject areas

  • Computer Science(all)

Fingerprint Dive into the research topics of 'Software engineering and formal methods'. Together they form a unique fingerprint.

  • Cite this

    Hinchey, M., Jackson, M., Cousot, P., Cook, B., Bowen, J. P., & Margaria, T. (2008). Software engineering and formal methods. Communications of the ACM, 51(9), 54-59.