Detecting errors in an early phase of software development can help to reduce the cost of software systems. Many research attempts presented a fixed set of rules to help finding errors in a model. However, flexibility is one of the characteristics during software development. The correctness of a model usually depends on many factors such as development environments. The predefined rules usually fail to provide such flexibility. This paper will apply the idea from YACC/BISON to allow software engineers to define the validity of their application models in a profile. Central to the profile mechanism is the instance-of relation, which is established between an application model and a profile. As a result, engineers can first define the validity of an application in a profile and thus find errors in a model when the model is not a valid instance of the profile. Based on the profile mechanism, we build a tool, called ICER, which can automatically help developers to check the instance-of r...