Software architecture attempts to bridge