Skip to content

Latest commit

 

History

History
32 lines (29 loc) · 3.95 KB

F16_lab03.md

File metadata and controls

32 lines (29 loc) · 3.95 KB

(a) (20 pts) A brief description of the project. Here, I’m looking for a short description: probably 1 sentence, 2-3 at most.

It is a tool developed in Java to scrape UCSB's General Catalog to show General Education Area Course list. As developers, we can add new features to the tool or refactor the existing code.

(b) (20 pts) a set of user stories (as a X I can Y so that Z) that describe what the current software in its current state can do.

As a user, I can choose the subject area that I want to search.
As a user, I can enter a specific department abbreviation to search the lessons under the department. Or just enter a N to search all lesson under the subject area I chose.

(c ) (20 pts) a brief assessment of whether the software runs or not. If it runs, briefly describe what it does,

It runs.
Firstly, it pops up a window asking the user to choose a subject area;
After choosing, it prompts the user to enter a specific department abbreviation or just enter a N to search all lesson under the subject area. Finally, it scrapes UCSB’s General Catalog to show the required course list.

(d) (20 pts) a set of user stories (at least 2, but you are encouraged to write up to 4 or more if you can, as many as you think is reasonable) about features that COULD be added to the software to make it more useful, fun, better, etc.

  1. As a user, I can click on the back button in the course list window to return back to the previous choosing procedures.
  2. As a user, I can click on the title of a course to see the course description.
  3. As a user, I can choose the sorting method, by department or course number.

(e) (20 pts) An assessment of the current quality of the README.md. What information could be added to make it easier for the next generation of folks maintaining this code to use the software, and/or maintain the software?

We could add information like the structure of the code, the relationship of the files, and possible future enhancements.

(f) (20 pts) An assessment of the current state of the build.xml file. Are there targets that need descriptions? Is there old legacy JWS stuff that needs to be removed? (More on this below).

No.

(g) (20 pts) An assessment of the current “issues”. Are there enough issues that you could earn 1000 points by working on this project? Are the issues clear in terms of what the expectations are?

Yes.

(h) (20 pts) A list of additional issues that you may have added, if any. For each, a link to the issue is good enough.

  1. #28

(i) (100 pts) Most important: an assessment of the actual code. Write a bit about how the code is organized. Are the purposes of the classes, and their methods clear? Is it obvious how the classes relate to one another? Is the code easy to read and understand? If you had to give someone else that was going to work on the code just “one screenful of text” to help that programmer get up to speed quickly, what information would you convey?

There are six methods inside one class called GEscraper to do two main tasks in the app: scrape information on the website and create GUI to display it.
The first task is mainly done by the collaboration of all the six methods including getSpecialCoursesURL(), getAreaCoursesURL(), getSpecificCourses(), getCourses(), getDepartments(), main(). The other five methods are called by the main() method.
The second task is done by only main() method.

(j) (40 pts) Related to code quality, but factored out into a separate issue because it is so important: how is the test coverage? Are there JUnit tests at all? If so, how much of the project is covered by testing? Are there opportunities to expand test coverage, and if so, how would you go about it?

There are five methods (except main() method) in the GEscraper class, but only one method which is getSpecificCourses() is tested. Yes, there are opportunities to expand test coverage, we can test other four methods.