This paper describes a pragmatic framework for modeling, classifying,customizing, and combining various {\em synchronization schemes}for object-oriented concurrent programming (OOCP in short).This is achieved by using a general purpose OOCPgeneric software architecture/platform, named Actalk.The architecture is based on the notions of {\em components},{\em parameterization} and {\em inheritance}.In this paper we focus on the {\em activity component}of an (active) object in order to expresscontrol over acceptance and execution of method invocations.Variations on the parameters (namely virtual methods)of the activity component are used to describe and implementvarious synchronization schemes.At first, our platform helps in classifying and experimenting withvarious synchronization schemes.Secondly, it helps in reusing them and building-upon previous expertisein order to derivate enhanced or novel schemes.To illustrate this in the paper,we progressively develop various schemesby successive {\em refinements} and {\em combinations},starting from two foundational synchronization schemes(namely {\em enabled sets} and {\em guards}).Before concluding, we briefly discusssome general architectural issues ofgeneric software platforms by comparing the designof the Actalk architectureto some other similar software platforms.