overrid predic object dm design dsgr model facad classifi dm problem object cl classifi dm collect name seen arrai list collect str model facad featur cl warn inherit conflict differ critic iter featur str iter featur object featur model facad structur featur object sf structur featur sf model facad sf equal sf str sf str length name seen add str collect assoc end model facad associ end cl warn inherit conflict differ critic iter end assoc end iter end object ae associ end end object asc associ model facad associ ae collect conn model facad connect asc model facad associ role asc conn model facad connect asc conn iter asc end conn iter asc end object ae associ end asc end model facad type ae cl ae model facad ae equal ae ae str ae ae str ae str length name seen contain ae str problem problem 