On The Design And Analysis Of Operator-Splitting Schemes