--- Architecture --- Andrés Gómez Casanova --- 2009-07-26 ---
The context diagram shows the environment of the application. The user interacts with this application, and via this software, the user could execute DB2 commands.
The application has just two use cases. The most important is "write a command", which is the core of the application.
These are the components of the application and their interactions. The diagram shows the direction of commands and data are transmitted.
The components in blue can be redefined, that means that they could have several implementations. The components in green are the core of the application, and they have just one implementation.
All components are deployed in just on machine. The database engine is an external actor, and it could be in another machine.
This application has a 3-tiers architecture. However, the grammarReaderController component is between the Business Logic and the Persistence. This component creates the graph from a set files; the files are the Persistence part, but the graph is an important part of the Business Logic.
This diagram shows the relations between Maven modules. It includes the core modules, and some extras necessaries for the execution, such as the executer, the ui implementations and the main.
The main package name of the project is name. According to the ICANN, this domain name is for natural persons and, this project began (and is still) as a project maintained by just one person. The application is not supported by a company (.com), an organization *.org), nor a government (.gov or .gouv). For more information about this domain name, take a look at Wikipedia.
There are many class diagrams that explain different parts of the application.
The first class diagram shows only the object of the model part and their relations. As you can see, the objects of each part are not related between them directly.
This diagram presents all components of the program.
There are too many exceptions in the application. There are four diagrams that groups them according to their nature.
The first one only shows the abstract exceptions.
The second one has exceptions that are part of the core.
The third one describes the exception related to the graph.
The last one contains the exceptions related to other modules of the program.
This first sequence diagram shows the most important functionality of the program, which is to assist the user.
This is another function of the application, that it is included in the distribution, but it is not part of the objectives.
These diagrams are sequence diagrams in more detail, that describe not only use cases, but other important process which are needed fot the application.
The first one describes how the application is loaded.
The second diagram shows how the user is assisted.
The third one explains the execution of a command.
This a very simplified object diagram for a given grammar. The real one could have hundreds of tokens.
This a very simplified version; many of the exposed commands have more options than the indicated.