Visual sensitivity analysis

Assignment Help JAVA Programming
Reference no: EM132644293

COSC1295 Advanced Programming - RMIT University

Learning Outcome 1: use the Java programming language in the implementation of small to medium sized application programs that illustrate professionally acceptable coding and performance standards.

Learning Outcome 2: demonstrate knowledge of the basic principles of the object-oriented development process and apply this understanding to the analysis and design of solutions for small to medium scale problems.

Learning Outcome 3: describe and apply basic algorithms and datastructures, in particular simple searching and sorting of data stored in data structures and manipulating data.

Learning Outcome 4: implement basic event-driven programming and graphical user interfaces in Java.

Milestone 1: Preparing the Data (Involves File Processing, Exception Handling and Input Validation)

Write a menu-driven program that helps the project manager capture the details related to each project, project owner, company, student personal details and student preferences, in separate files. There should be an additional menu option to shortlist projects based on student preferences. Note, there can be multiple project owners from the same company and multiple projects by the same project owner. This program should perform appropriate error checking and input validation by validating all user inputs (Your program should not crash at any time because of invalid inputs).

Menu

A. Add Company

B. Add Project Owner

C. Add Project

D. Capture Student Personalities

E. Add Student Preferences

F. Shortlist Projects

A. Add Company

The details related to the company should include a unique company ID, company name, ABN number, company URL and address. The company details added should be saved to the file companies.txt.

B. Add Project Owner

The details captured by each project owner (contact person) should include first name, surname, a unique project owner ID (of the form Own1, ...), role (such as software engineer), email and the ID of the company the project owner represents (of the form C1, ...) The project owner details added should be saved to the file owners.txt.

C. Add Project

The details captured for each project should include a title, a unique project ID (of the form pr1, ...), brief description (one line), ID of the project owner (of the form Own1, ...) and the ranking of the skills sought after for the project (4 being the highest and 1 the lowest) in the 4 different technical specialization (Skills) at MRIT university shown in the table below. The project details added should be saved to the file projects.txt.

Technical Skill Categories

(P) Programming & Software Engineering

(N) Networking and Security

(A) Analytics and Big Data

(W) Web & Mobile applications

Possible file format for the file projects.txt

D. Capture Student Personalities

Now assume the project manager can download a file named students.txt capturing the list of students doing the project course in current semester with their average grades (HD=4, DI=3, CR=2, PA=1, NN=0) in project related technical skills (P programming, N networking, A analytics, W web) with the format shown below. Assume students have IDs S1 to S20.

file format for students.txt (You need to create such a file with 20 students))

S1 P 4 N 3 A 2 W 1

....

The project manager interviews each of the students in the list during the first week and assigns their personality types as shown in the table below to ensure balanced teams are formed with at least one with leadership attributes in each team. It is required that the personality type assigned to students must be equally distributed across types.

In addition, the project manager allows each student to specify up to two others (student-numbers) they cannot work with in a team because of prior personal conflicts. Both the personality and conflict information must be captured and appended to existing file after the interview and saved in a text file studentinfo.txt, as shown below.

Note, all project must be of size 4. Exceptions must be thrown when the personality types of the 4 students assigned by the project manager is not balanced. For example, if there are 20 students, the maximum number of personality types A, B, C and D can only be 5, and hence any attempt to assign A,B,C, D type to more than 5 students should result in an exception.

E. Capture Student Preferences

Students having attended the presentations for 10 projects decide their preferences and submit them via discussionboard by the end of first week, with 4 for most preferred and 1 for the least. These preferences should be saved in the file preferences.txt. A student may add preferences multiple times, but only the final preference should be counted.

file-format for preferences.txt

S1

Pr6 4 Pr8 3 Pr6 2 Pr4 1

....

F Shortlist Projects based on Preferences

The student preferences for projects (from 4 down to 1) should be summed up for all the projects before discarding the 5 least popular projects in the file projects.txt

Milestone 2: Forming Project Teams Manually and Creating the Test Cases
In this milestone you are required to ensure teams are balanced in terms of personality types, each team has at least one leader type (A) and students with personality conflicts are not placed in the same team. In addition, for each team you are required to compute Team-Fitness Metrics which will allow project manager to swap members when necessary (next milestone) considering ethical considerations as well as preferences of owners and students.

Team-Fitness Metrics
1. Average student skill competency for each project team. This value should not vary greatly between teams to ensure fairness (ethical consideration).
2. Percentage of students who got their first and second preferences in each of the teams. A good allocation should try to maximize this percentage to improve student satisfaction.
3. Skills shortfall for each project based on categories in which the average grade for a skill category (between 0 and 4) falls below the requested level for that category. It is derived by summing up the absolute difference between skill level requested and the average skill level of team members for categories where the average skill competency level is lower than the requested level. For example, if a project requested 4 for P, 3 for A, 2 for W and 1 for N, and the average skill competency for these categories are 1.5, 2.5, 2.5 and 3 respectively, then the skills shortfall for that project is 3 being (4 - 1.5) + (3 - 2.5). The project manager aims to minimize the skills shortfall and to balance it across teams to ensure all project owners get members with skill competencies close to what was requested.

Extending the Menu Driven Program
You are required to extend the menu-driven program creating two additional options. You are expected to make use of the data stored in the files projects.txt, studentinfo.txt and selections.txt.
A. Form Team
B. Display Team Fitness Metrics
In addition, you are required to create 10 JUnit test cases specified below and serialize all the objects (see below).

A. Form Teams
Project manager should be allowed to specify the project ID followed by the IDs of all the students to be assigned to the project. You are expected to develop the appropriate classes.

B. Display Team Fitness Metrics
Create a sub-menu to allow the user to display the required team fitness metrics. This menu should only be enabled after all the teams are formed.

Test Cases (You are required to write both positive and negative test cases)
a) Average skill competency for a team is computed correctly
b) Percentage of project members getting first and second project preference is computed correctly
c) Skill shortfall for any team is computed correctly.
d) InvalidMember exception thrown when an attempt is made to add a student already assigned to another project team
e) StudentConflict exception thrown when students members who have indicated prior conflicts are assigned to the same team
f) PersonalityImbalance exception whenever a team has less than three different personality types.
g) RepeatedMember exception thrown when an attempt is made to add a student twice to the same team
h) NoLeader exception thrown when a team does not have a leader personality type
i) Standard deviation (see formula in last page) in skill competency across projects computed correctly.
j) Standard deviation for percentage of project members getting first and second project preferences across projects computed correctly
k) Standard deviation of shortfall across teams is computed correctly.

Serialization
Your program should allow all project and student objects to be serialized and retrieved.

Milestone 3: Visual Sensitivity Analysis
The main aim for this milestone is to assist project manager improve fairness and overall satisfaction of all stakeholders as measured by the metrics by assigning and swapping members between teams. To meet this goal, you are required to incorporate appropriate GUI and event handling for adding and swapping members. You are required to combine the model class from the previous milestone with view and controller classes developed with either Scene Builder and fxml or Java FX directly.

• When adding project manager should specify the Student ID and tick an empty location on one of the teams before pressing Add.
• When swapping user should click the two student IDs to be swapped before clicking the Swap button.
• All the metrics must be immediately updated and shown visually. Compute and display the standard deviation for all three metrics.
• You are expected to display error messages in appropriate dialogs (not console mode) when invalid add or swap attempts are made (such as attempting to swap 3 elements at a time).
• You are required to clearly separate the code for the model, view and the controller.
• Appropriate layout managers to ensure GUI window is consistent even when resized

Milestone 4: Object Relational Mapping of all the Project related Data Captured and Derived
This milestone requires you to develop the code for object relational mapping. You are required to write all the client, project and student related data to tables in the relational database. The tables created will be used as inputs to external systems. Your tables must include the necessary primary and secondary keys to make the correct associations. This milestone may be demonstrated in console mode (as with milestones 1 and 2) or GUI mode (milestone 3).

Milestone 5: Using Heuristic Techniques for Creating Well Balanced Teams
This milestone should only be attempted only after completing first three milestone as this will be much more demanding and open ended and you will be expected to learn and use additional patterns and algorithms. You will also be expected make use of multithreading to provide suggestions to the project manager in an unobtrusive way using the console (writing to GUI may interfere with the Java FX threads). The main requirements are:
o Develop algorithms and implement t them to suggest appropriate swaps so that team-fitness metrics can be improved by narrowing the gap between different teams for all three metrics (lowering the standard deviation). You need to demonstrate following these suggestions will help improve the metrics.
o The suggestions should be offered unobtrusively using a separate thread. Your suggestions must not violate any of the hard constraints and lead to a new state which improves all 3 metrics specified.
o Incorporate an undo button allowing previous state to be restored making use of appropriate patterns.

Assignment Details
You are required to combine and refactor the code you developed as part of your milestones after fixing any issues identified. 50% of the marks is allocated for the functional aspects specified in the 5 milestones. The remaining 50% of the marks are allocated for code quality, following good object-oriented design, reflective practices (report 1), scalability (report 2) and lessons learnt (report 3). Please refer to the Canvas rubrics for details.

• Correctly preprocessing data used in team formation (refining milestone 1) and handling all the error conditions and exceptions.
• Correctly carrying out at least 10 test cases that demonstrate an in-depth understanding of the problem domain (refining milestone 2) including the metrics used, enforcing all the constraints associated with teams and standard deviation.
• Effectively facilitating visual sensitivity analysis through the use of visual elements and event handing (refining milestone 3). The graphical user interface designed and implemented must be effective, intuitive, usable and fit for purpose. Effectiveness will be measured by how easily team members can be assigned and swapped, how well the visual elements depict the metrics of interest and how error states are avoided.
• Correctly mapping the data from object-oriented paradigm to relational database tables capturing all the relevant attributes and associations (refining milestone 4).
• Use of heuristic techniques, multithreading and patterns (for undo) to assist the project manager form well balanced teams in an unobtrusive and convenient way (refining milestone 5).
• You are required to demonstrate effective use of object-oriented programming constructs (encapsulation, inheritance, polymorphism, abstract classes, interfaces and composition), principles (SOLID) and GoF patterns (such as singleton)
• You code developed as part of the milestone should be refactored adhering to established coding standards to make it readable and maintainable. Your code must be refactored to have a clear separation between model, view and controller classes.
• A one-page document justifying the data structures, collections, generics, algorithms and design techniques used. If you want to describe your design, you may use UML diagrams. You may be asked to explain these.
• A one-page report on scalability (as the number of students and teams increase) considering possible limitations of the algorithms and GUI you developed. You may be asked to explain these.
• A one-page document on lessons-learnt reflecting on the problems encountered and how you would avoid them in a future project. You may be asked to explain these.

Attachment:- Assignment Final.rar

Reference no: EM132644293

Questions Cloud

Compute the Federal income tax liability on BCs income : Compute the Federal income tax liability on BC's income for the current year under the following assumptions. Ignore the standard deduction
Why the reaction to covid has been so radical : Using your sociological imagination, explain why the reaction to COVID-19 has been so radical in comparison to previous pandemics.
How much of the casualty loss will be deductible by Wilson : How much of the casualty loss will be deductible by Wilson under the following circumstances? Wilson is a corporation, and the insurance recovered was $50,000
Which award is a better predictor of organizational success : Compare and contrast the Baldrige Award to the Fortune Best Places to Work Award. Which Award is more influential to a prospective employee?
Visual sensitivity analysis : Describe and apply basic algorithms and data structures, in particular simple searching and sorting of data stored in data structures and manipulating data.
How will storm water runoff be affected as a result : How will storm water runoff be affected as a result of the large asphalt paved parking areas? What happens to the taxes on the farm?
Briefly describe the methodology used in the study : What are the three problems the authors identify in research regarding family-based transmission of social class? Briefly describe the methodology used in this.
Why is finding and implementing the right pricing strategy : Why is finding and implementing the right pricing strategy critical to a company's success? Give an example of a product or service you think is priced well
Malware developers to disguise code : Submit a report that discusses the techniques used by malware developers to disguise their code and prevent it from being analyzed.

Reviews

len2644293

9/25/2020 11:03:35 PM

The assignment brief that I have attached requires a java project to be formed finally but along with it I have to submit weekly video checks, also called Milestones indicated in the brief, so for that I would need a compilated project as well as differentiated code folders which I can present in the weekly video checks. If this can be possible it would be really appreciated.

Write a Review

JAVA Programming Questions & Answers

  Write a jsf application that reports the values

Write a JSF application that reports the values of the following system properties of the web server

  Write a definition for two recursive methods

public static String filter(String s, String rem) to return a String that is the result of removing every occurrence of all of the characters in the second parameter from the first parameter. For example, filter("abcdbdabdcbddda","bd") should retu..

  Java class that represents your favorite musical instrument

Create your own Java class that represents your favorite musical instrument. Your musical instrument class should have at least 3 constants, 5 private data fields, getters and setters for each private data field, a to String() method, and three ad..

  Write a program that converts number from binary to decimal

write a program that Converts a Number from Binary to Decimal  by using reading keyboard input.

  Create a java application that displays your name

In order to practice writing, compiling, and running Java, you decide to create a Java application that displays your name and address on the screen.

  Write down a java application which inputs three integers

write a java application that inputs three integers from the user and displays the sum average product smallest and

  Develop a menu driven console java program

Develop a Menu Driven Console Java Program to demonstrate you can use Java constructs including input/output via GUI dialogs, Java primitive and built-in types, Java defined objects, arrays, selection and looping statements and various other Java ..

  Determine whether or not a student is certified

Determine whether or not a student is certified, their transcript is checked against a certification criterion - demonstrate the functionality of your code

  When is the best time to implement a device database

When is the best time to implement a device database? What are the steps Android developers take during implementation? Name three specialized test scenarios that any QA team should consider.

  Write a program of the dating game

The Dating Game Table of Contents for each section of this submission (i.e. Source Code listing, screen captures and UML design) here….Also, may include Javadoc source here.

  Describe an application that can deadlock

Describe an application that can deadlock, or starve a thread.

  Implement one class called parking meter

Implement one class called parking meter, that is a simple model of a coin operated parking meter

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd