Expressive Systems

Expressive systems are best suited to applications where the workflow is flexible, where problem solving is important, where there can be many ways to achieve the same result. They do not restrict users into performing the steps in a predefined order. It is not suited for repetitive data entry type applications.

Business Objects

Most non-trivial applications create a domain model. This model represents the business objects that the users use and manipulate. Object Oriented theory talks about how these objects help users and developers gain a common understanding of requirements and build a better system. However most user interfaces hide this domain model from the user. During design the users and developers can talk about assigning an account to a customer or updating the address for a customer but when the interface is developed these type of actions are wrapped in procedural wizards or aggregate forms. The language used during design is not as obvious in the final system.


Expressive systems take the opinion that the domain model developed and understood by the users during design should continue to be used in the user interface. They bring the idea that each business object should be recognizable in the user interface as the same object created during design. The interface should allow the user to assign an Account to a Customer or update the Address for a Customer.

The domain model does not prevent a Customer being assigned to an Account or an Account being assigned to a Customer, so why should the interface make a restriction on the order of events?


Expressive systems allow the user to manipulate the domain objects is all the ways that the business rules allow. They donít place workflow type restrictions. This makes them ideal for users who need to have flexibility on how they use the domain information. For example support personnel who need to be able to solve complex and varying customer problems or infrequent users of the system.


This type of unstructured interface may not be the fastest for data entry people, who like as much information on one screen to reduce navigation time. The increase in navigation also makes it harder to implement as a web based application, however web based rich clients (such as Java WebStart) can overcome this problem. In general expressive systems are slower for routine tasks, but they greatly speedup non-routine tasks. Depending on the ratio of routine tasks to non-routine tasks an expressive system may prove faster.

Copyright © 2003 Artificial Software Solutions. Last updated 26 August 2003.