Designing software architectures : a practical approach - Cervantes, Humberto, 1974- (SEI series in software engineering, 2016)