--- Architecture --- Andrés Gómez Casanova --- 2009-07-26 ---

Architecture

  • Context diagram.

    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.

    Context diagram.
  • Use cases.

    The application has just two use cases. The most important is "write a command", which is the core of the application.

    Use cases.
  • Logical view.

    These are the components of the application and their interactions. The diagram shows the direction of commands and data are transmitted.

    Logical diagram.
  • Physical view.

    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.

    Physical diagram.
  • Diagram of tiers.

    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.

    3 tiers architecture.
  • Diagram of Maven modules.

    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.

    Maven modules and its dependencies.
  • Package diagram.

    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.

    Packages.
  • Class diagram.

    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.

    Class diagram for model part.

    This diagram presents all components of the program.

    Class diagram for all classes.
  • Diagram of exception hierarchy.

    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.

    Exception hierarchy of abstract exceptions.

    The second one has exceptions that are part of the core.

    Exception hierarchy for the core part.

    The third one describes the exception related to the graph.

    Exception hierarchy for the graph.

    The last one contains the exceptions related to other modules of the program.

    Exception hierarchy for other modules.
  • Sequence diagrams.

    This first sequence diagram shows the most important functionality of the program, which is to assist the user.

    Sequence diagram: to write a command.

    This is another function of the application, that it is included in the distribution, but it is not part of the objectives.

    Sequence diagram: to execute a command.
  • Dynamic views.

    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.

    Dynamic view: application load.

    The second diagram shows how the user is assisted.

    Dynamic view: user's assistance.

    The third one explains the execution of a command.

    Dynamic view: command execution.
  • Object diagram with a small grammar.

    This a very simplified object diagram for a given grammar. The real one could have hundreds of tokens.

    Object diagram of a simple grammar.

    This a very simplified version; many of the exposed commands have more options than the indicated.