I define a service as the delivery of functionality or capabilities from a provider to a receiver. Value appears when the receiver gains a benefit. The provider can be a system, an organization, a group, or an individual, while the receiver can be a user, another system, or a stakeholder. In systems engineering and requirements work, I often model a service as what a system offers to users or to other systems.
For example, I model an ATM that requests a personal identification number. The ATM sends a message asking for the PIN and then waits for the user’s input. Thus, I show a synchronous interaction where the caller waits for a response. By contrast, I also model asynchronous calls: a trigger message gets sent and the sender continues without waiting. Therefore, I distinguish synchronous and asynchronous service invocations clearly.
I treat message exchange broadly. It includes data transmitted over a network, but it also includes tangible exchanges. For instance, inserting a credit card into an ATM represents an interaction step with a clear meaning. In addition, I model intangible exchanges such as tokens or approvals. Thus, scenarios can capture physical and digital interactions in a consistent way.
When I need to define parameters, I add a signature to the service. For example, I specify input arguments and return values and define them in an information structure view. Consequently, I link scenario modeling with the information view, so both perspectives align. This integration helps me write clearer requirements and validate interfaces and data flows.
In requirements engineering, I use a service view to describe stakeholder needs. First, I identify who requests the capability and who provides it. Second, I define how it behaves. For example, I ask whether a call should be synchronous or asynchronous. In addition, I decide what inputs it must accept and what outputs it must return. Because I work iteratively, I refine these details over time.
Organizational context shapes the required detail. For example, I check whether provider and receiver belong to the same organization. If they do, roles such as customer and supplier still matter. If they do not, contracts, trust boundaries, and responsibilities become central. Therefore, I choose an appropriate level of detail and reduce misunderstandings and rework.
Finally, I use services to express system purpose. I state what the system should deliver, show how users interact with it, and present message exchanges and service calls in scenarios. In summary, a service is a purposeful interaction that delivers value. Therefore, I model it with clear actors, clear messages, and clear parameters.
« Back to Glossary Index
