The purpose of this project is to produce an Object-Oriented Design and demonstration Java program that implements a locker for
holding information like Computer Accounts, Credit Cards, Wireless Access Points, Identity information like SSN, Drivers Licenses, Passports, etc.
The goal of this project is to demonstrate your ability to do object-oriented design and then implement a demonstration of the quality of that design. The following discussion supplies some input necessary to create the object model, but more discovery is likely required.
The following is intended to start a thought process about the necessary characteristics and how to proceed. Use the MoSCoW list to capture the features that need consideration but don’t put too many in the “Must” category. It is valuable to have the “Must” category represent a working skeleton so that things may be tried and provide valuable guidance. In an industry setting, Must may also have implications of minimum viable product but we won’t apply that definition here. The complete implementation would have to explore many issues, including Access control to the locker
Categories of information (Computer Account with passwords, Credit Cards, Wireless Access Points, Passwords (without
accounts), Software Licenses, SSN, Drivers License, Passport, etc.)
Types of information within an item
Fields that will be in all items
Fields that are in specific categories of items
Types of fields (text, password, numeric, URL, notes)
How to search for a specific item
How to access the fields of an item
How to create an item
How to modify an item
How to persist the locker between executions of the program
How to secure the locker (not in scope for P4–5, do not spend time here)
Integration with other systems requiring information (not in scope for P4–5, do not spend time here)
GUI (not in scope for P4–5, do not spend time here)
The locker stores personal information on a computer for a user. The locker will include many items, each belonging to a category and representing a self-contained collection of information. For example, a computer account item might contain a name, username,
password, security question/answers, notes, date created, date updated, URLs for sites where the account is used, old passwords, etc.
Looking at this information, some common data types can be discovered. The name and username are single-line text fields. The name field, at least, is required to have content. The password is a special single-line text field that might have specific behavior such as not showing the contents except under special situations, helper support to generate a random string subject to some rules. While the first version might not implement the unique nature, it might make sense to provide structure (like a special class) to allow building it out later to provide for things like security question/answer might be pairs of single-line text and tracking old passwords that might be a collection of triples containing the old password, its start usage date, and its end usage date. The notes field is multiline text (or rich text). Date created and date updated are obviously dates and might be automatically maintained. The URLs for sites seem to be a collection of text fields, perhaps with a rule that they be valid URLs.
Note: you are expected to have an object-oriented design and a matching Java implementation with a demonstration of quality.
You may have to reduce scope during the implementation phase but do not eliminate the objectoriented nature of the design nor the demonstration of quality.
Remember, don’t put specific I/O in (domain) model classes.
Obey Java Documentation Style
Continue to use the class standard for code documentation. Ensure that the Javadoc comments contain
1. class responsibilities
2. class and instance behaviors
You shall deliver a completed Mind Map using the supplied format. The mind map includes
1. Initial identification of objects
2. Classes in the solution (and the prototype of their public methods)
3. Components of the design problem and its solution
4. Issues, alternatives, and decisions made (and why - often relating to the goals)
Additionally, supply UML diagrams
1. Class diagram (at least one)
2. State diagram (at least one)
3. Interaction diagram (at least two, each around its own story)
1. Project definition based on specifications, constraints, goals, and applicable standards
2. Is this a good problem for an object-oriented solution? Why or why not?
3. Alternatives considered in designing the project
4. Alternatives selected and why 5. Final object approach
6. Relationships between classes
7. Key interactions
8. UML Diagrams expressing the above (at least one class diagram, one state diagram, and two interaction diagrams are minimum requirements)
9. MoSCoW list
10. Process - the approach you chose to develop your solution (beginning from receipt of assignment).
You are showing you know how to do software design and development.
11. Discovery and use of online information - discuss at least one instance where you had to search, understand, and use information from an online source that was not part of the course content. Be sure to relate how you performed the search, obtained an understanding, and used the information.
12. Debug - discuss one of the problems you had in implementation and the steps you took to debug the program. This should include demonstrating your ability to use the NetBeans debugger – not just print statements and interpreting crashes.
13. Results - how you tested your model and how well it worked. Relate to item 1.
14. Include actual data (listings of runs) to show your project’s execution.
15. How would you do things differently on the next design project?
The P5 report is expected to be of the quality provides an example to a potential employer of the type of work you can do.
Word and LaTeX templates for the report are available. Submit the report in PDF format.
Bonus (for P5, up to 25 points on 100 point scale)
A bonus will be given in unit tests for all modeling classes are delivered in addition to fulfilling other requirements. You may wish to do this bonus as you develop the skeleton system.
Bonus (for P5, up to 25 points on 100 point scale)
Another bonus may be earned for designing and implementing components beyond the skeleton system.
Video (3 - 6 mins)
Prepare a video that provides a quick elevator speech description of your project (approximately 1 minute) as the introduction presents your UML Diagrams focusing on showing the relationship between the actions between objects on the interaction diagram and the listing of method names in the class diagram defining which object contains the state elaborated in the state diagram.