activity CreateSystemArchitectureDocument {
    label "Create system architecture document";
    transform
        systemRequirementsView;
    create
        systemArchitecturalDesign;
    specialize 
        spice_SYS3BP1;
    subactivities 
        LinkRequirementsToDesign,
        defineSytemInterfaces,
        describeDynamicSystemBehaviour;
}

activity LinkRequirementsToDesign {
    label "Link Requirements to Design";
    create
        SystemRequirementsAllocation;
    specialize 
        spice_SYS3BP2,
        spice_SYS3BP6;
    text 
        md/spice/TracabilityRecord.md,
        md/simpleSPICE/extended_markdown.md;
}

activity describeDynamicSystemBehaviour {
    label "Describe dynamic system behaviour";
    tool trace2uml;
    create
        SystemDynamicBehaviour;
    specialize 
        spice_SYS3BP4;
}

activity defineSytemInterfaces {
    label "Define System Interfaces";
    create
        SystemInterfaceDescription;
    specialize 
        spice_SYS3BP3;
    text 
        md/simpleSPICE/extended_markdown.md;
}

artefact systemArchitecturalDesign {
    label "System architectural design";
    brief "04-06 System architectural design";
    contains 
        SystemRequirementsAllocation,
        SystemInterfaceDescription,
        SystemDynamicBehaviour;
    text 
        md/spice/SystemArchitecturalDesign.md, 
        md/spice/Design.md, 
        md/simpleSPICE/extended_markdown.md;
}

artefact SystemInterfaceDescription {
    label "System Interface description";
    brief "A description of all system interfaces.";
}

artefact SystemDynamicBehaviour {
    label "System dynamic behaviour";
}

artefact SystemRequirementsAllocation {
    label "System requirements allocation";
    brief "a detailed linkage between design elements and the corresponding requirements.";
    text 
        md/spice/TracabilityRecord.md,
        md/simpleSPICE/extended_markdown.md;
}

extend activity link_run {
    transform SystemRequirementsAllocation;
}