Skip to content
Public Framework

Layers

v1.0 · in consultation

Applications (APP)

Layer APP of Public Framework Modelling Language 1.0 answers the question “With what software?”. This page describes the layer's concepts, how they relate, and its 23 element types.

Describes specification v1.0

What the layer describes

The APP layer answers the question “With what software?”. It describes the software that supports services (PublicService): its structure, its behaviour and its integration. Producing the software belongs to DEL, and installing (Deployment) a release (Release) belongs to RUN.

Concepts and how they relate

A software system (SoftwareSystem) composes, where needed, its application containers (ApplicationContainer) and components (Component). The relationship is “composes” (composition), and here it links elements of the structure family.

Software supports services through the “serves” relationship (serving). Its source is a structure, an access point or a service. Examples are the software system, the shared building block (SharedBuildingBlock) and the application programming interface (API). The target is a structure, a behaviour or a service, for example a public service or a procedure (Procedure).

The application service (ApplicationService) and the data exchange (DataExchange) describe the software's behaviour. Like systems and components, they access a data store (DataStore) or a dataset (Dataset) from INF, through the “accesses” relationship (access). Detailed behaviour is drawn, where needed, on the detail diagram with the BPMN tools.

An element of APP depends, where needed, on other technical elements from APP, DEL, RUN, HST or OPS, through the “depends on” relationship (dependsOn). Where needed, elements from other layers realise elements of APP, through the “realises” relationship (realisation). For example, an artifact (Artifact) from DEL realises a component, and a workload (Workload) from RUN realises an application container.

Element types

The layer has 23 element types, in these families: structure (7), behaviour (7), access (4), information (3), store (1), decision (1). Each type's own fields are listed under its definition; the fields common to every element are described under the core concepts.

  • SoftwareSystemSoftware system · structure family

    A software system that supports organisational capabilities or services.

    Key attributes: lifecyclesourcingcriticalityversionsourceReferencestatuslifecycleStatepurposevendorproductNameimplementationKindsupportContactsupportRoleprovidesperforms
  • ApplicationContainerApplication container · structure family

    A deployable or independently operating part of a software system.

    Key attributes: kindtechnology
  • ComponentComponent · structure family

    A logical software component with a defined responsibility.

    Key attributes: technologyversionsourceReferencestatuslifecycleStatepurposevendorproductNameimplementationKindcriticalitysupportContactsupportRoleprovidesperformspartOf
  • APIAPI · access family

    A software interface through which functions or data are accessed.

    Key attributes: styleversionspecificationUrlvisibilitysourceReferencestatuslifecycleStatepurposeinterfaceKindprotocolcontractReferenceownerexposes
  • DataStoreData store · store family

    A logical store used by software, independent of a deployed storage instance.

    Key attributes: kindversionsourceReferencestatuslifecycleStatepurposestoreKindownerstores
  • DataExchangeData exchange · behaviour family

    An exchange of information between applications or software interfaces.

    Key attributes: patternprotocolfrequencyversionsourceReferencestatuslifecycleStatepurposeinteractionPatterntriggerDescriptiontimeoutfailureHandlingsourcedestinationusesexchangesrepliesWithtransformsWith
  • SharedBuildingBlockShared building block · structure family

    A reusable software capability shared across services or organisations.

    Key attributes: kindprovider
  • AlgorithmAlgorithm · behaviour family

    A defined computation or decision procedure used by software.

    Key attributes: versionsourceReferencestatuslifecycleStatepurposealgorithmKinddefinitionLanguagedefinitionTextassumptionspreconditionspostconditionsdeterminismnodesentry
  • AlgorithmDecisionAlgorithm decision · decision family

    A decision point within an algorithm.

    Key attributes: versionsourceReferencestatuslifecycleStatereadsPortswritesPortsusesParametersquestionexpressionLanguageexplanation
  • AlgorithmImplementationAlgorithm implementation · behaviour family

    A concrete software implementation of an algorithm.

    Key attributes: versionsourceReferencestatuslifecycleStateentryPointartifactVersionsourceRevisionchecksumnumericalBehaviourrandomnessPolicy
  • AlgorithmStepAlgorithm step · behaviour family

    An individual action or calculation within an algorithm.

    Key attributes: versionsourceReferencestatuslifecycleStatereadsPortswritesPortsusesParametersstepKindinstructionexpressionLanguageexpressioninvokesAlgorithm
  • ApplicationFunctionApplication function · behaviour family

    Software behaviour grouped by its responsibility.

    Key attributes: versionsourceReferencestatuslifecycleStatepurposebehaviourKindrealisesautomatesconsumesproducesusesAlgorithmsimplementsRules
  • ApplicationInterfaceApplication interface · access family

    An access point exposing application behaviour.

    Key attributes: regionhorizonProfiledirectioncontractboundary1boundary2
  • ApplicationServiceApplication service · behaviour family

    Software functionality offered to another component or user interface.

    Key attributes: versionsourceReferencestatuslifecycleStatepurposeserviceCategorysupports
  • DataTransformationData transformation · behaviour family

    A conversion from one data representation to another.

    Key attributes: mappingKindmappingReferencelossinessreadswrites
  • IntegrationChannelIntegration channel · structure family

    A mechanism connecting software participants for communication.

    Key attributes: versionsourceReferencestatuslifecycleStatepurposechannelKindlogicalAddress
  • MessageContractMessage contract · information family

    A specification of the structure and meaning of a message.

    Key attributes: versionsourceReferencestatuslifecycleStatepurposemessageKindcorrelationKeyidentityKeypayloadMode
  • TechnologyPlatformTechnology platform · structure family

    A technology platform used to support software.

    Key attributes: versionstatuslifecycleStatesourceReferencedispositionpurposecategorycomprisesprovidesexposes
  • SystemSoftwareSystem software · structure family

    Platform or system software required by an application or artifact.

    Key attributes: versionstatuslifecycleStatesourceReferencedispositionsoftwareKindvendorproductNamereleaseVersionlicenseproductReferencesupportEndDatesupportEvidenceprovidesexposes
  • TechnologyBoundaryInterfaceTechnology boundary interface · access family

    An application-facing boundary to a technology capability.

    Key attributes: regionhorizonProfiledirectioncontractboundary1boundary2
  • TechnologyServiceTechnology service · information family

    A technology capability made available to software consumers.

    Key attributes: versionstatuslifecycleStatesourceReferencedispositioncategorycontractVersionserviceDescriptionlimitations
  • TechnologyInterfaceContractTechnology interface contract · access family

    A contract describing access to a technology service.

    Key attributes: versionstatuslifecycleStatesourceReferencedispositionaccessStylecontractReferenceexposesServicessupportsProtocols
  • TechnologyProtocolTechnology protocol · information family

    A protocol used to communicate with a technology capability.

    Key attributes: versionstatuslifecycleStatesourceReferencedispositionfamilyprotocolVersion

In the “Family support benefit” example

Figure 4.5 (page 30) shows the APP layer in the example. The software system “Benefits case platform” serves the public service “Family support benefit”, from ORG. It is the layer's only relationship in the example.

The platform's other links are fields and are not shown in the figure. The platform contains the component “Benefit assessment component” and exposes the API “Benefit submission API”, the interface between the channel (ServiceChannel) “Public benefit portal”, from ORG, and the platform. It offers the application service “Benefit case processing”, which the API exposes.

Was this page helpful?