Skip to content
Public Framework

Layers

v1.0 · in consultation

Software 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 family

    A version-controlled location containing software source.

    Key attributes: urldefaultBranchvisibilitylicenceSpdxversionstatuslifecycleStatesourceReferencedispositionvcsKindcontainsSourceFor
  • PipelinePipeline · behaviour family

    A sequence of activities used to build, verify or deliver software.

    Key attributes: tooltriggersversionstatuslifecycleStatesourceReferencedispositionrepositoriesstagesentry
  • PipelineStagePipeline stage · behaviour family

    A particular step within a software delivery pipeline.

    Key attributes: kindversionstatuslifecycleStatesourceReferencedispositionpipelinestageKindinstructionsjoinModesuitesconsumesArtifactsproducesArtifactspublishesToapprovalRole
  • TestSuiteTest suite · behaviour family

    A collection of tests providing software delivery evidence.

    Key attributes: kindversionstatuslifecycleStatesourceReferencedispositionverificationKindverifies
  • ArtifactArtifact · information family

    A produced software item such as a package, binary or image.

    Key attributes: kindcoordinatesdigestversionstatuslifecycleStatesourceReferencedispositionartifactKindreleaseVersionimmutableRevisionchecksumAlgorithmchecksumValuepackages
  • ArtifactRegistryArtifact registry · store family

    A store or catalogue of produced software artifacts.

    Key attributes: urlversionstatuslifecycleStatesourceReferencedispositionpackageKindsstores
  • ReleaseRelease · information family

    An identified version of software prepared for delivery or use.

    Key attributes: versionreleasedOnstatusreleaseNotesUrldeclaredStatuslifecycleStatesourceReferencedispositionreleaseVersionreleaseStatedefinitionsevidenceRunsapprovalRoleapprovedAtapprovalEvidence
  • SoftwareDependencySoftware dependency · information family

    A recorded dependency between software or delivery items.

    Key attributes: versionlicenceSpdxsupplierpackageCoordinatesrequirementValuerequirementKindartifact
  • SBOMSBOM · information family

    An inventory of components contained in a software artifact or release.

    Key attributes: formatgeneratedAtdependenciesartifactsrelease
  • SoftwareLibrarySoftware library · information family

    A reusable software library consumed by an implementation or component.

    Key attributes: versionstatuslifecycleStatesourceReferencedispositionlanguagevendorreleaseVersionlicensesupportEndDatesupportEvidence
  • SoftwareFrameworkSoftware framework · information family

    A framework providing structure and services for software implementation.

    Key attributes: category
  • DeploymentDefinitionDeployment definition · behaviour family

    A 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.

Was this page helpful?