Layers
v1.0 · in consultationSoftware Delivery (DEL)
Layer DEL of Public Framework Modelling Language 1.0 answers the question “How is the software produced?”. This page describes the layer's concepts, how they relate, and its 12 element types.
Describes specification v1.0
What the layer describes
The DEL layer answers the question “How is the software produced?”. It describes how software is produced and delivered, with its dependencies and the evidence of delivery. The structure of the software belongs to APP, and installing (Deployment) a release (Release) belongs to RUN.
Concepts and how they relate
A pipeline (Pipeline) builds, verifies and delivers software. Where needed, it composes its pipeline stages (PipelineStage) through the “composes” relationship (composition). Optionally, a stage triggers a test suite (TestSuite) through the “triggers” relationship (triggering).
The pipeline accesses the source repository (SourceRepository) and the artifact registry (ArtifactRegistry) through the “accesses” relationship (access). Both belong to the repository family.
An artifact (Artifact), that is, the resulting package, binary or image, realises a component (Component) from APP through the “realises” relationship (realisation). The release and the artifact are deployed to an environment (Environment), a cluster (Cluster), a node (Node) or a namespace (Namespace) from RUN. The relationship is “is deployed to” (deployedTo).
Dependencies between technical elements are expressed through the “depends on” relationship (dependsOn), for example between an artifact and a software library (SoftwareLibrary). The software bill of materials (SBOM) and the software dependency (SoftwareDependency) record these dependencies as evidence of delivery.
Element types
The layer has 12 element types, in these families: behaviour (4), information (6), store (2). Each type's own fields are listed under its definition; the fields common to every element are described under the core concepts.
SourceRepositorySource repository · store familyA version-controlled location containing software source.
Key attributes:urldefaultBranchvisibilitylicenceSpdxversionstatuslifecycleStatesourceReferencedispositionvcsKindcontainsSourceForPipelinePipeline · behaviour familyA sequence of activities used to build, verify or deliver software.
Key attributes:tooltriggersversionstatuslifecycleStatesourceReferencedispositionrepositoriesstagesentryPipelineStagePipeline stage · behaviour familyA particular step within a software delivery pipeline.
Key attributes:kindversionstatuslifecycleStatesourceReferencedispositionpipelinestageKindinstructionsjoinModesuitesconsumesArtifactsproducesArtifactspublishesToapprovalRoleTestSuiteTest suite · behaviour familyA collection of tests providing software delivery evidence.
Key attributes:kindversionstatuslifecycleStatesourceReferencedispositionverificationKindverifiesArtifactArtifact · information familyA produced software item such as a package, binary or image.
Key attributes:kindcoordinatesdigestversionstatuslifecycleStatesourceReferencedispositionartifactKindreleaseVersionimmutableRevisionchecksumAlgorithmchecksumValuepackagesArtifactRegistryArtifact registry · store familyA store or catalogue of produced software artifacts.
Key attributes:urlversionstatuslifecycleStatesourceReferencedispositionpackageKindsstoresReleaseRelease · information familyAn identified version of software prepared for delivery or use.
Key attributes:versionreleasedOnstatusreleaseNotesUrldeclaredStatuslifecycleStatesourceReferencedispositionreleaseVersionreleaseStatedefinitionsevidenceRunsapprovalRoleapprovedAtapprovalEvidenceSoftwareDependencySoftware dependency · information familyA recorded dependency between software or delivery items.
Key attributes:versionlicenceSpdxsupplierpackageCoordinatesrequirementValuerequirementKindartifactSBOMSBOM · information familyAn inventory of components contained in a software artifact or release.
Key attributes:formatgeneratedAtdependenciesartifactsreleaseSoftwareLibrarySoftware library · information familyA reusable software library consumed by an implementation or component.
Key attributes:versionstatuslifecycleStatesourceReferencedispositionlanguagevendorreleaseVersionlicensesupportEndDatesupportEvidenceSoftwareFrameworkSoftware framework · information familyA framework providing structure and services for software implementation.
Key attributes:categoryDeploymentDefinitionDeployment definition · behaviour familyA reusable definition describing how software is deployed.
Key attributes:versionstatuslifecycleStatesourceReferencedispositionformatartifacts
In the “Family support benefit” example
Figure 4.6 (page 32) shows the DEL layer in the example. The release “Benefits platform release 1.0” is deployed to the environment “Production environment”, from RUN. The repository “Benefits platform source” holds the code of the software system (SoftwareSystem) “Benefits case platform”, from APP, and the artifact “Benefits platform package 1.0” is the delivered package.
The artifact packages the component “Benefit assessment component”, from APP. The link is a field of the artifact and is not shown in the figure.
