ITECH2306 AGILE CODING 2019-Sem 2
Learning Objectives:
The learning objectives for this lab assignment relate to knowledge and skills development:
Knowledge:
K3. Explain the object oriented principles of inheritance, polymorphism, encapsulation, dynamic binding and abstraction.
K4. Explain the principles of event-driven programming.
Skills:
S1. | Develop object-oriented programs involving several interacting classes. |
S2. | Develop, compile and debug code using an appropriate IDE |
S3 | Manage multiple versions of source code. |
S4. | Select appropriate ways to represent data. |
S5. | Incorporate pre-written classes, including those from an API, into software solutions |
S6. | Develop object oriented programs which incorporate event driven aspects. |
Assessment Weighting
Each student is expected to work individually on this assignment and it will contribute 10% of your final mark. (Assessment items : Lab Assignment2 and Lab Assignment3)
Purpose and expectations
Each student is expected to work individually to complete this assignment.
By completing this assignment:
All code must conform to stylistic standards including proper commenting, appropriate choice of identifier names (including case), proper indenting and other readability issues. If the code does not follow consistent style and formatting standards, marks will be deducted. For an example coding style guide, Consult http://www.oracle.com/technetwork/java/codeconventions-150003.pdf
Requirements
This assignment is due at the beginning of week 12 and each student must submit it individually in Moodle. All developed code should also be committed into the student’s GitHub repository in the GitHub Classroom. If there is no evidence of each student committing code regularly to GitHub, that student will be given zero marks. It is important there is evidence of each student contributing to the assignment.
Generally, each individual student must at a minimum (more details specified in next section):
Each student must address the user requirements in the next section in their system.
This exercise requires you to access the GitHub Classroom and download some starter code, to review and extend that code and make multiple commits to save changes into an online source code repository in GitHub.
The following description outlines the user requirements that are to be addressed in the computer system that you develop. Where there is not enough information provided, you may make assumptions as long as you document these.
A computer ticketing system is under development and code is available for you to build upon. The ticketing system will produce tickets for rail travel between train stations. Each train station has a unique station number, a station name and a zone number in which it is registered.
Passengers will be able to use this ticketing system to create a ticket. Passengers pay for their ticket according to a particular fare type. Currently, 2 different fare types are available: FullFare, or Concession fare. A concession fare is charged with a discount of 10% off the regular FullFare.
The fare charged for a ticket is dependent on the service being used. Each service includes one or more zones travelled by the passenger for the trip. The seats available on the train services include first class seats and standard seats. Additionally, as there are potentially large distances, some services include a sleeper car so that passengers can purchase (for an additional fee ) a ticket entitling them to a berth in the sleeper car.
Stage 1:
You are provided with some incomplete code. Write some Junit tests to demonstrate that the code is working (or not)
Stage 2 :
Currently the system displays the following (incomplete) GUI:
Complete the GUI to enable a passenger to purchase their ticket by selecting radio buttons for ticketing options including sleeper/standard car, first class or economy; and using radio buttons to select full fare ticket or concession ticket.
Passengers should also be able to select their train station for departure and arrival using drop down menus or checkboxes. When the user clicks the Purchase Ticket button, then a ticket should be issued (print to console or to a file) for a service from the departure station to the arrival station according to the current selections in the radio buttons.
Create a document named: surnameStudentIDAssign1.doc. This is to be completed by each student individually. In your document, you must include the following section headings:
In the System Overview section you are to write 100-200 words describing your system and how it could be used in an imaginary use-case scenario. You will need to review this after completing all tasks and ensure that your overview explains your entire system. State any assumptions you make.
In this section of your documentation, you will describe your initial chosen test data and explain how that data proved that the code was correctly working. Make sure that you choose a variety of test cases to ensure you can be satisfied that your code is working. Describe your test cases and include screen shots of your testing results in this section.
Use the following checklist to ensure you are following good practices:
The above UML diagram shows the early system design before the GUI screen was added.
Part B Questions
Your lecturer/tutor may ask you some of these questions during your lab in order to assign these marks
For each requirement listed in the system specification (pages 2-3 of this document), explain the code that achieves this requirement – name the method and explain how it works to satisfy the requirement.
You are provided with a UML class diagram for the existing system. Using this diagram and also by reviewing the code provided, you are asked to answer the following questions with regard to your code:
For each concept listed below, provide a description in your document and provide an explanation of the concept using an example to demonstrate from your submitted code.
For solution, connect with online professionals NOW!