Formal Methods

Your constantly-updated definition of Formal Methods and collection of videos and articles.
Be a conversation starter: Share this page and inspire others!

211 Shares
Save

Get 1 Powerful Email Each Week

Join 313,907 subscribers.

What are Formal Methods?

Formal methods are techniques used to model complex systems as mathematical entities. By building a mathematically rigorous model of a complex system, designers can not only verify the system’s properties in a more thorough fashion (than they could via empirical testing) but also use mathematical proof as a complement to system testing so as to ensure correct behavior.

Formal methods adopt a three-step approach to modeling and evaluating systems. During formal specification, an engineer or designer rigorously defines a system using a modeling language—typically by using a formal, mathematical syntax and semantics that eliminate imprecision and ambiguity. This is similar to writing down system specifications, though not in plain English. From there, based on the specification, the engineers develop a set of theorems about the behavior of a system. These theorems are verified through mathematical proofs—to ensure that the system behavior is logically consistent and is, indeed, the desirable one. As this allows designers and engineers to discover flaws in usability even before the design gets implemented into code, it prevents costly errors from emerging in the later stages of development. Finally, once the model is specified and verified, implementation can begin via converting the specification into code.

Formal methods have many advantages: they help disambiguate system specifications and articulate implicit assumptions. They also expose flaws in system requirements, and their rigor enables a better understanding of the problem. Because they use a formal language, many colleagues can verify the specifications independently—thereby solving errors early on in the development process. However, formal methods cannot fully replace standard quality assurance methods. This is why they are just a complementary technique in system design.

Earn a Gift, Answer a Short Quiz!

1
2
3
4
1
2
3
4
Question 1
Question 2
Question 3
Get Your Gift

Question 1

Why are formal methods used in system design?

1 point towards your gift

  • To verify system behavior through mathematical proofs.
  • To allow systems to evolve without testing.
  • To speed up the coding process by skipping specification.

Question 2

What is the purpose of formal specification in formal methods?

1 point towards your gift

  • To describe the system in plain language for users.
  • To define a system mathematically and eliminate ambiguity.
  • To focus on the design's visual appearance.

Question 3

What is one major benefit of applying formal methods during the early design phase?

1 point towards your gift

  • It guarantees that no changes will be needed later.
  • It helps identify design flaws before implementation, saving time and cost.
  • It replaces the need for user testing completely.

All Free IxDF Articles on Formal Methods

Read full article
The Three Types of Formal Methods of Human Computer Interaction - Article hero image

The Three Types of Formal Methods of Human Computer Interaction

"Formal methods" sounds kind of scary but it in reality it’s a way of saying; “the system with which we record ideas/information/etc.” and that’s rather less scary. In Human Computer Interaction (HCI) there are a multitude of formal methods, in use, to record ideas and other types of information. To

Social shares
758
Published
Read Article

The Three Types of Formal Methods of Human Computer Interaction

The Three Types of Formal Methods of Human Computer Interaction

"Formal methods" sounds kind of scary but it in reality it’s a way of saying; “the system with which we record ideas/information/etc.” and that’s rather less scary. In Human Computer Interaction (HCI) there are a multitude of formal methods, in use, to record ideas and other types of information. Today, we’ll take a look at the three main types of formal method and then we may look at the methods themselves in more detail in another article at a later date.

The Three Types of Formal Methods for HCI

Users

It perhaps comes as no surprise that there are formal methods dedicated to capturing what goes on at the user-level. This is of course, the reason that we all do what we do. Without users any HCI (or indeed User Interface/UI) work is wasted. If no-one uses the product; who cares what it does? There’s a time and a place for theory but once we’re doing design work – it’s not about theory it’s about practice.



What may come as a bit of a surprise is there are no commonly used formal methods for dealing with groups of users at higher levels. Use there are task-modelling systems, for example, which deal with more than one user but there are no in depth formal methods for social-level modelling or demographic-level modelling.

Systems

If you have a formal method for documenting the user’s approach to a product; you also need a method for documenting the system level too. That is not just the user's interaction with that system but what happens during that interaction "out of sight" of the user. Choosing to represent the system rather than the user does not mean that we have not taken the user into account; it’s rather that we sometimes need to document what is happening and why in different ways. This also gives us the opportunity to examine the back-end of the model as well as the front-end.

World

This might be better described as contextual or environmental; it’s often important to examine the physical context of a user’s interaction with a product. It’s all well and good designing a system to make it easier for someone in a wheelchair to use a computer but if in the real work environment; that computer is not positioned in a wheelchair accessible zone – it’s not going to deliver the benefits that we hope for. It's important to understand where and how our systems are used not just the people who use them.



We may also want to model user flow for systems which will have large volumes of users; how will they get to the product? How will they leave? What incentives do they need to do this efficiently? And so on…

In Combination

Of course all of these formal methods can be used in combination but in general they will be used in different ways and at different levels in your system's documentation. If you want to learn more about Formal Methods and their use; you can find Alan J Dix’s book here. Alan’s a Computing Professor at Lancaster University in the UK.

References & Where to Learn More:

Header Image: Author/Copyright holder: aknottedcord.Copyright terms and licence: All rights reserved. Img

Course: “Human-Computer Interaction - The Foundations of UX Design”

Images: Header, HCI, Users, World

39% of Today's Skills Will Change by 2030

The World Economic Forum expects 39% of today's skills to be transformed or become outdated by 2030.

The good news is that jobs in UX / UI design and AI are among the fastest-growing professions globally.

Build Skills That Keep You Relevant

Privacy Settings

By using this site, you accept our Cookie Policy and Terms of Use.
Customize
Accept all

Be the One Who Inspires

People remember who shares great ideas.

Share on:

Academic Credibility — On Autopilot

Don't waste time googling citation formats. Just copy, paste and look legit in seconds.