Transformation based component architectures: general framework, instantiations and case study