CIS020-1-CIS093-1 Assignment 2 Taxi Booking System 2022-2023
CIS020-1-CIS093-1 Assignment 2 Taxi Booking System 2022-2023
Unit Team
Susan Brandreth
Assignment Details:
Instructions to Student:
Please note:
Work presented in an assessment must be your own. Plagiarism is where a student copies work from another
source, published or unpublished (including the work of another student) and fails to acknowledge the influence of
another’s work or to attribute quotes to the author. Plagiarism is an academic offence and the penalty can be
serious. The University’s policies relating to Plagiarism can be found in the regulations through the SID website.
To detect possible plagiarism we may submit your work to the national plagiarism detection facility. This searches
the Internet and an extensive database of reference material including other students’ work to identify. Once your
work has been submitted to the detection service it will be stored electronically in a database and compared
against work submitted from this and other universities. It will therefore be necessary to take electronic copies of
your materials for transmission, storage and comparison purposes and for the operational back-up process. This
material will be stored in this manner indefinitely.
I have read the above information and I confirm that this work is my own and that it may be processed and
stored in the manner described.
Extension deadline
SID agrees that the assignment may be submitted ____ days after the deadline and should be marked without
penalty.
SID confirmation...................................................................................................................
CIS020-1 - Introduction to Software Development
CIS093-1 – Mathematics and Concepts for Computational Thinking
Assignment 2 – Group or Individual Project
Scenario
All these operations are only possible after a customer signs in (which means
they must be registered). Each new trip booking must be confirmed by the taxi
company administrator who must also assign a driver to the booking. Only one
driver must be assigned to each confirmed booking. After logging in, taxi drivers
must be able to view a list of their upcoming trips.
Figure 1: Taxi Booking System Use Case Diagram
The functionality described above is shown in the UML Use Case Diagram in Figure 1,
taking the different user roles (customer, taxi company and taxi driver) into account.
In case of group work, the group needs to attempt to implement the whole system and
individual contributions have to be made clear in the group report.
If you choose to conduct the project as individual assignment, you are asked only to
implement the system from Customer Use Case(s) point of view.
You MUST state clearly in your submission that this in INDIVIDUAL WORK
FOR CIS020-1
The following Learning Outcomes will be addressed in this assignment:
1 Demonstrate the following knowledge and understanding
Knowledge of syntax and semantics of a high level modelling and
programming language within the context in which software development takes
place.
2 Demonstrate the following skills and abilities
Develop software based on an accurate model using a high level language
following the stages of analysis, design, and implementation and testing
FOR CIS093-1
The following Learning Outcomes will be addressed in this assignment:
1 Demonstrate the following knowledge and understanding
Comprehend the mathematics that underpins computing problems and the
techniques of decomposition, pattern recognition, abstraction and algorithms
that are used in programming.
2 Demonstrate the following skills and abilities
Develop algorithms and software based on computational thinking using a
high-level language following the stages of analysis, design, implementation
and testing.
You must investigate the scenario provided and based on your assumptions outline a
clear vision of what the system will do and for whom.
What are the different roles for the users interacting with the system? Which functions
of the system does each user use, or interact with, and what information needs to be
recorded about each of them? What are the functions the system must provide? How
will these functions be accessed and organized?
1. Select critical features of the system and describe them using all three of the
following techniques:
2. Prior to implementation you should develop algorithms for this application. The
algorithms can be presented either visually or in text format. [CIS093-1 only]
3. Use Python to code the critical features of the system you have analysed and
perform some testing to show that your system works. As well as basic
language features, you will be credited by the use of GUIs, File Access and
good design techniques.
4.
Requirements
You should list the functional, non-functional and usability requirements of the system.
Design
Using the techniques you have learned, you should identify system actors, the most
important processes and services the system must provide and the relationships
between them.
Scenarios
You should identify and illustrate the most important scenarios or stories about how the
system is used. These should include descriptions of how the system is being used for
each Use Case.
You should identify the lower level processes which support the system at sea level,
including the relationships between them and the actors using the system.
Activity Diagrams
You should use Activity Diagrams to describe the steps involved in the tasks and
processes you have identified for the system.
You should use Class Diagrams to describe the structure you have identified for the
system only if you use an object-oriented approach.
Database Design
User Interface Design
Implementation
Having thought about how a large scale system would work you should implement a
small scale prototype using Python.
Your system should implement the key functions you have identified. You are not
required to implement an on-line server based system but you should implement a
graphical user interface (GUI) if working as a group. However, if working as an
individual, you are not required to implement a GUI interface.
If working as an individual, you may use text-based menus similar to the ones you used
in lab exercises.
For example:
Login
Search for tools
Create new account
Exit
Enter your choice:
or, you may design Graphical User Interface (GUI) menus if you wish.
Your Python program should demonstrate the features you have identified. Bonus
marks will be given for enhanced features in your implementation.
Interface
Your program should be implemented using the high level programming language,
Python, and should incorporate a range of Graphical User Interface (GUI) elements in
the design (but see above if working as an individual).
Functional logic
You should also write code to implement a version of the basic functions that the
system provides using the techniques you have learned - including appropriate data
structures and techniques and extending these if you wish.
You are not required to implement a client-server model with network connection.
Report
The report should include the following:
Title Page
Table of Contents
Task Description
This is basically a description of the task as on the Assignment brief. You can
paraphrase what is written on the Assignment 2 brief.
Project Plan/Schedule
Overview of Functional, Technical (Non-Functional Requirements) and
Usability Requirements
Design
o UML Diagrams
o Uses Case Diagrams(s)
o Activity Diagram(s)
o Class Diagram(s)
o Database Design
o Entity Relationship Model (ERM)
ERM Diagram
Skeleton Tables
o Data Dictionary
Example is on BREO
o User Interface Design
Sketches of your GUI interfaces
Implementation
You should discuss YOUR application. How was the program created?
Explain how you managed the implementation. How did you ensure all group
members actively contributed to writing code? How did you distribute the
workload? Was it successful?
What Integrated Development Environment (IDE) did you use? Justify your
choice of IDE, Python Framework (if used), packages / libraries.
Did you embed SQL in your client application or did you implement a Client-
Server (Sockets Programming architecture. Justify you chosen method, and
discuss the advantages and disadvantages of both.
What problems did you encounter during the coding, and explain how you
overcame these?
Detailed discussion of your experience coding is required here.
Did you incorporate any novel approaches to coding and meeting the Assignment
requirements?
Testing
Test Plan / Test Log (tabular format) with date, input/expected output/actual
output and screen shot of result.
OR
Documentation of each test – one after the other
Basically, you are evaluating what you have done. Did you achieve all the
required specification of the Assignment brief? If not, why not? Discuss the
problems you encountered and how you overcame them.
Did you give yourselves enough time to accomplish this work? Was it harder
than you expected? What have you learned from tackling this Assignment?
Did your group work well together? What did you learn about the dynamics of
group work?
Did this work enhance your understanding of the Python programming language?
Did it motivate you to learn more Python, and other programming languages?
If you had to undertake this or something similar again would you tackle it
differently?
What improvements or enhancements would you recommend for a future iteration
of this project?
Conclusion
What were you asked to do? Did you achieve it?
References
Harvard Referencing System. Any reference must be cited in the text
Appendix
You must include:
This exercise will draw on all the skills you have learned so far in Introduction to
Software Development unit or the Mathematics of Computational Thinking unit and the
amount of work required is equivalent to approximately four weeks of practical sessions.
Deliverables
1. Group or Individual Project Report (5-10 pages with Code Appendices)
This is a formal report and attention should be given to the format of this work.
You should include a title page, table of contents, heading and sub-headings
(introduction, main part, summary, and appendices). Every screenshot and
diagram should have a Fig. No and caption. You are strongly advised to use the
report template provided.
Submission details:
The Group Report MUST be named with the Group Number. An Individual Report
MUST be named with the student’s University ID.
Upload the .doc, .docx or .pdf file via the Assignment 2 Group or Individual Report
submission link provided on BREO.
An Individual Reflective Report MUST be named with your Group Number AND Student
ID.
The zipped program code MUST be named with your Group Number.
Submission of both reports and your zipped program code must take place before
10:00am on Friday 13 January, 2023 using the appropriate links provided on BREO.
You will be asked to demonstrate that the work submitted is all your own work. Failure
to convince us that the work is your own during the presentation may result in failure of
the whole group!
Please note that all submissions with will checked for similarity to other sources, and
evidence of plagiarism may be severely penalised.
Grading:
Report (30%) Poor. Little Not structured and Basic structure Good structure, Excellent,
discernible merit. incomplete. and basic content. and acceptable professional report.
No submission
content. Very good structure
and content.
System No system/ Poor system Basic system or Basic system or Good Excellent system
Demonstration Insignificant system good system (with good system (with demonstration of and demonstration
(40%) errors) a few errors) working system
Presentation Poor. Little Weak. Acceptable. Good Very good
(30%) discernible merit. Demonstrates a Demonstrates an presentation. presentation.
Demonstrates a weak level of acceptable level Demonstrates a Demonstrates a
No submission
poor level of subject of subject good level of very good level of
subject knowledge. knowledge. subject subject knowledge.
knowledge. knowledge.
Final Grade