Question 1 Background
A software train scheduling system is being developed for a client. The main unit of the system should be a Dispatcher. The purpose of the Dispatcher is:
1) to control the arrival of trains at a Station,
2) to monitor a number of Tracks at the station and
3) to monitor a number of Trains.
The Dispatcher contains a Timetable that provides information about the start station, the destination station as well as the trip durations. The Dispatcher will use this information:
1) to check arrival times,
2) to find free tracks,
3) to find the scheduled track,
4) to send a signal to a train to enter,
5) to mark the track as busy and
6) to send a signal to a train to wait.
The Stations should have names and number of tracks. Some of the tracks are only available at particular times. Each Track has:
1) a number,
2) an indicator that can be either green or red indicating whether it is busy or not, and
3) a speed limit.
All of the Track data should be accessible via the operations:
1) track occupied,
2) put train on track,
3) remove train from track and
4) set track indicator.
Each Train has the following characteristics:
1) status indicating if the train is fit for use or not,
2) ID number,
The Train is a generalised aggregation of Wagon and Locomotive. Each Train:
1) can request permission to enter a station,
2) can be moved on to and off of a track and
3) can be stopped.
Answer these questions:
- (a)Create a Class diagram for the train scheduling software system to capture the key business entities and their relationships. Suggest class attributes and methods (with return types). Illustrate any generalisation relationships between the objects. Document any assumptions you feel necessary in order to complete the assignment.
- (b) Create a UML Activity Diagram for the following scenario: Assuming that there is a free track available, the activity diagram will describe how the train scheduling software system will service train arrival. The scenario should start with the Train sending a request to the Dispatcher to enter the Station. The Dispatcher should check the arrival time in the timetable and in parallel should try to find the scheduled Track. When the scheduled Track is found it will send a signal to the Train to enter on this Track, otherwise it will find another empty Track and send a signal to the Train to enter on this Track instead. Next, the selected Track has to be marked busy, and the indicator has to be switched from green to red.
- (c) Create a UML State Machine Diagram for the train object: The State Machine Diagram should describe the behaviour of a Train in the software system when its scheduled track is busy. The Train sends a request to the Dispatcher to enter a Station. This prompts the Dispatcher to get the arrival time of the Train. After checking the schedule, the Dispatcher starts looking for some free track, and enters the state Searching For Track. The location of a free track means readiness to give signal to enter, therefore moving to the state Ready To Accept. This triggers sending of confirmation to the Train Servicing state. Next the incoming train is informed to wait until the full management is completed. After leaving this state the Track is marked busy, which causes transition to the Track Reservation state. Design the state machine diagram using state transitions and labels with three parts (triggersignature[guard]/activity).
- (d) Describe what is the purpose of software modelling? Use appropriate referencing in your answer.
- (a)The Software Requirements Specification (SRS) typically describes the project scope, its business and operational contexts, and its functional and non-functional requirements. Using an appropriate template, fill in each of these five sections of an SRS for the train scheduling software system described in Question 1.
- (b) Identify the three stages of verification that a project test plan should include as a project evolves. Describe with examples, the aspect of the system design that EACH stage addresses making reference to the train scheduling software system in Question 1.
(a) Develop and write a risk management plan for the train scheduling software system including:
i)Risk identification (including a list of potential risks)
ii)Risk analysis (including a prioritised risk list)
iii)Risk planning (including risk avoidance and contingency plan)
iv)Risk monitoring (including designing a risk information sheet and an FMEA for 5 identified risks including an FMEA worksheet).