System Architecture

From Heureka Wiki
Revision as of 09:11, 19 May 2010 by Fkl (talk | contribs)
Jump to navigation Jump to search

Architectural Goals and Quality

For Heureka, the two most important quality goals are modifiability and performance. The system should be flexible enough to allow maintenance and further development in a cost effective manner. At the same time performance should be good enough to allow simulation on large amounts of data. To a certain extent, these goals are contradictable.

In addition to this, testability is an important quality aspect. As many parts as possible should be possible to test automatically, e.g. with unit testing tools such as NUnit. This sometimes means that sub functions must be made public so that they can be tested from external code. Over time, this goal has been proven more important than originally expected. This means that this goal has not always been met in the existing code, for instance many classes has a lot of dependencies on other classes making them harder to test.*

Other quality goals are less important:

  • Security. There are no specific security requirements. The system will use security functions available in the database and operating system.
  • Availability. The system is a single user application, so availability is not considered in the architecture.
  • Portability. Portability is not required.

Logical View

Design Principles

Technical Environment