Nowadays, many software developers and maintainers encounter with incomprehensible, unexpandable and unchangeable program structures that consequently reduce software quality. Such problems come from poor design and poor programming called design flaws. Design flaws are program properties that indicate a potentially deficient design of a software system. It can increase the software maintenance cost drastically. Therefore detection of these flaws is necessary. This paper proposes a declarative-based approach in which the design flaws of an object-oriented system can be detected at the meta-level in the declarative meta programming. We apply our approach to detect some well-known design flaws, and the results show that the proposed approach is able to detect those flaws.