Recent Question/Assignment

Software Development 2


Due date: 21 April 2014
Value: 15%

Objectives
The course objectives met by this assignment include:
Please read carefully:
• This assignment must be your own work.
• It is acceptable to discuss course content with others to improve your understanding and clarify requirements, but solutions to assignment questions must be done on your own. Make sure that you do not discuss your solutions or show your solution to anyone to protect yourself.
• You must not copy from anyone, including tutors and fellow students (including StudyDesk), nor allow others to copy your work.
• Assignments that do not adhere to this requirement will be deemed to be the result of academic misconduct.
• Submit any work you have done by the due date, even if it is incomplete or does not work. Our assignment feedback is constructive so we will provide you with suggestions so that you can do better next time. Submitting incomplete work is better (you get partial marks but more so also feedback) than not submitting at all. For this reason, the percentage of this assignment is low to encourage you to present your work to make sure you are on the right track.
For this assessment item you need to complete both Part A and Part B below.

Part A
You are required to do the following questions from your text book:
Question number 6 page 421
• You must start a fresh application - in accordance with the instructions in the module 1 and 2 from the course content (Study book).
• You must adhere to the object oriented principles covered by this course material. This means that for the application there must be at least three classes, but as many more as required depending on the question.
• As a third year course you need to provide source code written clearly, logically and concisely at a high level of proficiency.
• You must write the class definition in accordance to the object-oriented principles in the way they are applied in this course - that means a class definition is only complete if it contains data and processing methods. Any access to the data must only occur within the class definition that contains the data using setters and getters.
• As a third level course it is expected that where appropriate, correct display, correct formatting, correct order, user friendly error messages, correct input validation, and appropriate use and content of array is applied in accordance to the instruction given in the question and in alignment with the course material (text book and course content).
Part B
For this part of the assignment you need to read the assignment specification of the software development 3 (assignment 3). For the design of your classes it is essential that you re-read the specifications a number of times during the design phase, as well as a number of times when you develop the solution.
You will need to provide the class design (as you have done in assignment 1) and some preliminary class definitions for the solution of the third assignment as outlined below.
Class design
Provide details as outlined here about your class design for the software development 3 in the table below.
Business Layer Class name Relationship to other classes Class fields (including collections) Public methods Private methods
Application class
Driver class


• Read software development 3 specifications carefully a number of times before and while you create your class design.

• List the names of all the business layer classes that are required to write the solution for the software development 3 (assignment 3) into the table below.
? The business layer classes contain the data and processing that needs to be done with the data.
? Clearly distinguish the processing from the GUI layer. While we have not yet covered GUI in this course you need to realise that the GUI layer is a mechanism to obtain data that will be supplied to the business layer. For the purpose of this assignment 2 you can use a console class to obtain the relevant data for you.

• Clearly indicate which of these classes will be the application class.

• Clearly indicate which of these classes will be the driver class.

• DO NOT provide the functionality that would be handled by the GUI (Graphical User Interface) layer (for example, keyboard entry). DO NOT provide any GUI layer classes. DO NOT provide any processing for the GUI layer.

• List all class fields (data) that these classes will contain.

• Do not list the setters and getters.

• List all public and private processing methods that these classes will contain. Processing of the data in the business layer class must be done in the class that contains the data. If you have processing tasks left, but no class definitions that suits, you may need to review your class design and decide if the processing should be done in the driver class, or if you require an additional class.

• You must indicate which classes are going to process the collections that will contain the objects. While we are still to cover collections in Java, you should have prior knowledge (required to be in this course) to have a general understanding of how collections work.

Class definitions

Applying all the object-oriented principles and methodologies covered so far in this course, follow your design in the table and create the class definitions for a fully working business layer processing that will use a console class for the interaction with the user.

Create the new project
In your IDE create a new project using appropriate naming conventions. It is important that you show in your naming conventions what the solution is all about. Using the words ‘assignment’ is not appropriate. You should carefully think about the name of your project and application as it must reflect its purpose.

Complete the application class
In the main() method of your application class write the two statements to instantiate the driver class and invoke the driver instance method. As you know from the course material that is all the application class will do in this course. Your main method must not do any processing; your application class must not hold any data.

Driver class
Write the public processing method that is going to be invoked by the application class – this should reflect the major tasks as the driver class facilitates communication between classes.

In this class definition, declare the relevant fields, write the corresponding setters, getters, and the no-argument constructor.

Your focus should be “which object should undertake” which parts of the processing and “what each object should know”.

Other classes
In all of your other business layer class definitions, declare the relevant fields, and write the corresponding setters and getters, create the no-argument constructors and the argument constructors that you are going to use in your design.

Implement object-oriented principles, such as inheritance, abstract classes, and concrete classes, to name only a few.

Write the public methods that you have listed in your table. These methods will be part of the communication process between objects.

Write the private helper methods.

Console class
As you will be implementing the relevant GUI classes in assignment 3, you will need to create one class for the console interaction (obtain keyboard input and display results) for this assignment only, in the same way as you have experienced in the weekly exercises posted on the study desk.

Create a working solution where you use this console class definition to capture keyboard entry to test your classes to pass the required data to the business layer.

Please note that you will remove this console class in assignment 3 to be replaced with your own GUI classes.

Run and test your solution, providing print screens that show how you stepped through your code, showing how your solution processes the data that you obtained from the console and displaying to the console.

Run and test your solution. You need to provide print screens showing how your communication between the objects work after data has been entered and taking print screens of displays to console.

Please note
The third assignment also gives you an opportunity to apply the assignment 2 feedback and further improve on your class design and development. However, it is natural that each student will have a different design, and this is important in enabling you to be ready for the industry.

While you need to provide a working version of your solution, it is assumed that you will be making changes to the design and the classes as you progress through the rest of the semester, and that your solution for assignment 3 would be somewhat different.
How to develop your solutions
• For each solution you must start a fresh application - in accordance with the instructions in module 1 and 2 of the course content on the study desk. You will have gained this experience and knowledge through the weekly exercises posted on the study desk.
• The application must adhere to the object-oriented principles covered by this course material. This means that for each application there must be at least three classes, but as many more as required depending on the question. This will have been demonstrated to you through you doing the weekly exercises. You need to ensure that you adhere to the way we write object-oriented class definitions in this course.
• As a third year course you need to provide source code written clearly, logically and concisely at a high level of proficiency.
• You must define each class in accordance to the object-oriented principles that means a class needs to be complete in regards to the information it contains and the actions it takes. Any updates must only occur within a class and only through the use of setters and getters. A class must contain both – data and functionality.
• The solution must ensure that, where appropriate, correct display, correct formatting, correct order, user friendly error messages, correct input validation, and appropriate use and content of array is applied in accordance to the instruction given in the question and in alignment with the course material (text book and course content on the study desk).
Always submit your assignment by the due date, no matter how much you have completed, or whether you have bugs.

• You will get partial marks on the work that you have done, rather than missing out completely.
• You will get feedback on your assignment so that you can do better in the next one.
• And at the end of the semester it will all add up to get you a better result than without submitting an assessment. Showing that you actually participated in all of the assessment items is important.
Part A
• Create a directory called “PartA”
• Add the .java source code files into this directory containing your own solution for PartA
• Add the word document containing print screens from data entry or output that will show your application running. Make the word document look professional using headings and captions. You can provide additional information, such as any assumptions you have made to clarify your design, or uncompleted features and bugs you may have unresolved.
Part B
• Provide a separate word document to provide what has been requested under Part B above.
• Create a directory called “PartB”
• Add the .java source code files into this directory containing your own solution for PartB
• Add the word document with the details explained under PartB