next up previous contents
Next: 5.4 Procedure for Integration Up: 5 Integration Testing Previous: 5.2 Naming Conventions for   Contents

5.3 Order of Integration

The order in which classes will be integrated is important, since it defines the order in which classes must be coded. This will prevent time being wasted in waiting for classes to be coded, and will make the testing process more efficient. Note: The numbers in brackets, eg, (4) or (iv) or (d) refers to the 4th step of integration for the particular order of integration of the current list.

  1. Controller module
    The order of integrating the Controller module is as follows:
    1. MainWindow + Selector
    2. (a) + FileSelection
    3. (b) + AboutDialog
    4. (c) + AnalysisPlugins
    5. (d) + OutputPlugins

  2. Thread 1: Performing Analysis
    The order of integrating Thread 1 is split into integrating each module involved (Model, Analysis, Output) in a Bottom Up fashion, and then combining these modules with Controller. Note: Each of Model, Analysis and Output can be coded and tested in parallel.
    1. Model module The order of integrating the Model module is as follows:
      1. Model + NetLogInput
      2. (i) + StreamsLogInput
      3. (ii) + Table
      Note: During development, it was decided to change to using Field and Stream classes for holding data about fields and streams, rather than just using lists of tuples. This resulted in two new classes being added and needing integration into the system. The order used for this was:
      1. Stream + StreamsLogInput
      2. Model + (i)
      3. Field + NetLogInput
      4. (ii) + (iii)
      5. (iv) + Table
    2. Analysis module The order of integrating the Analysis module is as follows, noting that the order starts with integrating the easier classes first (Plot), then moving towards the harder classes (AutoCorrelation), to enable us to ease into the harder analyses. Since the analyses modules will be plugins, they can be coded independently from other analyses, which is why the order below involves only integrating with AnalysisPlugins.
      1. AnalysisPlugins + Plot
      2. AnalysisPlugins + Mean
      3. AnalysisPlugins + Variance
      4. AnalysisPlugins + PDF
      5. AnalysisPlugins + CDF
      6. AnalysisPlugins + SpectralAnalysis
      7. AnalysisPlugins + AutoCorrelation
    3. Output Module The order of integrating the Output module is as follows. The outputs are also plugins, so the same comments as per the Analysis Module above apply here as well.
      1. OutputPlugins + Graph
      2. OutputPlugins + TableToFile
      3. OutputPlugins + TableToScreen
    4. Controller + Model
    5. (d) + Analysis
    6. (e) + Output

  3. Thread 2: Logging
    The order of integrating this thread is as follows:
    1. NetLogOutput + LogFile
    2. (1) + StreamsLogOutput
    3. Network + NetLogger
    4. (3) + (2)
    5. Logger + FileChooser
    6. (5) + SelectFields
    7. (6) + (4)
    8. Controller + (7)

  4. At this stage, Thread 1 has been integrated and Thread 2 has been integrated. All that remains is to ensure each thread works when the other thread is present. This can be done in System Testing.


next up previous contents
Next: 5.4 Procedure for Integration Up: 5 Integration Testing Previous: 5.2 Naming Conventions for   Contents