Reclassify Function as a composite
Issue #96 (Capability) is related to this, and the 2 changes need to be seen together.
In the generic form, Function is defined as follows: “A function represents a collection of behavior based on specific criteria”. This I believe is true, but a Business Function may also group expected Business Roles and certain expected artifacts (i.e. passive structures).
A classic example is the familiar Finance Business Function. This includes certain behaviours, e.g. ‘Make Payment’, ‘Record Expense’ etc. but it also identifies certain expected Roles (like ‘Cashier’, ‘Treasurer’ etc.) and certain expected artifacts (like ‘Cash Flow Forecasts’, ‘P&L Account’, ‘Balance Sheet’ etc.). These active and passive structures are as much an intrinsic part of the Finance Function as the behaviours.
I would like to be able to say in ArchiMate that a Financial Management Capability is realized by a Finance Function, which composes a set of behaviours, a set of Roles, and a set of artifacts. Currently I would have to use a Grouping to do this … which would then be labelled ‘Finance Function’!
There are many who will point out that if Business Function is reclassified this will have a knock-on effect to Application Function and Technology Function. And I agree, it would be absurd for the word Function to be classified as distinct aspects in different domains.
As an ex-developer I am accustomed to thinking of Application Functions as behaviours – we ‘call’ a function expecting behaviour. But now I think about it the existence of a Function identifies a ‘section of code’ within which a behaviour (i.e. a process) can occur. This thinking distinguishes the operation declaration, which is the Function, from the method, which is the corresponding Process.