## Use Case Description #1
<b>Use case:</b> Create a science plan <br>
<b>ID:</b> 1 <br>
<b>Importance level:</b> High <br>
<b>Primary Actor: </b> Astronomer <br>
<b>Use Case Type: </b> Essential <br>
<b>Stakeholders and Interests:</b>
1. Astronomer - They want to create a science plan to use with the Gemini telescope.
<b>Brief description:</b> This use case will be used by astronomers to create a science plan which is a data object.
<b>Trigger:</b> Astronomer wants to create a science plan.
<b>Type:</b> External
<b>Precondition:</b>
1. The user must to log in first.
2. The system is available.
<b>Relationships:</b>
* **Association:** Astronomer
* **Include:**
* **Extend:**
* **Generalization:**
<b>Normal Flow of Events:</b>
<ol>
<li>The astronomer creates a new science plan.</li>
<li>The system show the create new science plan page.</li>
<li> The astronomer must add
<ul style="list-style-type:none;">
<li>a. Name of creator</li>
<li>b. Name of submitter</li>
<li>c. Funding</li>
<li>d. Objective</li>
<li>e. Stars system</li>
<li>f. Schedule</li>
<li>g. Telescope location</li>
<li>h. Data Processing requirement</li>
<ul style="list-style-type:none;">
<li>i. File type</li>
<li>ii. File quality</li>
<li>iii. Image processing (B&W, color, contrast, brightness, saturation)</li>
</ul>
</ul>
</li>
<li>The astronomer saves a science plan to the system.</li>
<li>The system will change the status of the science plan to ‘created’ and save to the database.</li>
</ol>
<b>Subflows:</b> -
<b>Alternate/Exception Flow:</b>
1. The Gemini system failed.
## Use Case Description #2
<b>Use case:</b> Submit a science plan
<b>ID:</b> 2
<b>Importance level:</b> High
<b>Primary Actor:</b> Astronomer
<b>Use Case Type:</b> Essential
<b>Stakeholders and Interests:</b>
1. Astronomer - They want to create a science plan to use with the Gemini telescope.
<b>Brief description:</b> This use case will allow astronomers to submit a science plan
<b>Trigger:</b> Astronomers want to submit a science plan.
<b>Type:</b> External
<b>Precondition:</b>
1. The user must to log in first.
2. The user must to create a science plan first.
3. The user must to test a science plan first.
<b>Relationships:</b>
* **Association:** Astronomer, SciencePlan list
* **Include:**
* **Extend:**
* **Generalization:**
<b>Normal Flow of Events:</b>
<ol>
<li> The astronomer searches for a tested science plan that wants to submit to the Science observer. </li>
<li> If a search is not found, the system shows nothing to astronomers. </li>
<li> If a search is found, then show the result of science plan to the astronomer. </li>
<li> If astronomer click add science plan, the system will add science plan to a submitted list.</li>
<li> If astronomer click cancel science plan, the sysetm will close the science plan result. </li>
<li> If the astronomer is satisfied with the list, then submit a list of tested science plans. </li>
<li> The system changes the status of science plans to “submitted” and waits for the scientific observer to validate. </li>
<li> The system will notify the science observer about the newly submitted science plan(s) via OCS. </li>
</ol>
<b>Subflows:</b> -
<b>Alternate/Exception Flow:</b>
1. The Gemini system failed.
2. No.5 The system doesn’t alert the observer.
## Use Case Description #3
<b>Use case:</b> Validate a science plan
<b>ID:</b> 3
<b>Importance level:</b> High
<b>Primary Actor:</b> Science observer
<b>Use Case Type:</b> Essential
<b>Stakeholders and Interests:</b>
1. Science observer - They want to validate a science plan from a submitted science plan from an astronomer.
<b>Brief description:</b> This use case will allow a science observer to validate a science plan.
<b>Trigger:</b> The science observer wants to validate a science plan.
<b>Type:</b> External
<b>Precondition:</b>
1. The system is available.
2. At least one science plan hasn’t been validated yet in the system.
3. The science observer must log in first.
<b>Relationships:</b>
* **Association:** Science observer, SciencePlan list
* **Include:**
* **Extend:**
* **Generalization:**
<b>Normal Flow of Events:</b>
<ol>
<li> Science observer searches for submitted science plans from a submitted science plan list.</li>
<li> If a search is not found, the system shows nothing to astronomers. </li>
<li> If a search is found, then show the result of science plan to the astronomer. </li>
<li> Science observer selects a science plan from a submitted science plan list.</li>
<li> Science observer validates the checklist.
<ul style= "list-style-type:none;">
<li>a. S-1: Validate creator and submitter subflow is performed.</li>
<li>b. S-2: Validate funding and objective subflow is performed.</li>
<li>c. S-3: Validate stars system and schedule subflow is performed.</li>
<li>d. S-4: Validate telescope location subflow is performed.</li>
<li>e. S-5: Validate data processing requirements subflow is performed.</li>
</ul>
</li>
<li> If a science plan passes validation, then the science observer will change the status of a science plan to “Approved”.</li>
<li> The system will change science plan status and save it to the database.</li>
<li> If a science plan fails one of the checklists, then the science observer will change the science plan status of a science plan to “Rejected”.</li>
<li> The system will change science plan status and save it to the database.</li>
<li> The system will notify science plan status to astronomers via OCS.</li>
</ol>
<b>Subflows:</b>
<ol> S-1: Validate creator and submitter
<ul style= "list-style-type:none;">
<li>1. Creator and Submitter are valid.</li>
<li>2. If the creator and submitter are valid, the science observer will reject it.</li>
</ul></ol>
<ol> S-2: Validate funding and objective
<ul style= "list-style-type:none;">
<li>1. Funding is valid and acceptable.</li>
<li>2. Objective is valid and acceptable.</li>
<li>3. If funding or objective is invalid or acceptable, the science observer will reject it.</li>
</ul>
</ol>
<ol> S-3: Validate stars system and schedule
<ul style= "list-style-type:none;">
<li>1. The stars system and schedule are valid and feasible.</li>
<li>2. If the stars system is invalid, the science observer will reject it.</li>
</ul></ol>
<ol> S-4: Validate telescope location
<ul style= "list-style-type:none;">
<li>1. Telescope location is valid and feasible.</li>
<li>2. If the location is invalid and not feasible, the science observer will reject it. </li>
</ul></ol>
<ol> S-5: Validate data processing requirements
<ul style= "list-style-type:none;">
<li>1. The file type is valid and correct.</li>
<li>2. File quality is valid and correct.</li>
<li>3. Image processing is valid and correct.</li>
<li>4. If one of the parameters is invalid, the science observer will reject it.</li>
</ul></ol>
<b>Alternate/Exception Flow:</b>
<ol><li>The Gemini system failed.</li>
<li>The submitted science plan list is empty</li>
<li>No.4,6 a science observer forgets to change science plan status.</li>
<li>No.9 the system doesn’t alert the astronomers.</li>
</ol>
## Use Case Description #4
<b>Use case:</b> create an observing program
<b>ID:</b> 4
<b>Importance level:</b> High
<b>Primary Actor:</b> Science observer
<b>Use Case Type:</b> Essential
<b>Stakeholders and Interests:</b>
1. Science observer - They want to create an observing program.
<b>Brief description:</b> This use case will allow a science observer to create an observing program.
<b>Trigger:</b> The science observer wants to create an observing program.
<b>Type:</b> External
<b>Precondition:</b>
1. The user has to log in.
2. The system must be available.
3. At least 1 approved science exists in the system.
<b>Relationships:</b>
* **Association:** Science observer
* **Include:**
* **Extend:**
* **Generalization:**
<b>Normal Flow of Events:</b>
<ol>
<li>If a list of approved science plans is empty, the system notifies "List is empty. Please add an approved science plan before creating an observing program". Then the science observer can’t do anything furthermore.</li>
<li>Science observer searches for an approved science plan from the approved science plan list.</li>
<li>If a list of approved science plans is not empty, the science observer chooses a science plan from the system.</li>
<li>Science observer transforms an approved science plan to an observing program by</li>
<ul style="list-style-type:none;">
<li>a. Science observer adds movement of the telescope.</li>
<li>b. Science observer adds a lens to the telescope.</li>
<li>c. Science observer adds filters.</li>
<li>d. Science observer adds focus.</li>
<li>e. Science observer adds light detector function.</li>
<li>f. Science observer adds special equipment(if any).</li>
<ul style="list-style-type:none;">
<li>If special equipment must to be added, then the science observer adds special equipment.</li>
</ul>
</ul>
<li>Science observer saves an observing program to the system.</li>
<li>The system changes observing program status to ‘created’.</li>
<li>The system adds an observing program to the database.</li>
</ol>
<b>Subflows:</b> -
<b>Alternate/Exception Flow:</b>
1. The system fails.
2. The user doesn’t have permission to create an observing program.
## Use Case Description #4
<b>Use case:</b> create an observing program
<b>ID:</b> 4
<b>Importance level:</b> High
<b>Primary Actor:</b> Science observer
<b>Use Case Type:</b> Essential
<b>Stakeholders and Interests:</b>
1. Science observer - They want to create an observing program.
<b>Brief description:</b> This use case will allow a science observer to create an observing program.
<b>Trigger:</b> The science observer wants to create an observing program.
<b>Type:</b> External
<b>Precondition:</b>
1. The user has to log in.
2. The system must be available.
3. At least 1 approved science exists in the system.
<b>Relationships:</b>
* **Association:** Science observer
* **Include:**
* **Extend:**
* **Generalization:**
<b>Normal Flow of Events:</b>
<ol>
<li>If a list of approved science plans is empty, the system notifies "List is empty. Please add an approved science plan before creating an observing program". Then the science observer can’t do anything furthermore.</li>
<li>Science observer searches for an approved science plan from the approved science plan list.</li>
<li>If a list of approved science plans is not empty, the science observer chooses a science plan from the system.</li>
<li>Science observer transforms an approved science plan to an observing program by</li>
<ul style="list-style-type:none;">
<li>a. Science observer adds movement of the telescope.</li>
<li>b. Science observer adds a lens to the telescope.</li>
<li>c. Science observer adds filters.</li>
<li>d. Science observer adds focus.</li>
<li>e. Science observer adds light detector function.</li>
<li>f. Science observer adds special equipment(if any).</li>
<ul style="list-style-type:none;">
<li>If special equipment must to be added, then the science observer adds special equipment.</li>
</ul>
</ul>
<li>Science observer saves an observing program to the system.</li>
<li>The system changes observing program status to ‘created’.</li>
<li>The system adds an observing program to the database.</li>
</ol>
<b>Subflows:</b> -
<b>Alternate/Exception Flow:</b>
1. The system fails.
2. The user doesn’t have permission to create an observing program.