decid given design materi caus problem param dm object critic design decid design process param dsgr design code problem code problem code problem code overrid predic object dm design dsgr model facad classifi dm problem model facad primari object dm problem classifi doe problem model finish model facad dm equal model facad dm problem element necessarili requir associ model facad generaliz element dm model facad dm problem type probabl associ nag have util namespac collect strictli requir associ model facad type dm problem model facad util dm problem issu classifi depend problem model facad client depend dm size problem model facad supplier depend dm size problem special case us case extend us case us includ requir associ model facad us dm object usecas dm collect includ model facad includ usecas includ includ size problem collect extend model facad usecas extend extend size problem todo differ critic special messag class inherit op defin associ dm problem problem 