If artifacts are designed as intelligent software modules, they may actively assist software engineers. The software arctifacts must record their context and interdependencies. This helps software engineers walk through the related artifacts, for example, from executable software modules to architecture specification artifacts. Because of the complexity of the problem, artifacts must be extensible and use open-ended protocols so that new artifacts can be introduced whenever necessary. To fulfil the requirements first-class property , intelligent , history and extensible , first of all we need to model software development methods.
Methods aim at creating software artifacts through the application of a large number of rules.
These methods do not introduce means to model the desired inconsistencies and therefore, aim at resolving inconsistencies whenever they are detected. If an entity in a requirement specification is relevant then select it as a candidate class. In this example, the software engineer has to determine whether the entity being considered is relevant or not for the application domain. The software engineer may conclude that the entity partially fulfils the relevance criterion, and may prefer to define the relevance of an entity, for instance, as substantially relevant. This definition would imply the classification of the entity as a partial class, which is considered as an inconsistent class definition by the current object-oriented methods.