Soft40141 - software engineering - aim of assignment is to


Analysis, design and implementation of a train management system for Rivendell Trains

I. Assessment Requirements

The aim of this assignment is to demonstrate knowledge about the analysis, design and implementation of a small software system according to the specifications given below.

You are required to produce an executable solution of your software and a Rational Software Architect project of the analysis and design. These two parts are detailed below and the percentage of marks for each is indicated.

Software Solution

Your submission should be a compressed folder (.zip or .gz) of the complete project, including all source code that you have written and a development report. When the files are extracted, the project should compile and run. Make sure any extra file needed to run is included.

Analysis and Design

You are required to produce a Rational Software Architect project file containing the analysis and design for this system, following the object-oriented methodology taught in this module. The project should be compressed together with the software solution and development report. The compressed folder should be uploaded to the appropriate NOW dropbox.

II. Assessment Scenario/Problem

1. Introduction

You are a newly recruited analyst programmer, working for a major IT company. This company won a contract to develop a management system for Rivendell Trains. It has to be designed using object oriented techniques and coded in C++. This system has to manage information about all trains in its network. You can assume that the data will be sufficiently small to be memory-resident during the daily operation of the system. This exercise does not allow for the development of a database application; you must manage the files yourself. A console application is enough.

2. Background

In a meeting with a Rivendell Trains representative, a number of requirements have been discussed and you have identified the following:

Every time a new train in incorporated into the network, the system needs to have record of this train. Trains can be of two main types: passenger and freight. In any of the two cases, this type of transport has the following features: the train is pulled using a locomotive which can be electric or powered by a steam engine. The train can achieve a maximum speed, has a make, model, year of fabrication, date it was registered in the system and a unique ID number. The locomotive can pull a maximum number of cars, but might not be pulling the same number all the time. Each car is identified by its dimensions and weight.

In the case of the passenger trains, cars can be of different types: passenger cars (with a number of seats for ‘open' cars or a number of compartments and seats for ‘closed' cars), dining cars and sleeping cars (with a number of beds). Passenger trains could be of three types: intercity, regional and commuter. Intercity trains are long-haul trains that operate with few stops between cities. Regional trains are medium distance trains that connect cities with outlying surrounding areas, making more stops and have lower speeds. Commuter trains serve suburbs of urban areas, providing a daily commuting service. All passenger trains may have both first class and standard class cars.

Freight trains haul cargo using freight cars specialized for the type of goods. These include ‘open' cars for general merchandise, ‘covered' cars for bulk material such as minerals and coal, refrigerator cars for transporting food, stock cars (which can be single-level for large animals such as horses or have two/three levels for small animals such as sheep, pigs and poultry), and autoracks for road vehicles (maximum number of cars).

All trains would have a maintenance schedule associated to them. This maintenance includes wheel profiling, break inspection, examination of equipment such as traction motors and bogies, cleaning, among others. Maintenance might happen at different times depending on the type. Wheel profiling and break inspection would happen every time the train covers 5,000 km. The examination of equipment would be done every 18 days and the cleaning every week. The system should be able to display the maintenance tasks to be done during the week.

In addition to the train information, the system should allow the management of data related to the journeys of each train. This includes the destinations, stops, total distance, departure and arrival times.

The manager of the railway company will be able to create and keep up to date the detailed information of all the trains in the network as well as the information of their journeys. The system will let the manager add new trains to the network and search for specific trains with a given identification number, train type or destination.

3. Task Deliverables

Analysis and Design

You are expected to follow an MVC design; this means that your design should have at least an interface class, a control class and several data model classes. The Rational Software Architect project should contain the following:

*A Use case diagram showing use cases for all the requirements.
* A Use case description for each use case.
* A Sequence diagram for each use case.
* The Class diagram
-Include all attributes, operations and associations derived from the above analysis.
*State machine diagram for one class. Transitions should be consistent with sequence diagrams.

Implementation

An implementation of the Train and Car classes (data model classes) will be required, using as many levels of inheritance needed. The manipulations might include create, copy, and update. Trains will be stored in a collection. The implementation of the train collection is divided into 3 sets of increasing technical difficulty; it is up to you which level of difficulty you implement.

Set 1. Create an array of trains. Implement functions such as insert, remove, sort and search by train number, type of train or destination.

Set 2. Use linked lists to store the trains. Implement functions such as insert, remove and search by train type, train number or destination.

Set 3. Use a binary tree to store the trains. Implement functions such as create, remove and search. The search can be done by train type, train number or destination. A self-balanced tree will be rewarded.

Use private member functions for common functionality that should not be exposed in the public interface.

Data needs to be stored permanently in ASCII (text) files on the local hard drive, hence functions for loading data from files and for saving data from memory into a file are required. The files could be comma separated values (CSV).

You are expected to follow the MVC design, so your implementation should reflect this, with at least an interface class, a control class and data classes (Train and Car) implemented. You are free to add any other classes to the model, such as classes for file handling.

Development report

You will deliver a structured document that should contain:

1. A cover page

2. A table of contents page

3. A general description of the system.

4. An explanation of how the main classes were implemented.

5. An explanation of the internal data structures used.

6. A description of the file format(s) used - these should be ASCII text files, so that they can be read easily by other applications

7. A description of the screens and menus to establish the model of use

8. Test plan and results: any errors encountered will need to be logged and rectified.

Demo

You may be asked to discuss and demonstrate your assignment at a viva after your assignment has been marked.

Request for Solution File

Ask an Expert for Answer!!
Software Engineering: Soft40141 - software engineering - aim of assignment is to
Reference No:- TGS01599867

Expected delivery within 24 Hours