Reusing software architectures: a formal basis | IEEE Conference Publication | IEEE Xplore