You are here: SDM HOME > TOPICS

[Return to Previous topic] [Return to Overview] [Go to Next topic]

Formal Methodologies: Build it and they will come

This lecture will introduce some examples of formal methodologies; formal software design methods do not recognize any distinction between software and programs. By removing any distinction between software and programs, the formal strand seeks to introduce mathematical rigour into both program and software design.

This lecture is also the first lecture in where you will be expected to produce a seminar paper in time for the scheduled seminar session next week.

Formal Methods - a summary

From a philosophical viewpoint, formal methods adopt a realist ontology and rationalist epistemology, that is they assume there is a correct answer to any particular problem and that this can be discovered by the application of logic and reason. They treat software and program descriptions as though they were equivalent; assuming both to be complete and closed descriptions of an underling reality. Making this assumption creates a seamless equivalence between the software (program) description, the representation in the designers mind and the underlying aspects of reality that are being modelled.

Formal Methods - pros and cons


Software design methods in the formal strand reason about software and programs using the same tools and techniques. This should mean that software and program design can be brought together to streamline the design process as a whole and, as these tools are built on logic, increase the designers confidence in the accuracy of the final design. Program design methods can usually assume the description is closed, however, software design methods must deal with partly open descriptions, which can be a significant problem for methods in the formal strand.


Formal methods provide a set of tools for reasoning about a description, but offer little assistance in actually arriving at that description. Consequently, designers often find it difficult to apply these methods as they give them little assistance in working with anything other than complete and closed descriptions. Some argue that this is in fact an advantage because it prevents 'fuzzy thinking'; some go as far as to claim that the principal benefit of using formal methods is that they focus the designer's attention on the problem of validation.




On-line Articles

A practical example

Web pages

Lecture notes

The notes for this session are available as a presentation (in pdf format) - lecture notes for session 4

[Return to Previous topic] [Return to Overview] [Go to Next topic]