Contributions To Formal Specification And Modular Verification Of Parallel And Sequential Software