The Architecture Diagram given above explains the high-level design of the App. Given below is a quick overview of each component.
The rest of the App consists of four components.
UI: The UI of the App. Main: The main logic handler of the App. Commons: The control variable of the App. Storage: Reads data from, and writes data to, the hard disk. Finder: Searches and sort the data IssueList: Define the structure of each issue to track.
Each of the six components,
The Sequence Diagram below shows how the components interact with each other for the scenario where the user issues the update command.
The UI componenet is the handler of the user input and output result to the user. It includes InputHandler Class which will deal with user input, and Interface Class which will handle all the console printing interaction. Project team have also store the information of help command inside Interface which will make the help command work when the program is compiled into the jar file.
Both InputHandler and Interface contains only static method, which will be utilize in all the other classes. But the majority of the method call was from the main class, ItLogger.
The FINDER component includes Search and Sort classes. It is used to provide an organised output based on the user desired output selection option. Sort class is consist of API to sort the issuelist in given request with quick sort algorithm. It is called from view command with addon keyword to view the sorted list.
The Storage component loads a list of ItLogger Defects from a text file when the program starts up. It makes use of the Parser class to create a Defect object from a String. It also saves Defects to file upon program exit. It saves to format that is readable by the Parser class.
The IssueList component is the container to save the data of defects during execution of program. It consist two classes, IssueList and Defects. Issuelist has a vector to store defects. And the Defect class is the class of defects as what we defined. It contains the defect name, status, severity,date raised, deadline and owner.
The IssueList component:
The commons component are those classes used by multiple components are in the program, such as enum classes and the parser class.
The parser class is mainly in charge of parse user’s input and convert them to a workable format to the program. The enum classes are used to strict the keywords.
Search Implementation
The search
feature displays all items in the the ItLogger. It is facillated by the Search Class which comprises of the following implementation:
Search#searchTitle
- searches all Issue in the ItLogger by title listedSearch#searchStatus
- searches all Issue in the ItLogger by status listedSearch#searchSeverity
- searches all Issue in the ItLogger by severity listedSearch#searchDeadline
- searches all Issue in the ItLogger by deadline listedSearch#searchOwner
- searches all Issue in the ItLogger by owner listedThe following sequence diagram shows how the Search operation works.
Aspect: Search can otherwise be implemented
Pros: Easy to implement.
Cons: Less relevant result to user.
Pros: More relevant result to user.
Cons: more difficult to implement.
manage defects faster than a typical mouse/GUI driven app. Allows the user to better manage the project issues.
Priority | As a … | I want to … | So that I can… |
---|---|---|---|
* * * | new user | add issues into IT logger | track my issues |
* * * | New user | view an issue that is based on the ticket number | see its progress. |
* * * | New user | delete a defect | remove defects that are resolved or no longer required |
* * * | New user | list all issues currently in the ITLogger | find all of the recorded issues currently in ITLogger. |
* * | New user | I would like a given issue format | so that I can know a structured way of using the app |
* | New user | I would like the issue I logged to be date stamped | so that I know when it was raised |
* * * | User | be able to load defects from a text file or database | View and track all defects previously recorded in the system |
* * * | User | Have a help guide | View the usage of the app |
* * * | User | Update information of existing defects | Keep track of those defects that have changed |
* * | user | Search defects based on my preference | Narrow down the search result based on what i want to look up |
* * * | User | Automatically save my records when the defect list has been changed | progression will not be lost |
* * | User | View my defect in a sorted order | More easily track my list of items |
* * * | Forgetful user | Be notified of my task that are due | Not forget what i need to fix and close |
* * * | User | Have a robust app | So that my data integrity is maintained (e.g. no deletion, cannot reopen after close) |
java -jar
command.java -jar
command with Command Prompt.