On the use of formal methods in software development

On the use of formal methods in software development - O n...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon
On The Use of FormM Methods in Software Development Dines Bjorner Dept. of Comp.Sci., Techn. Univ. of Denmark DK-2800 Lyngby, Denmark Invited Paper* Abstract We propose a total framework tbr the software devel- opment stages of specification (definition), design and coding. This framework is based on three cornerstones: (a) the concept of software development graphs which specify all the stages and steps of development; (b) the use of formal methods, in our case VDM, the Vienna Software Development Method, in all stages and steps of development; and (c) the clearly separate rSles of theoretical computer scientists, progroamners, software engineers, and development managers in all aspects of software development. Thus not only progralmnJng is formalised (ie. programs considered formal objects), but also development, its engineering and management (ie. the entire programming itself is also considered a formal object about which to reason). Personal Prelude I have been asked to relate 14 years of experience in "us- ing formalisms in software engineering". I have chosen to tackle this by proposing, as announced in the ab- stract, a total framework for the development of soft- ware. We identify as many of the equally important factors which enter into development and map each of these aspects onto our model for software development. We do not use formalisms for the sake of being just for- nml. We use formalisms (1) because they appear to help structure more finely the development, (2) because they are the primary means we know of to help guarantee *The Use of Formalisms in Software Engineering Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. correctness of software, (3)because developments that have used formalisms have been far more productive, by a 3-5 fold order of magnitude, than developments not using formalisms, and (4) because it is fun, including intellectually satisfying, to use formalism. An intrinsic part of the formalism (VDM) we have developed and used is abstraction. Abstraction in defining (specify- ing) software, but also abstraction in its design. That is: (1) first (specification) we abstract from any imple- mentation and concentrate only on the [properties of the] functions we wish to exhibit to the user; (2) then (abstract design) we abstract from _how the software achieves these functions by focusing our attention on what the conceptual software components compute; (3) then (concrete design) we abstractly describe how the software computes, before (4) we finally code the soft- ware. Abstraction, and at these various levels, helps (1) "divide and conquer" the [seeming intrinsic] com- plexity of software, helps constructing (2) conceptually more transparent system implementations. Perhaps a
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 2
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 03/31/2010 for the course CAS 707 taught by Professor Ridhakhedri during the Spring '10 term at McMaster University.

Page1 / 13

On the use of formal methods in software development - O n...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online