| Vienna Development Method |
Article Index for Vienna |
Website Links For Vienna |
Information AboutVienna Development Method |
| CATEGORIES ABOUT VIENNA DEVELOPMENT METHOD | |
| formal methods | |
| formal specification languages | |
| SHOPPER'S DELIGHT | |
|
THE DEVELOPMENT CYCLE Use of VDM starts with a very Abstract specification and, develops this into an implementation. Each step involves Data Reification, then '''Operation Decomposition'''. Data reification develops the Abstract Data Type s into more concrete Data Structure s, while operation decomposition develops the (abstract) implicit specifications of operations and functions into Algorithm s that can be directly implemented in a computer language of choice. Data Reification Data reification involves finding a more concrete representation of the abstract data types used in a specification There may be several steps before an implementation is reached. Each step involves:
Example data reification In a business security system, workers are given ID cards; these are fed into card readers on entry to and exit from the factory. Operations required:
Formally, this would be: types: ''Person'' = To be defined: ''Workers'' = ''Person''-setstate ''AWCCS'' of: ''pres : Workers''endoperations: ''INIT()'': ext wr ''pres : Workers'': post ''pres'' = {};: ''ENTER(p : Person)'': ext wr ''pres : Workers'': pre ''p pres'': post ''pres = {p};'': ''EXIT(p : Person)'': ext wr ''pres : Workers'': pre ''p pres'': post ''pres = - {p};'': ''IS-PRESENT(p : Person) r : '': ext rd ''pres : Workers'': post ''r p pres''As most programming languages have a concept comparable to a set (often in the form of an array), the first step from the specification is to represent the data in terms of a sequence. These sequences must not allow repetition, as we do not want the same worker to appear twice, so we must add an Invariant to the new data type. In this case, ordering is not important, so ''b'' is the same as ''a'' . The Vienna Development Method is valuable for model-based systems. It is not appropriate if the system is time-based. For such cases, the Concurrent Calculus System (CCS) is more useful. EXTERNAL LINK REFERENCES Books
|