Mathematics and Concepts of Computational Thinking

Submission Deadline Marks and Feedback
Before 10am on: 12/2020 20 working days after deadline (L4, 5 and 7)
15 working days after deadline (L6)
10 working days after deadline (block delivery)
Unit title & code
CIS093-1 – Mathematics and Concepts of Computational Thinking
Assignment number and title Assignment 2 – Individual – Case Study – Taxi Booking System
Assignment type Written Report and Artefact
Weighting of assignment 70%
Size or length of assessment 10 pages
Unit learning outcomes 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. 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
What am I required to do in this assignment?
Scenario

Taxi Booking System

Consider the following scenario:

A taxi company would like to provide an online service for customers to book a trip and for taxi drivers to check their upcoming trips. A database needs to be created to store customer data (name, address, email, telephone number) and trip information (pick up and drop off address and pick up time and date). Furthermore, your database should contain driver information (name and license plate). Each trip must be assigned to exactly one driver (and trips for a driver must not overlap).

Customers who are not registered yet need to register (providing their address, phone number, email address and credit card information). A registered customer should be able to book a trip, ie. provide the pick-up address and time as well as the drop off address via a graphical user interface. Customers should also be able to view their trips and cancel them if needed. All these operations are only possible after a customer signs in (which means they must be registered). Each new trip must be confirmed by the taxi company by assigning a free driver to it. In the end exactly one driver must be assigned to a trip, after signing in. Taxi drivers must be able to view a list of their upcoming trips – again, after signing in.

Figure 1: Taxi Booking System Use Case Diagram

Your task is to implement the Taxi Booking System containing the functionality shown in the Use Case Diagram in Figure 1 and also taking the different user roles (customer, taxi company and taxi driver) into account.

The following Learning Outcomes will be addressed in this assignment:

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. 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

Carefully read the ‘Taxi Booking System’ scenario.

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?

Your task for the group or individual project is as follows.

Select critical features of the system and describe them using all three of the following techniques:

Use Case Diagrams (Including a discussion of Use Case scenarios and include at least 2 levels of description) Activity Diagrams Class Diagrams
Develop algorithms for this application following the stages of analysis, design, implementation and testing. [CIS093-1 only]

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.

Requirements

List the functional requirements.

Analysis

Sea Level Use Cases

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.

Fish Level Use Cases

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.

Class Diagrams (Optional)

You should use Class Diagrams to describe the structure you have identified for the system only if you use an object-oriented approach.

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 must implement a graphical user interface (GUI). However, if working as an individual, you are also not required to implement a GUI interface. 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).

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.

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:

Introduction With a description of the services the program will provide. Include your assumptions about the system

Functional requirements

Analysis (Use Case, Activity and Class Diagram)

Design

Implementation
Illustrated with screenshots and snippets of code

Testing

Discussion and Reflection How you organised the project, and any problems you faced Roles and Responsibilities of group members (if working in a Group)

Appendix Complete commented code Diagrams

This exercise will draw on all the skills you have learned so far in Introduction to Software Development and the amount of work required is equivalent to approximately four weeks of practical sessions.

Deliverables

Individual Project Report (5-10 pages with Code Appendices)

Illustrate and justify your choices in analysis and implementation Provide evidence that you actually tested your code. Include and explain your UML diagram. Any code should go into the appendix, except core classes that you may explain in the main text. Please do not exceed the page limit as you may be penalized.

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, appendices), and captions for figures. You are strongly advised to use the report template provided.

A Individual Report template will be provided on BREO.

Presentation / Demonstration (7 slides max with demonstration of your program – approx. 15-20 mins total)

Provide an overview of your work as an individual or group and demonstrate your working system. PLEASE NOTE: Due to the constraints imposed by COVID it may be necessary for each student to record an individual video with an overview of the work and demonstration of the working system. This should be between 5 and 10 minutes in length and should be uploaded via a link on BREO.

Individual Student Reflective Report

A confidential Student Reflective Report (one from each student) to be submitted using the appropriate link on BREO. This should reflect on the ease or difficulties that you encountered when completing this group assignment. It should include how you worked with the others in the group to produce the final report and program, the difficulties you encountered and how these problems were overcome, your evaluation of your own contribution to the group work as well as the contribution of others in the group, what you have learned from doing this group work, and how would you do things differently in the future.

An Individual Reflective Report templateis provided on BREO.

Complete program code submitted as a zipped file

Note: The tutors will be happy to advise you at any stage during the development of this program.

Submission details:

An Individual Report MUST be named with the student’s University ID.

Upload the .doc, .docx or .pdf file via the Assignment 2 Individual Report submission link provided on BREO.

An Individual Reflective Report MUST be named with your Student ID.

The zipped program code MUST be named with your Your Number.

Submission of both reports and your zipped program code must take place before 10:00am on Tuesday 15 December 2020 using the appropriate links provided on BREO.

Capture and save evidence of submissions in a word document.

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.

What do I need to do to pass? (Threshold Expectations from UIF)

In order to pass Assessment 2 you will need to:Demonstrate your ability to work as a team of at least 3 people (or individually)Demonstrate your ability to apply programming competencies contributing to at least 20% of the total work (if working as a team)Demonstrate your ability to apply modelling competencies contributing to at least 20% of the total work (if working as a team)Demonstrate core analysis and software development skills contributing to at least 20% of the total work (if working as a team)

How do I produce high quality work that merits a good grade?

Attend all lectures and practical sessions Complete at least 4 hours of extra independent study each week Read the assignment instructions very carefully and make notes If you have any doubt or questions about what you are asked to do, please ask your lecturer Start your assignment work well in advance of the submission date

How does this assignment relate to what we are doing in scheduled sessions?

Assignment 2 is a summary assessment of the learning achieved during the unit, and it meets both of the Unit’s Learning Outcomes.

How will my assignment be marked?

Your assignment will be marked according to the threshold expectations and the criteria on the following page.

You can use them to evaluate your own work and consider your grade before you submit.

3rd Class – 40-49% Lower 2nd – 50-59% Upper 2nd – 60-69% 1st Class – 70%+
1 Report (30%)
Not structured and incomplete
Report (30%)
Basic structure and basic content.
Report (30%)
Good structure, and acceptable content.
Report (30%)
Excellent, professional report. Very good structure and content.
2 System Demonstration (40%)
Basic system or good system (with errors)
System Demonstration (40%)
Basic system or good system (with a few errors)
System Demonstration (40%)
Good demonstration of working system
System Demonstration (40%)
Excellent system and demonstration
3 Presentation (30%)
Weak. Demonstrates a weak level of subject knowledge.
Presentation (30%)
Acceptable. Demonstrates an acceptable level of subject knowledge.
Presentation (30%)
Good presentation. Demonstrates a good level of subject knowledge.
Presentation (30%)
Very good presentation. Demonstrates a very good level of subject knowledge.
WhatsApp
Hello! Need help with your assignments?

For faster services, inquiry about  new assignments submission or  follow ups on your assignments please text us/call us on +1 (251) 265-5102

🛡️ Worried About Plagiarism? Run a Free Turnitin Check Today!
Get peace of mind with a 100% AI-Free Report and expert editing assistance.

X