Software Analysis, Architecture and Design