Browsable AGATE Grammar

CC-BY

Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: dsl/architecture/agate/extracted
Source used for this grammar: Albin Jossic, Agate.ecore, 2006/06/06

Summary

Syntax

Entity ::=
	Object
Object ::=
	AGATEObject
Object ::=
	ReferenceObject
Object ::=
	MADIOSObject
AGATEObject ::=
	Objective
AGATEObject ::=
	OperationalContext
AGATEObject ::=
	Project
AGATEObject ::=
	GenericStandard
AGATEObject ::=
	GenericThreat
AGATEObject ::=
	TrafficClass
AGATEObject ::=
	InterfaceCharacteristic
AGATEObject ::=
	ProjectContextElement
AGATEObject ::=
	DataClass
AGATEObject ::=
	Event
AGATEObject ::=
	Risk
AGATEObject ::=
	Stake
AGATEObject ::=
	Requirement
AGATEObject ::=
	Means
AGATEObject ::=
	DomainRelation
AGATEObject ::=
	ArchitectureObject
Objective ::=
	[type]::String [priority]::Integer [indicator]::String [traceability]::String
OperationalContext ::=
	[notice]::String [description]::String [sensitivity]::Integer [name]::String [comment]::String [isValidIn]::OperationalContext [isAssociatedWith]::Stake
Project ::=
	[moi]::Role [moa]::Role [director]::Role [defines]::ProjectContextElement+ [associatedISs]::InformationSystem+
Standard ::=
	[caracterizeIC]::InterfaceCharacteristic+ [caracterizeTC]::TechnicalComponent+ [caracterizeLC]::LogicalComponent+ [caracterizeP]::Package+ [caracterizeR]::Requirement+
GenericStandard ::=
	Standard
Threat ::=
	[nature]::String [DCSSI]::String [clarifies]::Vulnerability+
GenericThreat ::=
	Threat
TrafficClass ::=
	[traffic]::Traffic+
InterfaceCharacteristic ::=
	ConfidentialityLevel
InterfaceCharacteristic ::=
	Protocol
InterfaceCharacteristic ::=
	Flow
InterfaceCharacteristic ::=
	Other
ConfidentialityLevel ::=
	[type]::String
Protocol ::=
	[isoLevel]::Integer
Flow ::=
	[unit]::String
Other ::=
	[type]::String
ProjectContextElement ::=
	[type]::String
DataClass ::=
	[notice]::String [description]::String [sensitivity]::Integer [name]::String [comment]::String [isValidIn]::OperationalContext [isAssociatedWith]::Stake
Event ::=
	[notice]::String [description]::String [sensitivity]::Integer [name]::String [comment]::String [isValidIn]::OperationalContext [isAssociatedWith]::Stake
Risk ::=
	[disponibilityLevel]::Integer [integrityLevel]::Integer [confidencialityLevel]::Integer [isCoveredByCR]::CountermeasureRequirement [isCoveredByAO]::ArchitectureObject [isCoveredByMO]::MADIOSObject [isCoveredByDR]::DomainRelation [relatesToRO]::ReusableObject [relatesToCO]::CommunicationObject [isGeneratedBy]::Threat
Stake ::=
	[type]::String [relativeDate]::String [unit]::String [date]::String [events]::Event+
Requirement ::=
	CountermeasureRequirement
Requirement ::=
	TechnicalRequirement
Requirement ::=
	PerformanceRequirement
Requirement ::=
	InteroperabilityRequirement
Requirement ::=
	OperationalRequirement
Requirement ::=
	SecurityRequirement
CountermeasureRequirement ::=
	[type]::String [residualVulnerability]::String
TechnicalRequirement ::=
	[criticality]::Integer [priority]::String [state]::String [isCoveredBy]::ArchitectureObject+ [characterizes]::ArchitectureObject+
PerformanceRequirement ::=
	[criticality]::Integer [priority]::String [state]::String [isCoveredBy]::ArchitectureObject+ [characterizes]::ArchitectureObject+
InteroperabilityRequirement ::=
	[criticality]::Integer [priority]::String [state]::String [isCoveredBy]::ArchitectureObject+ [characterizes]::ArchitectureObject+
OperationalRequirement ::=
	[criticality]::Integer [priority]::String [state]::String [isCoveredBy]::ArchitectureObject+ [characterizes]::ArchitectureObject+
SecurityRequirement ::=
	[criticality]::Integer [priority]::String [state]::String [isCoveredBy]::ArchitectureObject+ [characterizes]::ArchitectureObject+
DomainRelation ::=
	HierarchicalRelation
DomainRelation ::=
	FunctionalRelation
DomainRelation ::=
	Dependence
HierarchicalRelation ::=
	ε
FunctionalRelation ::=
	[necessaryObjectOF]::OperationalFunction [dependentObjectOF]::OperationalFunction [necessaryObjectOO]::OrganizationObject [dependentObjectOO]::OrganizationObject [necessaryObjectP]::Package [dependentObjectP]::Package
Dependence ::=
	[type]::String [necessaryObjectS]::Service [dependentObjectS]::Service [necessaryObjectLC]::LogicalComponent [dependentObjectLC]::LogicalComponent [necessaryObjectP]::Package [dependentObjectP]::Package [necessaryObjectC]::Center [dependentObjectC]::Center [necessaryObjectIS]::InformationSystem [dependentObjectIS]::InformationSystem
ArchitectureObject ::=
	ReusableObject
ArchitectureObject ::=
	CommunicationObject
ReusableObject ::=
	GenericSite
ReusableObject ::=
	Package
ReusableObject ::=
	Service
ReusableObject ::=
	TechnicalComponent
ReusableObject ::=
	LogicalComponent
ReusableObject ::=
	OperationalFunction
ReusableObject ::=
	OrganizationObject
Site ::=
	[type]::String [localization]::String [deployedObjects]::ReusableObject+
GenericSite ::=
	Site
Package ::=
	[subPackage]::Package+ [time]::Role+ [groupedObjects]::ReusableObject+ [isCoveredByLC]::LogicalComponent [isCoveredByTC]::TechnicalComponent [composedOf]::Interface+
Service ::=
	[Statut]::String [isASpecializationOf]::ReferenceService [isCoveredBy]::LogicalComponent
TechnicalComponent ::=
	[type]::String [cots]::Boolean [editor]::Boolean [constructor]::Boolean [version]::String [technology]::String [definedExtension]::String [statut]::String [composedOf]::TechnicalComponent+ [isASpecializationOf]::ReferenceTechnicalComponent [interfaces]::Interface+
LogicalComponent ::=
	[type]::String [statut]::String [composedOf]::LogicalComponent+ [isASpecializationOf]::ReferenceLogicalComponent [interfaces]::Interface+ [isCoveredBy]::TechnicalComponent
OperationalFunction ::=
	[composedOf]::OperationalFunction+ [isCoveredByP]::Package+ [isCoveredByS]::Service+
OrganizationObject ::=
	GenericCenter
OrganizationObject ::=
	InformationSystem
OrganizationObject ::=
	GenericRole
OrganizationObject ::=
	GenericActor
Center ::=
	[deployedObjects]::ReusableObject+
GenericCenter ::=
	Center
InformationSystem ::=
	[nature]::String [version]::String [membershipCountry]::String [currentLocation]::String [startServiceDate]::String [stopServiceDate]::String [isGeneric]::Boolean [functionalDomain]::String [type]::String [composedOf]::InformationSystem+ [associatedProjects]::Project+ [defines]::Objective+ [fulfills]::Role+ [fixes]::OperationalContext+ [usedBy]::Actor+ [interfaces]::Interface+
Role ::=
	[type]::String
GenericRole ::=
	Role
Actor ::=
	TelecomOperator
GenericActor ::=
	Actor
TelecomOperator ::=
	[contractType]::String [interfaces]::Interface+
CommunicationObject ::=
	Interface
CommunicationObject ::=
	Interconnection
CommunicationObject ::=
	InformationFlow
CommunicationObject ::=
	Traffic
CommunicationObject ::=
	Information
Interface ::=
	[characteristics]::InterfaceCharacteristic+ [composedOf]::Interface+
Interconnection ::=
	[linkType]::String [between]::Interface
InformationFlow ::=
	[priority]::Integer [frequency]::String [media]::String [continuity]::String [myContainer]::String [time]::String [availabilityRatio]::String [integrity]::Integer [interoperabilityLevel]::Integer [mediumFlow]::String [maximumFlow]::String [duration]::String [unitMediumFlow]::String [averageEvent]::String [maximumFlowOverOneDuration]::String [transports]::Information [receiverP]::Package [transmitterP]::Package [receiverOO]::OrganizationObject [transmitterOO]::OrganizationObject [receiverOF]::OperationalFunction [transmitterOF]::OperationalFunction
Traffic ::=
	[sequence]::String [type]::String [interoperabilityLevel]::Integer [trafficClass]::TrafficClass [dataClass]::DataClass [receiverP]::Package [transmitterP]::Package [receiverIS]::InformationSystem [transmitterIS]::InformationSystem [receiverC]::Center [transmitterC]::Center [receiverTO]::TelecomOperator [transmitterTO]::TelecomOperator [receiverLC]::LogicalComponent [transmitterLC]::LogicalComponent [receiverTC]::TechnicalComponent [transmitterTC]::TechnicalComponent
Information ::=
	[format]::String [storageSupport]::String [persistence]::String [DataType]::DataClass
ReferenceObject ::=
	ReferenceTechnicalComponent
ReferenceObject ::=
	TechnicalComponentReferenceFrame
ReferenceObject ::=
	ReferenceLogicalComponent
ReferenceObject ::=
	ReferenceService
ReferenceTechnicalComponent ::=
	[composedOf]::ReferenceTechnicalComponent+
TechnicalComponentReferenceFrame ::=
	[composedOf]::ReferenceTechnicalComponent+
ReferenceLogicalComponent ::=
	[composedOf]::ReferenceLogicalComponent+
ReferenceService ::=
	[composedOf]::ReferenceObject+
ServiceReferenceFrame ::=
	[composedOfRS]::ReferenceService+ [composedOfRLC]::ReferenceLogicalComponent+
MADIOSObject ::=
	Process
MADIOSObject ::=
	Procedure
MADIOSObject ::=
	Operation
MADIOSObject ::=
	Activity
Process ::=
	[isCoveredByP]::Package+ [isCoveredByS]::Service+
Procedure ::=
	[isCoveredByP]::Package+ [isCoveredByS]::Service+
Operation ::=
	[isCoveredByP]::Package+ [isCoveredByS]::Service+
Activity ::=
	[isCoveredByP]::Package+ [isisCoveredByS]::Service+
String ::=
	string
Integer ::=
	integer
Boolean ::=
	"true"
	"false"

GrammarLabMaintained by Dr. Vadim Zaytsev a.k.a. @grammarware. Last updated in September 2015. []