Applications of Formal Methods : Developing Virtuoso Software