archimate

package
v0.0.0-...-e46edd6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 8, 2023 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Element

type Element struct {
	*NamedReferenceableType
	*ElementType
}

Element is the base element type that can be extended by concrete ArchiMate types.

Note that Element is abstract, so one must have derived types of this type. this is indicated in xml by having a tag name of "element" and an attribute of xsi:type="BusinessRole" where BusinessRole is a derived type from ElementType.

func NewElement

func NewElement(id, name string, element LayerElement) *Element

NewElement creates a new element with the given id, name and element type.

type ElementType

type ElementType struct {
	Type LayerElement `xml:"xsi:type,attr"`
}

ElementType is the type of the archimate element.

type IdentifierGroup

type IdentifierGroup struct {
	IdentifierAttr string `xml:"identifier,attr"`
}

type LangStringType

type LangStringType struct {
	XMLLangAttr string `xml:"xml:lang,attr,omitempty"`
	Value       string `xml:",chardata"`
}

type LayerElement

type LayerElement string

LayerElement is a type that represents the elements of an ArchiMate layer.

const Grouping LayerElement = "Grouping"

Grouping represents a group of elements that belong together.

type Model

type Model struct {
	XMLName           xml.Name `xml:"model"`
	Xmlns             string   `xml:"xmlns,attr"`
	XmlnsXsi          string   `xml:"xmlns:xsi,attr"`
	XsiSchemaLocation string   `xml:"xsi:schemaLocation,attr"`
	Identifier        string   `xml:"identifier,attr"`
	*NamedReferenceableType
	Elements      []*Element      `xml:"elements>element"`
	Relationships []*Relationship `xml:"relationships>relationship,omitempty"`
}

Model is the root model type for an ArchiMate Enterprise Architecture Model. It is a container for the elements, relationships, diagrams and organizations of the model.

See the official XSD for more information: https://www.opengroup.org/xsd/archimate/3.1/archimate3_Model.xsd

func NewModel

func NewModel(name string) *Model

func (*Model) AddElement

func (m *Model) AddElement(element *Element)

Adds an element to the model.

func (*Model) AddRelationship

func (m *Model) AddRelationship(relationship *Relationship)

type NameGroup

type NameGroup struct {
	Name *LangStringType `xml:"name"`
}

NameGroup ...

type NamedReferenceableType

type NamedReferenceableType struct {
	*ReferenceableType
	*NameGroup
}

NamedReferenceableType represents something that can be referenced in the model and has a name.

type ReferenceableType

type ReferenceableType struct {
	*IdentifierGroup
}

ReferenceableType represents something that can be referenced in the model.

type Relationship

type Relationship struct {
	*IdentifierGroup
	*RelationshipGroup
	*ElementType
}

Relationship is a base relationship type that can be extended by concrete ArchiMate types.

Note that Relationship is abstract, so one must have derived types of this type. This is indicated in XML by having a tag name of "relationship" and an attribute of xsi:type="AccessRelationship" where AccessRelationship is a derived type from RelationshipType.

func NewRelationship

func NewRelationship(source, target string, relationship LayerElement) *Relationship

type RelationshipGroup

type RelationshipGroup struct {
	SourceAttr string `xml:"source,attr"`
	TargetAttr string `xml:"target,attr"`
}

type RelationshipType

type RelationshipType LayerElement
const RelationshipTypeAssignment RelationshipType = "Assignment"
const RelationshipTypeComposition RelationshipType = "Composition"
const RelationshipTypeRealization RelationshipType = "Realization"

type TechnologyLayerElement

type TechnologyLayerElement LayerElement

TechnologyLayerElement is a type that represents the elements of the ArchiMate technology layer.

See https://pubs.opengroup.org/architecture/archimate31-doc/chap10.html

const TechnologyElementArtifact TechnologyLayerElement = "Artifact"

TechnologyElementArtifact represents a piece of data that is used or produced in a software development process, or by deployment and operation of an IT system.

const TechnologyElementCommunicationNetwork TechnologyLayerElement = "CommunicationNetwork"

TechnologyElementCommunicationNetwork represents a set of structures that connects nodes for transmission, routing, and reception of data.

const TechnologyElementDevice TechnologyLayerElement = "Device"

TechnologyElementDevice represents a physical IT resource upon which system software and artifacts may be stored or deployed for execution.

const TechnologyElementNode TechnologyLayerElement = "Node"

TechnologyElementNode represents a computational or physical resource that hosts, manipulates, or interacts with other computational or physical resources.

const TechnologyElementPath TechnologyLayerElement = "Path"

TechnologyElementPath represents a link between two or more nodes, through which these nodes can exchange data, energy, or material.

const TechnologyElementSystemSoftware TechnologyLayerElement = "SystemSoftware"

TechnologyElementSystemSoftware represents software that provides or contributes to an environment for storing, executing, and using software or data deployed within it.

const TechnologyElementTechnologyCollaboration TechnologyLayerElement = "TechnologyCollaboration"

TechnologyElementTechnologyCollaboration represents an aggregate of two or more technology internal active structure elements that work together to perform collective technology behavior.

const TechnologyElementTechnologyEvent TechnologyLayerElement = "TechnologyEvent"

TechnologyElementTechnologyEvent represents a technology state change.

const TechnologyElementTechnologyFunction TechnologyLayerElement = "TechnologyFunction"

TechnologyElementTechnologyFunction represents a collection of technology behavior that can be performed by a node.

const TechnologyElementTechnologyInteraction TechnologyLayerElement = "TechnologyInteraction"

TechnologyElementTechnologyInteraction represents a unit of collective technology behavior performed by (a collaboration of) two or more nodes.

const TechnologyElementTechnologyInterface TechnologyLayerElement = "TechnologyInterface"

TechnologyElementTechnologyInterface represents a point of access where technology services offered by a node can be accessed.

const TechnologyElementTechnologyProcess TechnologyLayerElement = "TechnologyProcess"

TechnologyElementTechnologyProcess represents a sequence of technology behaviors that achieves a specific result.

const TechnologyElementTechnologyService TechnologyLayerElement = "TechnologyService"

TechnologyElementTechnologyService represents an explicitly defined exposed technology behavior.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL