This research is concerned with techniques for designing and verifying distributed protocols. It develops a framework for parallel composition of protocols, applying it to designing adaptive protocols and building a software tool supporting this meth-o-dology. It shows that parallel composition allows modular development and reuse of existing protocols and demonstrate its applicability by deriving several protocols. The research involves developing constructs for specifying interactions between the component protocols and deriving proof rules to infer properties of the composite protocol from properties of the component protocols. Results are developed about techniques to modularize distributed programs. Adaptive protocols significantly improve performance by taking advantage of the changing environment and adapting accordingly. The goal is to develop a framework for deriving adaptive protocols using parallel composition.