System design
From espressopp
Overview | Open discussions | Scripting interface | Particle | Particle property | Particle tuples | Boundary conditions | Storage | Parallelization and Distribution | Main Loop of Integration | Integrator, Thermostat, and Barostat as Superclasses | Short Range Force Computation and Interactions | Kremer-Grest | Completed discussions
This is the overview page of the system design description of ESPResSo++.
The description is intended for all persons who want to know about the functional and structural parts of the ESPResSo++ software. It can also be considered as an introduction for all software developers that are involved in the development, quality assurance, and support of the software.
The system design has been based on the Requirements document of ESPResSo++. The system design was matched against this document to guarantee that all requirements can be met.
Use of UML diagrams
in many cases, for the description of the architecture, UML (Unified Modeling Language) diagrams are employed. UML was defined by the Object Management Group (OMG) and allows software developers to concentrate more on design and architecture.
The following figure shows what kind of relations between classes will be used to describe the system design:
- The inheritance relationship is also known as the generalization or "is a" relationship. It indicates that one of the two related classes (the subclass) is considered to be a specialized form of the other (the superclass) and superclass is considered as generalization of subclass. In practice, this means that any instance of the subclass is also an instance of the superclass. The UML graphical representation of a inheritance is a hollow triangle shape on the superclass end of the line that connects it to one or more subclasses. The subclass in the inheritance relationship is also known as the inheriting class.
- A dependency exists between two defined elements if a change to the definition of one would result in a change to the other. This is indicated by a dashed arrow pointing from the dependent to the independent element. Several named varieties exist. A dependency can be between instances, classes, or both.
- Interaction or association between two objects (e.g. communication or data transfer) will be presented by a usual lines.



