In case you want to document decisions (or choices in this case), e.g., use Java, a certain application server, pattern or component, you might be able to use a notation that is currently in development at the Software Engineering and Architecture Research Group of the University of Groningen (NL).
Unfortunately, the article it is not yet published but a first version is about to be released in a scientific journal in the near future. The notation allows you to model groups of decisions, for instance, Java based technology stack, and relationships between those groups, e.g., a Java based technology stack would be an alternative to a PHP based technology stack.
The following image should give you an example (for a larger version: right click => open in new tab). It simply uses the UML activity diagram notation (please note that this was done for small university project).
To explain some parts of this diagram:
- The decision Data Transfer Object Pattern is caused by the decision to use JAX-RS. Both decision were approved by the customer (the previous decision state would be decided).
- The decision to use CouchDB was discarded after initial research has shown that it is excluded by the desktop application decision group. Please note that this does not mean that this is technically hard or impossible. It simply means that for some reason CouchDB can't be used due to the desktop application, e.g., developers are not experienced with CouchDB for desktop apps. Further documentation may be available in textual or other form.
Furthermore, other views exist which relate forces, e.g., a requirement or expertise, to a specific decision, e.g., PHP may be favored over Java since the development team is more experienced with PHP.