With the increased use of computers in every-day live, the demand for newer and better software is increasing day by day. This advancement has resulted in that many developers are searching for ways to decrease their development time. One approach is to use design patterns when designing applications. Design pattern are acknowledged solutions to known design problems that can be reused over and over again without ever doing the same thing twice. The most recent advancement of identifying design patterns has been within the domain of concurrent systems. Design pattern within concurrent systems are of interest in this project because of its young age. Development of concurrent applications has often been compared to constant reinvention of th...