{- ============================== Copyright (c) 2026 SysFEAT - Systemic Framework for Enterprise Architecture & Transformation This work is released under the MIT License. framework.sysfeat.com Outcome Event: An Outcome Event is a Behavioral Event that signals the Output of an Asset Type or state of Asset Type (Outcome) by a producer Behavior Type, ready to be used as an Input by a consumer Behavior Type. Documentation : https://framework.sysfeat.com/pages/30223b5c5ec90c01.htm External references: Russell Ackoff - Choice & Communication - Outcomes: ../resources/external-references/Ackoff-1967-Choice-Communication-and-Conflict.pdf#Outcomes Russell Ackoff - Choice & Communication - Utility: ../resources/external-references/Ackoff-1967-Choice-Communication-and-Conflict.pdf#Utility WordNet - Outcome: https://en-word.net/ili/i97562 OMG - BACM - Outcome: https://www.omg.org/spec/BACM/1.0/PDF#page=51 OMG - UML - Signal: https://www.omg.org/spec/UML/2.5.1/PDF#page=211 - ============================== -} {-# OPTIONS --cubical --guardedness #-} module SysFEAT.SOF.30223b5c5ec90c01 where -- ========== Outcome Event open import Agda.Primitive open import SysFEAT.SOF.24ae31d75ed1c747 public -- Behavioral Event open import SysFEAT.SOF.a4a5b3f855585ce1 public -- Asset Type OutcomeEvent : ClassOfClassOfIndividual OutcomeEvent = ClassOfIndividual -- OutcomeEvent is subTypeOf BehavioralEvent st-30223b5c5ec90c01-24ae31d75ed1c747 : OutcomeEvent ⊏ₑ BehavioralEvent st-30223b5c5ec90c01-24ae31d75ed1c747 = polySubTypeOf-identity -- == Relations ======================= -- -------------------------------------------------------------------------------------------- {- Outcome: An Outcome is a produced state of an Asset Type that is signaled by an Outcome Event.An Outcome is the result of a Behavior Type of a producer Agent Type and is signaled as an Outcome Event to a consumer Agent Type that reacts to this change event.Examples:- An improved process (Behavior) that is the result of a refactoring activity done by a consulting organization (producer Agent Type) for the benefit of a business unit (user Agent Type).- A new application (Sofware System) that is the result of development and sales activities of a software company (producer Agent) for the benefit of an end user (user Agent Type).- A produced car (Hardware System) that is the result of development, production and sales activities of a car manufacturing company (producer Agent Type) for the benefit of an end user (Retail Customers, Fleet Customers, ...). -} -- Aggregate Member : Outcome Outcome : ClassOfClassOfBoundedIndividual Outcome = ClassOfBoundedIndividual -- Outcome withAspect UnboundedMember st-af41ed1265ea77e5-8cfaf71a6852b042 : Outcome ⊏ₐₑ (UnboundedMember (lsuc(lzero))) st-af41ed1265ea77e5-8cfaf71a6852b042 = polySubTypeOf-identity -- Outcome is subTypeOf AssetType st-af41ed1265ea77e5-a4a5b3f855585ce1 : Outcome ⊏ₑ AssetType st-af41ed1265ea77e5-a4a5b3f855585ce1 = polySubTypeOf-identity -- Membership relation membershipOfOutcome : Linkage OutcomeEvent Outcome membershipOfOutcome = make_upwardNestingRelation "outcome membership" "nested outcome" -- Aggregation relation aggregationOfAssetTypeOutcome : Linkage Outcome AssetType aggregationOfAssetTypeOutcome = make_Relation "AssetType aggregation" "aggregated AssetType" {- outcome : derived relation obtained by composing membershipOfOutcome and aggregationOfAssetTypeOutcome It directly links an Outcome Event to the final aggregated AssetType hiding the reifying Outcome -} outcome : Linkage OutcomeEvent AssetType outcome = membershipOfOutcome ∘ aggregationOfAssetTypeOutcome