selected publications academic article Designing runtime variation points in product line architectures: three cases. Science of Computer Programming. 53:353-380. 2004