blob: 53e1cd5bd02c53dc581238c93ac4453468494954 [file] [log] [blame]
@gmf
@namespace(uri="http://refframework/1.0", prefix="refframework")
package refframework;
import "platform:/resource/org.eclipse.opencert.infra.mappings/model/Mapping.ecore";
import "platform:/resource/org.eclipse.opencert.infra.general/model/general.ecore";
import "platform:/resource/org.eclipse.opencert.infra.properties/model/property.ecore";
@gmf.diagram
class RefFramework extends general.DescribableElement {
attr String scope;
attr String rev;
attr String purpose;
attr String publisher;
attr EDate issued;
val RefActivity[*] ownedActivities;
val RefArtefact[*] ownedArtefact;
val RefRequirement[*] ownedRequirement;
val RefApplicabilityLevel[*] ownedApplicLevel;
val RefCriticalityLevel[*] ownedCriticLevel;
val RefRole[*] ownedRole;
val RefTechnique[*] ownedTechnique;
}
class RefRequirement extends general.DescribableElement, RefAssurableElement {
attr String reference;
attr String assumptions;
attr String rationale;
attr String image;
@ExtendedMetaData
transient attr String annotations;
val RefRequirementRel[*] ownedRel;
val RefApplicability[*] applicability;
val RefRequirement[*] subRequirement;
}
@gmf.node(label="name", figure="figures.ArtefactFigure", label.icon="false", label.placement="external")
class RefArtefact extends general.DescribableElement, RefAssurableElement {
attr String reference;
ref RefRequirement[*] constrainingRequirement;
ref RefTechnique[*] applicableTechnique;
val RefArtefactRel[*] ownedRel;
ref property.Property[*] property;
}
@gmf.node(label="name", border.color="0,0,0", border.width="2")
class RefActivity extends general.DescribableElement, RefAssurableElement {
attr String objective;
attr String scope;
@gmf.link(color="255,0,0", source.decoration="closedarrow", style="dash", tool.small.bundle="org.eclipse.opencert.pkm.refframework", tool.small.path="icons/Require.gif")
ref RefArtefact[*] requiredArtefact;
@gmf.link(color="0,255,0", target.decoration="filledclosedarrow", style="solid", tool.small.bundle="org.eclipse.opencert.pkm.refframework", tool.small.path="icons/Produce.gif")
ref RefArtefact[*] producedArtefact;
@gmf.compartment
val RefActivity[*] subActivity;
@gmf.link(source.decoration="arrow", tool.small.bundle="org.eclipse.opencert.pkm.refframework", tool.small.path="icons/Precedence.gif")
ref RefActivity[*] precedingActivity;
val RefRequirement[*] ownedRequirement;
@gmf.link(color="0,0,255", source.decoration="closedarrow", style="dash", tool.small.bundle="org.eclipse.opencert.pkm.refframework", tool.small.path="icons/Executing.gif")
ref RefRole[*] role;
ref RefTechnique applicableTechnique;
val RefActivityRel[*] ownedRel;
val RefApplicability[*] applicability;
}
class RefRequirementRel {
ref RefRequirement[1] target;
ref RefRequirement[1] source;
attr general.RequirementRelKind type;
}
@gmf.node(label="name", figure="figures.RefRoleFigure", label.icon="false", label.placement="external")
class RefRole extends general.DescribableElement, RefAssurableElement {
}
class RefApplicabilityLevel extends general.DescribableElement {
}
class RefCriticalityLevel extends general.DescribableElement {
}
class RefTechnique extends general.DescribableElement, RefAssurableElement {
ref RefCriticalityApplicability[*] criticApplic;
attr String aim;
}
class RefArtefactRel extends general.DescribableElement {
attr int maxMultiplicitySource;
attr int minMultiplicitySource;
attr int maxMultiplicityTarget;
attr int minMultiplicityTarget;
attr general.ChangeEffectKind modificationEffect;
attr general.ChangeEffectKind revocationEffect;
ref RefArtefact[1] source;
ref RefArtefact[1] target;
}
class RefCriticalityApplicability {
ref RefApplicabilityLevel[1] applicLevel;
ref RefCriticalityLevel[1] criticLevel;
attr String comment;
}
class RefActivityRel {
attr general.ActivityRelKind type;
ref RefActivity[1] source;
ref RefActivity[1] target;
}
abstract class RefAssurableElement {
val RefEquivalenceMap[*] equivalence;
}
class RefIndependencyLevel extends RefApplicabilityLevel {
}
class RefRecommendationLevel extends RefApplicabilityLevel {
}
class RefControlCategory extends RefApplicabilityLevel {
}
class RefApplicability extends general.NamedElement {
val RefCriticalityApplicability[*] applicCritic;
attr String comments;
ref RefAssurableElement applicTarget;
val RefApplicabilityRel[*] ownedRel;
}
class RefApplicabilityRel {
attr general.ApplicabilityKind type;
ref RefApplicability[1] source;
ref RefApplicability[1] target;
}
class RefEquivalenceMap extends mapping.EquivalenceMap {
ref RefAssurableElement[*] target;
}