Layers
v1.0 · in consultationApplications (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 familyA software system that supports organisational capabilities or services.
Key attributes:lifecyclesourcingcriticalityversionsourceReferencestatuslifecycleStatepurposevendorproductNameimplementationKindsupportContactsupportRoleprovidesperformsApplicationContainerApplication container · structure familyA deployable or independently operating part of a software system.
Key attributes:kindtechnologyComponentComponent · structure familyA logical software component with a defined responsibility.
Key attributes:technologyversionsourceReferencestatuslifecycleStatepurposevendorproductNameimplementationKindcriticalitysupportContactsupportRoleprovidesperformspartOfAPIAPI · access familyA software interface through which functions or data are accessed.
Key attributes:styleversionspecificationUrlvisibilitysourceReferencestatuslifecycleStatepurposeinterfaceKindprotocolcontractReferenceownerexposesDataStoreData store · store familyA logical store used by software, independent of a deployed storage instance.
Key attributes:kindversionsourceReferencestatuslifecycleStatepurposestoreKindownerstoresDataExchangeData exchange · behaviour familyAn exchange of information between applications or software interfaces.
Key attributes:patternprotocolfrequencyversionsourceReferencestatuslifecycleStatepurposeinteractionPatterntriggerDescriptiontimeoutfailureHandlingsourcedestinationusesexchangesrepliesWithtransformsWithSharedBuildingBlockShared building block · structure familyA reusable software capability shared across services or organisations.
Key attributes:kindproviderAlgorithmAlgorithm · behaviour familyA defined computation or decision procedure used by software.
Key attributes:versionsourceReferencestatuslifecycleStatepurposealgorithmKinddefinitionLanguagedefinitionTextassumptionspreconditionspostconditionsdeterminismnodesentryAlgorithmDecisionAlgorithm decision · decision familyA decision point within an algorithm.
Key attributes:versionsourceReferencestatuslifecycleStatereadsPortswritesPortsusesParametersquestionexpressionLanguageexplanationAlgorithmImplementationAlgorithm implementation · behaviour familyA concrete software implementation of an algorithm.
Key attributes:versionsourceReferencestatuslifecycleStateentryPointartifactVersionsourceRevisionchecksumnumericalBehaviourrandomnessPolicyAlgorithmStepAlgorithm step · behaviour familyAn individual action or calculation within an algorithm.
Key attributes:versionsourceReferencestatuslifecycleStatereadsPortswritesPortsusesParametersstepKindinstructionexpressionLanguageexpressioninvokesAlgorithmApplicationFunctionApplication function · behaviour familySoftware behaviour grouped by its responsibility.
Key attributes:versionsourceReferencestatuslifecycleStatepurposebehaviourKindrealisesautomatesconsumesproducesusesAlgorithmsimplementsRulesApplicationInterfaceApplication interface · access familyAn access point exposing application behaviour.
Key attributes:regionhorizonProfiledirectioncontractboundary1boundary2ApplicationServiceApplication service · behaviour familySoftware functionality offered to another component or user interface.
Key attributes:versionsourceReferencestatuslifecycleStatepurposeserviceCategorysupportsDataTransformationData transformation · behaviour familyA conversion from one data representation to another.
Key attributes:mappingKindmappingReferencelossinessreadswritesIntegrationChannelIntegration channel · structure familyA mechanism connecting software participants for communication.
Key attributes:versionsourceReferencestatuslifecycleStatepurposechannelKindlogicalAddressMessageContractMessage contract · information familyA specification of the structure and meaning of a message.
Key attributes:versionsourceReferencestatuslifecycleStatepurposemessageKindcorrelationKeyidentityKeypayloadModeTechnologyPlatformTechnology platform · structure familyA technology platform used to support software.
Key attributes:versionstatuslifecycleStatesourceReferencedispositionpurposecategorycomprisesprovidesexposesSystemSoftwareSystem software · structure familyPlatform or system software required by an application or artifact.
Key attributes:versionstatuslifecycleStatesourceReferencedispositionsoftwareKindvendorproductNamereleaseVersionlicenseproductReferencesupportEndDatesupportEvidenceprovidesexposesTechnologyBoundaryInterfaceTechnology boundary interface · access familyAn application-facing boundary to a technology capability.
Key attributes:regionhorizonProfiledirectioncontractboundary1boundary2TechnologyServiceTechnology service · information familyA technology capability made available to software consumers.
Key attributes:versionstatuslifecycleStatesourceReferencedispositioncategorycontractVersionserviceDescriptionlimitationsTechnologyInterfaceContractTechnology interface contract · access familyA contract describing access to a technology service.
Key attributes:versionstatuslifecycleStatesourceReferencedispositionaccessStylecontractReferenceexposesServicessupportsProtocolsTechnologyProtocolTechnology protocol · information familyA 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.
