blob: cc8441f7c0dbe4e871b764da1dfffb65a580a4d5 [file] [log] [blame]
@namespace(uri="arg", prefix="arg")
package arg;
import "platform:/resource/org.eclipse.opencert.evm.evidspec/model/evidence.ecore";
import "platform:/resource/org.eclipse.opencert.apm.assuranceassets/model/assuranceasset.ecore";
@gmf.diagram(foo="bar")
class Case {
val ArgumentElement[*] argument;
val Argumentation[*] argumentation;
val Agreement[*] agreement;
val ArgumentElementCitation[*] cited;
val InformationElementCitation[*] information;
}
abstract class ModelElement {
attr String ~id;
attr String name;
}
class AssuranceCase extends ModelElement {
val Argumentation[*] hasArgument;
val evidence.Artefact[*] hasEvidence;
ref AssuranceCase[*] composedOf;
}
abstract class ArgumentationElement extends ModelElement {
@gmf.label()
attr String description;
attr String content;
}
@gmf.node(label="id", label.icon="false", figure="gsnfigures.GSNArgumentModule", tool.small.bundle="org.eclipse.opencert.sam.arg", tool.small.path="GSN_tooling_icons/ArgumentModule.gif", tool.large.bundle="org.eclipse.opencert.sam.arg", tool.large.path="GSN_tooling_icons/ArgumentModule.gif", size="120,80")
class Argumentation extends ArgumentationElement, assuranceasset.ManageableAssuranceAsset {
attr String location;
ref Argumentation[*] argumentation;
ref ArgumentElement[*] consistOf;
}
abstract class ArgumentElement extends ArgumentationElement {
}
@gmf.node(label="id", label.icon="false", figure="gsnfigures.GSNSolution", tool.small.path="GSN_tooling_icons/Solution.gif", tool.large.path="GSN_tooling_icons/Solution.gif", tool.small.bundle="org.eclipse.opencert.sam.arg", tool.large.bundle="org.eclipse.opencert.sam.arg", size="100,100")
class InformationElementCitation extends ArgumentElement {
attr InformationElementType type;
attr Boolean[1] toBeInstantiated = "false";
attr String url;
ref evidence.Artefact[*] artefact;
}
abstract class ReasoningElement extends ArgumentElement {
}
@gmf.node(label="id", label.icon="false", figure="gsnfigures.GSNArgumentModule", tool.small.bundle="org.eclipse.opencert.sam.arg", tool.small.path="GSN_tooling_icons/ArgumentModule.gif", tool.large.bundle="org.eclipse.opencert.sam.arg", tool.large.path="GSN_tooling_icons/ArgumentModule.gif", size="120,80")
class ArgumentElementCitation extends ArgumentElement {
attr CitationElementType citedType;
@gmf.label()
attr String argumentationReference;
}
abstract class Assertion extends ReasoningElement {
}
@gmf.node(label="id", label.icon="false", figure="gsnfigures.GSNStrategy", tool.small.path="GSN_tooling_icons/Strategy.gif", tool.large.path="GSN_tooling_icons/Strategy.gif", tool.small.bundle="org.eclipse.opencert.sam.arg", tool.large.bundle="org.eclipse.opencert.sam.arg", size="120,80")
class ArgumentReasoning extends ReasoningElement {
attr Boolean[1] toBeSupported = "false";
attr Boolean[1] toBeInstantiated = "false";
ref Argumentation[*] hasStructure;
}
@gmf.node(label="id", label.icon="false", figure="gsnfigures.GSNGoal", tool.small.path="GSN_tooling_icons/Goal.gif", tool.large.path="GSN_tooling_icons/Goal.gif", tool.small.bundle="org.eclipse.opencert.sam.arg", tool.large.bundle="org.eclipse.opencert.sam.arg", size="120,80")
class Claim extends Assertion, assuranceasset.ManageableAssuranceAsset {
attr Boolean[1] public = "false";
attr Boolean[1] assumed = "false";
attr Boolean[1] toBeSupported = "false";
attr Boolean[1] toBeInstantiated = "false";
@gmf.affixed
val Choice choice;
}
abstract class AssertedRelationship extends Assertion {
}
@gmf.node(label="optionality", label.placement="external", label.icon="false", figure="org.eclipse.opencert.sam.arg.ui.figures.Choice", tool.small.path="GSN_tooling_icons/Optionality.gif", tool.large.path="GSN_tooling_icons/Optionality.gif", tool.small.bundle="org.eclipse.opencert.sam.arg", tool.large.bundle="org.eclipse.opencert.sam.arg", size="40,40")
class Choice extends ArgumentElement {
attr AssertedByMultiplicityExtension sourceMultiextension;
attr String sourceCardinality = "";
attr String optionality;
}
@gmf.link(color="0,0,0", source="source", target="target", target.constraint="self.oclIsTypeOf(Claim) or self.oclIsTypeOf(Argumentation) or self.oclIsTypeOf(ArgumentReasoning) or self.oclIsTypeOf(Agreement)", source.constraint="self.oclIsTypeOf(Choice) or self.oclIsTypeOf(Claim) or self.oclIsTypeOf(ArgumentElementCitation) or self.oclIsTypeOf(Argumentation) or self.oclIsTypeOf(ArgumentReasoning)", style="solid", width="1", target.decoration="filledclosedarrow", tool.small.path="GSN_tooling_icons/solvedBy.gif", tool.large.path="GSN_tooling_icons/solvedBy.gif", tool.small.bundle="org.eclipse.opencert.sam.arg", tool.large.bundle="org.eclipse.opencert.sam.arg", label="cardinality")
class AssertedInference extends AssertedRelationship {
attr AssertedByMultiplicityExtension multiextension;
attr String cardinality = "";
ref ArgumentationElement[*] source;
ref ArgumentationElement[*] target;
}
@gmf.link(color="0,0,0", source="source", source.constraint="self.oclIsTypeOf(Claim)", target="target", target.constraint="self.oclIsTypeOf(InformationElementCitation)", style="solid", width="1", target.decoration="filledclosedarrow", tool.small.path="GSN_tooling_icons/solvedBy.gif", tool.large.path="GSN_tooling_icons/solvedBy.gif", tool.small.bundle="org.eclipse.opencert.sam.arg", tool.large.bundle="org.eclipse.opencert.sam.arg", label="cardinality")
class AssertedEvidence extends AssertedRelationship {
attr AssertedByMultiplicityExtension multiextension;
attr String cardinality = "";
ref ArgumentElement[*] source;
ref ArgumentElement[*] target;
}
@gmf.link(color="0,0,0", source="source", source.constraint="self.oclIsTypeOf(ArgumentReasoning) or self.oclIsTypeOf(Claim) or self.oclIsTypeOf(Argumentation)", target="target", target.constraint="self.oclIsTypeOf(ArgumentElementCitation) or self.oclIsTypeOf(InformationElementCitation)", style="solid", width="1", target.decoration="closedarrow", tool.small.path="GSN_tooling_icons/inTheContextOf.gif", tool.large.path="GSN_tooling_icons/inTheContextOf.gif", tool.small.bundle="org.eclipse.opencert.sam.arg", tool.large.bundle="org.eclipse.opencert.sam.arg", label="cardinality")
class AssertedContext extends AssertedRelationship {
attr AssertedByMultiplicityExtension multiextension;
attr String cardinality = "";
ref ArgumentationElement[*] source;
ref ArgumentationElement[*] target;
}
@gmf.link(source="source", target="target", color="255,0,0", style="solid", width="1", source.constraint="self.oclIsTypeOf(Claim)", target.constraint="self.oclIsTypeOf(Claim) or self.oclIsTypeOf(AssertedInference) or self.oclIsTypeOf(AssertedEvidence) or self.oclIsTypeOf(AssertedContext) or self.oclIsTypeOf(AssertedChallenge) or self.oclIsTypeOf(AssertedCounterEvidence)", target.decoration="filledclosedarrow", tool.small.path="SACEM_tooling_icons/Challenge.gif", tool.large.path="SACEM_tooling_icons/Challenge.gif", tool.small.bundle="org.eclipse.opencert.sam.arg", tool.large.bundle="org.eclipse.opencert.sam.arg")
class AssertedChallenge extends AssertedRelationship {
ref Claim[*] source;
ref Assertion[*] target;
}
@gmf.link(source="source", target="target", color="255,0,0", style="solid", width="1", source.constraint="self.oclIsTypeOf(InformationElementCitation)", target.constraint="self.oclIsTypeOf(Claim) or self.oclIsTypeOf(AssertedInference) or self.oclIsTypeOf(AssertedEvidence) or self.oclIsTypeOf(AssertedContext) or self.oclIsTypeOf(AssertedChallenge) or self.oclIsTypeOf(AssertedCounterEvidence)", target.decoration="filledclosedarrow", tool.small.path="SACEM_tooling_icons/CounterEvidence.gif", tool.large.path="SACEM_tooling_icons/CounterEvidence.gif", tool.small.bundle="org.eclipse.opencert.sam.arg", tool.large.bundle="org.eclipse.opencert.sam.arg")
class AssertedCounterEvidence extends AssertedRelationship {
ref InformationElementCitation[*] source;
ref Assertion[*] target;
}
@gmf.node(label="id", label.icon="false", figure="gsnfigures.GSNContract", tool.small.path="GSN_tooling_icons/Contract.gif", tool.large.path="GSN_tooling_icons/Contract.gif", tool.small.bundle="org.eclipse.opencert.sam.arg", tool.large.bundle="org.eclipse.opencert.sam.arg", size="120,80")
class Agreement extends Argumentation {
ref Argumentation[*] between;
}
enum AssertedByMultiplicityExtension {
Normal = 0;
Optional = 1;
Multi = 2;
}
enum InformationElementType {
Justification = 0;
Context = 1;
Solution = 2;
}
enum CitationElementType {
Claim = 0;
Context = 1;
Solution = 2;
}