Master/Detail Interaction Unit
Problem
Two or more groups of data related to each other has to be shown at the same time. The relationship linking them is the central idea. Therefore, the information to show must be in-sync respect to the relation: updates to one end must force the invocation in the other end.
Principle
Representation of domain relationships

Figure 1. Master/Detail example on Apple Mac OS/X.
Forces
- Design constrains: how much information a device is capable to show?
- Human constrains: how much information a user is able to deal with?
Solution
The Master/Detail Pattern is probably one of the oldest know for Business User Interface developers and users. It is very intuitive to show invoices and its corresponding lines next to it.
The Master/Detail Pattern is driven by a relation (a domain relation usually) and two roles: the Master & the Detail.
- Master
- The master is any component capable to provide an object. This object will guide and trigger the update in the details. Note that Population IU & Instance IU patterns can play this role.
- Detail
- The detail component is any component capable to show object(s) related to the master object conforming to the given relation. Note that Population IU & Instance IU patterns can play this role.
The classes used at both ends are determined by the relation used.
Rationale
To make explicit the information related to an object.
Examples
The most typical case could be Invoices & Invoice's lines: Whenever the user select an invoice, the lines are updated to the selected one.
Countries & customer are another easy example. A population of countries can take the master role and another population of customers can play the detail role. Whenever a country is selected, the list of customers is updated to show the customers in such country.
Figure 1 shows an example on Mac OS/X. The upper part shows a list implementing a Population IU and action as a master. The lower part is a container implementing an Instance IU acting a detail part. Here, the relationship used in the Master/Detail is self: the same object is used to provide more details about the item selected.
Specification
The specification of a Master/Detail Interaction Unit is defined by:
- An Interaction Unit (Instance or Population) playing the role of Master.
- The relationship employed to cross to the detail.
- An Interaction Unit (Instance or Population) playing the role of Detail.
Note also that Master/Detail can be applied more than once on the same interaction, producing two combinable scenarios:
- Cascading master/detail: where cascade master/details where a detail is at the same time master respect to a third detail. E.g. Country → Customer → Invoice → Invoice's line
- Multi-detail: where one master controls more than one details at the same time.
E.g. Country
- → Customers &
- → Providers at the same time.
Representation
An Master/Detail Interaction Unit is represented by a wire frame box showing its name with a small box & grid in the upper-right corner.
Edit

