Assignment Detail


CST2550 Software Engineering Management And Development

    Assignment Instructions

    Assignment ID: FG133135165

    CST2550 Software Engineering Management And Development – University of Middlesex

    Task Description

    You must design and implement a system to track vehicles entering and exiting a car park, calculating parking charges if required, storing the details to file and allowing functionality to produce a report for a given date with a list of number plates, enter/exit times and parking price.

    You should consider carefully which data structure to use for the various parts of the system. During the design phase, you should analyse the algorithms for adding a vehicle as it enters the car park and, removing the vehicle from the collection of current vehicles, calculating the parking charge and adding it to the history when it exits.

    You should not use any third party libraries or code as a part of your solution and all code should be written by you, i.e. not automatically generated. You also shouldn’t use non-standard or operating system dependant libraries in your program or operating system calls (the code should all be standard C++).

    To achieve a good mark, you should design and implement the data structures yourself. Using standard template library (STL) data structures will severely limit the grade you can achieve.

    Apply the knowledge you have gained on this module to select and design the data structures and algorithms which are most appropriate and to analysis the time-complexity for your report.


    A large car park requires an automated system which tracks vehicles as they enter and exit the car park using their number plate and calculates the parking cost as they exit.

    The input to your program will be from a file which will have (on each line) a time and date and either a vehicle entering or exiting the car park.

    Your program must use an appropriate data structure to track the vehicles currently in the car park. When they leave they should be removed from this data structure and added to a history data structure which stores all vehicles, entry and exit times and parking charge.

    You will be provided with a small sample data file in the correct format to use when writing and testing your program. However, the program should work with any file of this format (and another file will be used when marking your work); therefore, your program should allow the user to specify the input file name as a command line argument.
    Parking prices will be calculated using the following table.

    Duration                 Price less than 30 minutes FREE

    Up to 1 hour


    Up to 2 hours


    Up to 4 hours


    Up to 8 hours


    Over 8 hours


    Detailed Description

    It is recommended that you complete the tasks in the following order as the later sub-tasks will require the earlier ones.

    Set up Project
    Create a Git repository and makefile for the project, remember to update the makefile and commit new files to the git repository as you implement/update them.

    Plan Software
    Design and implement a class to store the necessary details of a vehicle with a specific number plate.

    Design and Implement Data Structure/Algorithm
    Design and implement the data structure(s) which will store the Vehicle objects and associated algorithm(s) to add and remove them as they enter and exit the car park. Analyse the time- complexity of the algorithms (this will be needed in your report). You must also justify your selection of data structure, based on the requirements of the program.

    Test Data Structure
    Apply software testing (using catch2) to ensure your vehicle class, data structures and algorithms are all working correctly.

    Read Sample Data File
    Implement the program to read the sample data from the given file and process it using the data structures.

    Implement Menu
    Implement a (command line) user interface to allow users to output all vehicles with entry and exit times and parking cost for a specific date. The output should be sorted by entry times.

    Write Report
    Finish writing the report, including the time-complexity analysis and test cases you prepared while designing the software.

    Report Contents
    The report should have the following sections:
    • Introduction
    – brief description of the project (not just repeating the coursework task)
    – a paragraph describing the report layout
    • Design, including:
    – justification of selected data structure(s) and algorithms
    – analysis of the algorithms which provide the key functionality (using pseudo code, not C++ source code)
    • Testing, including:
    – statement of testing approach used (not test code)
    – table of test cases (not test code)
    • Conclusion, including:
    – summary of work done
    – limitations and critical reflection (including what caused the limitations)
    – how would change approach on similar task in future (should avoid repeating mistakes)
    • References
    – in Harvard format
    – must have matching in-text references

    Video demonstration
    The video should be a quick demonstration of the software demonstrating your understanding of the implementation (just showing you know how to use the software will not demonstrate any understanding).
    Run the program and explain how the functionality was achieved. You may show both the program running and the source code, but don’t just step through the source code line-by-line reading it out (this also doesn’t demonstrate any understanding). Just explain key parts of the code which achieve the functionality you are showing.
    Marks for code will be limited if your demonstrated understanding of the code is limited.

    Formative Feedback
    You will have the opportunity to submit a draft version of your report by the end of week 22. If you submit a draft in week 22, some written feedback will be available by the end of week 24 stating what you should improve before the final submission. There will be no mark for the formative submission, but the feedback given will help you to improve your work (and your final mark).

    Attachment:- Software Engineering Management.rar

    Need fresh solution to this Assignment without plagiarism?? Get Quote Now

    Expert Answer

    Asked by: Anonymous
    Plagiarism Checked
    Answer Rating:

    Plagiarism free Answer files are strictly restricted for download to the student who originally posted this question.

    Related Assignments

    Our customer support team is here to answer your questions. You can send Assignments directly to support team.
    👋 Hi, how can I help?