3

This article about application architecture design mentions "User Process Components" as part of the presentation layer.

User process components. Your user process components help synchronize and orchestrate user interactions. This way the process flow and state management logic is not hard-coded in the user interface elements themselves, and the same basic user interaction patterns can be reused by multiple user interfaces.

It looks like this is a standard term, but I have never heard of it so far. Can you provide a more precide definition or examples of UPCs which illustrate the definition above?

EDIT: what's puzzling me particularly is the phrase "help synchronize and orchestrate user interactions". Can you provide an explanation of what could be meant? Can you give an example of a problem that is solved using UPCs?

1 Answer 1

3

This appears to be a controller at the architectural level, such as the controller in the Model-View-Controller pattern. At the architectural level simply means that it's probably more loosely coupled, may itself consist of multiple layers and/or components, may deal with multiple models and/or views, may derive its internal logic from other components, etc. Not all these things have to be the case ofcourse.

Essentially, the difference between the actual UI Components and the UI Process components is the following: the UI components are, for example, the actual screens. So for example a screen or form to enter personal information, or to report some incident or activity (in a typical business information system).

The process below those actual UI components is typically decoupled from the UI components to increase flexibility and reusability in the application.

For example, suppose you have a business information system that you use to report whenever you got a phone call and whenever you got an e-mail. The first screen would be: "report a communication", where you choose the type of communication.

The second screen would be to enter the personal information of the person you communicated with.

The third screen would either (in the case of a phone call) be a description of what was said or (in the case of an e-mail) be a copy/paste of the contents.

The UI Process Component could orchestrate the process by:

  • Showing the selection screen.
  • Showing the personal details screen.
  • Showing the communication screen, which would be a custom screen based on the selection in the first screen.

This method would allow the personal details screen to be completely separate from all the other components and activities in the system and be the same regardless of whether you want to report a phone call or an e-mail.

In fact, whenever the system requires the user to enter personal information details, the screen could be reused, since it's completely separate from any actual business process. It's just a simple, self-contained component, that can be user by the (or multiple) UI Process component(s) to gather this information and provide it to the business layer of the application.

4
  • I don't understand what you mean by "architectural level". Can you maybe sketch a problem that is solved by using UPCs?
    – blubb
    Commented May 5, 2011 at 11:27
  • @Simon I made a rather stupid error in my original answer, I wrote "view" when I meant "controller" :)
    – Deckard
    Commented May 5, 2011 at 11:37
  • That makes a lot more sense :D So by "at the architectural level" you mean that it handles events on a conceptually higher level? E.g. it handles a user event "select number of seats" instead of "write integer in this textbox"?
    – blubb
    Commented May 5, 2011 at 11:45
  • @Simon Yes, and that tends to map to a more coarse-grained technical level as well (so dealing with entire UI components, instead of individual controls).
    – Deckard
    Commented May 5, 2011 at 11:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.