Improving Reuse of Distributed Transaction Software with Transaction-Aware Aspects