Reputation: 2812
I'm very unsatisfied, confused and unconvinced by the relationship between an Application Component and an Application Function.
The Application Component is described as 'encapsulation of application functionality', and Application Function is specified as 'describing the internal behaviour of an application component'.
However, the Application Layer Metamodel, describes the relationship between these two elements as an Application Component being assigned to and Application Function.
From the description on the individual elements it would seem that an Application Component is composed of Application Functions. Or even, to be more abstract, that the Application Function is assigned to an Application Component.
Either way it really is unsatisfactory for a function to be assigned to a component. For example, does a Phone have a Voice Call Function, or is a Voice Call Function assigned to a Phone, or is a Phone assigned to a Voice Call Function?
Upvotes: 1
Views: 3519
Reputation: 2553
Mastering Archimate by Gerber Wieber describes the assignment relationship ( from application component to application function) as saying the component performs a function. Building on your example, a phone app would be an application component, voice call would be application service, and an application function would be something like a voice compression algorithm. The phone app component performs a compression function, along with several other functions to realise the voice call service.
Upvotes: 2
Reputation: 372
The ArchiMate specification says:
Normally we use Application Component to represent an application, a system or a program. Examples: Document Management System, CRM System, Web portal, Financial Application. And we use Application Function to represent the function offered by a component. Example: Billing, Accounting, Prepare Quotation
Upvotes: 5
Reputation: 2352
I think it makes sense that a function be assigned to a component. However I am assuming that the archimate component is itself an archetype rather than a concrete software or hardware component (as in uml component or deployment models). It would make sense that an (archetypal) component would comprise functions, and those functions are in turn realised by some other expression of software or hardware structure. So, your archetypal phone would comprise a voice call function, but that function would in turn be realised by some set of software and hardware that comprise your actual phone. Hummm....now I’m confusing myself!
Upvotes: 0