1. Use Case 1: 1 data set and 1 model This use case describes an application (the client) performing a fit on a single data set with a single model. 1.1. Flow of Events 1.1.1. Basic Flow 1.1.1.1. The client chooses a data set to fit. 1.1.1.2. The client chooses a model to use. 1.1.1.3. The client enters the initial parameters of the model. 1.1.1.4. The client starts the fit. 1.1.1.5. The client reads back the fit results from the fitting object. 1.1.2. Alternative Flows Any of the following actions can take place: 1.1.2.1. The client does not enter initial parameters 1.1.3. Error Conditions 1.1.3.1. The user does not choose a data set before starting the fit. 1.1.3.2. The user does not choose a model before starting the fit. 1.1.3.3. the user does not specify the list of parameter to fit 1.1.3.4. the user enters a list of parameters that do not belong to the model 1.2. Special requirements 1.2.1. Preconditions None 1.2.2. Post Conditions The client now has a fitting object that contains the results of his fit. He can modify that object and perform another fit. It will be possible for him to use the fit output as the initial parameters for any subsequent fit. 2. Use Case 2: 2 data sets and 1 model This use case describes an application (the client) performing a fit on multiple data sets with a single model. 2.1. Flow of Events 2.1.1. Basic Flow 2.1.1.1. The client chooses two data sets to fit. 2.1.1.2. The client chooses a model to use. 2.1.1.3. The client enters the initial parameters of the model. 2.1.1.4. The client starts the fit. 2.1.1.5. The client reads back the fit results from the fitting object. 2.1.2. Alternative Flows Any of the following actions can take place: 2.1.2.1. The client does not enter initial parameters 2.1.2.2. the user enters a list of parameters not belonging to the model 2.1.3. Error Conditions 2.1.3.1. The user does not choose a data set before starting the fit. 2.1.3.2. The user does not choose a model before starting the fit. 2.2. Special requirements 2.2.1. Preconditions None 2.2.2. Post Conditions The client now has a fitting object that contains the results of his fit. He can modify that object and perform another fit. It will be possible for him to use the fit output as the initial parameters for any subsequent fit. 3. Use Case 3: 2 data sets, 2 models and one constraint This use case describes an application (the client) performing a fit on multiple data sets with a single model. 3.1. Flow of Events 3.1.1. Basic Flow 3.1.1.1. The client chooses two data sets to fit. 3.1.1.2. The client chooses one model to use with each data set. 3.1.1.3. The client enters the initial parameters of the models. 3.1.1.4 The client enters a string describing a condition between the two models. 3.1.1.5. The client starts the fit. 3.1.1.6. The client reads back the fit results from the fitting object. 3.1.2. Alternative Flows Any of the following actions can take place: 3.1.2.1. The client does not enter initial parameters for one or both models 3.1.3. Error Conditions 3.1.3.1. The user does not choose a data set before starting the fit. 3.1.3.2. The user does not choose a model before starting the fit. 3.1.3.3. The user does not choose a model for one of the data sets. 3.2. Special requirements 3.2.1. Preconditions None 3.2.2. Post Conditions The client now has a fitting object that contains the results of his fit. He can modify that object and perform another fit. It will be possible for him to use the fit output as the initial parameters for any subsequent fit. Note: The test-case for this should use the testdata_generator module in the test directory and use two models: 1- A Line: Y = A*x + B for the file "testdata_line.txt" 2- A constant: Y = A for the file "testdata_cst.txt" The constraint should be that parameter "A" has the same value for both models.