Skip to content

Latest commit

 

History

History
17 lines (17 loc) · 5.76 KB

F16_lab03.md

File metadata and controls

17 lines (17 loc) · 5.76 KB

Adrian Olguin (ajolguin), Cristobal Caballero (CrisCab)
(a) This is a foreign language vocabulary quiz. It takes user input and matches it against a given foreign word.
(b)

  1. As a user, I can use the hint button so that I can receive a hint towards the current word being tested.
  2. As a user, I can select the language to be tested on so that I can be tested in different languages.
  3. As a user, I can use the answer button so that I can check if my input is a correct translation of the given word.
    (c) Yes this software runs, however there are several bugs. The user can choose from several languages to be tested on. After the user chooses a language, the user can type into the answer bar and use the "Answer!" button to check their input. The "hint" button gives a small detail about the word that assists the user in finding the correct answer. The "skip" button does not provide a new test word to be translated, and the number of incorrect or correct guesses does not increase.
    (d)
  4. As a user, I can use the skip button so that I can skip the current word and receive a new word to be tested on.
  5. As a user, I can enter an answer so that the number of correct or incorrect guesses should increase accordingly.
  6. As a user, I can select a difficulty so that I can receive a word respective to the difficulty level of my choice.
    (e) The README.md provides a good summary of this program and how it should run. There are specific details that will help future programmers work on this software (for example: it informs us of specific classes such as 'ForeignVocabWord' and 'ForeignVocabQuiz' and what they do). However, more information should be added regarding the targets of this program. The README.md should include information about "ant -p" and how it provides the targets to be used with ant. In addition, the README.md could be cleaned up and updated to describe how the application can now support more languages than just German.
    (f) After assessing the build.xml file, we have several targets that can be used for this program. However, we have noticed that there is a "download" target that should no longer be included because it is no longer necessary to download this program now that we are using updated features, such as Github, to submit our work. Other than that, all targets have clear descriptions of what they do and the build itself runs fine with no compilation errors.
    (g) After reading through all of the issues, there totaled to be 16 bugs/issues worth up to 1950 points. The issues vary in difficulty, making some worth more points than others, and there are more than enough to allow us to earn 1000 points by working on this project. Overall, the issues are clear in what they are and what we are expected to resolve so there should be no problem being able to resolve 1000 points worth of issues.
    (h) #28
    (i) This code is separated into five different classes: FileRead, ForeignVocabOutput, ForeignVocabQuiz, ForeignVocabQuizGUI, and ForeignVocabWord. Each of these classes are neatly organized, easy to read, and have clear purposes. There are also .txt files which contain a list of foreign vocabulary and their corresponding English translations printed on alternating lines. The FileRead class contains the source code necessary for reading in a textfile (one that contains the list of foreign words such as "german.txt"). The ForeignVocabWord class contains the code that stores a foreign word and its English translation as String objects. The ForeignVocabQuiz class then reads in the files as used in the FileRead class, and uses it to set up a list of possible words to test the user on. In addition, the ForeignVocabOutput class uses FileRead to read in and print out a list of foreign words provided by a .txt file. Lastly, the ForeignVocabQuizGUI is used as the main class that sets up the GUI and overall combines all classes to execute this running program. It clearly sets up the GUI by creating the JFrame and all the components that it currently uses (such as a menuBar, textField, JMenu, etc.). It then provides a go() method that creates a separate JPanel and sets up the quiz based on the language you choose. This class is the lengthiest of all, but is also the most important because it creates the display for the user and uses all of the other classes to successfully create a foreign vocabulary quiz game for the user. Overall, it is obvious enough to see how these classes relate to one another and what they are used for. The code itself is clear, easy to understand, and able to have changes made to it when it comes to resolving issues.
    (j) Yes, there are JUnit tests provided in the "ForeignVocabWordTest.java" class. However, there are only two tests, one which tests the constructor of the class and the other that tests the .equals() method that compares and checks if a translation to a foreign word is correct. The majority of this project is built upon checking if a translation for a foreign word is correct, so making sure this test passes is crucial. Overall, the test coverage is relatively insufficient and there is much opportunity to expand the test coverage. There should be at least one test for each language and possibly ways to check if the translations are case sensitive. We could go about testing this by adding more .equals() tests that compare a correct translation (case sensitive or not) with the provided foreign word. In addition, more tests should be added to test the functionality of the components in the GUI such as the skip button, which currently is not working correctly. This can be done by checking first if the skip button was selected, if so then the word being tested is to be replaced with a new word and make sure that that the new word has successfully been displayed on the GUI.