The refinement of formal specifications using reusable software components in Ada95. - Stephen Alan Bale (1998)