Mini-project 6: Designing a Library API
Instructions
The purpose of this mini-project is to give you practice with designing your very own library API. This library will be seen by other students in the class, so make this a good effort. For MP6, you will design your API, while in MP7, you will implement it.
Your library can be for anything and does not have to be overly complex or stand-alone. It should have a clear use case and be usable in conjunction with a reasonable application. You will get extra credit based on how many students decide to use your API in their final project. So, you want to make it something that will be useful.
In order to come up with something useful, think back to the programs you've written over the years. Are there any actions you've found you do over and over again and you have to re-implement it each time (maybe a little differently)? Can this action (or set of related actions) be abstracted into a library? One in which if you were to use that library in your code, you'd save tens or hundreds of lines of code? This may be a good library! Here are some examples:
Prompting a user for input. One method might prompt users with a single line (specified as a parameter) and read in an [int/string/char/float/etc.]. Another method might prompt the user until data is valid, based on some criteria (might work as an interface).
Reading data. Read in from a file and doing any one or more of the following: parsing each line or sets of lines, generating an set of object instances; sorting the data from the file; etc.
Your library submission should meet the following criteria:
- be useful or really interesting
- have at least one class (regular, abstract, or an interface)
- have at least three methods
- include a UML diagram of all the classes involved
- fully documented JavaDocs, which should include a description of the library, it's fully documented API,its use cases, and an example of how to use it; the easiest way to do this is to make the code skeleton with JavaDocs and make the JavaDocs...in this case, put it in a module named MP7, since you'll be using it for the next mini-project
Submission
Your submission should include the UML for your library, as well as the JavaDocs with complete documentation. Pack your JavaDocs into a zip file. See this page for the rubric. See the Canvas page to upload your submission.
(Back to top)