Assignment 3: Software Engineering – Mine Pump Control System (MPC).
Problem Scenario
You have been tasked to develop the architecture for a mine pump control system, designed to monitor and pump floodwater out of mine shafts. As underground mining operations take place far below the water table, flooding into mine galleries and shafts is an ever-present danger. Excessive flooding is clearly a safety hazard for workers, but also has profitability implications ranging from equipment damage to productivity delays, to mine closures in extreme circumstances.
The system to be developed will be required to monitor the water level in a given mine shaft using two sensors. A high water sensor that measures the maximum acceptable level of flooding in a shaft before pumping begins, and a low water sensor, which measures the minimum level of acceptable flooding and pumping stops. These sensors are used to start a mine pump. When the flooding level exceeds the level determined by the high water sensor the pump is switches on. When the water has been pumped out and the minimum level of acceptable flooding has been reached, as measured by the low water sensor, the pump switches off.
In addition to flooding mining is often hindered by methane pockets, where gas seeps into the shafts and galleries triggering an evacuation. Again, this is a safety hazard, the mining staff won’t be able to breathe, and even more critically, operating equipment may generate sparks which will cause the methane to ignite. Therefore, the system will include a methane sensor that will be used to trigger an evacuation alarm in the presence of dangerous levels of methane (measured in N parts per million), and also switch off the pump regardless of the current water level.
The system is used by two key roles. The first is the Operator. This role is required to log in to the system with a username and password. Following a successful login, the operator is able to start or stop the pump if, and only if, the water level is between the high and low sensor limits. The second role is the Supervisor. A supervisor must verify their security credential as per the operator above. Following a successful login, they are able to switch the pump on, or off at any time. For example, a supervisor could run the pump after the flood level has dropped below the level set by the low water sensor. They could also switch the pump off if the water level goes over the maximum high level of flooding. In these cases, the supervisors’ actions override the automatic behavior of the pump. A supervisor is required to “reset” the pump system in order to re-establish automatic behavior.
Finally, to meet Federal monitoring standards a persistent log is required to capture the following events:
The reading of the methane sensor (for the last 24 hours) can be read by the operator. All readings (up to 30 days) can be read by the supervisor. The supervisor also has the capability to add a “note” to any specific log event that occurs within 24 hours.
Complete the Following Software Engineering Tasks
For each use case you have identified, fill out the Use Case Specification (Description) Template, one for each use case. Document all of the Use Case Specifications/Descriptions using MS Word. This will become the reference listed in the SRS, item 1.3. Use the following template for each Use Case Description.
Use Case Specification (Description) Template
Use Case ID: {This should be coded to identify the level of the use case}
Use Case Name: {Short descriptive phrase}
Relevant Requirements: * {Reference to relevant requirements document.}
Primary Actor: {Main sub-system/entity that initiates use}
Pre-conditions: {Requirements on the state of the system prior to this use being valid.}
Post-conditions: {This describes the state of the system following the successful completion of this use. Effects on other systems and actors may also be described.}
Basic Flow or Main Scenario: {Numbered flow of events: 1 The user initiates an action by... 2 The system responds by...}
Extensions or Alternate Flows: {This section presents variations on this use case. It presents those use cases that have an extends relation with the current use case.}
Exceptions: {This section describes all error conditions that can arise in the use case.}
Related Use Cases: {use cases that are either usually performed just before or after the current use.}
*Note: Establish proper requirements traceability to the Use Case requirements. Integrate the Use Case in the template with the Requirements Specification Document.
Brainstorm a list of object candidates that model objects you consider key abstractions necessary to solve the problem. You may want to use index/CRC cards to assist with this modeling exercise. Creating cards is option. Consider the following questions:
Assign each of these candidates an index card. In the responsibilities section document the data/methods you have identified. Using the set of primary scenarios developed in the previous exercise walk through each step, identifying how your objects will implement the flow described within the scenario. Need to add a responsibility as you walk through a scenario? Go ahead! Need to add a new object? Remove a responsibility? Remove or combine objects? Again, change at this stage is encouraged. There is no outcome document for this step. This is simply a thinking exercise for you to take some time to analyze the system so you can create the object model for it.
At the completion of this assignment you will have the following to submit:
SRS Document – Step 1
Use Case Specification Document – Step 2
UML Use Case Diagrams Document – Step 3
Class Diagrams – Step 5
Sequence Diagrams – Step 6
DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma
Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t
Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th
1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of
1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of