A formal architectural design patterns-based approach to software understanding | IEEE Conference Publication | IEEE Xplore